IRC channel logs

2017-07-08.log

back to list of logs

<fr33domlover>"The guile command must be in the search path on the build machines" - this is for offloading builds. `which guile` finds nothing. Should I `guix package -i guile`? If yes, which version is recommended?
<ZombieChicken>Anyone here use (dependencies ...) in the file-system definition? I can't seem to figure out what it's expecting for a mapped device
<ZombieChicken>okay, so I might have figured it out
<fr33domlover>guile: warning: failed to install locale
<fr33domlover>^ I get this warning when running guix commands
<fr33domlover>What does it mean? How do I fix?
<fr33domlover>this too:
<fr33domlover>warning: failed to install locale: Invalid argument
<iyzsong>fr33domlover: packages from guix won't use the locale from host, see '2.6.1 Locales' of the guix manual.
<fr33domlover>iyzsong, yes I know that
<iyzsong>in summary, you need to install the glibc-utf8-locales package, and set GUIX_LOCPATH.
<iyzsong>if the warning is from the guix-daemon, then you need to install that with root user, and restart the guix-daemno service.
<fr33domlover>iyzsong, I did all that (except the locales seem to already be installed, idk I'm going guix package -i just in case
<fr33domlover>*doing
<rekado>fr33domlover: are you using the systemd service for guix-daemon?
<fr33domlover>rekado, no I use upstart. But it happens even when I do guix --help
<fr33domlover>so idk if related to daemon
<fr33domlover>I'm trying this on a different user, not root
<fr33domlover>to compare if it works there
<fr33domlover>hmmm nope it's still happening
<slyfox>does 'ls -l $GUIX_LOCPATH' make sanely?
<slyfox>s/make/look/
<fr33domlover>slyfox, it shows a dir 2.25/
<fr33domlover>and locales inside that dir
<slyfox>fr me ls shows a symlink
<fr33domlover>slyfox, in my first guix install it's a symlink too, I started at guix 0.11 there. But now I installed 0.13 on a fresh install, other machine
<fr33domlover>and that's where I see the 2.25 thing
<slyfox>and to sanity-check: 'locale' shows local available as a directory in 'GUIX_LOCPATH', right?
<fr33domlover>slyfox, no it shows a different locale oops :P
<fr33domlover>I guess that's the issue :P
<fr33domlover>My locale is UTF8 but not included in the utf8-locales package
<slyfox>'locale -a' should output rough list of understood locales
<slyfox>i think proper spelling is UTF-8 or utf8
<slyfox>(not sure about the casing. glibc can canonicalize those somehow)
<slyfox>i use locale exactly as its specified in SUPPORTED_LOCALES
<fr33domlover>slyfox, `which locale` says /usr/bin/locale so that one seems to work again the system locales, not guix's
<fr33domlover>*against
<slyfox>yeah. you need guix's locale
<slyfox> /gnu/store/rmjlycdgiq8pfy5hfi42qhw3k7p6kdav-glibc-2.25/bin/locale
<slyfox>should be somewhere there
<slyfox>make sure your guix is build with the same libc version
<fr33domlover>thanks slyfox
<fr33domlover>Q: I did guix pull, moved from 0.11 to 0.13. Then I did the setup for offloading. Now I run `guix offload test` and I get this: guix: offload: command not found
***jonsger1 is now known as jonsger
<fr33domlover>Q: I tried running `guix pull --url=...` with the commit fixing the guile ssh issue
<fr33domlover>I get the same result: after "PASS: key.scm
<fr33domlover>it just keeps running 10% CPU without any new input
<fr33domlover>Idk if the build is even making progress
<fr33domlover>Guile is running, `top` says 10% CPU usage, no input is being printed, --verbose doesn't help
<civodul>Hello Guix!
***jonsger1 is now known as jonsger
<joshuaBPMan_>good morning guix!
<quiliro>joshuaBPMan_: good morning
<quiliro>how are you?
<quiliro>hello
<quiliro>no one here?
<oriansj>quiliro: is here but not always attentive
<RX14>I'm trying to build a guix image on scaleway for fun, and they require init to be at /sbin/init and not be a symlink
<RX14>what's the best way to achieve this?
<RX14>looks like it's basically impossible to run guix on scaleway given i have no control over the initrd
<jsierles>can I use 'guix archive' to get a newer version of guix, instead of using 'guix pull'?
<sneek>Welcome back jsierles, you have 1 message.
<sneek>jsierles, rekado says: You don’t have to use old hardware to use GuixSD. You only need to make sure that your hardware is supported by Linux libre.
<civodul>jsierles: no, or you'd need to have an archive of Guix to import
<civodul>ACTION discovers https://www.usenix.org/conference/atc15/technical-session/presentation/minnich
<civodul>there are similarities with the GuixSD initrd + Bournish
<jsierles>civodul: ok. i'm just trying to find a good way to reproduce a 'guix pull' without actually having to run guix pull and wait around for compilation
<jsierles>since it seems to be building packages I already have in a substitute server
<jsierles>like coreutils, gcc..
<civodul>you could point it at your server with --substitute-urls maybe?
<civodul>the only thing that may still be built is Guix itself
<jsierles>civodul: you mean 'guix pull'?
<jsierles>the daemon is pointed at my server
<jsierles>despite that, it seems to build a lot of packages
<jsierles>is there a way to see which packages it needs?
<quiliro>ed
<quiliro>looks that i got disconnected
<quiliro>hello
<rekado>quiliro: hi
<quiliro>rekado: hi!
<quiliro>i was trying to incorporate qscintilla for openmolar to work
<quiliro>rekado: could you help me finish the openmolar package definition?
<rekado>quiliro: sure, what do you have now?
<quiliro>rekado: please tell me how to paste from emacs
<rekado>I don’t usually do that. You could get a shell with “M-x shell” and then paste with curl
<rekado>e.g.: cat gnu/packages/abduco.scm | curl -F 'sprunge=<-' http://sprunge.us
<quiliro>ACTION is installing curl
<castilma>how usable is guixsd while upgrading system services? i.e. $ guix system reconfigure
<castilma>do normal users notice something? and does that command reboot?
<rekado>castilma: the command does not cause a reboot.
<rekado>castilma: after ’reconfigure’ you need to restart running services.
<quiliro>ACTION is done installing curl
<quiliro>rekado: http://sprunge.us/MLOA
<castilma>for what upgrades is a restart needed? kernel, grub only?
<rekado>quiliro: what about qscintilla?
<rekado>castilma: I would recommend a restart whenever you want to be certain that all running processes are up-to-date.
<rekado>castilma: but yes, for kernel updates a restart is required.
<quiliro>rekado: it was asked for when running ./pre-inst-env guix environment --ad-hoc openmolar -- openmolar
<quiliro>it gave an error regarding qtsc
<rekado>quiliro: have you started packaging it yet?
<quiliro>rekado: i dont know how...but found the package in parabola.nu/packages
<quiliro>it is called puthon-qscintilla
<quiliro>but i am not sure that is really needed
<quiliro>would you please check?
<quiliro>s/puthon/python/
<quiliro>parabola described its described
<quiliro>parabola described its dependencies
<rekado>I see that “Qsci” is imported from PyQt5
<rekado>could it be that our package for PyQt5 is not fully featured?
<rekado>let’s check that first
<quiliro>rekado: did you check?
<quiliro>or should i do that? how do i do it?
<quiliro>is it better to use guix package -u
<quiliro>or guix package -u .
<quiliro>?
<quiliro>after guix pull
<rekado>quiliro: I think we’re just missing Qscintilla.
<quiliro>rekado: yes ...i tested it with guix package -A qscintilla
<quiliro>and got no output
<rekado>we can download the sources here: https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10.1/QScintilla_gpl-2.10.1.tar.gz
<quiliro>ok...same proceedure as medical.scm?
<rekado>yes, similar
<rekado>but this time you can add this package definition somewhere in qt.scm, close to python-pyqt
<quiliro>in what file?
<rekado>let’s compare hashes. I get “0r7s7ndblv3jc0xig1y4l64b6mfr879cdv3zwdndn27rj6fqmycp”
<rekado>quiliro: start by reading QScintilla_gpl-2.10.1/doc/html-Qt4Qt5/index.html
<rekado>quiliro: looks like this needs to use the gnu-build-system with some modifications.
<rekado>quiliro: you will need to replace the configure phase with a procedure that runs “(zero? (system* "qmake"))”. That gives you the Makefile that the gnu-build-system needs.
<rekado>you will also need to (chdir "Qt4Qt5") first.
<rekado>I need to go for a couple of hours now, but I’ll be back later.
<quiliro>rekado: ok...im checking
<quiliro>rekado: what you have told me...just that it take long for me
<quiliro>i cannot find how to calculate hash
<quiliro>would someone please tell me how check the hash of a file?
<castilma>$ sha256sum file
<castilma>or $ guix hash file
<quiliro>castilma: thank you
<quiliro>rekado: it is the same hash
<rekado>ACTION is back
<rekado>quiliro: good.
<rekado>quiliro: did you create a new package definition already?
<quiliro>i was reading what you told me...did not create it yet
<quiliro>i did not understand what you suggested to do
<rekado>oh
<rekado>have you looked at the install.html yet?
<quiliro>rekado: i did not find relation of what you asked me to read with what you suggested
<quiliro>yes i read it
<rekado>for any package you first need to figure out how to build it.
<quiliro>ok
<rekado>the install.html tells us that we need to “cd Qt4Qt5”, then “qmake”, then “make”, then “make install”.
<rekado>the last two steps are the “build” and “install” phases of the gnu-build-system.
<rekado>we can add the other two steps with “modify-phases”
<rekado>so, I suggest you open qt.scm
<quiliro>it is open
<rekado>and then create a new definition for qscintilla
<rekado>i.e. (define-public qscintilla …)
<rekado>use the gnu-build-system and add a native-inputs field like this: (native-inputs `(("qtbase" ,qtbase)))
<rekado>we need qtbase for the “qmake” tool, which we are supposed to execute.
<quiliro>ok
<rekado>when you’re done with that let me know and we’ll work on the extra build phases.
<quiliro>cool
<rekado>quiliro: how’s it going?
<quiliro>rekado: done
<quiliro>do i paste it?
<quiliro>rekado: do you think all the file will fit in a paste?
<rekado>better not
<rekado>you could just paste the output of “git diff”
<quiliro>ok
<quiliro>rekado: git diff | curl -F 'sprunge=<-' http://sprunge.us
<quiliro>is that correct?
<quiliro>it is taking a long time
<rekado>try “git diff” first and make sure that it only prints your changes
<rekado>otherwise try “git diff gnu/packages/qt.scm”
<quiliro>rekado: WARNING: terminal is not fully functional
<quiliro>- (press RETURN)
<quiliro>then it opens a file as with less
<quiliro>i have to press q to go back to the console
<quiliro>prompt
<rekado>yes, that’s whta “git diff” does.
<rekado>if you’re in M-x shell you can set the PAGER environment variable to “cat”
<rekado>because Emacs would be your pager in that case
<quiliro>rekado: http://sprunge.us/QBZf
<quiliro>rekado: what do you think
<quiliro>? i
<quiliro>it looks very simple but it was a learning experience for me....especially in the use of emacs!
<quiliro>and of course in the construction of guix packages
<adfeno>quiliro: I'm glad you enjoyed it :)
<quiliro>adfeno: :-)
<rekado>quiliro: you’re missing the build-system field
<adfeno>Oh... Indeed...
<adfeno>.... I wonder which it is...
<quiliro>right
<quiliro>please wait
<adfeno>If qscintilla has a "Makefile" inside the directory, it might be the GNU build system.
<rekado>it does not, but it will after “qmake”
<quiliro>(build-system gnu-build-system)
<quiliro>right?
<adfeno>rekado: What do you mean? Do you mean that: only after qmake there will be a Makefile?
<rekado>yes
<rekado>(to both questions)
<rekado>quiliro: next step is to do as the documentation says and first enter the directory, then run qmake
<rekado>we do this by changing the standard build phases of the gnu-build-system
<rekado>quiliro: in qt.scm take a look at the “qwt” package.
<rekado>it has an “arguments” field
<adfeno>quiliro: "by changing the standard phases" we mean to do something similar to what is done in the openmolar package that you were making.
<quiliro>rekado: http://sprunge.us/EFBM
<rekado>the value of the “arguments” field is a quoted list of things that we pass to the build system to change its behaviour.
<quiliro>ok...let me see
<rekado>in “qwt” the arguments list consists of the #:phases keyword followed by a new list of phases.
<rekado>the new list of phases is the result of modifying %standard-phases
<rekado>%standard-phases is a list of build phases, such as “unpack”, “configure”, “build”, “install”, and so on.
<rekado>quiliro: while you are in a Scheme buffer hit C-c C-z to switch to geiser
<rekado>then type ,use (guix build gnu-build-system)
<rekado>then %standard-phases
<rekado>this will show you the value of that variable.
<rekado>you’ll see that this is just an association list (alist) of phase names like “unpack” and procedures
<jsierles>civodul`: sorry I wasn't clear earlier. On my substitute server, the daemon is building using a specific guix git revision
<rekado>to enter the directory and run qmake we need to add a new phase.
<jsierles>so I have 'guix-latest' in the store. can i somehow archive this so I can use that version of guix on another machine?
<rekado>quiliro: does this make sense?
<jsierles>thereby avoiding 'guix pull'
<quiliro>rekado: it makes sense...but on theory...i will try...some things i do not know how to do.... yet
<rekado>quiliro: that’s okay. We’ll do this together.
<rekado>here’s the default: (arguments '(#:phases %standard-phases))
<rekado>this means: for the selected build system use the standard phases as the build phases.
<quiliro>ok
<rekado>to change the build phases we can use the “modify-phases” syntax
<adfeno>quiliro: rekado gave us an important example: the qwt package in "gnu/packages/qt.scm" :)
<rekado>(modify-phases %standard-phases (replace 'configure (lambda _ (zero? (system* "qmake")))))
<rekado>this means: take the phases from %standard-phases and replace the phase “configure” with a new procedure
<rekado>that new procedure runs “qmake” and returns #t (true) if it returned no error, otherwise #f (false).
<rekado>this will not be enough in this case, though.
<rekado>before we run “qmake” we need to enter the Qt4Qt5 directory
<rekado>there’s a Scheme procedure to make that happen: “chdir” takes a string of a directory name and changes the current directory.
<rekado>quiliro: are these hints enough? Would you like to give it a try?
<quiliro>rekado: where do i put chdir?
<rekado>it should be part of the build phase
<quiliro>rekado: and what would its syntax be?
<rekado>give it a try in geiser!
<rekado>(getcwd) returns the current directory
<quiliro>let me re/read
<rekado>play around with chdir and see if that changes what “getcwd” tells you
<quiliro>oh!
<quiliro>where is geiser?
<rekado>hit C-c C-z in a Scheme buffer
<quiliro>rekado: where is a Scheme buffer?
<rekado>qt.scm for example
<quiliro>rekado: that is a file...ok
<rekado>if that doesn’t work maybe you haven’t set up Geiser yet
<quiliro>it worked
<rekado>in that case you can just run “guile” in M-x shell
<rekado>ok
<quiliro>(chdir "/home/quiliro/QScintilla_gpl-2.10.1/Qt4Qt5/")
<quiliro>[1]> (getcwd)
<quiliro>$3 = "/home/quiliro/QScintilla_gpl-2.10.1/Qt4Qt5"
<quiliro>just like pwd and cd
<quiliro>so ?
<quiliro>learning scheme is just repeating bash
<quiliro>:-)
<quiliro>i like it
<rekado>okay, so you now know how to use it
<rekado>the documentation says to first enter Qt4Qt5 and then run qmake
<rekado>so just place the chdir call before the (zero? …) call.
<rekado>also, note that “/home/quiliro” won’t exist.
<rekado>you only need to give it the last directory part.
<jsierles>guix export seems to work with the latest guix derivation. so the question is how to determine which packages it depends on.
<jsierles>ideal flow would be: update guix on server, archive the derivation and a manifest with its dependencies. download and install locally, and set the ~/.config/guix/latest link. any reason this wouldn't work?
<quiliro>rekado: when i first entered guile, i got:
<quiliro>rekado: (getcwd)
<quiliro>$2 = "/home/quiliro/guix/gnu/packages"
<quiliro>so changed directory
<quiliro>but i do not understand what we are doing this for...i thought we had to do it in qt.scm
<quiliro>i am finishing the lambda part
<quiliro>now
<adfeno>quiliro: rekado Just suggested you to open the Geiser/Guile console and test (getcwd) and (chdir ...) so that you could get used to what would have to be done in the .scm file.
<quiliro>oh
<quiliro>rekado: i put:
<quiliro>(arguments `(#:phases (modify-phases %standard-phases (replace 'configure (lambda _ (chdir "Qt4Qt5") (zero? (system* "qmake"))))))
<quiliro>divided in several lines
<rekado>looks good to me
<quiliro>after:
<rekado>(though a closing “)” is missing)
<quiliro>(build-system gnu-build-system)
<quiliro> (native-inputs `(("qtbase" ,qtbase)))
<rekado>okay
<rekado>I normally put the arguments field after the “build-system” field, but that has no impact on behaviour.
<rekado>I guess you can try to build it now.
<rekado>./pre-inst-env guix build qscintilla
<rekado>let’s see how far we get
<rekado>quiliro: I need to go soon.
<quiliro>rekado: several errors
<quiliro>rekado: http://sprunge.us/BQhG
<quiliro>rekado: new after saving: http://sprunge.us/AfcF
<rekado>these pastes are empty
<quiliro>the qt.scm diff is http://sprunge.us/IgOK
<quiliro>i did ./pre-inst-env guix build qscintilla | curl -F 'sprunge=<-' http://sprunge.us
<quiliro>for the previous two pastes and git diff gnu/packages/qt.scm | curl -F 'sprunge=<-' http://sprunge.us
<rekado>I think you’ll need “2>&1” to redirect the error output to stdout.
<quiliro>for the last paste
<adfeno>"2>&1" like so: ./pre-inst-env guix build qscintilla 2>&1 |
<adfeno> curl -F 'sprunge=<-' http://sprunge.us
<quiliro>./pre-inst-env guix build qscintilla “2>&1 | curl -F 'sprunge=<-' http://sprunge.us
<quiliro>adfeno: thanks
<quiliro>rekado: is that better?
<quiliro>how did my diff show?
<quiliro>rekado: that is the output...if i did not report it: http://sprunge.us/OAdK
<rekado>you can check this yourself with M-x eww
<rekado>sorry, also empty
<quiliro>and then paste the address?
<quiliro>was the above command correct?
<rekado>it may be better to do this in two steps
<quiliro>./pre-inst-env guix build qscintilla “2>&1 | curl -F 'sprunge=<-' http://sprunge.us
<rekado>no
<rekado>there’s a quote before the 2
<rekado>that doesn’t belong there
<adfeno>quiliro: Remove the quote before 2
<quiliro>i notice now
<quiliro> http://sprunge.us/dSje
<rekado>ERROR: Unbound variable: gpl3
<rekado>that’s because in qt.scm we use a prefix for all values from the license module
<rekado>the prefix is ‘license:’
<rekado>so replace ‘gpl3’ with ‘license:gpl3’
<rekado>(it’s possible that this really should be license:gpl3+, but we’ll check this later again)
<quiliro> (license license:gpl3)
<rekado>yes
<quiliro>is this correct?
<quiliro>ok
<quiliro>working
<quiliro>guix build: error: qscintilla: unknown package
<rekado>there’s got to be another error that you aren’t showing us
<adfeno>I found it.
<quiliro>;;; note: source file /home/quiliro/guix/gnu/packages/irc.scm
<quiliro>;;; newer than compiled /run/current-system/profile/lib/guile/2.2/site-ccache/gnu/packages/irc.go
<quiliro>a bunch of those
<rekado>that’s not an error
<rekado>this just means that you didn’t run ‘make’ to compile your Guix checkout from git.
<adfeno>If I'm not mistaken, the (define-publich qscintilla ...) is right, however, the (name ...) inside isn't.
<rekado>I remember that you ran ‘bootstrap’ more than once.
<quiliro>youre a clarivident
<quiliro>!
<rekado>that will create a new configure script and reconfiguring may force rebuilding of more sources than you should.
<quiliro>new error
<quiliro>guix build: error: build failed: build of `/gnu/store/lidv0sq5k2n1ff83ykjrklpph00pppyl-qscintilla-2.10.1.drv' failed
<rekado>that’s better
<rekado>what else is there?
<quiliro>ERROR: download failed "https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10.1.tar.gz" 404 "Not Found
<adfeno>quiliro: What precedes this one?
<adfeno>Hm...
<rekado>is that really where the sources come from?
<quiliro>ERROR: download failed "http://mirror.hydra.gnu.org/file/QScintilla-2.10.1.tar.gz/sha256/0r7s7ndblv3jc0xig1y4l64b6mfr879cdv3zwdndn27rj6fqmycp" 404 "Not Found"
<rekado>yeah, it’s trying other locations
<rekado>but the first of these errors should worry you more
<rekado>when I do "wget https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10.1.tar.gz" I see a 404 as well
<rekado>double check the URL for the tarball.
<quiliro>ok
<adfeno>I think it's this one: https://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.10.1/QScintilla_gpl-2.10.1.tar.gz
<rekado>I have to go now. Good luck!
<quiliro>it it /download after that
<quiliro>ok
<quiliro>thank you rekado
<quiliro>i will change it and test
<quiliro>i get a lot of permission denied error
<quiliro>s
<quiliro>Error copying libqscintilla2_qt5.so.13.0.0 to /gnu/store/6wmrf9c7rpv2c8q02vxvv1frsmljr5lh-qtbase-5.9.1/lib/libqscintilla2_qt5.so.13.0.0: Cannot create /gnu/store/6wmrf9c7rpv2c8q02vxvv1frsmljr5lh-qtbase-5.9.1/lib/libqscintilla2_qt5.so.13.0.0 for output
<quiliro>/gnu/store/6wmrf9c7rpv2c8q02vxvv1frsmljr5lh-qtbase-5.9.1/lib/ exists
<rekado>quiliro: this probably requires patching. The package tries to install the finished binaries into the qtbase output directory.
<quiliro>but not hte complete one
<rekado>but it should install into its own directory
<quiliro>yes
<rekado>it might be easiest to do this after running ‘qmake’
<rekado>there could be another build phase that patches the generated Makefile
<rekado>but I can’t help with this now; too late :)
<rekado>ACTION –> zzZZ
<quiliro>rekado: ok
<quiliro>thank you very much
<quiliro>i will leave too
<quiliro>rekado: what should i investigate
<quiliro>?
<adfeno>quiliro: I think that variables like "dir", "path", "directory", "folder", "prefix" (or any match *similar* to those) should be carefully studied.
<adfeno>I think that the qwt package in "gnu/packages/qt.scm" can provide some example.
<quiliro>adfeno: where do i search for those? in qscintilla source code?
<adfeno>quiliro: Yes, that would be agood place to start, but Guix has something that facilitates this: look for the --keep-failed option.
<adfeno>After the error it will tell you that it kept garbage in "/tmp"[something else].
<quiliro>adfeno: in emacs guix?
<adfeno>Oh... eh... I mean --keep-failed in the GNU Guix build options.
<quiliro>adfeno: thank you
<quiliro>i will investigate
<quiliro>i will return in 1 or 2 days after doing my guix homework ;-)
<quiliro>oh....by the way, how can i configure my keyboard? instructions on the manual do not work
<adfeno>quiliro: Don't worry, even I have guix homework to do sometimes, this is why I don't exitate to send my packages and questions to the guix development mailing list :)
<quiliro>:-)
<quiliro>i cannot configure my mail client (gnus) yet
<quiliro>but i will!
<adfeno>About keyboard: I wonder if some GuixSD user can help us on this one. :)
<quiliro>loadkeys /gnu/store/6a3yahf1116qm2rgxwf5ww1crz7c2xhs-kbd-2.0.4/share/keymaps/i386/dvorak/dvorak-es
<quiliro>works
<quiliro>but
<quiliro>loadkeys dvorak-es
<quiliro>will not work
<adfeno>Hm....
<adfeno>I think there is a "${HOME}/.profile" variable missing.