IRC channel logs

2022-06-27.log

back to list of logs

<justkdng>oooo, is there a tutorial on how to install guix in a raspberry pi?
<nikola`>What weird things does rust do for it's "incremental compilation"
<maximed>nikola: Guix notion of 'incremental compilation' is that if you compile 'gnome-terminal', you don't have to compile gtk+ again if it was compiled previously.
<maximed>This is also the case under cargo.
<maximed>But not under cargo-build-system.
<nikola`>Ah right
<nikola`>I misunderstood
<maximed>Rust can go further: if you compile two files and link them, then modify one of them, you can reuse the single built file (more fine-grained!)
<maximed>(that doesn't seem to be how it works in Rust though, I don't quite understand the details, something about modifying the linker for incremental linking?)
<justkdng>is it possible to create an aarh64 bootable iso?
<justkdng>aarch64*
<nckx>justkdng: No, not with the current Guix tooling; but yes in principle, after removing the x86 assumptions from the current code & adding it.
<nckx>justkdng: The current way to install Guix System on aarch64 is to boot a different disto's live ISO or a real system installed to a USB drive, install Guix to it using the 'binary installation method', and run guix system init from there.
<nckx>A much rougher method is to install Guix to whatever distro the machine is already running, and run 'guix system init' *on the same system*, basically turning it into Guix System on the next reboot. It works, but it's filthy and I don't recommend it.
<nckx>Plenty of ways for left-over files to cause havoc, as Guix doesn't wipe the old /etc, etc.
*nckx → 😴💤, night Guix.
*yewscion is back (gone for 01:02.47)
<KarlJoad>nckx: What are the remaining portions of code that assume x86?
<luke-jr>[21:56:39] <justkdng> Is bootstraping rust still a pita? <-- still impractical on non-x86
<oriansj>well the amount of love an architecture gets is in direct proportion to the number of developers who use that platform. Based on that I feel that very few node.js and rust developers do anything except use standard x86 (64bit) laptops with buckets of RAM and SSDs
<podiki[m]>I'm trying to apply the kernel 5.18 patches and on make (of guix checkout) I get "ice-9/eval.scm:293:34: error: validate-configuration: unbound variable"
*yewscion is back (gone for 00:39.38)
<podiki[m]>(nevermind, needed a full clean and rebuild)
*yewscion is back (gone for 00:02.11)
<raghavgururajan>Hello Guix!
<raghavgururajan>Anyone started facing issues with Xorg and/or StumpWM, recently?
<raghavgururajan>Like not starting after boot?
<sleepydog>all good here
<raghavgururajan>*without display-manager I mean
<sleepydog>i am using sddm. did you check /var/log/Xorg.[0-9].log ?
<trevdev[m]>I know I keep coming back with this stuff, but I just want to re-confirm (again) how these updates via guix home reconfigure should work. If I run `guix pull`, then immediately do a `guix system reconfigure` and follow that with a `guix home reconfigure`, reboot, then run `guix gc`, then immediately after that run something like `guix home container` to see what happens, I should not see a ton of packages re-download and source code re-compile?
<lilyp>trevdev[m]: guix gc also garbage collects stuff that's used for build only
<lilyp>that stuff will be redownloaded
<KarlJoad>trevdev[m]: You should not see things download that were also present in the previous generation of your system or home configuration, because they are still "alive".
<KarlJoad>Only things that are not needed for the programs to run (as lilyp said, build-only stuff) will be removed. In that case, those would be re-downloaded. But nothing else should be downloaded.
<KarlJoad>That is, unless you changed something to your home-configuration between the previous `home reconfigure` and the current `home container` commands.
<trevdev[m]>I changed nothing, I just paced this experiment rapidly and sequentially
<trevdev[m]>(Aside from the guix pull that is!)
<trevdev[m]>The final guix home container did re-download a bunch of stuff that I presume was build dependency. It also downloaded telegram desktop, which always seems to build from source regardless of the substitutions. I sadly had to walk away before I could observe it attempt to re-build
<trevdev[m]>Or rather, that I now* assume was build dependency
<KarlJoad>Strange. Other than a ton of manually-created `input`s, the telegram-desktop package seems normal enough.
<KarlJoad>Have you tried removing (commenting out) telegram-desktop from the list, just to verify that that package is the root cause?
<trevdev[m]>Do you suspect that removing telegram-desktop will prevent/reduce the need to re-download anything that is currently built and installed already?
<KarlJoad>From what you just described, I would first check that telegram-desktop is the reason that you are experiencing a build between the `home reconfigure` and the `home container`. As a sanity check, I would remove it.
<alphapapa[m]>Forgive the noobish question, but I've been searching for 10 minutes and haven't found the answer: How do I list the output files of an installed package? e.g. the equivalent of "dpkg -L foo"
<KarlJoad>From personal experience, even when I change the home-configuration (not with a new package, but with new config file settings), things like that are not downloaded.
<KarlJoad>alphapapa[m]: Depends on what you are doing. But, I found the easiest way is usually building the package and looking into the output directory.
<alphapapa[m]>KarlJoad: Makes sense, and I tried to do that, but... how do I find that output directory? "guix show foo" doesn't seem to show it
<trevdev[m]>alphapapa: Maybe guix package --show=foo?
<alphapapa[m]>trevdev[m]: I tried that, but it doesn't show the installation directory.
<KarlJoad>alphapapa[m]: `guix build <package-name>` will eventually print the output directory in the store of the package.
<trevdev[m]>Ahhh, the derivation info. Hm
<alphapapa[m]>KarlJoad: Thanks, but I've already installed the package, and I don't want to rebuild it. I just want to know the directory where it's installed.
<alphapapa[m]>I thought there was a way to quickly show that, but I can't recall.
<KarlJoad>On my system, `guix build hello` = /gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1
<KarlJoad>Unless you updated the Guix repository using `guix pull`, you _should_ end up with an "instantaneous" build, because it is already built.
<alphapapa[m]>right, but... isn't there a way to get that path from a command so I don't have to mess with the hash manually?
<alphapapa[m]>KarlJoad: I have done "guix pull" recently, and I don't want to rebuild 127 packages at the moment... I just need the directory where one package is installed
<KarlJoad>In my experience, among both Guix and Nix, cd $STORE && ls -l | grep <package-name>
<KarlJoad>It's not always pretty, but it starts something.
<trevdev[m]>$STORE is a nice to know env
<KarlJoad>It's not an environment variable.
<alphapapa[m]>Yeah, I could always dig through a directory listing, but I thought Guix could show me where a package is installed. Seems like an obvious thing, doesn't it?
<KarlJoad>Just a short-hand I used.
<KarlJoad>alphapapa[m]: It definitely should be able to. I just don't know the command off the top of my head.
<KarlJoad>If the package is available in a profile, you could also manually traverse directories.
<KarlJoad>s#directories#directories and/or symlinks#
<alphapapa[m]>Well, I ended up just using Fish's directory completion. I just hoped Guix could do it too, haha. Thanks for your help.
<KarlJoad>It probably can. I am just not sure how, especially given there is a database sitting in /var/guix/db...
<trevdev[m]><KarlJoad> "From what you just described..." <- So to control a test of what happens after guix gc, should comment out telegram guix gc, guix home container, see what happens, then uncomment, try again?
<alphapapa[m]>Whew, Guix has saved me again, allowing me to update the TLS certs that Git uses without having to mess with the underlying OS packages!
<trevdev[m]>:D
<KarlJoad>trevdev[m]: Comment out, rebuild, gc, container. GC before all that if you want, should not change much.
<trevdev[m]>Ok.
<trevdev[m]>Build went fine, though it warned of some collisions, I am not sure they are related to this. Telegram was not re-built after being commented out. Doing a gc/container now
<trevdev[m]>4.8GiB collected(!)
<KarlJoad>Strange...
<KarlJoad>Collisions happen when two profiles refer to two similar things. I get collisions about Emacs in both my home configuration and my system configuration. I am not sure about the severity of the message though.
<trevdev[m]>I would presume my collisions are similar in nature. As many of my packages as I can are declared in my home config. I just ask for the basics and bare-bones DE packages on the system level
<trevdev[m]>Basically every package related to my home env is being re-downloaded.
<trevdev[m]>If this is because "these packages should be handy in case they need to be built" then I suppose that's what I would expect from having garbage collected
<trevdev[m]>It also assured me certain packages would be built as derivations, but I know for sure they have no grafts or updates since the last installation
<KarlJoad>If the GC between the comment and the container is of a similar size, then maybe it is build-time dependencies.
<KarlJoad>Still weird that almost your entire home environment is being re-downloaded.
<trevdev[m]>I know telegram likes to build from source, which is probably the more annoying/concerning thing, as that always takes a bunch of time.
<trevdev[m]>"upower, fuse, wayland, xapian" yeah these did not change.
<trevdev[m]>It definitely feels like it's slowly re-downloading 4.8GiB (less whatever telegram is worth)
<KarlJoad>But you commented telegram out. Guix should not be downloading a boat-load of stuff, because you have nearly everything else already.
<trevdev[m]>Well there it is I guess.
<trevdev[m]>I un-commented telegram, ran another guix home reconfigure, 400MiB later I am re-compiling telegram, which is already compiled and installed
<trevdev[m]>I suspect this is not the use case, unless the use case is either very infrequently updating your home config, or very infrequently garbage collecting
<KarlJoad>Is telegram referred to by anything else? A leftover manifest? A config laying around? You commented it out, so it should not be present.
<KarlJoad>Unless you are a constant package developer (which I don't think you are right now), the use case really should not matter, since this is a functional packaging system. If you do not refer to something, it should not be there.
<trevdev[m]>You're right, telegram should have been garbage collected, this makes sense.
<KarlJoad>No. It should not have.
<trevdev[m]>Oh...what?
<KarlJoad>If you did not `guix home delete-generations` between a GC and the commented-out `reconfigure`, you should still have a live reference to telegram.
<trevdev[m]>I most definitely have not deleted generations
<KarlJoad>`guix home` behaves like `guix system`, preserving previous generations, which prevent garbage collection.
<KarlJoad>*prevent garbage collection of packages referred to by the generations that remain present.
<trevdev[m]>Hence the purpose of having recorded those generations to roll-back to, perhaps without Internet
<KarlJoad>Among other reasons, yes.
<KarlJoad>If telegram is still being built after commenting it out, search for other things that may reference telegram that you are still building.
<trevdev[m]>I wonder what I messed up here, assuming that it was me, which is 85% of the time.
<trevdev[m]>What sorts of things am I looking for? If I `guix search telegram` I get only the gnu repo packages, I *do* have generation for guix package and guix home which appear to be separate, but I have been re-assured that the derivations should align
<KarlJoad>First thing would be to check if your home configuration somehow pulls in (refers to) telegram somewhere else. After that, perhaps remove it from `guix package` for testing? I've never dabbled with `guix package`, so I cannot say what it does.
<trevdev[m]>guix package is the base package manager. You probably invoke it indirectly with `guix install` and `guix remove`
<trevdev[m]>So telegram-desktop is only declared one time, in a file which is used to produce a manifest, and also produce the (packages) field for the guix home config. The manifest isn't really meant to be used unless I intend to maybe bootstrap packages from there with guix package -m instead of guix home reconfigure. Either way, the process of referring to linked packages should not be divergent
<KarlJoad>I don't use `guix install` & co. I prefer `guix shell` and `guix home` to manage packages.
<KarlJoad>So the same file is producing a manifest and is used for the home-environment packages list? Perhaps that is the cause?
<trevdev[m]>It should not be, according to the last few conversations I have had. Whether a package was installed via guix home, or guix package, should always point to the same linked package.
<trevdev[m]>But it's the only spot here that's different for you, versus myself. I cannot go back to using just guix home, or just guix package + XDG_CONFIG files, without destroying the records of both as root. I am willing to do this again if it makes the difference
<KarlJoad>It _should_ point to the same package. But like any software, weird things can happen. Only way to figure out what is going on is to remove variables.
<trevdev[m]>Oh gosh. OK.
<KarlJoad>Not that I am saying Guix is unstable, but when diagnosing things, remove as many variables as possible until you get to a known-good state and work your way back up.
<trevdev[m]>Being so new to guix, I don't yet know what a "known good state" looks like. It would be really good to know if when I pick one, or the other (guix home or guix package) things don't need frequent re-doing just to make basic changes to my home environment. Though, I suppose, if I am not using guix home, the concern goes away. I'd just be using XDG dirs the old fashioned way.
<trevdev[m]>But it seems like "guix home" is the future of guix.
<KarlJoad>I am not saying that
<trevdev[m]>Off I go, as root, to remove my profile links and garbage collect my user one more time. I will attempt only using guix home.
<trevdev[m]>KarlJoad: You are not, the documentation highly recommends guix home
<KarlJoad>I am not saying you cannot mix the two either. Just that I personally don't know if that `guix home` and `guix package` will yield shared pointer to the same item.
<KarlJoad>Sorry, last message was sent to early due to fast typing.
<trevdev[m]>If we can determine that mixing the two is the common denominator, then it may be fair to say I have a bug
<KarlJoad>Yes, agreed.
<trevdev[m]>Or an ID10T error, for not grasping they aren't meant to be used together.
<KarlJoad>Perhaps a simple test with just the hello package?
<trevdev[m]>But I think it may for once be the former
<KarlJoad>Alright. It's just about time for me to head out. Enjoy the scheming everyone!
<raghavgururajan>sleepydog: Will do.
<civodul>Hello Guix!
<sammm>hey - has anyone had an issue where the fat32 bootdrive would require a fsck.fat before we exit single user mode + have the check hang seemingly indefinitely? i've been careful to shutdown properly - haven't had any outages AFAIK
<civodul>sammm: hi! i've seen that on a recently installed machine
<civodul>looks like we might have a problem with things not always being umounted on shutdown
<civodul>i'll file a bug
<sammm>civodul: interesting, last thing I tried was a guix pull, I got an error but didn't think too much of it
<sammm>to fix / work around this, would it be best to just boot into a live usb and fsck it manually?
<sammm>thx
<civodul>sammm: fsck runs each time you boot, so that part is ok
<civodul>the problem may be that file systems are not unmounted upon shutdown
<civodul>fresh bug report: https://issues.guix.gnu.org/56250
<sammm>yeah - it seems to be hanging either before hte check completes, and sometimes after it has finished unsetting the dirty bit etc.. can't get into multi user
<civodul>oh another one: https://issues.guix.gnu.org/56209
<ss2>civodul: I've observed this on some machines too.
<ss2>will reboot one to see if it happens there.
<sammm>civodul: unfortunately - guix doesn't seem to handle the fsck on the boot partition well. It gets stuck on "File system check corrected errors...; continuing". I tried using the 'fastboot' kernel param but didn't skip obvis
<ss2>eh, this only counts for ext4 partitions..
<sammm>ah okay - well i've done something weird aha
<ss2>I see this error message on hosts that use ext4, but not when btrfs is being used.
<ss2>But boot never hangs, so I mostly ignored this error message since.
<ss2>*ignore
<abrenon>hello guix
<dcz>hi! does anyone know VyOS here?
<dcz>it's a router OS with declarative configuration, and its user interface is awesome
<dcz>I've got a crazy idea: to reimplement VyOS in one of the reproducible OS's... but NixOS has an awful language, so I'm thinking about Guix
<dcz>(VyOS maintainers are rather unresponsive, and features I need remain unimplemented)
***wielaard is now known as mjw
<dcz>is this channel active enough that I can get answers if I get stuck, e.g. making a DSL for defining routing tables?
<abrenon>hi dcz !
<abrenon>sounds like a great idea
<abrenon>it depends what time of day you login but there are times when there are quite a lot of people around here
<abrenon>browsing the logs can give you an idea https://logs.guix.gnu.org/
<dcz>looks like enough banter to say it's alive :)
<abrenon>I think so too : )
<sleepydog>dcz: hey, I wanted to do something like that but lost a reason to do it when my edgerouter died
<dcz>sleepydog: how would you start on a project like that?
<sleepydog>i was thinking less ambitious, though; use guix to build the config file and then push it to the router
<dcz>oh, I see. that's a good beginning already IMO
<sleepydog>what i was going to do was define a macro that lets me write vyatta's "set" directives as S-expressions
<sleepydog>and then use define-gexp-compiler to convert that s-expression into the config file
*dcz is making notes
<sleepydog>i didn't figure out how to handle secrets, though.
<dcz>what's the problem with handling secrets? you need to have those in the config file anyway
<sleepydog>i just don't want to put secrets in /gnu/store, since it's world-readable
<dcz>how are user passwords stored in guix?
<abrenon>I think they are in /etc/shadow, like on any other system, aren't they ?
<yarl>Hello.
<abrenon>there's a field to set a password which is usefull to generate read-only installs such as live CD (where the password is always published anyway for it to be useful), but it's not used on real systems where passwords should be set manually as usual
<abrenon>hi yarl
<dcz>hm, interesting. I see why it works this way, although it sounds like there should be some protocol for storing secrets
<dcz>either way, I'm inclined to try that set->sexp idea
<abrenon>that's great
<dcz>is it possible to run guix in podman or some other container?
<james[m]>Good morning everyone.
<james[m]>Does anyone know how to change the desktop environment to cinnamon?
<james[m]>I know I need to edit the config.scm.
<james[m]>But I don't want to mess it up. Some pointers would help.
<mbkamble>Hi. can someone help me figure out how to access fields of a configuration record? I have tried numerous sexps, rad the manual several times and looked at example code. But still am unable to get it. I am runing a repl in Emacs using "run-geiser", have imported the necessary modules. And done the following:
<mbkamble>scheme@(guile-user)> (define foo (home-bash-configuration))
<mbkamble>Then tried to access aliases field, but did not succeed. None of the following worked:
<mbkamble>(home-bash-configuration-fields) ;; trying to get list of fields
<mbkamble>((home-bash-configuration-getter 'aliases) foo)
<james[m]>I have the cinnamon-desktop package installed btw.
<james[m]>Okay. I changed the service type to gnome. I thought that as cinnamon is based of gnome. It will work.
<james[m]>I will reboot and see...
<f1refly>I think something is wrong with my mimetype associations. When I click a link in my terminal (or xdg-open an https url), a new firefox windows is opened. Also, firefox asks me if it should set itself as default browser every time I launch it, even though I click yes every time. Is there something I'm doing wrong? When I lauch xfce4-settings-manager firefox is set as default browser in the default
<f1refly>program section :/
<abrenon>james[m]: I suppose there must be a cinnamon-service-type which you have to add to the default %desktop-services
<abrenon>at least that's how I configured xfce4 here
<abrenon>mbkamble: I thought the names of the various fields acted as projectors to retrieve them from the whole data, doesn't that work ?
<mbkamble>abrenon: could you explain in more simple terms? I suppose you mean using funtion like (home-bash-configuration-aliases foo)?
<mbkamble>I tried that:
<mbkamble>scheme@(guile-user)> (home-bash-configuration-aliases foo)
<mbkamble>It gives the error:  possibly unbound variable `home-bash-configuration-aliases'
<abrenon>I don't know about the data structure at stake
<abrenon>but I meant I thought that for, say, a package which has fields like (package-license …) (package-version …) etc., the expression (package-version <the-package-name-here>) should yield it
<silicius[m]>what's the maximum recommended line length in guix repo?
<abrenon>now the name of the functions projecting the whole data structure to a particular field is not necessarily the same as the one used to construct it, I think you have to look at its definition
<mbkamble>If I try:
<mbkamble>scheme@(guile-user)> ((configuration-field-getter '(bashrc)) foo)
<mbkamble>the error is: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): (bashrc)
<mbkamble>yes. I have read the documentation several times and looked at the code in configuration.scm, but am unable to get past the errors
<abrenon>yeah, well `'(bashrc)` cannot contain a proper struct since the quote bypasses the evaluation of the variable bashrc, which could perhaps refer to a struct, I don't know
<abrenon>but as is it has to be a mere symbol
<abrenon>I don't know the objects you're working with so I don't know what should be there instead, but I know why it should fail the way you try
<abrenon>(I've checked locally, and from a guile prompt, having loaded modulse (guix packages) and (gnu packages ibus), the expression (package-version ibus-anthy) is valid and returns, as expected, the string "1.5.9")
<mbkamble>tired that too:
<mbkamble>scheme@(guile-user)> ((configuration-field-getter 'bashrc) foo)
<mbkamble>getting the same error: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): bashrc
<abrenon>yeah, because quoting prevents the evaluation
<abrenon>I don't understand where you found an example with that quote but you have to get rid of that
<abrenon>'foo exists, 'anything exists, but they are mere symbols
<abrenon>they don't refer to a package foo or anything
<abrenon>they're more like constants/enums from a countably infinite set for you to use
<abrenon>mbkamble: I have to go AFK for lunch but I'll be sure to read about your progress later on
<abrenon>see ya ! good luck !
<mbkamble>yes, I do understand quoted symbols. I am using that because the field name itself is bashrc (others being aliases, bash-rpofile etc). So I was trying to match that symbol name
<mbkamble>thanks abrenon
<mbkamble>just for reference:
<mbkamble>scheme@(guile-user)> foo
<mbkamble>$29 = #<<home-bash-configuration> %location: #f package: #<package bash@5.1.8 gnu/packages/bash.scm:122 7f1f0d6c7f20> guix-defaults?: #t environment-variables: () aliases: () bash-profile: () bashrc: () bash-logout: ()>
<mbkamble>All I want to do is get the data structure of aliases or bash etc
<mbkamble>I mean bashrc etc
<maximed>mbkamble: Usually there are automatically generated RECORD-FIELD procedures:
<maximed>In this case, home-bash-configuration-aliases or such.
<maximed>Possibly yhey aren't exported though.
<maximed>* they
<dcunit3d>is there any way to show the config for a shepherd service like nscd? i was looking at ./gnu/services/shepherd.scm and it passes a file to execl on system init, but it looks like the generated config file isn't persisted. the manual says that nscd logs to syslog. the file exists for me, but there's nothing init.
<fps>hmm, how do i do a recursive submodule checkout with git-fetch?
<dcunit3d>do you need to use git fetch or are you pulling?
<fps>dcunit3d: no idea. i just try to package raul
<dcunit3d>how many levels of submodules are there?
<fps>i think only one
<fps>oh, i sense a misunderstanding.. git-fetch is also a source fetching method in package definitions in guix
<james[m]>How do you install flatpak properly in guix system?
<dcunit3d>the man pages say you can only use --recurse-submodules when they are already present locally
<fps>dcunit3d: i'm not talking about the "git fetch" command
<dcunit3d>i try to use google repo rather than git submodules
<james[m]>I can run them. But they don't show up on the desktop.
<dcunit3d>do you have XDG vars set up?
<dcunit3d>what do you mean fps?
<fps>dcunit3d: https://guix.gnu.org/en/cookbook/en/guix-cookbook.html#git_002dfetch-method
<fps>i'm trying to get the guile git-fetch method to do a recursive fetch
<taeaad>What is the equivalent of build-essential in guix?
<dcunit3d>you'll have to modify XDG_DATA_DIRS to include $HOME/.local/share/flatpak/exports/share
<civodul>taeaad: there's no such thing! but you can use, say, "guix shell -D hello" to get the typical C/POSIX dev environment
<taeaad>civodul: OK, but Python complains that I don't have a suitable Fortran compiler, and then it seemed like I could install "guix install gcc", for example.
<fps>ah ok i need to change the git-reference to indicate recursiveness :)
<dcunit3d>you'll have to logout/login to update the window manager shell to get them to show up. you can use the xdg command line tools like xdg-open & etc to test without re-login
<fps>hmm, ok, so that wasn't it.. hmm..
<dcunit3d>fps the origin reference has an option to recurse https://guix.gnu.org/manual/en/guix.html#origin-Reference
<dcunit3d>sorry, the git-reference provides the option. so (uri (git-reference (url ... ) ... (recursive #t)))
<dcunit3d>for an example `guix edit sbsigntools` will pull it up
<tribals>Hi, folks!
<tribals>Still didn't understood, how to refer inputs in build phases? Eg, phase is lambda, it takes keyword arguments, but if I use `(origin ...)` as input, how to get it from that lambda?
<tribals>Where they are in kept build directory (`guix build -K ...`)? Mine is empty - none of `(origin ...)` inputs appear here
<maximed>tribals: Are these inputs directories or tarballs?
<tribals>Even simpler: they are just files
<maximed>tribals: That's harder actually.
<tribals>Wow
<maximed>I don't think there exists a standard pattern for finding an individual file.
<maximed>However:
<maximed>tribals: you can insert them directly into the phase: (copy-file #$(origin etcetera) "./somewhere)
<maximed>(At cost of package transformations being harder)
<pashencija[m]>How do I use a subdirectory in git-fetch?
<maximed>To make package transformations easy, you can give the input a label, and then refer to the origin input by its label.
<abrenon>mbkamble: so have you been able to fix your issue ? possibly with the home-bash-configuration-aliases that maximed suggested ? or have you been able to determine why that didn't work ? (as in, have you found the module where the data structure you use was defined ?)
<tribals>Hmm...
<pashencija[m]>There's a repo https://github.com/shlyakpavel/seeed-linux-dtoverlays-guix
<maximed>pashencija: (file-append (origin ...) "/the-subdirectory")?
<maximed>Alternatively, add a phase after 'unpack' that chdir's into the subdirectory.
<maximed>tirvals: (If it were a directory, you could do (dirname (search-input-file inputs "foo-only-in-that-directory)))
<mbkamble>abrenon, yes, made a little progres: when I change my module context in the repl, I can get access to the fields. eg:
<mbkamble>scheme@(gnu home services shells)> (home-bash-configuration-location (home-bash-configuration))
<mbkamble>$38 = #f
<mbkamble>scheme@(gnu home services shells)> (home-bash-configuration-bash-profile (home-bash-configuration))
<mbkamble>$39 = ()
<tribals>maximed: Do I need to use "old" inputs syntax, eg, will this work: `(("foo" ,(origin ...)))` ?
<maximed>tirbals: To give it an input label, yes.
<maximed>With the new syntax, it's just _.
<tribals>The problem is that actually I didn't not to make those "just files" a part of a package - they're needed only for building
<maximed>tribals: Doesn't make a difference?
<mbkamble>now, I am trying to do it at global scope, eg in my scm file that specifies the (home-environment ....)
<maximed>Origin objects and assoc-ref #$ don't care whether it is only used for building or also ends up in the store item of the package.
<pashencija[m]>maximed: I did not get that
<maximed>tribals: FWIW it would be possible to define a (origin-input this-package #:name "data") that looks for the origin in the package inputs for an origin with file name "data"
<maximed>pashencija: You have a 'source' field in the package definition.
<maximed>It is probably set to an 'origin' object, with a git-fetch.
<abrenon>cool, that's a good step forward
<maximed>You can replace that 'origin' by (file-append the-orgigin "/the/subdirectory").
<maximed>* theorgigin -> the-origin
<tribals>maximed: I see, but I can't understand proper syntax for acessing those inputs: from where mentioned `#$(origin etcerata)` comes? Where to find it in docs?
<maximed>tribals: #$ is documented in the section about G-expressions.
<maximed>(origin ...) is documted somewhere
<maximed>Also, you are _not_ accessing inputs in that case -- when doin #$(origin etcetera), it's a bit ad-hoc in the sense that the origin is not in 'inputs' or 'native-inputs'!
<maximed>(for accessing inputs, you have 'inputs'/'native-inputs', 'assoc-ref', 'search-input-file' and 'search-input-directory')
<tribals>maximed: I know it is a g-exp, but who puts a gexp named "inputs" inside build phase? do i need to get it using phase's lambda args?
<maximed>tribals: Is this about #$(origin ...)?
<tribals>Yes
<maximed>tribals: You can literally just do (copy-file #$(origin ...) "put-it-here") in a phase.
<pashencija[m]>maximed: invalid field specifier
<maximed>tribals: It doesn't interact with the 'inputs' of the phase, or package inputs.
<maximed>I'm not aware of any 'inputs' gexp
<pashencija[m]> https://gist.github.com/shlyakpavel/28352215a1b2f43fcb689b2fb981d4b3
<maximed>(the 'inputs' in (lambda* (#:key inputs #:allow-other-keys) ...) is just an argument, see (guix build-system gnu) if you want to know the implementation details)
<maximed>pashencija[m]: file-append is not a field.
<maximed>You need to replace (origin ...) by (file-append (origin ...) "/the-subdirectory").
<pashencija[m]>Ok
<maximed>and 'the-origin' referrend to the old (origin (method git-fetch) [etcetera]).
<maximed>* referred
<pashencija[m]>Got you!
<pashencija[m]>Thank you! It works now
<fps>hmm, how do i extend the runpath to include $out/lib?
<fps>erm $out/bin
<maximed>fps: runpath = ELF's RUNPATH?
<maximed>If so, I suppose that can be done with sufficient amount of adding -rpath flags, but conventionally '/bin' is for stand-alone binaries, not for libraries.
<fps> https://paste.debian.net/1245375/
<fps>i'm packaging ingen and the verify-runpath phase complains about not being able to find its dependencies in the RUNPATH
<maximed>To me the problem seems to be that /lib is missing from RUNPATH (not 'lib')
<fps>the RUNPATH seems to only include the dependencies' lib dirs and not the current package's
<maximed>There might be some examples when searching for 'rpath' in the Guix git checkout.
<fps>i searched the guix manual a bit before going on a grep rampage
<tribals>maximed: I've remember I saw `#$inputs` (or something similar) - that's what confused me.
<silicius[m]>Can someone look at my patch before I send it out? https://paste.debian.net/1245377/
<fps>hmm, i might set some linker flags during the build maybe
<fps> https://paste.debian.net/1245379/
<fps>oh well, this is my package definition.
<fps>oops, no :)
<pashencija[m]>I have packaged all the modules required by Seed Studio ReTerminal to work properly. All of them are GPLv2
<pashencija[m]> https://git.pantherx.org/development/hardware/raspberry/-/blob/reterminal/reterminal.scm
<pashencija[m]>Do we need that upstream?
<fps> https://paste.debian.net/1245380/
<nckx>silicius[m]: Looks fine from afar. I still maintain there was no need to reword the comment, but this one's fine too. The last description sentence should probably go, descriptions aren't really intended document usage that way. unless it's a Guix
<nckx>Argh.
<nckx>Anyway, an exception would be a Guix-specific set-up or work-around instruction that's not documented anywhere once installed (man pages etc.)
<nckx>Also, hallo Guix.
<silicius[m]>nckx: I took the descritpion straight from the project's README, and afaik many packages have cmd arguments in their description - `guix package -s --[a-Z]` shows them
<nckx> You don't need to stick with upstream's.
<nckx>It's better without.
<silicius[m]>Ok, I'll remove the last line.
<mbkamble>abrenon, maximed, I am able to get some fields now.... changed my  focus to probing guix-service-type based on example for "modify-services" in Guix info manual.
<mbkamble>scheme@(guile-user)> (service-value(list-ref %desktop-services 40))
<mbkamble>$50 = #<<guix-configuration> guix: #<package guix@1.3.0-26.fd00ac7 gnu/packages/package-management.scm:164 7f1f0f333210> build-group: "guixbuild" build-accounts: 10 authorize-key?: #t authorized-keys: (#<file-append #<package guix@1.3.0-26.fd00ac7 gnu/packages/package-management.scm:164 7f1f0f333210> "/share/guix/berlin.guix.gnu.org.pub">
<mbkamble>#<file-append #<package guix@1.3.0-26.fd00ac7 gnu/packages/package-management.scm:164 7f1f0f333210> "/share/guix/bordeaux.guix.gnu.org.pub">) use-substitutes?: #t substitute-urls: ("https://ci.guix.gnu.org" "https://bordeaux.guix.gnu.org") generate-substitute-key?: #t chroot-directories: () max-silent-time: 0 timeout: 0 log-compression: gzip
<mbkamble>discover?: #f extra-options: () log-file: "/var/log/guix-daemon.log" http-proxy: #f tmpdir: #f>
<mbkamble>scheme@(guile-user)> (guix-configuration-substitute-urls (service-value (list-ref %desktop-services 40)))
<mbkamble>$51 = ("https://ci.guix.gnu.org" "https://bordeaux.guix.gnu.org")
<mbkamble>This effort is partly to understand scheme, guile and guix internals, and partly to hack the contents of ~/.profile file generated by home-environment
<nckx>silicius[m]: If someone else mumbles that the description's too short, I volunteer to extend it (doesn't look too hard :-) but that line wasn't the answer. The main point, that it LGTM, seems to've got lost because of it.
<nckx>I'd push it myself and will if nobody beats me to a git machine.
<silicius[m]>O thank you, I'll tag you if someone complains
<abrenon>mbkamble: good idea, this sort of practice is a good way to understand how things work
<nckx>(Did you know laptops can catastrophically eject fan blades at high velocity? They can!)
<nckx>silicius[m]: Excellent!
<abrenon>don't hesitate to use the paste service mentioned in the chan's topic when you get several lines of content, especially output from a process
<nckx>I was going to suggest paste.gnome.org as fallback (p.d.o sometimes false-positives 'spam') but... it's gone too. Not the first. Kudos to Debian for keeping theirs up for so long.
<nckx>Is there another fallback we 'like'?
<nckx>(No mandatory JS, no blocking Tor, ...)
<abrenon>no, I don't paste a lot of things and I'm usually happy with debian's
<justkdng>are there self host paste solutions?
<nckx>Oh, so do I, but it's gone down a few times and one day it won't get up.
<rekado>justkdng: I use scpaste in emacs. It needs an SSH location to dump text.
<nckx>justkdng: I'm sure what Debian uses is both free and ancient, as is tradition, but I'd rather freeload of somebody else than find out just how much abuse an open pastebin attracts.
<justkdng>ofc it'd not be open, it should have some auth
<nckx>We could add a captcha. What's this week's emacs store hash.
<nckx>justkdng: You 'of course' that like you're serious?
<justkdng>making an open paste will just bring the feds to my front door
<nckx>Never mind :)
<nckx>I like ix.io but it's borderline suckless and not suitable for all users and -cases.
<justkdng>but if there is I don't mind hosting it, I like throwing stuff at my vps and see if it can handle it
<abrenon>ohh that's great
<abrenon>it looks very handy
<nckx>It's often if not always great, but it's not on-brand for a welcoming (new )user support channel.
<nckx>Somebody pitched me on a #guix-beginners channel because this one could be intimidating! I'd love to hear opinions on that, but it shows how much subtle messaging matters.
<nckx>(Mine was that we can't afford that split and should work on that perceived problem if at all common.)
<abrenon>I've just updated my system, first time since Maxime Cournoyer's commit on ibus-anthy last week 39b118776bbbaed049f8bcafa27bde30d9d0b2f6, and now ibus doesn't seem to find anthy's engine anymore
<abrenon>has anyone else faced this issue ? upon login, I'm greeted by an error message stating that one of my input methods doesn't exist
<rekado>abrenon: possibly due to caches.
<abrenon>and inviting me to fix that in ibus-setup
<abrenon>damn caches !
<rekado>abrenon: ~/.cache/ibus contains full references to /gnu/store
<abrenon>ahhh
<abrenon>I had tried grepping through .config for config files, but to no avail
<abrenon>(some automatic stuff from the daemon)
<abrenon>I have to mention I still haven't cleaned my system after the upgrade or performed any garbage collection
<abrenon>shouldn't the full path link in the .cache still point to something that exists ?
<abrenon>(ls -d /gnu/store/*ibus-anthy* still returns several versions)
<abrenon>nope, didn't fix anything, I still get the message, and the newly recreated cache is identical to the one I had moved to /tmp
<abrenon>rekado: do you use ibus-anthy, have you updated your system and do you confirm it still works on your machine ?
<justkdng>have you tried using fcitx5 with mozc? it's great
<justkdng>ナイス
<abrenon>justkdng: ^^
<abrenon>I had tried it long ago but it wasn't working that great for me
<abrenon>I have no opposition in principle to discovering new tools, but right now I have tasks to perform and cannot spend time trying something new, and in particular I've just upgraded from a fully working setup
<abrenon>(ok, did not work in gvim but I could live with that)
<abrenon>so I'm back at the first obvious question: what's my "list of methods" where is it defined ? what data could possibly offend ibus ?
<abrenon>I've diffed /var/guix/profiles/system-<nn>-link/profile/lib/gtk-3.0/3.0.0/ for the latest working version and the current one and interestingly anthy doesn't pop out
<singpolyma>Hey all, anyone have experience packaging a python package using setup.cfg with no setup.py ? I tried adding in the trivial setup.py but then I get a package that's just empty
<abrenon>nope, what trivial setup.py do you mean ?
<singpolyma>from setuptools import setup\nsetup()
<abrenon>oh, I didn't know that was supposed to work, cool trick
<singpolyma>the project itself seems to use python3 -m build not sure if guix has a build system that knows that one though
<abrenon>but don't you need to at least specify a name in there or something ?
<singpolyma>well, it's supposed to read it all from the setup.cfg file
<singpolyma>but maybe only in newer versions of setuptools
<abrenon>I don't know, sorry : )
<justkdng>you can modify/remove build-system phases when required
<ardon>Hi, is anyone familiar with the Go build system? I'm trying to package a Go library but I get "pattern x: cannot embed irregular file" errors on its build phase. It complains about source code lines that start with `//go:embed x'
<singpolyma>justkdng: yes, sure, but i'd rather not write a whole new system for this one package if there's best practises around these python "new ways" already
<abrenon>singpolyma: I struggle a lot with the "new ways" in python, with packages recommending to use tox but failing to explain how that's supposed to go in order for me to replace the 'check phase…
<justkdng>Wouldn't just replacing a phase be enough?
<singpolyma>justkdng: every phase of python-build-system uses setup.py
<justkdng>huh, that's a shame
<abrenon>then I guess it's a custom-tailored build-system
<abrenon>build system capture good practice for a given language, they are of course no silver bullets, and poorly packaged stuff will remain hard to port to new packaging systems
<justkdng>yeah, I suffered packaging some software with the gnu-build-system :)
<abrenon>^^
<singpolyma>ah perfect, I think I was just generating setup.py wrong. now that I have the trivial one in place like I thought I did it's working as expected
<abrenon>ooh what was it then ?
<singpolyma>I was just using with-output-to-file wrong
<abrenon>ok
<abrenon>ah, silly me, I remembered why I hadn't found the ibus config file that instructed it to use anthy
<abrenon>it's not in a config file, it's in dconf
<abrenon>trouble is, there's no full path in there or anything, just a plain name, "anthy", and I fail to see why that would break
<fps>hmmm.. so the rpath gets set automatically using patchelf during a build, right?
<fps>the whole guix manual mentions runpath only a couple of times.
<dominicm>abrenon: I can confirm that ibus-anthy doesn't work for me either after the update
<rekado>abrenon: I don’t use ibus-anthy. I use(d) ibus-libpinyin, and stale caches, state, and configs were always the culprit.
<rekado>~/.config/ibus, ~/.cache/ibus, and sometimes ~/.local
<abrenon>thanks for the feedback !!
<silicius[m]>I'm cleaning up gdk-pixbuf-xlib for a patch and I'm not sure anymore what version of it to use (https://salsa.debian.org/gnome-team/gdk-pixbuf-xlib)
<abrenon>I may have a lead: I restarted the daemon manually with the --verbose flag, and it appears to be failing to gi_require_version 9000 for Anthy
<abrenon>I'm pretty sure I've seen a 9100 for anthy on my working profile
<abrenon>I can't imagine why it would have reverted back to something earlier but at least that's something
<silicius[m]>there's upstream/2.40.2 debian/2.40.2-2 and master (which only removes an unused dependency)
<abrenon>rekado: I had tried .config and .cache (this one after your earlier remark), I've just tried .local and it doesn't have anything ibus-related either
<abrenon>so anyway, here's the traceback http://ix.io/413i
<abrenon>yeah, anthy-agent --version says 9100h (what kind of version numbering is that ? but still, not 9000)
<maximed>fps: Guix doesn't use patchelf.
<maximed>Instead, it wraps the linker to automatically insert -rpath flags.
<fps>maximed: oh ok..
<abrenon>or does that gi_require_version have a semantics of >= ?
<fps>i think i figured out my problem anyways. magic knowledge about waf honoring LDFLAGS as an argument..
<bjc>is ‘/run’ supposed to be tmpfs? i just noticed i have some stale files in there
<bjc>it also seems to be causing issues with shepherd
<bjc>nm, this is greetd's doing; it's not mounting ‘/run/user/$uid’ properly
<dominicm>abrenon: how did you get that traceback?
<abrenon>ibus-daemon -rxv
<abrenon>I then tried from /var/guix/profiles/system-<theonethatworks>-link/profile/bin/ibus-daemon
<abrenon>but it appears to be calling the same version of the ibus-anthy library in the end
<abrenon>which is kind of weird if I understand correctly because the package has been updated
<abrenon>they all seem to call the same version and all fail with the same error
<abrenon>: (
<abrenon>I'm gonna have to leave but I'm very eager to solve this, I'll take a look again as soon as I'm home
<majsharpfourth[m>hello, everybody. I'm trying to setup a readymedia/minidnla 'service' and have trouble grasping the manual here.
<majsharpfourth[m>There seems to be a difference in a shepherd service and a system service, where at some points it seems as though the system services were an upgrade of some kind in while other places it's stated that a shepherd service is still used for handling daemons (which I believe is what I need).
<majsharpfourth[m>Then i was also wondering how to configure minidnla. It does exist in the repo's but the manual doesn't mention it so I'm guessing I'll either have to supply it with a raw config file or write some config translation myself so i can configure it in lisp.
<majsharpfourth[m>Do I have to configure all this in /etc/config.scm, import a seperate file to define this service there or change the readymedia package? if I do manage to translate the config, should I commit that back? It'd help a lot if i'd know the location where the other services are defined so I could have a look there (the manual mentions a heap of them and they should be stored somewhere?).
***Xenguy_ is now known as Xenguy
<unmatched-paren>MajorBiscuit: You need to define services in /etc/config.scm. Unfortunately the manual sometimes falls behind on services.
<unmatched-paren>You'll need to look at the source code to see how to configure the service. See gnu/services/... :)
<unmatched-paren>Hmm, for some reason, even though I'm using gtk pinentry, the ncurses UI is being displayed when I need to unlock my GPG key...
<nckx>'Using' how?
<unmatched-paren>nckx: ~/.gnupg/gpg-agent.conf uses `pinentry` as the `pinentry-program`
<unmatched-paren>which is the GTK one, right?
<unmatched-paren>even when i run `pinentry-gtk-2` and type `GETPIN`, it shows an ncurses interface
<trevdev>sneek botsnack
<sneek>:)
<nckx>Does it expand ~? I have an absolute file name there (it's /run/current-system by the way, though I'd be confused if that mattered, and I've only ever used -tty). Did you restart gpg-agent since the change?
<nckx>Relative file names, not ~
<unmatched-paren>nckx: I'm using /run/current-system too
<unmatched-paren>Actually
<unmatched-paren>sorry, /home/paren/.guix-home/...
<nckx>Well poop.
<unmatched-paren>pinentry-program /home/paren/.guix-home/profile/bin/pinentry
<nckx>'But it works for me.'
<nckx>You said -gtk-2 above.
<unmatched-paren>nckx: I mentioned it because I'd run it manually to see if it worked
<unmatched-paren>also:
<unmatched-paren>ʃ realpath (which pinentry)
<unmatched-paren>/gnu/store/pxxfbp530g21iqxy8qqyg1nl0js3np5z-pinentry-1.2.0/bin/pinentry-gtk-2
<nckx>No, I mean you quote something else (plain pinentry) as being in your .conf.
<nckx>Perhaps you were paraphrasing.
<unmatched-paren>> ~/.gnupg/gpg-agent.conf uses `pinentry` as the `pinentry-program`
<unmatched-paren>Anyway, as I showed, `pinentry` is a symlink to `pinentry-gtk-2`.
<unmatched-paren>So it shouldn't matter which I run.
<nckx>OK. You hadn't shown that then.
<unmatched-paren>yeah i did :) https://logs.guix.gnu.org/guix/2022-06-27.log#182934
<nckx>Maybe you thought you did.
<unmatched-paren>...Anyway, the GUI pinentries are showing TUI frontends when I run them. This is almost certainly unintentional, and a little annoying because I can't run `senpai` (IRC client) directly (it doesn't move out of the way to allow pinentry-ncurses to be displayed) so I have to run `pass show sr.ht-token` first.
<majsharpfourth[m><unmatched-paren> "You'll need to look at the..." <- but i dont have a /gnu/services folder
<nckx>Interesting. So you don't think it's launching the wrong binary, but that the 'pinentry -> pinentry-gtk-2' binary is itself falling back to TTY mode?
<unmatched-paren>majsharpfourth[m: That's in the source code :)
<unmatched-paren>nckx: Yeah.
<nckx>Huh.
<nckx>Maybe verify that with ps but that's fun. Have you tried putting explicit -gtk-2 in the .conf (and restarting it) to check if it's being clever, dispatching on argv[0] or so?
<unmatched-paren>nckx: ps looks ok
<nckx>Forgot quotes around clever, imagine them inside your min dpalace.
<nckx>OK.
<nckx>There goes my last good idea, only wonky ones from here on.
<unmatched-paren>nckx: I'll have to wait for the gpg-agent cache to expire to test your "explicit -gtk-2" idea
<nckx>I don't have much faith in it myself.
<nckx>Running pinentry on a headless server (that took forever to install it) also gives me the fancy curses line art.
<nckx>So no, the name doesn't seem to matter much.
<unmatched-paren>nckx: I suppose this headless server doesn't have Wayland or X running though, given that it's a headless server?
<unmatched-paren>I'm surprised less at it falling back to ncurses and more at it falling back to ncurses even though I have a running... oh!
<nckx>You suppose well. It's the only thing I have access too I'm afraid.
<nckx>Oh!
<unmatched-paren>Of course! GTK2 only supports X! I recently added `xwayland disable` to sway thinking I didn't use any X programs :)
<nckx>Welp.
<Andronikos>Why can't I download the latest version of Guix although build output says it succeeded?
<unmatched-paren>Andronikos: What do you mean, build output?
<unmatched-paren>Are you using `guix install guix` or whatever, by any chance?
<nckx>unmatched-paren: So above I was going to ask about DISPLAY being set but didn't want to annoy you further... I should have ;-)
<unmatched-paren>nckx: wayland has $WAYLAND_DISPLAY, technically $DISPLAY is an X thing :)
<unmatched-paren>OH, right.
<unmatched-paren>I see what you mean.
<nckx>I just meant it would have trig--yeah.
<Andronikos>unmatched-paren: On the website to download Guix there is also a button for "build details".
<nckx>Enjoy spinning up a legacy server just to type your passphrase.
<nckx>Could not find the requested build output.
<nckx>Indeed.
<dcz>is there a headless, minimal image of Guix-SD available for download?
<unmatched-paren>dcz: Well, the installer image lets you select no desktop environments.
<unmatched-paren>(It's called Guix System now, btw)
<nckx>dcz: So, with that nuance above: no, there is not.
<unmatched-paren>If by headless you mean text-only: there is no graphical option.
<unmatched-paren>If by headless you mean shell-only, with not even an ncurses TUI: no.
<dcz>how to build one? I want to know how tight I can get in my VM
<maximed>dcz: There's "guix system vm", you could make your system configuration minimal.
<dcz>thanks
<maximed>* "guix system vm-image
<dcz>I probably need to reserve a partition of about 2x the occupied space in order to be able to upgrade, don't I?
<nckx>Andronikos: I don't know why (only) the latest build output is missing, thanks for noticing. If you want a latest image, go to https://ci.guix.gnu.org/build/1042418/details and see 'Build outputs'
<mbkamble>Hi. I am trying to modify the content created in ~/.profile when I build a home-environment. So I cloned the gnu/home/services/shells.scm file into a same-path in my own module directory. Then using -L option, I add my module directory to the begining of %load-path. I have modified the function add-shell-profile-file and thus expect a new
<mbkamble>~/.profile (link to /gnu/store/<blah>-shell-profile) to be generated. But after running "guix home reconfigure -L <my-modules> <path to home-env-decl.scm>" ~/.profile points to the original file in the store. How can I ensure a new /gnu/store/blah-shell-profile gets generated?
<Andronikos>nckx: Just want to mention that I noticed it since two days. Maybe it helps
<nckx>I don't have access to my credentials but I'll file a bug, unless you want to.
<nckx>Otherwise I'd restart the build.
<pashencija[m]><maximed> "You need to replace (origin ...)..." <- set-paths (https://github.com/guix-mirror/guix/blob/0bd1c4fbbc8a438876d6efa4feb275de461a2484/guix/build/gnu-build-system.scm#L75) fails on cross-complie
<pashencija[m]>So I am not sure the approach is correct
<pashencija[m]>match-error "match" "no matching pattern"
<maximed>pashencija[m]: WDYM?
<maximed>DYM that it builds successfully natively but fails to cross-compile?
<pashencija[m]>Yes
<pashencija[m]>It builds on aarch64 host, fails on x86_64
<maximed>That's not what I'm asking.
<pashencija[m]>Yes, it it builds successfully natively but fails to cross-compile
<maximed>You can compile natively on aarch64. You can compile natively on x86_64. You can cross-compile on both. You can use either as --target or --system.
<maximed>* on both -> to and from both
<pashencija[m]>The code I use is here https://git.pantherx.org/development/hardware/raspberry/-/blob/reterminal/reterminal.scm
<pashencija[m]>I know. I compile for aarch64 only
<pashencija[m]>It fails on x86_64 host, works on aarch64 host
<pashencija[m]>The problem is at set-paths phase
<maximed>‘It fails on x86_64 host, works on aarch64 host’ So you are compiling natively?
<df>7
<pashencija[m]>I'm compiling natively on aarch64, cross-compiling on x86_64
<maximed>Also, set-paths looks somewhat broken, what if 'inputs' is empty or only contains the source code?
<pashencija[m]>So yes, native build works and cross compilation fails
<maximed>FWIW you can try to work-around thing by inserting an unrelated package in 'inputs' (e.g.: hello).
<maximed>Though looks like a bug.
<pashencija[m]>maximed: I am afraid I don't understand you
<maximed>pashencija[m]: Not understand what?
<pashencija[m]>Not understand about inputs
<nckx>It doesn't like empty inputs so add a bogus input.
<pashencija[m]>🙄
<unmatched-paren>do i need to add a phase that does `autoreconf` on an autotools package if it doesn't include a bootstrap script?
<unmatched-paren>i'm packaging https://github.com/pkgconf/pkgconf
<dominicm>unmatched-paren: gnu-build-system has always run autoreconf automatically for me...
<dominicm>at least I think?
<nckx>unmatched-paren: If configure is missing the g-b-s should autoreconf.
<unmatched-paren>dominicm: okay, thanks. I've never packaged an autotools package before.
<unmatched-paren>nckx: Ah.
<nckx>It will not run random ./bootsvrap scripts anyway, so 'missing' is good.
<unmatched-paren>Oh, I thought ./bootstrap was somewhat standard.
<nckx>Though usually those just contain aunoreconf and crap you don't want anywaf, like invoking ./connfigure.
<nckx>unmatched-paren: Starndard in that it's more common than chance, but it's not used by Guix because often makes assumptions anymay. Not standard specified by autotools, no.
*nckx is sober yes.
*nckx anywaf...
<unmatched-paren>It's autotools, not waf! :D
<unmatched-paren>Thanks.
<nckx>AutowafLists.txt
<unmatched-paren>meson.AutowafLists.toml
<nckx>I forgot if I hate toml more or less than yaml.
<unmatched-paren>meson.AutowafListsfile.toml.mod.sdl actually.
<nckx>Is SDL that Solaris thing?
<nckx>Never mind.
<unmatched-paren>SDL is one of the two languages dub.* files can use, along with JSON
<unmatched-paren>nckx: https://sdlang.org/
<nckx>Right! I knew I'd seen it very recently.
<unmatched-paren>It's just worse scfg.
<nckx>'Thanks'.
<unmatched-paren>Also it looks disturbingly like XML...
<nckx>I'm (perhaps) surprisingly OK with XML. But we need exactly one of those, thank you.
<silicius[m]>I didn't realize this before, but since gdk-pixbuf@2.42.0 split gdk-pixbuf-xlib into a different lib all packages using it need to be updated - not just xscreensaver
<unmatched-paren>nckx: What about SXML?
<pashencija[m]>I added hello world as an input
<pashencija[m]>It really helped
<silicius[m]>I packaged the latter, and it works with xscreensaver, but I'm not sure it's entirely correct since gtk packages seem to have a lot of custom phases
<nckx>\o/
<pashencija[m]>maximed: could you please report that? I hardly understand the issue and I cannot make a reproducer
<Andronikos>nckx: Could you please file it? I don't even have an account.
<nckx>unmatched-paren: SXML just an API to XML parser/generators, only it doesn't look like say a C API does. But hence it's fine.
<pashencija[m]>pashencija[m]: It didn't help
<pashencija[m]>O_o
<pashencija[m]>I was wrong
<nckx>Andronikos: There are no accounts, just send e-mail to bug-guix at gnu dot org.
<pashencija[m]>So the problem is, again
<pashencija[m]> https://github.com/guix-mirror/guix/blob/0bd1c4fbbc8a438876d6efa4feb275de461a2484/guix/build/gnu-build-system.scm#L75
<pashencija[m]>fails with match-error
<nckx>unmatched-paren: It's like the Guile JSON library that returns sexps because Lisp, but that doesn't make that data structure a separate hell-lang. That's how I see it anywaf.
<pashencija[m]>also, the code that fails says it fixes bug 44924
<pashencija[m]>I am sure it doesn't fix bug 44924 as I already mentioned here
<nckx>Discussion here seldom makes it to the bugtracker unaided.
<maximed>pashencija[m]: You have a reproducer: your package definition.
<Andronikos>nckx: Alright I can do that.
<nckx>Thank you!
<maximed>pashencija[m]: I'm not going to report it. Looking at the website where the package definition is, it seems like it is done as part of a company, and I'm not paid for this.
<pashencija[m]>Ok, I will do it myself :)
<pashencija[m]>I am unrelated to ReTerminal except for owning one of these
<maximed>pashencija[m]: I thought that package definition on https://git.pantherx.org was yours?
<pashencija[m]>It is
<maximed>But you access to a git repo on git.pantherx.org/development/hardware as a mere owner?
<maximed>Maybe I'm missing something here but doesn't sound plausible to me ...
<maximed>Whatever.
<unmatched-paren>Should we have an editorconfig file in the guix repo? To enforce things like line length limits on editors other than Emacs.
<unmatched-paren>And to automatically configure indentation sizes and usage of spaces instead of tabs I guess.
<maximed>unmatched-paren: I don't see why not.
<lechner>Hi, is there a "Guix System" installation path from an ancient version of Windoze XP with equipment that cannot boot from USB?
<maximed>lechner: Maybe CDs?
<maximed>Also there was some software that allows you to install the installation image on the disk from within Windows
<maximed>(maybe it was unetbootin, or something else ...?)
<nckx>unmatched-paren: Sure.
<nckx>Another option, though unlikely at that age, but if anything else can connect to the HDD you could run guix system init that way.
<nckx> The CD is (or was barring bitrot) dual-bootable but it will be slow.
<pashencija[m]>I found another reproducer
<pashencija[m]>`guix build librem-ec-acpi-linux-module --target=aarch64-linux-gnu`
<pashencija[m]>Doesn't require 3rd party code :)
<silicius[m]>Touching gdk-pixbuf triggers a lot of packages: guix refresh --list-dependent gdk-pixbuf -> "Building the following 1579 packages would ensure 3410 dependent packages are rebuilt"
<silicius[m]>Should what I'm trying to be reported somewhere? There's potentially a lot of packages that need their inputs changed a little
<maximed>silicius[m]: They don't. It's set-path that needs to be fixed (long-term).
<silicius[m]>maximed: can you explain it more?
<maximed>Short-term, mosty build systems have some inputs, so adding an input to linux-module-build-system packages should be sufficient I think.
<maximed>Nevermind.
<maximed>Mixed up nicks pashencija[m] and silicius[m].
<pashencija[m]>I added hello package
<pashencija[m]>As both input and native input
<pashencija[m]>I got the same error
<pashencija[m]>So either I failed it or it is not sufficient
***mark_ is now known as mjw
<james[m]>maximed: I could not get python3.10 to work. Bit lost also.
<james[m]> https://paste.debian.net/1245409/
<jmes>When a herd service fails to start/restart, does it write to a log somewhere? I'm not getting useful info as to why the failure occurred in stdout.
<james[m]>I don't see why 3.10 is not already available. The compilation steps don't change at all as far as I know when I've done it.
<james[m]>guix refresh should do it.
<mbakke>james: it's "uri", not "url"
<james[m]>So I just run the command you said and its all done?
<james[m]>I don't quite get all the steps needed for this.
<james[m]>I will change that. Though. Thanks.
<james[m]>I assume the shell just makes the build environment for it then.
<james[m]>I am still in python 3.9.9
<lilyp>ymmv w.r.t channels, but Die folgenden 7346 Pakete zu erstellen, würde zur Folge haben, dass 15470 abhängige Pakete neu erstellt werden
<james[m]>maximed: mbakke:
<james[m]>How comes it takes me to the python3.9.9 environment. When I do that?
<james[m]>It should be 3.10
<mbakke>james: what command are you running? `guix shell -f python3.10.scm -- python3` should provide a shiny 3.10 REPL
<james[m]>I ran.
<james[m]>guix shell -m manifest.scm -- python3
<james[m]>K
<james[m]>Okay. Now I have an error.
<mbakke>james: oh, but you need to "return" the package at the end of the file, just add 'python3.10' on the very last line
<james[m]>mbakke: K
<james[m]>Still error. Will paste here...
<maximed>james[m]: paste.debian.net or such, not paste on IRC.
<james[m]>Yes of course like before
<maximed>-f is for package lists, -m is for manifests.
<james[m]>maximed: https://paste.debian.net/1245413
<james[m]>I mispoke. No I won't paste logs here don't worry.
<maximed>Maybe: "guix shell -m manifest.scm -- python3".
<james[m]>I am confused because you guys are saying two separate things.
<maximed>Also, error message could be improved.
<maximed>james[m]: You can do "guix package -f", with a list of packages.
<james[m]>That's what I did originally. But the other guy asked me to change it.
<maximed>You can also do "guix package -m", with a manifest.
<james[m]>Also they told me to change URL to uri
<james[m]>Is that valid?
<maximed>(I.e., there's more than one way to do it.)
<james[m]>K. Also its downloading the tar now.
<maximed>james[m]: Yes.
<maximed>FWIW the download will fail with a hash mismatch error, you'll need to copy the hash it reports into 'url'.
<maximed>Alternatively, you can do "guix download htttps://www.python.org/....tar.xz" to get the right hash directly.
<james[m]>Ah. Hash was wrong. Of course. How do I get the hash?
<unmatched-paren>james[m]: for a tarball: guix download URL
<maximed>(Maybe bad IRC timing? I just sent two messages about that)
<abrenon>any progress on understanding the ibus-anthy issue ?
<unmatched-paren>if it's a git repo, clone the repo and run `guix hash -rx REPO-PATH`
<maximed>Is tarball.
<james[m]>unmatched-paren: K. Will that give me the hash also or do I need to run guix hash on it?
<unmatched-paren>Alas, we do not have a `guix git-download` command.
<unmatched-paren>james[m]: It'll give you the hash
<james[m]>unmatched-paren: Good to know.
<maximed>I thought I sent ‘Alternatively, you can do "guix download htttps://www.python.org/....tar.xz" to get the right hash directly.
<maximed>’?
<james[m]>Ah. Its done.
<james[m]>Will copy.
<james[m]>Trying again.
<abrenon>(maximed: received here at least)
<james[m]>maximed: Sorry I missed that. Little tired. I am just finishing this so I will be prepared for when I am teaching someone python tomorrow.
<james[m]>Got error. 1 dependencies could not be built.
<maximed>K
<james[m]>Here is paste for manifest and the error I got. https://paste.debian.net/1245414
<maximed>it has a log: /var/log/guix/drvs/bw/7g2ak8z00i3rvazbm8fdsz6pc1vjcf-Python-3.10.5.tar.xz.drv.gz
<james[m]>Ah. Will check that....
<maximed>Likely one of the patches we add to python doesn't apply to the new python or something.
<abrenon>so I'm reading about pygobject, that thing looks awful
<abrenon>I don't understand why it seems to implement a package discovery mechanism, exposed as require_version
<james[m]>maximed: More likely one of my mistakes though.
<james[m]>Do I paste the file here somehow?
<james[m]>I guess can I upload it with matrix or something. Directly.
<james[m]>IDK.
<maximed>If uploaded on matrix it gets turned into a https:// link on IRC.
<maximed>So should be fine I assume.
<unmatched-paren>james[m]: Just put the file on paste.debian.net.
<james[m]>Good. But I don't have matrix on my PC. Is there a good matrix client?
<james[m]>I know this is IRC. But I use matrix to access that.
<james[m]>unmatched-paren: Far too big. No way.
<unmatched-paren>Ah, I see.
<maximed>james[m]: Would be equally big via Matrix and paste.debian.net though.
<maximed>Also, I'd assume that the web matrix client has a file upload button?
<james[m]>Is pidgin any good?
<james[m]>Ah. I forget. The webui can connect to different instances.
*james[m] posted a file: (196KiB) < https://libera.ems.host/_matrix/media/r0/download/james-clarke.ynh.fr/zXGTWJSvVMaVHMiJvalRdSXe/7g2ak8z00i3rvazbm8fdsz6pc1vjcf-Python-3.10.5.tar.xz.drv >
<james[m]>maximed: There it is.
<james[m]>Yea I am dumb. The webui is no different from the element client of course. I would like a good messaging client.
<james[m]>Maybe I would try pidgin later.
<abrenon>does anyone know anything about pygobject module loading ?
<podiki[m]>any darktable users here? there's a new (gui changes) fork, curious if anyone tried to package it yet
<podiki[m]> https://github.com/aurelienpierre/R-Darktable
<james[m]>maximed: I think its trying to use python2 stuff. Idk. As I am not familear with logs on guix.
<james[m]>maximed: but I've submitted the log file.
<james[m]>podiki[m]: If its the same compilation steps. It should be easy. Probably similar thing to what I am doing podiki:
<james[m]>I am not very experienced, and just trying to have a system which functions for me.
<james[m]>So I can't help much, "yet".
<james[m]>I intend to contribute to guix packaging though in the future.
<podiki[m]>I would think it is similar packaging, but a simple transformation replacing the source with the fork's source failed (some required submodules it is not finding)
<podiki[m]>anyway, just wanted to ask in case anyone had looked into it, though it is brand new
<james[m]>maximed: any ideas on how to fix it?
<abrenon>if I believe this diff http://ix.io/414p the only difference in terms of file which have *anthy* in their name between my working ('-') and my broken ('+') configuration is the change of versions (5.0.9 -> 5.1.4), additional translations, and a XML file that was removed from share/appdata/
<abrenon>any idea how that could be the cause of the problem ?
<efraim>Stale caches?
<abrenon>rekado: suggested it, why not but I can't find where: I've tried all sensible (to me) location in ~ and found none and I don't know where else ibus keeps stuff
<podiki[m]>nevermind, darktable fork compiles fine, just need to use the git checkout instead (darktable always warns against github's autogenerated tarballs, that was the clue)
<abrenon>I also checked $GUIX_GTK3_IM_MODULE_FILE
<abrenon>and though it has changed, no change is about anthy
<james[m]>podiki[m]: You should contribute what you have done.
<james[m]>I think some people would find it quite useful.
<podiki[m]>transformations make it trivial: guix shell darktable --with-git-url=darktable=https://github.com/aurelienpierre/R-Darktable -- darktable
<podiki[m]>but yes, will have to see what kind of package makes sense, no release yet, could track just a git commit
<james[m]>efraim: Is that a reply to my python build failure issue or the anthy issue the other person is reporting?
<podiki[m]>(next might be this new rewrite in vulkan, vkdt)
<efraim>james[m]: sorry, it was a suggestion to abrenon's anthy issue
<james[m]>podiki[m]: Still would post it. I personally would not know how to do that.
<podiki[m]>james: the manual is your friend, this is one of the coolest guix features I think: https://guix.gnu.org/en/manual/devel/en/html_node/Package-Transformation-Options.html
<podiki[m]>transformations make it easy to try a different version or fork, if the build process is the same at least
<james[m]>Okay. But can I use it to solve my problem?
<james[m]>I need python3.10 urgently because it has switch statements and I need it because I am teaching someone python tomorrow.
<podiki[m]>sorry, haven't been following the conversation before
<podiki[m]>maybe, you can try a --with-source=python=<url>; but no idea sorry
<podiki[m]>python is a bit more involved probably, maybe someone will know, good luck
<james[m]>Still would link it either way. Anything we can do so users can find solutions.
<james[m]>Not everyone has looked through all this yet. I am still learning about it.
<james[m]>I think I will get better. For now I just need my system to work properly and there are lots of issues with my system currently I need to fix.
<james[m]>We got close. It just failed on the patch.
<james[m]>When running the tests.
<podiki[m]>well my piece of advice is definitely look at the manual as you are learning, best place to start
<james[m]>podiki[m]: Yes I am.
<james[m]>But I need my system to work urgently. I've got most things to work with my tweaks. But not everything. I would say python3.10 is the last essential thing.
<james[m]>Because I installed pycharm and some stuff with flatpak.
<james[m]>If its not in guix. That's what I've tried. Because I dont know any scheme and that. It will take days for me to get a working system if I used guix for that now.
<abrenon>and still no time to report the issue properly, sorry about that
<james[m]>I will get round to making definitions for them and publishing them. Bit right now its just getting my system working for what I require.
<elais[m]>you could always install python 10 outside of the package manager and use the binary from ~/.local/bin, failing that there's always running your python projects in a nix shell, I'm sure they have python 3.10
<abrenon>I'll group what I have found so far in a proper issue tomorrow
<abrenon>good night everyone
<james[m]>abrenon: No. I put the log files up.
<james[m]>Its just python3.10 is not not there yet. And someone is working on it. But apparently it might take them months.
<james[m]>Its usually how FDE does not work. So I had to do without it. And some missing packages.
<james[m]>Apart from that its working fine.
<james[m]>I would say python is the main one. But its just a version change. So I might have more luck with it.
<james[m]>Python was only missing the switch statements, which most sane languages have to some degree.
<james[m]>And I want to teach someone good practices. Which is why I need 3.10.
<james[m]>I might try doing it the other way. Just manual compile but I've heard people have had issues doing that with guix.
<james[m]>I will post what I've done so far somewhere so it may be of use to someone.
<james[m]>For just tomorrow I might have to use a different distro for doing my lesson.
<james[m]>Thanks everyone for helping. I very much appreciate it. Its a great system, And I intend to contribute.
<james[m]>I just need to get my head around it is all.
<ardon>Does anyone know how to deal with "//go:embed ..." directives when packaging Go libraries? Since the libraries paths get symlinked I get "cannot embed irregular file ..." errors as Go embeds can only take hard links, and can't take an absolute file.
<maximed>james[m]: FWIW you can add #:tests? #false, to disable the tests for now.
<maximed>(i.e., add to the 'arguments' field of the package; substitute-keyword-arguments may be useful.)
<james[m]>maximed: Thanks so much. I will try that...
<james[m]>Anyone interested in python3.10 for guix. Should bookmark this.
<james[m]> https://www.james-clarke.ynh.fr/tutorials/guix-python310
<james[m]>I will update it when it works. But in case anyone else asks about this. It might help.
<james[m]><maximed> "james: FWIW you can add #:tests?..." <- Okay. I tried but did not do it right. I looked at some other examples which use the substitute-keyword arguments. And the manual.
<james[m]>I will likely be able to work out how to use that. Will let you know.
<james[m]>Will try it tomorrow morning as am tired now. Hopefully I can get further then.
<james[m]>Goodnight all.
<florhizome[m]>Hey guix!
<florhizome[m]>I have seen the teams issue.
<florhizome[m]>wdyt about gtk and qt teams?
<florhizome[m]>Also what would be the Team concerned with Updates to the wayland dependency Chain so far?