<lilyp>In theory we could, but in practice someone needs to implement that 😛️
<ulfvonbelow>ah, question, are commas legal for use anywhere in package specifications?
<jonscoresby>Anyone know how the ublock-origin-chromium package is suppose to work?
<tschilptschilp23>I'm just comparing python-numpy versions installed via pip on debian-docker and various versions on guix. Functionally they seem to be the same as expected. However for another package, which uses numpy, the tests keep failing because of a missing 'blas_ilp64_opt_info' from numpy.__config__ on guix. I see that there's actually quite some effort put into our package to integrate blas, any ideas how to add this ilp64? It seems a
<zamfofex>You don’t have to install it locally, you can install it to your user profile using ‘guix install’.
<zamfofex>You don’t have to install it *globally*, I mean.
<csepp>zamfofex: i know, but i wanted to separate it, because it's not something i need all the time and i don't want to think about having to update (and possibly build) it when i'm upgrading my main profile
<zamfofex>Ah. I feel like it might work well if you use ‘guix shell’. I always found alternate profiles a bit clunky to use, personally.
<jonscoresby>Is there any way to run procedures on or pass variables to the install plan in the copy build system?
<jonscoresby>Like how can i put a (string-append ...) in as a target or a source?
<rdrg109_>[Q] Is it possible to disable the mousepad while doing the shell-based installation? My laptop is a bit old and the mousepad goes crazy from times to times which is amusing during the installation process because the cursor is moved at random locations.
<rdrg109_>s/mousepad/touchpad/ (pardon my english)
<Reventlov>zamfofex: how would you add this .inputrc using nix ? (as I'm executing in containers…)
<Reventlov>(and as I'm in a shell, I cannot use services, I guess)
<tschilptschilp23>thanks to the people who patched linux-libre up to 5.19.9, my system reports battery status perfectly again! Also closing the laptop lid pushes all the windows from my laptop's main display to monitor 2 automatically. Great.
<antipode>ulfvonbelow: I doubt there is a law against putting commas in package specifications.
<antipode>However, I do not know any package names containing a comma and I don't think package names (or versions) are supposed to have a comma, so I doubt that any (specification->package "something containing a comma") will succeed.
<antipode>lechner: Maybe see recent bug report about tealdeer not building, seems to have the same cause
<Luk6655>in general when I did that I always run python3 instead of python cmd, also any .py file, I run with python3 file.py
<vivien>Reventlov, you will want to set up CI/CD caching between builds. You can try and cache $HOME/.cache/guix to avoid re-authentification of commits, and if you want to cache the store, look at guix archive
<vivien>You will need to set up the archive signing key.
<Kabouik>I'm having trouble installing pass-import that way, maybe I'd be more successful with just guix import to make a package. It's just I need pass-import only once, so I wanted to be lazy and avoid defining a package
<Luk6655>Kabouik: what I describe is in general for when everything else fails, but you need it, I would definitely start with guix import
<Luk6655>guix import works when the package in pypi has sources defined, unfortunately there are a number of packages in pypi that really just deploy "wheels" (binary stuff) and for those guix import will not work
<ytc>i was very excited about emacs-guix. but currently, it's not working properly and i think it should be revised. anyone knows the current development status of it?
<Reventlov>vivien: yeah I get what you're saying about cache, it's so slow :p
<vivien>Also be careful, guix is not meant to be used with --disable-chroot, some packages may do wild things such as replacing /bin/sh. With the ordinary chroot build this has no impact, but without a chroot it can brick up your container
<Guest79>Morning. How well does guix integrate with the system? If I install a guix package, can a system package use with it? Or is it isolated like flatpak?
<jpoiret>Guest79: i understand you're using guix on top of a foreign distribution?
<Guest79>Yes, I would install guix on a GNU/Linux distro. Using it as a secondary package manager.
<jpoiret>it totally depends on what system package you're talking about and how they use them
<vivien>Everyone in the system can use a package installed by $user by running /var/guix/profiles/per-user/$user/guix-profile/bin/program
<jpoiret>there's no isolation using Linux kernel features
<Guest79>I planned to install them through compilation from the beginning.
<vivien>You may need to set C_INCLUDE_PATH, LIBRARY_PATH, PKG_CONFIG_PATH and so on to search in /var/guix/profiles/per-user/$user/guix-profile/…
<vivien>If you want to compile something against a library installed by $user
<Guest79>Here's the lowdown: I like to use some distros like slackware and guix is perfect to get some packages alienbob won't package. After installing webkit2gtk from guix, I'll compile other packages that utilize webkit2gtk. I hope this works out in the end.
<Luk6655>those other packages compiled against webkit2gtk, which user will use them? Your normal user(s), or root?
<Luk6655>and if root, are we talking about launching via system service, or via sudo
<Guest79>For example, gufw (Python GUI for ufw) has a webkit2gtk dependency for whatever reason. And I'm a single user on my system, so just normal users like myself.
<Luk6655>I would probably try to get it working in guix shell
<vivien>Guest79, from what I read, you may not be far from maintaining your own distribution. I wish you well, but this may be tough!
<Luk6655>so for example run 'guix shell somepackage gcc-toolchain some_other_package', then cd tot he folder with whatever you need to build source and try building it, you may need to set various paths
<Luk6655>as vivien said, it is not exactly straightforward
<Guest79>I don't mind experimenting and playing around with $PATH or environmental variables to slackbuilds to know where webkit2gtk is.
<lilyp>Guest79: I think it might be wiser to package the thing you need via Guix rather than using cursed hacks to make Guix packages infiltrate your foreign system.
<lilyp>pkal: only package inputs, build system inputs and transitive propagated inputs are included
<lilyp>if you're missing an input that's further down the line, you got a bit of a situation
<Reventlov>just to be sure I can't do that easily: is there a way to define env variables in a container created from a manifest file, inside the manifest file ?
<pkal>lilyp: Hmm, it might be that there is some version discrepency going on, because there is at least one error indicating that a c library is missing.
<pkal>Perhaps I can use guix import to generate a updated package recipe?
<lilyp>not so sure for C libraries, but you could try inheriting the package and updating its origin
<Luk6655>Is there some way (in repl) to list all variables defined by a package (outputs mostly)?
<Luk6655>also, it seems when running repl on guix system, additional channels are all in the path, when running guix repl when guix is installed as package manager on foreign distro only the guix channel is on the load path
<ulfvonbelow>those actually don't belong to a package, they're part of the corresponding 'inputs' list
<Luk6655>so in this example, if I wanted to list all the contents of the inputs without knowing the keys. is there some way to list them?
<Luk6655>if I didn't know that ncurses is one of the keys, how would I go about getting all the info about inputs structure (keys/values)
<lechner>Hi, is there an example for a Github updater, please? A search for "updater" in gnu/packages produces only meager results. Thanks!
<ulfvonbelow>sure, 'inputs' has a well-defined structure: it's a list consisting of pairs (conses in older-lisp lingo)
<ulfvonbelow>the first element of each pair is the label, the second is the store path
<ulfvonbelow>so (car (first inputs)) would give you an input label, and (cdr (first inputs)) would give you the corresponding store path
<Luk6655>ok, is there some way to "interrogate" an object/variable to discover its structure like that? For example if you didn't tell me that I would have to hunt for where inputs is defined. Is this the only way?
<ulfvonbelow>could always fall back on good old print-statement debugging
<Luk6655>for example in python it is pretty easy to find out a type of any variable, then if its a dictionary or class to print all its keys, methods, variables etc, I haven't found a way to do the same in guile yet.
<ulfvonbelow>it'd print something like (("ncurses" . "/gnu/store/...-ncurses-a.b.c") ("bash" . "/gnu/store/...-ncurses-x.y.z")) and so on
<lilyp>in Scheme there's print and write, which are analogous to python's print and repr
<Luk6655>I see, so to write this code, do you need prior knowledge of inputs structure (that it is a list of pairs). If it was a list of lists for example, would this bit of code error?
<lilyp>nah, (write list) is completely fine in lisp – the format from above uses display/write internally depending on the sequence
<ulfvonbelow>also, you can tell from context that 'inputs' is a list of pairs (known also as an "alist", short for "association list") by seeing that "assoc-ref" is called on it, if you know what "assoc-ref" does (a look in the guile reference manual will tell you)
<Luk6655>I think I'm not explaining what I'm looking for well. Let's take a package ncurses. When I say to use module that defines ncurses as package, then when I type just ncurses in repl it will respond that it is a variable of type package and it will give me some location. I'm looking for something that will allow me to find out more about the variable. its internal structure, is it an assoc-list, if its a record, what it contains etc
<Luk6655>something universal that can be applied to interrogate variables in general, not just a package, or inputs
<ulfvonbelow>note that in guile, variables don't have types, only their values do
<lilyp>p sure it tells you that it's a package record :P
<Luk6655>how do I know it is a record from this output: #<package firstname.lastname@example.org gnu/packages/ncurses.scm:43 7f884b8e3000>scheme@(guix-user)>
<Luk6655>ulfvonbelow: ok, still, it seems the functionality I'm looking for should be possible
<ulfvonbelow>I don't know that guile has a 'type-of' sort of procedure like you would find in common lisp. It does have a lot of type predicates, though, e.g. (struct? ncurses), (package? ncurses) both return #t
<ulfvonbelow>not sure what the difference between 'record?' and 'struct?' is, the guile reference manual probably says it somewhere
<Luk6655>that is another question I had actually, I founf lots of some_type? procedures, but no display_all_types procedure
<ulfvonbelow>regarding how you would know it's a record from the printed representation, the convention is for records to be printed like that. Technically every record type can have a custom printer, so it is just a convention, but in practice just about every record type I know of follows it
<Luk6655>that actually makes some sense to me that a record could be a struct etc. Looking at the structs in the manual again there is a lot about creating and acessing them, but I fail to find anything about discovering their layout
<ulfvonbelow>I think there's some struct reflection stuff in the guile reference manual
<Luk6655>ulfvonbelow: that is exactly the problem, when debugging some bit of code, one would benefit from quickly finding out the structure of values used. Going to search in the source for everything seems quite ineffiecient.
<Luk6655>also, when one is learning the syntax, there can be some uncertainty
<Luk6655>anyway, I thought this is just some easy thing I'm failing to find, but it looks like there perhaps is no functionality like that
<rekado_>it looks like shepherd actions are in fact blocking other actions
<Luk6655>btw, about that repl problem, type -p guix says /home/luk/.config/guix/current/bin/guix
<ulfvonbelow>it looks like you could get the list of field names with (record-type-fields (record-type-descriptor ncurses))
<Luk6655>regarding this repl issue, on guix system, when I just run repl I can then type ,use(guix) ,use(mychannel) etc this works. On a foreign distro, both don't work. However, if I run it as guix repl, then ,use(guix) works, but ,use(mychannel) doesn't
<Luk6655>the channels.scm is the same on guix system and running on foreign distro
<ulfvonbelow>are we sure that the guix running on the foreign distro is one that was pulled using that channels.scm? What does 'guix describe' say?
<Luk6655>it shows multiple channels including mychannel
<Luk6655>just a sec, I might have a typo in the channel name actualy
<antipode>More specifically, guix/import/github.scm (and guix/import/git.scm, which overlaps)
<antipode>(gnu packages ...) is only for packages, not updaters.
<lechner>mbakke: please ignore the amendment to #57872 for xkeyboard-config, if it comes through. i did not receive your 'done' amendment either and just filed another yet unacknowledged issue with a new diff instead. it is also here https://www.pastery.net/pmutwv/
<lechner>antipode: thanks! i figured out that the updater was probably used automatically if i got the sources from github instead
<lechner>Hi, is everything good with our debbugs instance?
*GNUtoo is becomming crazy, why why why was i686 broken again now...
<lechner>Hi, may I determine why a store item is not being garbage collected even though it no longer appears under guix package --list-installed and is (to my knowledge) not used anywhere else? Thanks!
<ulfvonbelow>well, that's what I use when I don't wanna bother with writing to a pdf. It has some nice features like being able to highlight the edges connected to a node and being able to click on an edge and automatically follow it to the other end
<ulfvonbelow>lechner: regarding changing that line not causing a rebuild, it won't cause a rebuild if the resulting builder script that is produced is the same. For example, if you add a comment into your package-definition code or just change some insignificant whitespace, it won't result in a rebuild because that's all read into scheme data structures and then serialized canonically anyway
<Grimpper>two[m]: I don't seem to get that syntax. I'm getting this error:
<ulfvonbelow>what I *thought* happened in that case when a default value isn't supplied is that 'phases' is bound to #f or some other default, but it appears that in that case it actually skips evaluating the replacement entirely
<lechner>wow, thanks for looking into it! i would have never found it
<ulfvonbelow>so if there is no #:phases argument before, there is no #:phases argument after
<GNUtoo>disable-broken-tests is now executed with the current form, it was probably modified somehow by guix style
<ulfvonbelow>GNUtoo: the openexr definition I see at the link you posted is using #$ instead of #$@, and isn't wrapping the (add-after ...) form inside a list. That will work for that half of the if-form, but when the other half is evaluated, no matter what it is, it will leave some object in the middle of your (modify-phases ...) form.
<ulfvonbelow>so on non-64bit systems, it looks like (modify-phases %standard-phases ... (add-after 'patch-test-directory ...) ...) and on 64bit systems, it looks like (modify-phases %standard-phases ... #<unspecified> ...)
<GNUtoo>I was trying to fix that but if it's always unspecified I would have tried a lot without any probability of succeess
<ulfvonbelow>the #<unspecified> is because the version I'm looking at has a one-armed if
<ulfvonbelow>replace the #$ with #$@ and wrap both arms (including the empty one) of the 'if' in a list
<ulfvonbelow>that way, when the empty list gets spliced in, it has no effect
<Grimpper>I get this error: `In procedure stat: No such file or directory: "/gnu/store/f7nhwkcanqk8yz2hn2zrldmrwpcyb3ny-emacs-geiser-guile-git.e540e14/share/emacs/site-lisp/geiser-guile-git.e540e14/geiser-guile-autoloads.el"`
<Grimpper>Which I don't understand why because if I don't specify the commit it builds correctly