IRC channel logs


back to list of logs

<unmatched-paren>no problem :)
<zamfofex>Some concrete(‐ish) thoughts: I wish I could be able to help work on Guix more actively. I wish I could turn those disorganized ideas into concrete actions. I wish I could have some kind of directioning regarding it, though.
<mirai>zamfofex: you can always write the ideas down
<mirai>it helps organize your thinking and allows for further actions
<TristanCottam[m]>I'd like to have a mods field in my minetest-configuration. Since all mods start with minetest-, is it considered polite to convert a list of symbols without the prefix to a list of packages? Should I rather accept a list of packages? Or both?
<apteryx>I'm trying to split the rust component build out of python-cryptography, so far getting:
<apteryx>using the following package definition on top of a modified staging branch:
<apteryx>any rust advice?
<vagrantc>ACTION would apply a coat of rust-oleum
<vagrantc>ACTION hides which is probably more helpful
<apteryx>seems the rust-winapi-i686-pc-windows-gnu-0.4 package (and rust-winapi-x86-64-pc-windows-gnu-0.4) are not unpacked in the guix-vendored directory... searching why
<apteryx>there's some hack in that python-cryptography package to disregard inputs which names do not start with rust-
<apteryx>and these deps start with winapi-, not rust-winapi-...
<apteryx>yay, passed that hurdle
<apteryx>mirai: thanks for all your recent work, it's impressive!
<soundmodel>where can I find the description of the "Win32" API of Guix?
<soundmodel>or maybe it's all here:
<soundmodel>anyways, with just starting with Linux dev, I have to say that I'm finding it hard to grasp how Guix is built
<soundmodel>I assume that it's far easier for someone who has already developed some other distro
<lilyp>I'm not sure what you mean by win32 api, but I'm pretty sure Guix only works on Linux and Hurd kernels :)
<soundmodel>The Win32 API is the de facto API that almost all Windows programs use
<soundmodel>so it defines things like file dialogs
<soundmodel>but I interpreted that in Guix one's expected to use Guile-GTK
<soundmodel>so yes I interpreted that this is the main API for user land apps
<soundmodel>sorry I was unclear, I meant what's the equivalent of the Win32 API in Guix
<Guest19>hi, i want to hide specific desktop entries. one way i found is to let guix-home create e.g. xonotic-glx.desktop containing "NoDisplay=true" in ~/.local/share/applications/ . This .desktop-file takes precedence over the one in /gnu/store . Is this the optimal way to achieve this or is there an easy way to directly declare the .desktop files in the store itself?
<TristanCottam[m]>Hi Guix!
<TristanCottam[m]>Turns out I made a mistake in my Shepherd service definition for Minetest, the culprit being that I need to reference a path relative to the active profile, which I don't know how to do.
<TristanCottam[m]>All Minetest mods and games install to share/minetest/{mods,games}, how can I refer to this path in make-forkexec-constructor's #:environment-variables? The package sets search paths, but I'm unsure if these can be referred to from here.
<Guest19>i want to construct a variable name from strings. i don't understand why this doesn't work: (define (string->symbol "test") 1) can you please help me?
<cow_2001>okay, i have cargo culted a define-public module
<cow_2001>the air drops are not coming
<cow_2001>i've seen people do something like `guix build -L $pathtopackage package-name
<cow_2001>and that's what i'm doing
<TristanCottam[m]>`-L <path-to-module-root>`
<TristanCottam[m]>At least that's what I do
<TristanCottam[m]>Am I right that specifying a path starting with /run/current-system/profile is unacceptable?
<TristanCottam[m]>I mean inside Shepherd service's MAKE-FORKEXEC-CONSTRUCTOR, under #:ENVIRONMENT-VARIABLES?
<unfroq>Hi Guix! When I build a package with 'guix build -L . -f ocrmypdf.scm' it tells me: WARNING: (ocrmypdf): `python-pikepdf' imported from both (python-pikepdf) and (gnu packages python-xyz) and a similar warning like this for another package. How can I prioritize the custom packages set in the load-path? My build fails, because the build is pointing to the wrong - old - package, not the one I need to build the package.
<mirai>sneek: later tell apteryx 😊thanks
<mirai>TristanCottam[m]: that path is not writeable I think
<mirai>but regarding the relative path thing, perhaps a chdir will do?
<jpoiret>cow_2001: you might run into problems if you use RnRS libraries instead of guile modules
<TristanCottam[m]>mirai: Is there no way of converting a FHS path to its profile equivalent?
<TristanCottam[m]>If I could just use the search paths defined for minetest inside MAKE-FORKEXEC-CONSTRUCTOR's environment, it would solve everything.
<jpoiret>unfroq: you can use (@ (python-pikepdf) python-pikepdf) but I would suggest you just name that variable differently
<TristanCottam[m]>And adding "MINETEST_SUBGAME_PATH=/run/current-system/profile/share/minetest/games" feels wrong.
<jpoiret>what are you trying to achieve exactly by defining a package that is already in Guix? Maybe we could help you with that
<TristanCottam[m]>I'm trying to define a service for minetest, to run it as a server daemon.
<TristanCottam[m]>I discovered native-search-paths aren't effective inside make-forkexec-constructor (although I don't understand why they aren't set as search-paths, since they're needed at runtime)
<jpoiret>TristanCottam[m]: did you try out adding fields to the configuration record for your service, that are lists of mods/games? then you can just use (string-join (map (lambda (s) (string-append s "/share/minetest/games")) #$(minetest-configuration-games config)) ":")
<TristanCottam[m]>I didn't realize every single game/mod has that same directory structure, I can't imagine it not working then.
<TristanCottam[m]>I'll give it a go.
<cow_2001>jpoiret: hmm.. okay. converted. now, when i run `guix build -L . guile-clipboard-speaker`, it also runs the whole program
<jpoiret>wdym it also runs the whole program?
<TristanCottam[m]>Also didn't realize I could use colons in this environment variable
<jpoiret>TristanCottam[m]: a profile is just a combination of all the store outputs + a little bit of post-processing
<cow_2001>i've put this file in guix-package.scm. the rest of the files are also in the root of the git work tree. i really should put everything in their own modules.
<TristanCottam[m]>jpoiret: Oh wow, thanks for the info.
<cow_2001>jpoiret: it runs the scm script i would like to run when the program is run, not when it is installed
<cow_2001>i have to say something positive about the web version of the manual: i love its parenthesis matching colours
<cow_2001>though i would have turned it on by default, not just by mouse hover
<cow_2001>wait, no. on by default doesn't work. too many same level parenthesis taking the same colour, maybe.
<mirai>TristanCottam[m]: I don't know, I haven't done anything of the sort before
<TristanCottam[m]>I'm trying out jpoiret's suggestion, which should work AFAICT.
<mirai>jpoiret: re RnRS vs guile-modules, what kind of problems?
<jpoiret>mirai: I believe (guix modules) is only equipped to deal with guile modules
<cow_2001>(thank you, by the way)
<apteryx>ah, we should get our meson-build-system to set --bindir when there's a "bin" output
<sneek>apteryx, you have 1 message!
<sneek>apteryx, mirai says: 😊thanks
<apteryx>that's now supported, since our patched 0.59 onward
<jpoiret>apteryx: are you saying that will solve the gtk+ problem on core-updates? 8)
<PotentialUser-37>hiall. I'm  from Germany os i chose timezone (timezone "Europe/Berlin"). hwclock shows correct time but date shows +1 hour. Do i have to do additional configurations?
<TristanCottam[m]>jpoiret: How could I extract the procedure you suggested above?
<TristanCottam[m]>I'm unsure how to deal with the gexp situation
<jpoiret>PotentialUser-37: you're on a dualboot I assume?
<TristanCottam[m]>I think your hardware clock should be set to UTC.
<PotentialUser-37>jpoiret no. running it in qemu
<jpoiret>some oses store local time in the hw clock but Linux stores it in UTC
<PotentialUser-37>so timezone does what?
<TristanCottam[m]>It sets your operating system timezone.
<jpoiret>timezone tells the glibc that the local time zone is UTC+2 and glibc does the necessary calculations
<PotentialUser-37>to set permamnetnly the correct tiem can i simply set "date" the standard way?
<jpoiret>no, I don't think you'll be able to permanently set the time for a vm like this
<jpoiret>how did you start the VM?
<jpoiret>you can pass options to QEMU to set the proper hwclock i think
<cow_2001>how do i make geiser aware of the guix modules?
<PotentialUser-37>created infrastructure via virt-manager , then did normal install
<[>Should I enable compression for /gnu when installing on btrfs?
<bjc>why wouldn't you?
<apteryx>jpoiret: yes!
<PotentialUser-37>jpoiret hwclock seems fine...but date does show +1
<apteryx>I'm testing the following patch:
<jpoiret>PotentialUser-37: does hwclock -u give you the right time?
<cow_2001>when define-publicing, should i define it with a name inside the (gnu packages ...) hierarchy?
<cow_2001>wait, no. (define-module (gnu packages guile guile clipboard) ...)
<jpoiret>PotentialUser-37: that's definitely weird
<cow_2001>(define-module (gnu packages guile guile-clipboard-speaker) ...)
<jpoiret>what guix version are you using?
<PotentialUser-37>jpoiret used guix-system-install-1.4.0.x86_64-linux.iso to install
<apteryx>[: it's a good idea, yes! I use compress=zstd with great results
<cow_2001>guix --version says 47ea688fd27d0ce0c8ea5481f1f94d0ebc3e37eb, which may or may not be what you're after
<quidnunc>Am I supposed to be able to install packages on emacs-next-pgtk (installed via guix) using the internal emacs package manager?
<cow_2001>it's an apt install guix type of guix, plus a guix pull and setting a bunch of environment variables in the dot files (and removing some from the system-wide ones)
<cow_2001>okay, here is the whole mess.
<pusherofbrooms9>quidnunc I have a similar use case. Most packages seem to install just fine via "guix home" but I've seen a handful that pull in emacs 28 as a dependency. They all seem to work in emacs-next-pgtk though.
<unmatched-paren>afternoon guix! :)
<[>How can I use hosts-service-type to add extra hosts from a file rather than a list (similar to (hosts-file (local-file "/etc/guix/hosts")))?
<unmatched-paren>[: add to your services field:
<unmatched-paren>(simple-service 'hosts hosts-service-type (list #| hosts here |#))
<unmatched-paren>this will create a new service HOSTS that extends HOSTS-SERVICE-TYPE with the provided list of hosts
<unmatched-paren>the LIST should look something like this:
<bjc>and here i was thinking that ‘[’ was unmatched-paren's new handle =)
<unmatched-paren>(list (host "IP-ADDR" "HOSTNAME") ...)
<unmatched-paren>bjc: hehe. unfortunately i didn't realise that was permitted until it was too late :)
<unmatched-paren>"Error (code 432): ( Erroneous Nickname"
<unmatched-paren>let's try...
<unmatched-paren>gah, it's registered :(
<unmatched-paren>fun with macros: DEFINE-RECORD-TYPE* tribute act :P
<glenda>Hi people. I am compiling something, and getting this error: "fatal error: linux/errno.h: no such file or directory". What do I need to install to get it?
<glenda>Sorry if it's wrong channel to ask.
<unmatched-paren>glenda: you need linux-libre-headers (``guix shell linux-libre-headers'')
<glenda>Another problem: gcc: fatal error: cannot execute 'as': execvp: No such file or directory
<unmatched-paren>add ``gcc-toolchain'' to that ``guix shell'' line :)
<unmatched-paren>you shouldn't use ``gcc'' by itself
<unmatched-paren>never install it or use it with ``guix shell''; it's for internal use only, i think
<glenda>Done, same error
<unmatched-paren>what package are you compiling? or is it just your own thingL
<unmatched-paren>that's in guix, so you can just exit that guix shell and instead do ``guix shell -D drawterm'' to get all the right dependencies
<glenda>Ah, in progress, hope will work, thanks.
<glenda>Just Guix repository has outdated drawterm.
<glenda>And still same error.
<unmatched-paren>maybe it'd be best to try updating the Guix drawterm package
<unmatched-paren>guix isn't designed for installing things locally with ``sudo make install'
<glenda>Let me try, but I don't think it has latest version.
<unmatched-paren>i mean submitting a patch to guix to update its drawterm package
<unmatched-paren>it's fairly straightforward
<glenda>And how to do that?
<unmatched-paren>first ``git clone''
<unmatched-paren>cd into the git repo, and run ``guix shell -D guix'' to set up a guix dev environment
<glenda>Cloning, going to take forever.
<unmatched-paren>then run ``./bootstrap && ./configure --localstatedir=/var && make -j$(nproc)'' to build it (this will take a bit of time, i'm afraid)
<unmatched-paren>install ``git'' and ``git:send-email'' if you don't already have them
<unmatched-paren>create a new branch with ``git branch -c NEW-BRANCH-NAME''; if you don't do this, it'll be quite annoying to manage multiple patch proposals at once
<unmatched-paren>then use ``guix show drawterm'' and look at the ``location'' field to determine where the package is defined
<PotentialUser-37>Do i remeber correctly that botstar aso . should be done as user and that i could not build some parts of guix whle being root?
<PotentialUser-37>omg...sry typos
<unmatched-paren>tell me when you've finished that and i'll explain how to modify the package definition :)
<glenda>Oh wow, how complicated.
<PotentialUser-37>Do i remember correctly that bootstrap-command and the build itself should be done in useraccount and that i had errors building some part when being root ?
<unmatched-paren>ah, actually, there is another way to find the package
<unmatched-paren>PotentialUser-37: i'm not sure whether it'd fail, but definitely don't do it as root regardless
<quidnunc>pusherofbrooms9: Am I supposed to be able to install packages through melpa?
<quidnunc>glenda: The emacs package repository
<unmatched-paren>glenda: the other way would be to run ``./pre-inst-env guix edit drawterm''
<unmatched-paren>this will only work if $EDITOR is set to your preferred editor, though
<glenda>After bootstrap?
<unmatched-paren>glenda: yes, after bootstrap/configure/make
<unmatched-paren>(the gnu build system is weird -.o.-)
<glenda>./bootstrap: line 27: exec: autoreconf: nmot found
<glenda>I did guix shell -D
<unmatched-paren>did you do this inside ``guix shell -D guix''?
<unmatched-paren>autoreconf works for me inside ``guix shell -D guix''...
<glenda>What a weird day
<unmatched-paren>glenda: the only thing i can think of: have you ``guix pull''ed recently?
<unmatched-paren>if it's *really* outdated it's possible your ``guix'' package doesn't include ``autoconf'' as an input, i suppose...
<glenda>Maybe two weeks ago
<unmatched-paren>yeah, it should work
<PotentialUser-37>building at this moment. After it is built how to install it to system?
<unmatched-paren>PotentialUser-37: you shouldn't
<unmatched-paren>instead, use ./pre-inst-env
<unmatched-paren>to test it
<glenda>I will do guix pull for anything anyway.
<PotentialUser-37>can i do "./pre_inst_env guix system reconfigure" and similar?
<unmatched-paren>./pre-inst-env is a script that's created during one of the build stages (not sure which...) that sets a bunch of environment variables that tells guile to search for guix modules in the current directory rather than in ~/.config/guix/current, which is where ``guix pull''ed guixes are stored
<unmatched-paren>and then runs the command you pass it
<PotentialUser-37>./pre_inst_env is available after bootstrap and setting var
<unmatched-paren>(hence ``./pre-inst-env guix edit drawterm'' opens the right file in the git repo in your editor)
<unmatched-paren>PotentialUser-37: okay so this is weird: i have no idea why, but ``./pre-inst-env'' *really* hates sudo
<glenda>glenda really hates sudo and make everything overcomplicated
<unmatched-paren>so you have two choices: use ``guix system container'' instead, or use this arcane incantation:
<unmatched-paren>glenda: welcome to autotools :)
<glenda>I love Plan9 more after that
<unmatched-paren>PotentialUser-37: sudo guix shell -D guix -- ./pre-inst-env guix system reconfigure SYSTEM-FILE
<unmatched-paren>also, if you have third-party channels, you need to add ``-L ~/.config/guix/current/share/guile/site/3.0'' onto the end
<unmatched-paren>but this is only if you need to use sudo with ./pre-inst-env
<unmatched-paren>ACTION afk for a bit, sorry
<unmatched-paren>glenda: maybe try closing your current terminal window and opening a new one
<rekado>on core-updates qtbase 6 fails its SSL tests
<rekado>is anyone working on this?
<unmatched-paren>because you've been opening a few guix shells, and i wonder if something's interfering...
<rekado>(I ran into this while upgrading linphone-desktop, which is almost done)
<glenda>Let me try
<glenda>exec: autoreconf: not found
<glenda>Sorry I was away, ordered ThinkPad T42!
<ieure>Nice, classic model.
<glenda>720mb of ram!
<PotentialUser-37>built already yesterday on different VM. took some time but finished and also "./pre-inst-env guix system reconfigure" worked straight least without errors and in reasonable time. did same on other VM, then changed parts of freedesktop.scm. Now it seems to build ...all of it again?
<glenda>What do you all think about 9front? I'm not sure but I think it's free.
<PotentialUser-37>never tried it...
<unmatched-paren>glenda: i don't understand...
<glenda>What you don't understand?
<unmatched-paren>glenda: maybe exit that shell and try ``guix shell -D guix -- sh -c './bootstrap && ./configure --localstatedir=/var && make -j$(nproc)'
<unmatched-paren>why it's not working
<unmatched-paren>that one works?
<unmatched-paren>running ``guix shell -D guix'' and running the commands in that shell should be exactly equivalent
<unmatched-paren>``guix shell ARGS ... -- COMMAND COMMAND-ARGS ...'' is just "run these commands in the shell and exit''
<glenda>Stranger, okay waiting for it to compile
<PotentialUser-37>I'm running "guix shell -D guix --pure" ...
<PotentialUser-37>is pure the difference?
<unmatched-paren>hopefully it should be plain sailing fro-- actually i'd better not say that
<glenda>Is MIT free license?
<unmatched-paren>glenda: yup
<unmatched-paren>you talking about the drawterm license?
<glenda>Yes I think
<glenda>9front also has mit
<unmatched-paren>Guix calls that license "Expat" because *technically* there are two slightly different MIT licenses
<unmatched-paren>Expat and X11, which is like Expat except it contains some X-specific stuff (about trademarks, i think?)
<unmatched-paren>anyway... once you've built guix, run ``./pre-inst-env guix edit drawterm'' and the package definition should pop up in whatever editor you've got set as $EDITOR
<glenda>I guess when using Guix, I should forget about everything I used in other distributions.
<unmatched-paren>a good idea :)
<glenda>Minute later: So can anyone tell me plase, what is shell? :p
<glenda>That was a joke, sorry
<glenda>Recently I threw all distributions to trash, and installed Guix to all machines.
<glenda>Except server of course
<rdrg109>[Q] What's the name of the default display manager that is used in Guix? Suppose I install Guix using the graphical terminal-based installer and I don't change it afterwards (just if this matters, in the installation, I chose "Exams EXWM" when I was asked for choosing a desktop environment) I'm asking because I want to report an issue and I want to be clear on the terms that I'm using.
<rdrg109>glenda: exwm is a windows manager, not a display manager. A display manager is a graphical login manager which, in this case, starts EXWM
<glenda>ah, it uses gdm
<glenda>(Gnome Display Manager)
<unmatched-paren>glenda: has it finished compiling?
<rdrg109>glenda: thanks
<glenda>no. [ 42%] GUILEC gnu/packages/crates-io.go
<rdrg109>glenda: a question out of curiosity, how could I have determined that by myself?
<glenda>I don't know.
<glenda>I just know how GDM looks
<glenda>You can throw rock at Guix developers, so they will tell you
<unmatched-paren>rdrg109: the %DESKTOP-SERVICES variable contains an instance of GDM-SERVICE-TYPE (%DESKTOP-SERVICES is included in the system config if you select a desktop in the installer)
<unmatched-paren>it is entirely possible to remove GDM-SERVICE-TYPE if you don't want it
<rdrg109>thanks glenda, unmatched-paren
<glenda>Or easier: Throw your HDD at wall few times, it will remove gdm!
<glenda>You're welsome!
<apteryx>rdrg109: 'info (guix) X Window' does mention the default login manager is GNOME Display Manager (GDM)
<glenda>unmatched-person :: Is Guix System your main?
<unmatched-paren>glenda: yes
<glenda>For how long are you using it?
<unmatched-paren>since the start of last year, i think
<glenda>And how do you like it?
<unmatched-paren>excellent, but there can be a few UI-related rough edges and i don't think there's enough documentation for the trickier aspects
<unmatched-paren>i am trying to help with the second problem by writing this series on the guix blog:
<msavoritias>after I edit the a file in then I have to git-email to send the patch to the mailing list?
<msavoritias>I dont git push right?
<glenda>Use printer, then come to FSF and give them paper (joke)
<unmatched-paren>glenda: ^ you'll need to read this too
<unmatched-paren>glenda, msavoritias: ignore the part where it tells you to use guix style, though
<unmatched-paren>that command is... a work in progress :)
<msavoritias>thanks :)
<glenda>unmatched-paren: Where are you from? Come to me and do that for me, I will make you coffee for that!
<unmatched-paren>glenda: don't worry, the process isn't as scary as the page's length might indicate :)
<glenda>Why it's so complicated? Everywhere can just make, make install..
<unmatched-paren>glenda: you don't want to make install Guix because it'll break your system
<unmatched-paren>(i think)
<glenda>I am talking about that I can't just make drawterm.
<unmatched-paren>ah, right
<unmatched-paren>that *should* work, i'm not sure why it doesn't, but it's much better to put in the effort to upgrade guix's version instead
<unmatched-paren>because then everyone who wants to use the latest drawterm can just ``guix install'' it :)
<glenda>Ah, nice then!
<glenda>ok, it finished compiling
<unmatched-paren>now create a branch:
<glenda>Can you paste command again?
<unmatched-paren>``git branch -c BRANCH-NAME''
<glenda>like: git branch -c drawterm-update?
<unmatched-paren>yeah, exactly like that
<unmatched-paren>okay, now do ``./pre-inst-env guix edit drawterm'' to bring the package up in your editor
<unmatched-paren>(it might not open the right editor if $EDITOR isn't set correctly...)
<glenda>Done, next?
<unmatched-paren>okay, there are two things you'll want to change here:
<unmatched-paren>(one moment)
<unmatched-paren>ACTION trying to figure out what the new version number should be...
<glenda>lol same
<unmatched-paren>ah, whatever. how much scheme do you know?
<jgart[m]> unmatched-paren
<jgart[m]>glenda: See that paste also
<glenda>Sorry, too long link, I can't open.
<jgart[m]>unmatched-paren: There is an issue with that package. Are you able to point it out
<jgart[m]>I think it is syntactic
<unmatched-paren>jgart[m]: what's the error?
<glenda>Should be "20230318"
<jgart[m]>'replace' may only be used within 'modify-inputs'
<jgart[m]>But I think that error might be misleading?
<unmatched-paren>jgart[m]: you need to #~ the MODIFY-PHASES
<jgart[m]>oh damn
<jgart[m]>not sure how I missed that
<unmatched-paren>glenda: that paste has an updated drawterm package
<jgart[m]>I'm going crazy. I need to take a break
<jgart[m]>from packaging
<jgart[m]>glenda: Why should it be 0318?
<glenda>Last commit: 2023/03/18
<jgart[m]> 26e42d11 – Jacob authored - 2023/04/05 22:59
<unmatched-paren>jgart[m]: i must be hallucinating:
<unmatched-paren>Last commit:
<unmatched-paren>05c9c55f – Jacob authored - 2023/03/18 01:10
<jgart[m]>ya, that's why I need a break
<glenda>So 20230318?
<jgart[m]>glenda: yes
<glenda>jgart[m] take a break and enjoy
<glenda>Edited commit and git-version, next?
<unmatched-paren>glenda: you also need to update the hash
<glenda>Where can I get it
<unmatched-paren>git clone the source, then run ``guix hash -rx CHECKOUT-DIR''
<unmatched-paren>for tarballs, you can just ``guix download URL'', but unfortunately there's no equivalent for git repos yet
<unmatched-paren>glenda: oh, yeah, you'll also need to bump the REVISION
<unmatched-paren>actually, no
<unmatched-paren>you don't technically *need* to
<glenda>need or don't?
<unmatched-paren>glenda: i'd say bump it
<unmatched-paren>it's not technically necessary, but still do it
<unmatched-paren>actually, no
<unmatched-paren>reset it to 0
<jgart[m]>Should glenda update the guix style in this run?
<jgart[m]>or ignore?
<unmatched-paren>glenda: this package uses an old style of writing packages, but updating it might be a bit complex; do you want to do that?
<unmatched-paren>well, it's not *that* hard
<glenda>Is it complicated?
<unmatched-paren>but it's still extra work
<unmatched-paren>basically you'd make some minor changes to the ARGUMENTS field
<jgart[m]>Here glenda
<glenda>IIs it any useful?
<unmatched-paren>it doesn't change anything, but it's good to get everything up to date with the latest style
<jgart[m]>glenda: Just copy this:
<jgart[m]>I've updated the guix style in that paste
<glenda>Maybe you can short this url?
<glenda>ah, nevermind, give me a minute
<f9>Resend this link
<jgart[m]>glenda: make sure to import #:use-module (guix gexp)
<jgart[m]> (guix gexp)
<unmatched-paren>glenda: the #~ thing is a gexp, which is described in my third blog post (yet to be published):
<jgart[m]>glenda: which I still need to read and review ;() unmatched-paren
<jgart[m]>I'll do that
<glenda>Okay, copied that pasta. I don't think I understand gexp, what to do with it?
<jgart[m]>Just copy it. It'll be too much of a rabbit whole right now I think
<jgart[m]>Later read unmatched-paren 's blog post
<glenda>Copy what?
<unmatched-paren>glenda: all you really need to know at the moment is that #~ creates an expression that is "deferred" until build time, and #$ lets you access things from the outside world
<unmatched-paren>glenda: if you do wish to read that post, you'll need to read its two predecessors as well
<glenda>I will, but not now.
<jgart[m]>unmatched-paren: Can you explain why you need to "access it from the outside world to begin with"
<glenda>Can you just tell me what to do put in that file or what to do next?
<jgart[m]>The reader of that statement will not know why you need to access it from the outside world to begin with
<jgart[m]>glenda: Just copy my pastebin and build it
<jgart[m]>It all works
<glenda>Okay, how to build it?
<jgart[m]>And add your name to the copyright statement at the top of the file
<jgart[m]>name and email
<jgart[m]>to build it do the following:
<unmatched-paren>./pre-inst-env guix build drawterm
<glenda>Here: Copyright (c) 2021 <>?
<jgart[m]>make -j5 && ./pre-inst-env guix build drawterm
<jgart[m]>glenda: follow the same syntax as the others
<jgart[m]>name and email
<unmatched-paren>oh, yeah, you'll want to run ``guix shell -D guix -- make -j$(nproc)''
<jgart[m]>just see the others at the top of the module for an example
<unmatched-paren>before you build it
<jgart[m]>Ya you need to be in a shell glenda
<jgart[m]>lots of steps we know
<glenda>Not so fast lol
<unmatched-paren>you don't need to be in a shell for ``./pre-inst-env guix build ...''
<unmatched-paren>just for ``make -j$(nproc)''
<glenda>Yes I understood that.
<jgart[m]>glenda: Did you already run `guix shell -D guix -- make -j$(nproc)`?
<glenda>I mean, do I need to replace current copyright or add my below?
<jgart[m]>No, add a new line with your info
<unmatched-paren>add yours below
<glenda>I have runned earlier: guix shell -D guix -- sh -c './bootstrap && ./configure --localstatedir=/var && make'
<jgart[m]>glenda: When it comes time to commit, see other commits that add a package for an example of the commit style
<jgart[m]>glenda: Do you know if you are currently in a guix shell?
<unmatched-paren>glenda: you don't need to bootstrap or configure again, just make
<glenda>I'm not
<jgart[m]>You need to be in a guix shell in order to build the package
<unmatched-paren>jgart[m]: no you don't
<glenda>guix shell -D guix?
<unmatched-paren>glenda: you might as well just be inside a guix shell for the whole process though
<unmatched-paren>glenda: did you run make without -j$(nproc)?
<unmatched-paren>no wonder it took so long! :)
<jgart[m]>unmatched-paren: Are you normally not in a guix shell when building new packages?
<glenda>Maybe I like looking at compilation process for hours?
<unmatched-paren>-j sets the number of simultaneous build threads
<unmatched-paren>jgart[m]: usually i am, but it works outside
<jgart[m]>when building new packages in a checkout, that is
<glenda>So what to run now?
<jgart[m]>But why would you want to not do it "outside"
<unmatched-paren>glenda: have you done ``guix shell -D guix -- make -j$(nproc)''
<jgart[m]>glenda: Don't do the above twice as now you'll be in a sub guix shell
<glenda>Just did it
<jgart[m]>just once to get in the guix shell
<unmatched-paren>right, okay, and then ``./pre-inst-env guix build drawterm''
<glenda>Okay, in progress
<unmatched-paren>and if you want to install the new drawterm, ``./pre-inst-env guix install drawterm'' :)
<jgart[m]>ok, I'm off
<jgart[m]>good luck glenda ! you're in good hands
<glenda>Happy hacking jgart
<jgart[m]>no probs
<glenda>Thank you for helping unmatched-paren
<glenda>So let's wait one eternity for it to complete
<glenda>fatal: Server does not support shallow clients .. Failed to do a shallow fetch; retrying a f ull fetch... Is that ok?
<unmatched-paren>glenda: sounds like the git frontend really does live up to its name! :D
<glenda>the front fell off!
<glenda>Writing to you from 9front
<unmatched-paren>(i'm pretty sure it's fine; looks like the 9front git system is, uh, very primitive, that's all :))
<glenda>It's just simple
<glenda>Compilation finished
<unmatched-paren>i think not supporting shallow fetching crosses the line of "simple" into "primitive" :)
<unmatched-paren>glenda: cool, it works then?
<unmatched-paren>i presume you want to install it now?
<glenda>How to install agai?
<glenda>Yes I want, to test
<unmatched-paren>./pre-inst-env guix install drawterm
<unmatched-paren>it's the same as normal but with ./pre-inst-env
<unmatched-paren>yey :)
<glenda>What's next? Throw keyboard to wall
<unmatched-paren>now do ``git add -a'' and ``git commit''
<unmatched-paren>actually, ``git add -p'' is safer
<glenda>It shows copy5right, asks Stage this hunk?
<unmatched-paren>say "y"
<unmatched-paren>to everything that looks okay
<unmatched-paren>(git add -a doesn't ask for confirmation, so it's quite risky [what if you accidentally added a file you didn't mean to, for instance])
<glenda>There also added empty line, say no?
<unmatched-paren>it's probably fine
<glenda><stdin>:75: new blank like at EOF.
<glenda>warning: 1 line adds whitespace errors.
<unmatched-paren>oh, okay, say no
<glenda>I said yes, and it said that after
<glenda>git add -p .. :: No changes.
<unmatched-paren>oh, oops :P
<unmatched-paren>ACTION forgot how to unstage changes... one moment
<glenda>I just removed line, and git add -p again
<unmatched-paren>that also works :)
<glenda>Sorry, just on 9front files must end with empty line, so lol
<glenda>What's next again? (cannot scroll, sorry)
<unmatched-paren>remember: ignore ``guix style''
<glenda>git commit first, and then read that, right?
<unmatched-paren>your commit should look like one of the other commits that updates a packages
<unmatched-paren>first line should be:
<unmatched-paren>gnu: drawterm: Update to <new commit, truncated>.
<unmatched-paren>third line:
<unmatched-paren>* gnu/packages/plan9.scm (drawterm): Update to <new commit, truncated>.
<glenda>Literally write <new commit, truncated>?
<unmatched-paren>GNU has this really pointless commit message formatting style called ChangeLog...
<unmatched-paren>glenda: replace that with 05c9c55f
<unmatched-paren>the truncated form of the commit you updated it to
<glenda>Second line?
<unmatched-paren>both times
<glenda>I mean, you said first line, then third line
<glenda>What about second
<glenda>That's all there?
<glenda>Yeah that's what I wrote
<unmatched-paren>cool, now save and quit
<unmatched-paren>i know this is a lot, but you do get used to it
<unmatched-paren>(1) create branch (2) build guix (3) make change (4) rebuild and test (5) make commit (6) send patch to mailing list
<unmatched-paren>also, once you've finished, switch back to master, so you don't accidentally base any other new branches on update-drawterm: git checkout master
<glenda>And like that I can contribute to Guix?
<glenda>perfect! I will learn it later, but now tell me what next, git pull?
<unmatched-paren>to send the patch, follow the instructions in that manual section
<unmatched-paren> <- i actually rewrote this page a while ago...
<glenda>Maybe I am too sleepy, but I honestly can't understand that manuall.
<glenda>That link looks simpler.
<unmatched-paren>that one is the most important section (it tells you how to send a patch)
<unmatched-paren> tells you how to make sure your package is up to standards
<jgart[m]>glenda: TLDR: `git send-email --to="" -1`
<jgart[m]>make sure you have git send-email set up
<jgart[m]>glenda: See this website for how to do that:
<unmatched-paren>jgart[m]: you usually want more than that line
<mirai>unthreaded mails as well
<glenda>Can I just save it, and use my mail client?
<unmatched-paren>glenda: no
<unmatched-paren>git send-email -1 -a --base=auto
<jgart[m]>lots to learn if you're starting from not knowing any of this stuff but don't worry
<jgart[m]>you'll learn it one at a time
<unmatched-paren>oh, actually
<unmatched-paren>you should do --base=master, not --base=auto
<jgart[m]>unmatched-paren: What does that do? TIL
<jgart[m]>Can you explain it to me and glenda
<mirai>glenda: in theory “you can” but in practice it either mangles the thing or it makes for a poor reviewer experience
<jgart[m]>--base that is
<unmatched-paren>that adds a marker to the patch that tells the committer what commit it's based on
<unmatched-paren>which makes it a bit easier to commit
<glenda>fatal: base commit shouldn't be in revision list
<jgart[m]>why not --base=auto?
<mirai>simply use git send-email, it will become ingrained in no time
<jgart[m]>so you can do --base-core-updates?
<unmatched-paren>glenda: hmm
<unmatched-paren>not sure what that means
<glenda>with --base=auto it works
<unmatched-paren>for me it doesn't work unless i do git branch --set-upstream-to=master first
<unmatched-paren>which is more annoying than just doing --base=origin/master
<glenda>Okay, let me configure smtp
<glenda>Where do I put that: [sandemail] smtpserver= ... smtpuser = ... etc
<unmatched-paren>glenda: ~/.gitconfig
<unmatched-paren>glenda: here's my gitconfig:
<glenda>smtpserver = .. smtpuser = .. smtpencryption = ssl .. smtpserverport = 465 .. correct?
<jgart[m]>glenda: does your smtp server use port 465?
<jgart[m]>if so, then yes
<glenda>yes, now send?
<jgart[m]>sounds like most probably
<jgart[m]>run my tldr above or what unmatched-paren said
<glenda>After saying yes, I think it's stuck.
<unmatched-paren>what's the last line of output?
<glenda>send this email? (...): y
<unmatched-paren>and then it's just hanging?
<unmatched-paren>it should be prompting you for your smtp password
<glenda>No it doesn't
<unmatched-paren>can i see your gitconfig?
<glenda>Sure, second
<glenda>the most simple pastebin!
<glenda>I will be back in few minutes
<unmatched-paren>glenda: maybe you need smtpport = 465
<unmatched-paren>like my one
<glenda>did, still stuck
<jgart[m]>glenda: how are you stuck?
<glenda>not me, ssh send-mail
<jgart[m]>What is standard output telling you?
<unmatched-paren>jgart[m]: it's literally hanging after they type 'y'...
<jgart[m]>ok, I'm not sure in that case
<jgart[m]>that hasn't happened to me
<unmatched-paren>me neither
<jgart[m]>I would need more context to debug that further
<glenda>Does it have any option to debug? Log file?
<unmatched-paren>no idea :(
<glenda>sad, any ideas what to do then?
<unmatched-paren>see man git-send-email
<glenda>And... nothing
<PotentialUser-37>install terminal-multiplexer(tmux or similar), then check processes
<glenda>Any other ideas?
<unmatched-paren>searching is only turning up actual errors like "failed to initialise smtp"
<glenda>That's weird.
<unmatched-paren>glenda: ah, maybe try this:
<PotentialUser-37>this is smtp issue? Does tcpdump show activity? is target server/port contacted?
<kozo[m]>Hello Guix, I am using guix shell and am testing the creation of udev rules. The rule is not being created in /etc/udev/rules.d/ and I can't expose or share that path as it's already symlinked, just that it's empty when in the container. Anyone have a suggestion of how I could proceed?
<jgart[m]>Can you share the file that you are currently doing that with?
<glenda>STill stuck.
<glenda>tcpdump shows
<unmatched-paren>glenda: i guess you could try port 587
<unmatched-paren>barring that the only thing i can think of is that the mail service itself is having issues at the moment
<glenda>no, stuck
<kozo[m]>jgart, sorry, checking if you are talking to me or you are helping glenda
<glenda>Yes I think that it can be server issue
<jgart[m]>I was talking to kozo
<jgart[m]>that time
<jgart[m]>to you yes
<jgart[m]>sharing your file would avoid a lot of assumptions about what we think you are actually doing
<kozo[m]>One moment please
<kozo[m]>The appimage I am trying to run requires the .rules file that I have. After reading the reference manual, I can't figure out how to get it into /etc/udev/rules.d/ within the container
<PotentialUser-37>netcat shows that smtp-server is listening on addresses/ports:
<glenda>Ah, and also I remember I tried to use Icedove recently, and smtp didn't worked too.
<glenda>I think it's my mail provider issue, I emailed them.
<kozo[m]>I created a package locally on my machine that installs it and I also defined a custom rule on my local machine to do it but I don't know how to pass/use those for the container
<glenda>unmatched-paren <-- I guess we have to just wait reply from A/I now?
<unmatched-paren>glenda: i suppose... does it not have something like ?
<kozo[m]>Could I symlink it from my machine into the container?
<glenda>no. Last post: Some mailboxes will be temporarily unreachable next sunday due to maintenance work on one of our services. (Mar 17)
<glenda>Let's just wait then.
<glenda>unmatched-parent :: Anyway, thank you a lot for help, and I surely will learn that and will annoy you later with my questions! I will write when I get reply from A/I and/or solve smtp troubles.
<unmatched-paren>glenda: no problem! by the way, if i'm away, you can use sneek:
<unmatched-paren>sneek: later tell glenda: like this
<sneek>Got it.
<unmatched-paren>sneek: botsnack :)
<jgart[m]>I want a botsnack as well! 😹
<glenda>sneek: later tell unmatched-parent:meow
<sneek>glenda, you have 1 message!
<sneek>glenda, unmatched-paren says: like this
<glenda>oh lol
<glenda>jgart[m]: botsnack!
<glenda>unmatched-paren: botsnack!
<glenda>Also, can you send me links to articles that I can read to learn more about it?
<glenda>So I will save them to yet another SOMETHING.TXT
<glenda>My /home/user is always mess
<jgart[m]>Ok, let's stop trolling sneek and taking all its' botsnacks
<unmatched-paren>glenda: learn more about what? :)
<glenda>About botsnack of course!
<glenda>About contributing to Guix, packages, etc
<jgart[m]>Someone should make a Udemy course on Guix Packaging
<unmatched-paren>glenda: :)
<jgart[m]>Unless Udemy means putting it on a PeerTube instance
<glenda>Thanks, unmatched-paren!
<glenda>PeerTube? I have never used it I think.
<glenda>I used to use Invidious in the past, but recently stopped.
<glenda>I have found some content on YouTube that offenses me (and not only) that is really popular, and Google wasn't going to remove it, so I don't use YouTube at all even through Invidious/Piped.
<kozo[m]>Should I email the help list with my question as well?
<unmatched-paren>kozo[m]: yes
<kozo[m]>Thank you