IRC channel logs

2021-06-10.log

back to list of logs

<Noisytoot>How can I suspend Guix System (similarly to systemctl suspend)?
<Noisytoot>echo mem | sudo tee /sys/power/state works, but when I unsuspend, I don't need to enter my password to log in
<ixmpp>from my pre-systemd days, i recall pm-suspend was all the rage
<Noisytoot>guix doesn't seem to have that
<dstolfa>Noisytoot: if you have elogind, `loginctl suspend`
<Noisytoot>dstolfa, that works
<ixmpp>sneek: tell abcdw damn, i thought i could do better than your "features" architecture, but i think you were actually right on the money with that, it's the smartest design
<sneek>abcdw, ixmpp says: damn, i thought i could do better than your "features" architecture, but i think you were actually right on the money with that, it's the smartest design
<ixmpp>...did i do that wrong?
<dstolfa>ixmpp: later tell
<ixmpp>sneek: later tell abcdw damn, i thought i could do better than your "features" architecture, but i think you were actually right on the money with that, it's the smartest design
<sneek>Got it.
<ixmpp>this is why we should all just use memoserv...
<leoprikler>what's memoserv?
<ixmpp>that function, but part of services
<ixmpp>(irc services)
<vagrantc>doesn't let other people in on it ... sometimes a 'later tell' gets someone else to chime in with a helpful response
<ixmpp>nyeh, tradition was that once you recieved a memo, you quote it in channel to respond to it
<ixmpp>which gives people the chance to comment
<ixmpp>but fair enough
<vagrantc>i also seem to recall memos getting lost in the noise of logging in
<raghavgururajan>dstolfa, drakonis, nckx, roptat, ixmpp et al: I am opposed to the idea of 'User Repositories/Channels'. Because all contributions are contributions. Anyone can contribute. IF there are services and packages that aren't yet ready for mainline inclusion because of quality concerns, complexity in bootstrap, etc, but FSDG-complaint, WIP branches are the way to go. It means they are in progress to reach t
<raghavgururajan>he standard/completeness. But anyone can use (--branch=) and contribute (guix-patches), from and to that branch. This way the development is less fragmented.
<vagrantc>and besides
<vagrantc>sneek: botsnack
<sneek>:)
<dstolfa>raghavgururajan: i think that's one mechanism to achieve the idea, and i'd be more than happy with that
<leoprikler>Note, that WIP branches won't eat all of your nastiness though :P
<leoprikler>Particularly, there was some heated debate recently about some bad commits being pushed to one of them.
<dstolfa>obviously, imo the goal should always be to get things up to par with the rest of guix
<leoprikler>Also w.r.t. wip branches, is wip-emacs already cleaned up?
<leoprikler>apparently not
<dstolfa>leoprikler: what's wrong with the wip-emacs branch? sorry i'm not up to date with that, even though i'm using emacs :P
<leoprikler>wip-emacs has been rebased on and merged into master. It's no longer needed
<dstolfa>ah!
*nckx lives partly to serve.
<ixmpp>better than serving partly to live
*dstolfa has to pick up his laptop tomorrow and assemble the velcro monstrosity that runs linux-libre
<drakonis>that good ol' better to reign in hell than serve in heaven, yeah?
<dstolfa>drakonis: well, running wifi that has fully free drivers and firmware has other implied benefits
<dstolfa>as someone who is technically in the security group, i uh... appreciate those benefits.
<drakonis>well!
<drakonis>i mean
<drakonis>its basically a response to nckx's message
<drakonis>not you
<dstolfa>ah :)
<drakonis>i'll appreciate the ways people will look funny at you :V
<drakonis>its montage time!
<dstolfa>i don't know why anyone would look funny at a person walking around with a laptop that has a USB hub and a wifi device with a giant antenna velcro'd to the laptop lid
<vagrantc>i get a lot of comments with my usb wifi adatper with the huge antenna and my pinebook when i travel
<dstolfa>perfectly normal sight in a computer science department
<drakonis>hah
<dstolfa>(sadly, macs are a more common sight in computer science departments these days)
<dstolfa>this also means that a lot of things only have instructions for macs
<drakonis>sadly, yeah.
<nckx>Wish I weren't too tired to think of a witty come-back, but alas.
*nckx → docking station.
<nckx>o/
<dstolfa>\o
<drakonis>i wish it was easier to procure a decent laptop where i live
<drakonis>but alas, it is very much impossible to get something decent
<drakonis>its always intels or intel/nvidia
<dstolfa>i mean, intel is your best chance as a libre-supported laptop today
<drakonis>yes
<dstolfa>even with all the ME stuff
<drakonis>pure amd is pretty hard to find
<drakonis>esp the ones with the newer gpus
<dstolfa>i basically have an intel/nvidia laptop that i'll grab tomorrow. the idea is to completely turn the nvidia card off, coreboot it, velcro a hub and a wifi device onto the lid and use it that way
<ss2>hey, I'm setting up, yet another Guix system, and am trying to modify %base-services, but now I get a: guix system: error: =>: bad use of '=>' syntactic keyword
<ss2>while I either modify guix-service-type
<ss2>after I copied over the same functions, that are being used in %desktop-services
<ss2>I'm basically copying and pasting from another declaration, but it is failing now. Has it got to do, that I'm modifying %base-services? Are they not quite the same? -- Just with less services and what not enabled?
<drakonis>okay so
<drakonis>are you modifying %base-services or %desktop-services?
<ss2>%base-services
<drakonis>the one you're modifying is the one that's being merged
<ss2>err, yes. this new system is much simpler, and just wanna copy several things over.
<drakonis>hmm, one moment, let me fetch a code snippet
<drakonis> https://developer.nvidia.com/cuda/wsl
<drakonis>oops
<drakonis>wrong link lol
<drakonis> https://gitlab.com/ambrevar/dotfiles/-/blob/master/.config/guix/system/default.scm
<drakonis>copy paste fails me, anyhow, this is what you want
<dstolfa>drakonis: this is why i have a visual clipboard
<drakonis>i've had that pasted for nearly an hour now
<ss2>huh? you're still modifying %desktop-services?
<drakonis>this isnt my example
<drakonis>its not my code
<drakonis>you can modify anything you want, the point here is to find out where you're doing it wrong
<ixmpp>i really aughtta switch from desktop-services to base-services tbh
*dstolfa uses %desktop-services happily because he just uses gnome
<drakonis>i wish the sddm service didnt have a dependency on xorg
<drakonis>i cannot declare xorg settings outside of the sddm service
<dstolfa>mmmmm, i don't think it does
<dstolfa>i think it just provides xorg
<dstolfa>i don't think my sddm uses xorg at all
<drakonis>hmm, strange.
<drakonis>i gotta see this
<vagrantc>pretty happy with "login" ... quite sure there's no X in there :)
<drakonis>heh
<dstolfa>drakonis: ah no, i think it does anyway because it provides xorg so it kind of has to have it right
<dstolfa>the only thing my sddm does is default to wayland
<drakonis>yeah i think
<drakonis>i'll have to figure something around that
<drakonis>gdm is a pain in the butt
<ss2>yeah, sure, I'm trying to _not_ modify %desktop-services, and only have %base-services around, and modify that. And this is what is confusing: I've only got guix-service-type left, and it is erroring out.
<ss2>but using the exact copy in %desktop-services is fine.
<drakonis>now see here, i used base-services and it worked wel
<drakonis>well
<drakonis>can you post your snippet somewhere?
<drakonis>i feel like i'm barely scratching the surface of scheme right now
<drakonis>i checked out ambrevar's config and i feel i barely know scheme bar the basic stuff
<ss2>never mind -.-
<ss2>I had (modify ...) instead of (modify-services ...)
<ss2>Talking about scratching a surface.
<oriansj>ss2 if you are going for a minimal guix, stripped to the bone: https://paste.debian.net/1200620/
<oriansj>But explicit configuration tends to be a little verbose
<ss2>that's not minimal! :D
<ss2>I copied the example from the sources.
<ss2>It is short enough now. :)
<oriansj>ss2: it is minimal in terms of things actually installed not minimal in numbers of written lines
<ss2>yes, you're right, it does actually. My config went through without a fuss now.
<pineapples>oriansj: Thanks for the snippet! I really like what you did there
<pineapples>i
<pineapples>whoops
<ixmpp>Know whats nice? Seeing all these github notifications for nix and just not having to care
<oriansj>pineapples: it even comes with a system setup procedure for people who need lots of help
<oriansj>and stage0-posix (https://github.com/oriansj/stage0-posix) release v1.3 is now officially out
<oriansj>pineapples: it is short too https://paste.debian.net/1200625/
<ryanprior[m]>Guix crashes when I run `guix package --dry-run -u`
<ryanprior[m]>It says: In procedure getaddrinfo: Name or service not known
<ryanprior[m]>I'm on guix (GNU Guix) de949bac61b66209cf952028be4570c9dd84c7b0
*ecbrown observes tls errors pulling substitutes from bayfront
<ecbrown>ryanprior[m]: that sounds like a network outage
<ryanprior[m]>ecbrown: good call, I just tried it again & it succeeded.
<ecbrown>a network "outrage"
<drakonis>ho ho ho
<drakonis>i'm going to roll my own containers with bubblewrap now
<drakonis>this seems like fun
<ecbrown>that does sound fun. i am unwinding a system's many dependencies on postgresql.... down to barebones....
***jackhill_ is now known as jackhill
<ecbrown>even networkmanager depends on it :-(
<ix>How do i build with a newer gcc?
<ix>Seems stuff builds with 7.5.0 by default
***terpri is now known as robin
<flatwhatson>ix: guix install foo --with-c-toolchain=foo=gcc-toolchain
<flatwhatson>that will build with the latest, or you can specify version like gcc-toolchain@10.3.0
<munksgaard>After I have used `guix import` to define a package, how do I build it?
<drakonis>generate a file with it and then use it as input
<munksgaard>I still need to add imports and a module definition, right?
<munksgaard>and add*
<drakonis>yes
<munksgaard>Is there an easy way to figure out which imports I need to add? I think what I mean to say, is that it would be nice if the manual described how to actually build the result of guix import.
<munksgaard>I think I've figured it out through trial and error now, but the way guix import is described in the manual, I kinda thought those things would be handled for me.
<leoprikler>Guix tells you which modules you need to import
<leoprikler>as for the module definition, it is typically assumed you will contribute the package to some already existing Guix module, so there's that
<munksgaard>leoprikler: It just told me "error: ghc-aeson: unbound variable. hint: Did you forget a `use-modules' form?"
<leoprikler>for the use case of "just building" or "just testing" you don't need a full declaration, just the use-modules header plus the package
<munksgaard>after adding (gnu packages haskell) it was a bit more helpful though.
<munksgaard>leoprikler: I'm not sure what you mean. This is what I currently have (doesn't build because of pcg-random): https://pastebin.com/Hp8uydZ9
<leoprikler>I mean, that you normally don't need the full define-module blurb and can instead use (use-modules ) which is slightly less typing
<leoprikler>though in your case adding a module for futhark probably makes sense, it being a programming language and all
<munksgaard>leoprikler: I see, thank you.
<q8ti-guest>Hi, I’m getting connection timeout ‘guix refresh’
<q8ti-guest>Did I miss something?
<munksgaard>q8ti-guest: I am also getting a timeout
<munksgaard>Or, well, I'm getting "guix refresh: error: fport_read: Connection reset by peer"
<munksgaard>Which I guess is not actually a timeout.
<munksgaard>Who knows about the haskell build-system? I cannot get it to compile pcg-random. I think it's because the Setup.hs script uses a custom build-type, but I have no clue how to fix it.
<munksgaard>Also, it seems very cumbersome to use runhaskell instead of cabal to build everything.
<munksgaard>But perhaps there's a reason why it was done this way?
<tissevert>hello guix
<tissevert>munksgaard: I use a custom build in Setup for a program (that has a bash script distributed along) and it builds fine
<tissevert>it's is indeed a shame to recompile everything each time a guix build is run while cabal would retry only to the first module that failed to compile
<tissevert>but apart from that I find using guix build instead of cabal new-build quite lean and nice
<munksgaard>Interesting! I think mine fails because the custom Setup.hs has some additional dependencies (cabal-doctest), but I'm not sure how to add it to the runhaskell command
<tissevert>hhmm you mean you're not trying to build the whole thing from `guix build` ?
<tissevert>(cause I never managed to get cabal or even runhaskell running from a command line in Guix)
<munksgaard>tissevert: Yes, I am trying to build with guix build, but I'm trying to figure out why it fails, and it seems to run runhaskell underneath :)
<tissevert>absolutely, it does use runhaskell under the hood (with a certain environment)
<tissevert>wow, I've just seem your pastebin, what you're trying to build is actually huge, it has a lot of dependencies
<munksgaard>tissevert: Yeah, but it can be shortened down to just the pcg-random dependencies
<munksgaard>This is much shorter, and exhibits the same problem: http://paste.debian.net/1200667/
<munksgaard>I've also just sent a bug report
<tissevert>thanks, I had reached the same set of deps trying from scratch here
<tissevert>so yeah, there's this strange Distribution.Extra.Doctest missing
<munksgaard>Yeah, it comes from cabal-doctest, as far as I can tell (https://hackage.haskell.org/package/cabal-doctest-1.0.8)
<tissevert>it would appear so
<tissevert>which is weird because you have it in pcg-random's deps
<munksgaard>Yeah...
<tissevert>wait, I get an error simply displaying ghc-cabal-doctest
<tissevert>I get a «Throw to key `parser-error' with args `(#f "Unknown command" cabal)'.»
<tissevert>ok this error is due to the '@' in the description ?!
<munksgaard>Haha, that doesn't sound good...
<tissevert>maybe just a syntax thing, I think there's actually hope
<tissevert>hmmm doesn't change a thing : /
<yoctocell>ixmpp: was it you who wanted a fish service in guix home?
<pkill9>what fish service would there be?
<yoctocell>pkill9 the fish shell
<pkill9>isn't that a package though?
<pkill9>why would it be a service?
<yoctocell>yeah, but fish also has a configuration, just like bash, git ...
<pkill9>ah right
<pkill9>so the configuration things are also considered services
<yoctocell>yes, the guix "service" doesn't necessarily have to be a shepherd service or daemon, it can just be a config file
<yoctocell>s/the guix "service"/a guix "service"
<pkill9>i'm guessing that guix home could also be used for managing user packages, which would be nice to keep everything together
<yoctocell>yes, it manages user packages and configurations for things like bash, git, emacs
<pkill9>plus user shepherd services right?
<yoctocell>its basically guix system but for user environments
<pkill9>yea
<yoctocell>yup
<pkill9>i'm not sure if user shepherd should be run by guix system, because that ensures it runs regardless whether the user logs in
<yoctocell>did i say that guix system should manage the user shepherd?
<yoctocell>i don't think it does, but i am on a foreign distro so maybe it does?
<pkill9>no that's what i think
<pkill9>i was thinking of running mcron as user
<pkill9>in a service
<pkill9>which would need to run regardless if my user logs in
<yoctocell>guix home does have an mcron service, so it would only run for a specific user.
<pkill9>or daemons for downloading things maybe, who knows
<pkill9>does it only run the mcron service when the user logs in?
<yoctocell>yes
<yoctocell>if you login as root, your guix home config for your regular user won't do anything until you login as the regular user
<yoctocell>anyway, i sent a patch for a fish service for guix home https://lists.sr.ht/~abcdw/rde-devel/patches/23236, ixmpp, maybe you want to try it out?
<pkill9>but you need mcron to run regardless of if the user logs in or not, hence why it needs to be run as a guix system service, but as the user
<yoctocell>oh sorry, i mis-read that
<yoctocell>what kind of use case would you have for that though?
<flatwhatson>the idea is to let users define their own cronjobs
<pkill9>yea
<flatwhatson>but the runner is a "global" runner not reliant on user sessions
<leoprikler>Can Guix mcron do such a thing?
<leoprikler>IIRC the problem with traditional cron was, that it wouldn't set up user environments correctly
<flatwhatson>it would be a similar concept to user-defined public-web or ftp or samba directory
<flatwhatson>really the user "service" is just a piece of configuration for the system service
<yoctocell>hmm, say i want to define a cron job for isync, why should it run if i don't even login?
<flatwhatson>yoctocell: because you said to run every 3rd friday, not "whenever i log in"
<leoprikler>Yeah, "every 3rd friday if I happened to be logged in" is not really a good cronjob
<yoctocell>but if i never login, i will never read it anyway
<leoprikler>"every 3rd friday if I happened to be logged in, or possibly later" is better (anacron style)
<leoprikler>but IIRC mcron does not support anacron style
<flatwhatson>yoctocell: it could be a scheduled rsync to backup from a remote host
<flatwhatson>a cron schedule dependent on logged in is just... broken
<flatwhatson>you are telling the computer to run a thing on your behalf on a defined schedule
<flatwhatson>what you suggest is more like how employees do nothing when the boss isn't looking ;)
<yoctocell>flatwhatson: wouldn't a regular guix system service be enough then?
<leoprikler>nah, because regular guix system services aren't scheduled
<flatwhatson>only if you assume the user is also the system administrator
<yoctocell>rsync can preserve the file permissions
<yoctocell>leoprikler: guix system has an mcron service
<flatwhatson>the whole purpose of user-defined cronjobs is that it can be done by unprivileged users on a multi-user system
<leoprikler>yoctocell i know
<leoprikler>but what does that mcron service do?
<leoprikler>correct, it runs mcron
<yoctocell>leoprikler: it runs a command you specify it to run
<yoctocell>you can just tell it to rsync /local/path /host/path every two hours or something
<flatwhatson>i think the idea of cronjob and cron runner need to be separate
<flatwhatson>cronjobs defined at system or user level, and a system-wide cron runner that runs them
<yoctocell>flatwhatson but wouldn't be required to have root access to install the cron runner in the first place?
<flatwhatson>yes, the system administrator would set up cron facility for use by users
<flatwhatson>then users are free to define their jobs independently
<pineapples>> a cron schedule dependent on logged (...); flatwhatson: Speaking of which, mcron doesn't work anachronistically yet. Anyway, you can specify a mcron job to run as a specific user in the system configuration, which I presume would run regardless of the fact if the user is logged in or not
<flatwhatson>pineapples: yep, it's already a supported feature, i think the trick is just letting users define their jobs in their guix home config?
<flatwhatson>on a regular linux system, crontab -e as a user will edit your personal crontab, and sudo crontab -e will edit the systemwide crontab
<flatwhatson>when cron runs, it runs the systemwide crontab as root (or defined user maybe), and the user crontabs as that user
<yoctocell>i guess guix home services would need to somehow be able to interact with guix system services
<pineapples>flatwhatson: Perhaps. From the user's perspective, it would be more patent to have their cron jobs declared in a single place
<flatwhatson>are you assuming user = system administrator?
<pineapples>No, I am not. I'm sorry if what I'm saying isn't clear. In the message above, I meant the average desktop user, not a system administrator
<flatwhatson>right, they would define their jobs in their guix home config, right?
<flatwhatson>maybe there needs to be some concept of a user "subservice", which is dependent on the presence of a system service, and the system service can process all the user subservice defs
<flatwhatson>or in the case of cron, the guix home "service" just writes a crontab file, and the system cron service does its usual thing of checking system crontab and every user's crontab
<yoctocell>flatwhatson: the guix system cron would then have to know where to look for crontab files (in /gnu/store) and which user the file corresponds to, right?
<flatwhatson>hmm, yeah, it would need a way to interrogate the home configs. i'm thinking some general facility to process all the guix home configs from the system level.
<flatwhatson>and whatever the "guix home reconfigure" would need to trigger hooks at the system level to rebuild the aggregate config
<pineapples>flatwhatson: I think so. To preclude confusion, there should be separation between user-specific cron jobs and system-specific ones, which the promotion of Guix Home as the means of configuring everything that is user-specific should achieve
<bricewge>logs.guix.gnu.org only return results up to 2021-06-02\
<bricewge>There was a restart of bayfront-log 2021-06-03, I guess it's related
<flatwhatson>pineapples: agreed!
<pkill9>i wonder if there's a way to elevate user privileges to be able to do what root does, but still keep the same user
<PurpleSym>pkill9: Like `man 7 capabilities`?
<pkill9>i don't appear to have that manual page
<pkill9>what package is it in?
<pkill9>i'm guessing linux-libre
<pkill9>but it sounds like that yes
<pkill9>it would mean you could do things like guix system reconfigure without root creating root owned files
<pkill9>and keep your entire environment without separate one for root
<PurpleSym>I’m guessing it’s in the package man-pages.
<pkill9>I know there's sudo -E
<pkill9>but if root modifies your user's files, then it gets owned by root
<PurpleSym>There’s CAP_CHOWN, which lets you chown any file.
<oriansj>well system reconfiguration isn't something one should allow to anyone excepted system administrators as regardless of how it is implemented it becomes an unsolvable security hole. As a custom shadow package very easily is a backdoor to full root on the system in question.
<ecbrown>pkill9: yes, i have tripped on this landmine twice. and never again lol
<ecbrown>sudo su -l
<ecbrown>just do it (tm)
***Kimapr5 is now known as Kimapr
<apapsch>in the local perfect emacs setup, geiser cannot jump to definitions (M-.). the message is always "Symbol not found (mkdir-p)" (any symbol really). Guile REPL starts fine and geiser-guile load path includes the guix checkout
<ecbrown>apapsch: is this guix system or foreign distro?
<apapsch>this is on arch linux with guix
<ecbrown>thx
<apapsch>emacs is configured according to the perfect setup chapter
<ecbrown>apapsch: a couple points: are you using --pure
<ecbrown>i.e. building up everything guix-side, not borrowing from arch
<apapsch>everything comes from guix, yes, but installed in the profile, no environment
<apapsch>I rsync the guix tree to a guix system in a vm and build stuff there
<ecbrown>what happens if you try this: guix environment --pure --ad-hoc emacs emacs-geiser emacs-geiser-guile guile -- emacs
<pkill9>oriansj: i was thinking about for single user desktops, in this case the user is effectively an administrator
<pkill9>and i was thinking of it more as a replacement for sudo
<pkill9>the safest way is to switch to a tty and login as root
<pkill9>in practise when you're using the desktop regularly, you want to be in your user's environment, e.g. to copy and paste commands, read on what you need to do
<pkill9>apapsch: out of curiosity why do you do that?
<apapsch>pkill9: the rsyncing?
<pkill9>yea, building stuff in a VM
<raghavgururajan>Hello Guix!
<lispmacs>Hello!
<tschilptschilp23>Hello!
<apapsch>ecbrown: the REPL still starts fine, and %load-path shows guix checkout. when visiting e.g. gnu/services/science.scm:66 I get symbol not found for shepherd-service-type, though l. 67 it asks me for a module on rshiny-shepherd-service and there are no guix modules in the completion list
<raghavgururajan>Folks, how to cleanly remove Guix on foriegn-distro?
<pkill9>raghavgururajan: delete /gnu, /var/guix, and ~/.guix-profile
<pkill9>i think
<ecbrown>where is systemd stuff?
<ecbrown>i think you have to remove guix-daemon
<ecbrown>apapsch: is this clean git clone? did you get to the part where it asks you to type y/n/!
<ecbrown>also that could be an emacs extension error
<ecbrown>not guix
<ecbrown>so, i suppose the technical advice i would give is to start with emacs -Q
<ecbrown>(i.e. move spacemacs out of the way ;-)
<apapsch>pkill9: I have a vagrant debian box for local development, which is configured by ansible playbooks. Production deployment uses the same playbooks to have similar environments. But it's slow and many things can still go wrong. I'm currently looking to adopt Guix to build VM images for the applications I'm running (Shopware). I guess the development workflow can still be improved in a lot of ways
<apapsch>ecbrown: thanks for the tips. It's not a clean clone, some files are changed and I originally cloned it in the VM and ran make there and then rsynced it to the arch host. only then I installed Guix on the host
<ecbrown>apapsch: no problem
<ecbrown>apapsch: would point out that there's a lot of variables there ;-)
<apapsch>ecbrown: I'll try to remove some variables :-)
<ecbrown>lol. oh i've got my own disasters. i am discovering that an "uber-box" in guix maybe isn't such a good idea
<apapsch>ecbrown: https://alldimensions.fandom.com/wiki/The_Uber_Box indeed, sounds like an recursion error
<ecbrown>lololol that page gave me a headache
<sss1>hi all, how to properly backup guix ?
<ecbrown>sss1: there is no complete answer to that
<sss1>i will try to explain what i want to achieve
<ecbrown>it depends on what you do. for some, /etc/config.scm is all you need to "back up"
<ecbrown>others use btrfs send
<ecbrown>others use dd
<sss1>block level and transfer level i kknow how to handle, i need to know WHAT i need to backup
<sss1>so goal
<ecbrown>only you can decide that. this is not a guix issue
<ecbrown>(per se)
<sss1>i need minimal data set to restore preferable same state of instlled packages for each user
<ecbrown>just the definitions, or also the binaries? sounds like an "image"
<sss1>so i want to backup some information which can be used to recreate identical profile
<sss1>no, just definition
<sss1>it's ok to download binaries/sources from the internet\
<ecbrown>i think a manifest
<ecbrown>like a modification of bare-bones.scm perhaps
<sss1>i am relatively new to guix, what should i read ?
<ecbrown>in ~/src/guix (git source) there are templates for operating systems
<ecbrown>one is called bare-bones.scm, another is desktop.scm (or something)
<ecbrown>these are Guix project's suggestions for how to get each type of system running. you can modify these with your own packages
<ecbrown>(make a copy, and then at install time use your own version.)
<ecbrown>that's the basis for /etc/config.scm on your system
<ecbrown>(and those are .tmpl files, sorry. bare-bones.tmpl i think)
<sss1>ecbrown: mmm, i am using guix on foreign system, so question more about user profiles
<sss1>in classic system i backing up /etc /var/db and /home/user/.config
<sss1>something like this
<sss1>but which part of guix installation shoul i backup ?
<ecbrown>sss1: ahhhh ok. you want inferiors
<ecbrown>so you wanna say here's your package set users, load this and you're up to the bar
<sss1>yes, like this
<ecbrown>inferiors
<ecbrown>(in my opinion of course)
<sss1>where to read about it ?
<roptat>sss1, try guix package --export-manifest
<ecbrown>guix manual. there are examples where you can even pin to commit sha
<sss1>ok, and one more thing, preferable to have same package versions
<ecbrown>(i do this for tigervnc-server because they removed a binary that broke my 20 year workflow)
<roptat>the result of that command suggests to read "Replicating Guix" in the manual ;)
<sss1>this, i will
<sss1>*thx
<roptat>guix describe -f channels
<roptat>that will give you a second file you can install as .config/guix/channels.scm, to pin guix to your current revision
<ecbrown>sss1: i know you can do it for a specific commit, one may have to look for where package version changed. i don't know if you can dial in specific package version for ever since guix source rolls
<roptat>(and it also saves any channel you currently have)
<roptat>those export options are pretty handy :)
<roptat>ah, if you installed packages from different versions of guix, it's gonna be hard to find that info I think
<munksgaard>The trick then is to use `guix time-machine -C channels.scm -- environment -m manifest.scm`
<roptat>"package" instead of "environment" if you want to install the packages long-term
<munksgaard>I guess, yeah.
<ecbrown>sss1: (the subtle point being, e.g. specific postgresql-10 package may not be around forever but the git commit that lets you get tot that state, even if 10 years ago, is still there)
<roptat>also, if you want to install packages from various guix revisions, you'll need inferiors, and ~/.guix-profile/manifest hopefully contains provenance information you can use to set them up properly
<sss1>so i need to backup /var/guix ?
<roptat>no, everything will be rebuilt
<sss1>it's ok
<roptat>if you backup /var/guix, you need to backup /gnu/store too, you always need them both to be in sync
<sss1>goal is to faster recreate same state in case of disaster
<sss1>ah ...
<sss1>bad (
<sss1>in other words, i want to backup data enough to recreate near same store without backing up store itself
<roptat>so, the easier way is to export a manifest, with inferiors if you need them, but that's also long to recreate, because it will need to rebuild/redownload everything
<munksgaard>To pin just a single package, I think you can use inferiors
<munksgaard> https://guix.gnu.org/manual/en/html_node/Inferiors.html
<roptat>the other way is to backup the entire store :p
<munksgaard>oh, you already mentioned that :)
<sss1>thx, i will think about it )
<sss1>added to my todo list, yesterday i have tortured nixos guys with same question )
<lispmacs>inferiors are only necessary if you need a package not from the same guix commit as the rest of your packages
<lispmacs>like an older version of a package
<lispmacs>older than the rest
*ecbrown publicizes https://issues.guix.gnu.org/48945
<ecbrown>i'm having a heck of a time (re)configuring postgresql, and as a consequence cuirass
<ecbrown>ls -l
<sss1>lispmacs: sometimes older packages is required, for example pybitmessage which is dropped from upstream
<abcdw>hi guix!
<sneek>Welcome back abcdw, you have 1 message!
<sneek>abcdw, ixmpp says: damn, i thought i could do better than your "features" architecture, but i think you were actually right on the money with that, it's the smartest design
<pkill9>coronavirus is a biological lisp
<lispmacs>sss1: I personally am using an inferior to get an older version of a package because the latest version is broken
<pkill9>a list of instructions on how to create the instructions
<apapsch>pkill9: there is also a magic byte at the start of the sequence, just like in computer binaries
<apapsch> https://berthub.eu/articles/posts/reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/
<abcdw>ixmpp: I'm not sure if it's the best architecture, but at least good enough for now. Will see how it goes and adjust accordingly)
<raghavgururajan>pkill9: Thanks!
***o is now known as niko
<pkill9>raghavgururajan: yw, but what for?
<raghavgururajan>pkill9: lol. For mentioning how to cleanly remove Guix on foriegn-distro.
<ixmpp>> yoctocell wrote:
<ixmpp>> ixmpp: was it you who wanted a fish service in guix home?
<ixmpp>Yes!!
<ixmpp>abcdw: Heh :D
<ixmpp>raghavgururajan: Youre leaving?
<ixmpp>But xmpp buddies!
<raghavgururajan>ixmpp: No and never. ;-)
*raghavgururajan was re-installing on friend's computer
<yoctocell>ixmpp: I sent a patch for a fish service for guix home https://lists.sr.ht/~abcdw/rde-devel/patches/23236, maybe you would like to try it out? :)
<tschilptschilp23>hi all! do you have an idea how i can make an application running from a guix environment connect to the system's pam-authentication? i am trying jupyterhub and it starts nice, but i get an error regarding the app not being able to retrieve authentication info... are environments isolated in this respect?
<raghavgururajan>ixmpp: I meant that for leaving guix, not xmpp. :)
<ixmpp>Ahh
<ixmpp>yoctocell: Nice, ty :D
<ixmpp>yoctocell: Do you have that in a repo somewhere?
<ixmpp>I could just swap my rde channel out then
<ixmpp>I never understand how people say the patch-based workflow is ergonomic
<yoctocell>ixmpp: not yet, i will push to my own fork so you can pull from it, give me a sec
<ixmpp>Ty
<ixmpp>Tbh if there was an easy way to patch channels during guix pull, even that would do
<yoctocell>see the "fish-service" branch on https://git.yoctocell.xyz/rde/
<yoctocell>yeah, being able to patch channels would be really nice
<ixmpp>It works raw, but guix pull says - guix pull: error: Git error: invalid content-type: 'text/plain; charset=UTF-8'
<roptat>tschilptschilp23, no, unless you use -C (--container)
<roptat>tschilptschilp23, I don't know too much about pam though. If you can't find an answer here, I suggest you send an email to help-guix@gnu.org (first message is moderated by a human, so it can take some time to appear, usually less than 24h)
<yoctocell>ixmpp: hmm, that's weird, maybe something is broken with my cgit instance...
<yoctocell>i am using an unmerged PR from nixpkgs...
<ixmpp>seems more like guix pull has a weird environment...
<roptat>ixmpp, it's ergonomic if you have a local checkout
<ixmpp>> yoctocell wrote:
<ixmpp>> i am using an unmerged PR from nixpkgs...
<ixmpp>Ahh that lovely workflow
<ixmpp>roptat: i dont know that i'd call that ergonomic either
<roptat>^^
<ixmpp>*sigh* i'll just do it that way and maintain a clone, but i was trying to avoid that for obvious reasons
<roptat>I started liking PRs/MRs when I understood it meant your changes had to be in a public git repository, so I could --with-git-url/--with-git-branch that :)
<ixmpp>exactly
<ixmpp>I started out there, so coming to the email workflow seemed bizarre to me. I love that its way more federated but jesus its unwieldy
<ixmpp>Never used it extensively where ive been able to choose
<roptat>yeah, apparently you need to use emacs to really enjoy it ;)
<ixmpp>Maybe i'll see if i can monkeypatch "guix pull" to accept patch urls
<ixmpp>Will add to todo list...
<roptat>now, we need forgefed for federated PRs :)
<ixmpp>I used to run a forgefed server
<ixmpp>Then it broke and the dev seemed to vanish
<ixmpp>Vervis, that was it
<ixmpp>Its still in my nix repo heh
<raghavgururajan>Any plans for staging-->master merge?
<roptat>after core-updates I think
<ixmpp>roptat: https://dev.angeley.es/s/fr33domlover/r/vervis/c?page=1 yeah see, he's not been around 9 months or so. His ssl cert expired too
<roptat>oh too bad
<ixmpp>But that used to run my dev subdomain until it got so unbuildable with nix that i switched to klaus
<ixmpp>It federated fine though!
<roptat>I have my own thing too, gitile, I'd love to add some more features and federation to it at some point, but I don't have too much time for that...
<roptat>well, it's low priority now that I have a repository viewer
<ixmpp>Yeah viewer is essential for me but i just wanted to support the only project offering federation
<ixmpp>No other project implements forgefed
<roptat> (https://git.lepiller.eu/gitile if you're interested)
<ixmpp>Neat
<roptat>all in guile :)
<roptat>I have some syntax highlighting too, but only for scheme files ^^'
<civodul>roptat: doesn't guile-syntax-highlight support a bunch of other languages?
<roptat>yeah, C and XML
<roptat>not really "a bunch" :)
<ixmpp>Reminds me, i need to demystify sxml for myself at some point
<roptat>that' the one I use, but I don't have C or XML files, I think
<roptat>I find it to be a bit limited too, in terms of how you can highlight things. I'd love to italicize the content of quotes and semi-quotes for instance (but not inside unquotes), which it won't let me define easily
<ixmpp>yeah, id be curious about other things with more alluring features, but for now im content with klaus http://dev.fron.io/ which is terrifyingly fast and i love it for that
<ixmpp>I mean if every site was that responsive the web might actually be a nice experience
<roptat>I tried defining my own library based on regexp, but the regexp in guile scan the whole string everytime even when they match very quickly, which makes it slow when scanning a big file for tokens...
<roptat>ixmpp, dark magic?
<ixmpp>no idea
<ixmpp>roptat: Ah http://klausdemo.lophus.org/~jonashaag/bjoern/
<roptat>so I decided to create my own regexp library with a bit of C, and found that creating a regexp was slow (but super fast to execute), so tried to ensure all my regexps were compiled at compile-time, not during the execution, but doing so was a bad idea, I think the result is just a pointer, but the memory it refers to is not part of the compilation result, it segfaults
<roptat>and after banging my head against the wall, I gave up
<tschilptschilp23>roptat: thank you! for now i will try through config.scm (without an environment as base) to have something to compare...
<ixmpp>Heh
<roptat>all that work for italic parenthesis
<roptat>you could also use that to count them at the same time you parse the file, which would be much more efficient for rainbow coloring
<roptat>my goal was to have something like pygments, which seems to be able to do that
<abcdw>ixmpp: I see you actively use Guix Home, how is your experience with it so far?
<roptat>(not in their implementation of the scheme lexer, but it seems possible to define such a lexer)
<ixmpp>abcdw: eminently useful and impeccably functional! I see no reason it shouldnt be merged as is. My only remaining question is figuring out the best architecture for sharing data between os and homes, as i mentioned
<abcdw>Nice to hear that, I would like to see what civodul thinks on it, but don't want to bother him too much) I think we with yoctocell will send commiter access request emails and will start working on guix-home branch if it will be approved)
<ixmpp>Nice :)
<abcdw>ixmpp: BTW, why not zsh?
<ixmpp>I used zsh once. Long time ago. It's just bash but with 1000 plugins. Quite powerful but crazy complicated. Im not massive on fish either, but at least its very simple and yet very functional and powerful too
<ixmpp>Honestly until i killed my filesystem i used Xonsh
<ixmpp>And even then, only when not in emacs
<ixmpp>Fish was just the easiest shell to get back up to speed with, when i had no data
<abcdw>Good point. I provide pretty sane zsh config in rde, with fish flavor)
<roptat>abcdw, I think ludo said in previous email he was all for including guix home in guix
<pkill9>ah ye
<ixmpp>Yuss
<ixmpp>yoctocell: doesnt automatically inject the home profile stuff, how are you doing that?
<ixmpp>yoctocell: Works otherwise, though :) thanks for that!
<zimoun>hi!
<zimoun>What is the status of the next core-updates merge?
<ixmpp>There we go. Now my klaus repo is up to date
<ixmpp>Dont have to use github to peek at my stuff
<abcdw>ixmpp: Cleaned up pipewire related features, added obs 27 with native wayland support, disabled xwayland in sway. yoctocell's Fish patch is on the master now.
<ixmpp>abcdw: Disabled xwayland? Whyfor?
<abcdw>yoctocell: I remember about on-change service, it's a tricky one, I need to review it with fresh mind.
<abcdw>ixmpp: not to have an instance of the X server running on my laptop, I completely migrated to pure wayland software. feature-sway have xwayland? flag in case someone need it, but default value is #f.
<ixmpp>Interesting, okay :)
<ruffni>how come libevent is built without event2/bufferevent_ssl.h headers? i can spot it in the upstream repo and the package definition looks normal to me.
<ruffni>the README says that "EVENT__DISABLE_OPENSSL:BOOL=OFF" is the default value.
<ruffni>this means SSL is on by default, right?
<roptat>ruffni, does that mean openssl replaces event2/bufferevent_ssl.h? (sorry I don't know how it works ^^')
<ruffni>i don't think so. the package i'm building includes event2/bufferevent_ssl.h which surprisingly isn't built with libevent
<ruffni>roptat: is there something like packages replacing headers from other packages?
<roptat>mh, no I don't think so
<abcdw>roptat: Which one? Can you include me in the thread or share link to archive, please?
<roptat>abcdw, https://lists.gnu.org/archive/html/guix-devel/2021-05/msg00075.html
<abcdw>roptat: Ah, ok, saw it) I thought it was some other discussion.
<roptat>well, there's also the fact it told me a few times how great it would be to merge the home-manager :p
<enpa>Hello, all! Is LVM ready for use in an OS config? If possible, I'd like to set up my configuration using LVM and LUKS but I'm not seeing a way in the info manual to create physical volumes - only volume groups. So I'm curious if that's still in-development/paused/etc.
<roptat>I think lvm works, but maybe not with luks
<lispmacs[work]>Hi, I noticed that if I do a guix pull --commit to the commit that I am already on, guix still builds a new generation. Is that is what is supposed to happen?
<roptat>lispmacs[work], yeah, that's what you're asking for ^^'
<enpa>roptat: Ah, okay. I suppose it may be assuming you only have one disk, or something, unless it creates the physical volumes for you. I'll take a look at the code to get a bit more detail. Thanks!
<lispmacs[work]>I was just wondering because guix package can figure out when you are changing nothing and consequently does nothing
<roptat>enpa, guix won't create any partition for you
<roptat>you describe what you have in the system config, and then guix mounts them for you
<roptat>lispmacs[work], I think that's because it notices you're updating to the same derivation it's already at, but guix pull needs to "compute derivations" anyway
<roptat>so at least that part can't be skipped, after that maybe we can notice it's the same guix and not do anything
<enpa>roptat: Oh, so I should create the physical volumes for each disk (similar to manually creating partitions) and *then* I'd add the "mapped-device" with volume groups to my OS config. That makes more sense.
<abcdw>Have a good evening, guix!
<yoctocell>ixmpp: yoctocell: doesnt automatically inject the home profile stuff, how are you doing that?
<yoctocell>what are you refering to ??
<ixmpp>yoctocell; sourcing ~/.guix-home
<ixmpp>well, sourcing the stuff inside it
<ixmpp>yoctocell; tl;dr how are you applying the home profile
<yoctocell>oh i forgot to add that...
<ixmpp>i've just done it manually for now
<ixmpp> https://dev.fron.io/rc/commit/eddb4c741e8f4ea02fcbedef5f97dd2d82f3efed/
<yoctocell>it should probably add those lines by default
<ixmpp>well, maybe not those lines
<yoctocell>the source $HOME/.guix-home stuff i mean
<ixmpp>yeah, but since i'm just abusing fish-foreign-env
<ixmpp>maybe have something that creates a fish-compatible .guix-home/setup-environment etc
<ixmpp>force-depending on fish-foreign-env wouldn't be great
<yoctocell>wait, the fish package depends on fish-foregin-env
<yoctocell>maybe it would make sense to just use foregin-fish-env
<yoctocell>not sure how to we would generate a fish compatible setup-environment script only if the fish service is used.
<yoctocell>the guix service mechanism doesn't really allow for conditional extensions.
<yoctocell>there is no `mkIf' like there is in nix
<solene>are there other guix chat rooms other than the current irc one?
<yoctocell>solene: there is #guix-hpc
<yoctocell>and another one which i don't know i am allowed to mention...
<yoctocell>don't know if*
<ixmpp>#nonguix is NOT a guix channel ;)
<yoctocell>heh
<ixmpp>best loophole
<ixmpp>yoctocell; well if fish already depends on it, i guess why not use it
<ixmpp>i didn't realise it did, fenv didn't work for me until i added it myself
<yoctocell>yeah, i guess we could just use it since it's already there
<ixmpp>i suppose you could add it to the function path, source the profile files, then remove it from the function path
<ixmpp>that way it doesn't pollute namespace
<yoctocell>yeah
<solene>yoctocell: thx! I'm absolutely not in hpc ^^'
<efraim>there's also #guix-risc-v but I don't think it's actually official
<ixmpp>is there a way to depend on a derivation's drv, not the built path?
<drakonis>ix: you want to do CAS?
<efraim>I bet I could make gnu/packages/bootstrap.scm use guile's effective-version in lieu of hardcoding the version
<ecbrown>one thing i would like to compliment is how well guix populates emacs's info and the man pages
<ecbrown>it has been a collossal struggle to get INFOPATH right for emacs (for me)
<solene>ecbrown: same! I tried to use emacs packages in nixos and I neve rfigured out how it worked :D in guix it works out of the box!
<ixmpp>drakonis; no, just to depend on the drv so it sticks around, but not build it
<drakonis>i see
<drakonis>you're trying to create a gc-root?
<drakonis>is this what you want?
<ixmpp>for the drv, not the output, yes
<yoctocell>ixmpp: i pushed the change for fish, it should work now :)
<ixmpp>ah, <3
<ixmpp>yoctocell; ooh you have a nixrc repo, that looks familiar, heh
<yoctocell>hehe, yeah, i am still on nixos
<ixmpp>no i mean the structure
<ixmpp>and the name
<ixmpp>i'm bqv
<ixmpp>if you weren't aware
<yoctocell>oh
<yoctocell>haha, didn't know that
<yoctocell>the nix guix guy
<ixmpp>yeah that's me
<ixmpp>i guess you witnessed my loud tantrums on github
<yoctocell>ah yes
<ixmpp>nixpkgs is a fun place...
<drakonis>truly the most fun of them
<ixmpp>sneek: later tell abcdw to be fair, there might be some merit to keeping guix-home out of guix. Keeps at least one major channel outside, encouraging federated work rather than the nix model
<ixmpp>Sneek?
<sneek>Will do.
<sneek>Sneek is just picky…
<ixmpp>Ah, ok
<drakonis>ixmpp: ehhhh
<ixmpp>drakonis: home-manager is doing just fine separate, and helped kick off the flakes-based federation.
<drakonis>it would make it subject to the same issues that home-manager fell prey to
<sarg>native-comp was merged in emacs/master. Could somebody bump emacs-next version in guix?
<ixmpp>What issues?
<drakonis>dupication of work and feeling entirely separate from nixpkgs
<ixmpp>sarg: Submit a patch 😊😊
<ixmpp>drakonis: less duplication cause it's scheme, and That's the aim
***apteryx_ is now known as apteryx
<dstolfa>imo, fragmenting the ecosystem too much is not very helpful. i don't see why it shouldn't be in guix since it's pretty well-aligned with the rest of it
<sarg>ixmpp: ahh, not that easy. There is a new dependency on libgccjit. But the good news are that flatwhatson already made a package in his channel.
<sarg>flatwhatson: would you contribute your emacs packages to guix anytime soon?
<ecbrown>sarg: +100000000000
<drakonis>nixpkgs fell prey to extreme fragmentation
<ixmpp>> drakonis wrote:
<ixmpp>> nixpkgs fell prey to extreme fragmentation
<ixmpp>No it didnt
<ixmpp>It literally suffers from the opposite
<drakonis>with the stuff that matters, that is.
<vagrantc>looks like nvme on pinebook pro works, and u-boot recognizes it ... building kernel for a guix system init onto the nvme ... should be a lot faster than on the microSD
<drakonis>there's *checks notes* 6 deployment systems now
<drakonis>there's three dozen importers with a least three per language
<drakonis>there's three haskell package infrastructures
<drakonis>the majority of them are out of tree
<drakonis>i'd like to at least have the code required to enable guix home in tree if anything
<dstolfa>i don't see any benefit of keeping a project that is clearly in line with what guix is doing separate
<tricon>Is there a preference for defaulting new packages to GTK or Qt when the software can be built for either/both?
***ix is now known as Guest6430
<ecbrown>tricon: if it is a toss-up, i would suggest gtk for gnu reasons
<tricon>ecbrown: Makes sense, thank ya.
<apteryx>tricon: what ecbrown said :-)
<Guest89>I am trying to use guix in my NixOS, but when I try, it restart my graphical interface
<Guest89>even when I try it with TTY, this thing happens
<Guest89>In my another computer with NixOS, the same thing happens
<Guest89>but inside virtual machine, this error doesn't happen
<ecbrown>apteryx: i'm dissapointed with my debian hurd on guix qemu experience
<ecbrown>it crashes when i am reading gnus
<apteryx>oh!
<ecbrown>yes, as soon as it finshes threading, bang
<Guest89>ecbrown, is the same error that I am having?
<apteryx>did you give a try to the childhurd VM?
<ecbrown>Guest89: i am not sure. let me think about that for a moment
<Guest89>No, I am using Linux
<ecbrown>right, but qemu
<apteryx>ecbrown: the Guix cross-compiled Hurd system.
<ecbrown>yes i run childhurd
<ecbrown>all machines get it because that is the real kernel
<Guest89>but what kind of thing can Guix daemon restart my graphical interface?
<Guest89>should I use Guix just inside a container?
<Guest89>ecbrown, so is the problem with Guix in the real kernel? But it works in containers and virtual machines?
<ecbrown>apteryx: i've plotted the end of my computing journey to guile emacs on hurd
<ecbrown>it's like... gnu utopia
<Guest89>maybe if I move to Linux Libre kernel, it works?
<ecbrown>Guest89: i'm kind of joking around -- hurd is the official gnu kernel, but it is way behind linux
<ecbrown>but i have followed it for a long time and guix is the best thing going for it besides the debian distro
<Guest89>I am having a lot of problems in Linux Kernel, maybe I should move to freeBSD
<ecbrown>well hold on a second
<Guest89>and install Guix there
<pkill9>can you do that?
<ecbrown>it's an option. i have thought of moving to trisquel
<Guest89>I don't know. FreeBSD is Unix, so it should work
<ecbrown>apteryx: i have only tinkered a little bit in the hurd on guix. the main reason is that i have not figured out how to get in my precious emacs since it seems that Python does not compile on hurd
<ecbrown>and it is needed for all the recipes for some reason, i have not gotten a chance to really really strip down emacs-minimal
<Guest89>ecbrown, why? Python is compiled in Guix
<nckx>Morning Guix!
<ecbrown>Guest89: i am talking about a different kernel, called GNU Hurd. Yes you are correct python works in linux
<ecbrown>it also works on debian. i think childhurd is still a w.i.p.
<ecbrown>(debian hurd)
<Guest89>what I don't understand is why a simple compiler can be compiled in Linux and not in another Unix distro
<nckx><FreeBSD is Unix, so it should work> It does not work that way.
<ecbrown>Guest89: there is technology for e.g. x86_64 to compile stuff for e.g. mips32
<ecbrown>"cross-compiling"
<Guest89>the language that I use. Idris 2 is compiled to schez scheme
<drakonis>Guest89: what simple compiler?
<Guest89>I don't know if it will work in mips32
<Guest89>drakonis python
<drakonis>It's not that simple lol
<Guest89>drakonis, does schez scheme works in mips32?
<drakonis>Hell if i know if chez does
<Guest89>or maybe racket
<drakonis>No
<drakonis>Chez does not
<drakonis>Racket was never good about supporting exotic platforms
<drakonis>Mainline anyways
<Guest89>Which language is better for it? They usually talk that C is very portable
<Noisytoot>C supports a lot of architectures, and if you write it well, it can be portable
<Noisytoot>It's also possible to write very unportable C
<dstolfa>Guest89: linux, freebsd, openbsd, netbsd, illumos, etc all have a different kernel with different system calls all together (and the same named ones may have different semantics, different flags, etc). they also disagree on where things should be put in the system, how they should interface with each other with shared memory and sockets and so on
<dstolfa>so you shouldn't expect anything that wasn't explicitly ported or explicitly written to not use any of the OS-specific things to just work