From: ng0 <ng0@we.make.ritual.n0.is>
To: help-guix@gnu.org
Subject: GUIX_LOCPATH problems with guix on gentoo
Date: Fri, 17 Jun 2016 10:39:50 +0000 [thread overview]
Message-ID: <20160617103949.GA4337@khazad-dum> (raw)
[-- Attachment #1: Type: text/plain, Size: 17710 bytes --]
Hi,
in team effort and with my fixes we worked on guix on gentoo for a while now.
I fixed #355355 (bugs.gentoo.org bug -> guile is 6 years outdated and broken
in portage) almost to a point where I can present the changes, have guile-2.0.11
running for half a year now and to some degree (awful openrc init) have a fully
functional guix.
This *might* be because I ran the first setup in gentoo-hardened and then
switched to gentoo-sources (vanilla) as I did not want to figure out what
kernel security setting is making guix fail. So the only shared component
in this time is gcc-hardened.
Usually this should not affect guix at all. And I believe it doesn't.
But I have no explanation why I can't set a locale and the locale from gentoo
leaks into guix (or something...).
As not everyone will want to to clone our repository listed at
http://youbroketheinternet.org/#overlay , here is the rather readable ebuild:
note, this did not function in all parts as intended and is being bug fixed while
I use it:
cat guix-0.10.0.ebuild (never mind the maybe broken syntax by copy-paste):
# Distributed under the terms of the GNU General Public License v3
#
# further changes by ng0
EAPI=5
inherit user eutils autotools
DESCRIPTION="The Guix Package Manager."
HOMEPAGE="https://www.gnu.org/s/guix"
SRC_URI="mirror://gnu-alpha/${PN}/${P}.tar.gz"
#RESTRICT="mirror"
RESTRICT="bincheck"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~mips ~arm"
IUSE="test"
#FIXME: gcc's g++ with support for the c++11 standard ?
#FIXME: package dev-scheme/guile-json
#BEWARE: ABSOLUTELY use guile from this overlay if
# you don't want to break your system.
# This is still experimental, but apparently
# more stable than the bug #355355
# celebrating its 6th anniversary this year.
# You will also need to use gnutls from this overlay,
# which links to guile here.
DEPEND=">=dev-scheme/guile-2.0.11-r99[networking]
dev-libs/libgcrypt
>=dev-db/sqlite-3.0
app-arch/bzip2
sys-devel/gcc
sys-devel/automake
sys-devel/gettext
>=net-libs/gnutls-3.3.22-r2[guile]"
RDEPEND="${DEPEND}"
pkg_setup() {
enewgroup guixbuild
enewuser guixbuilder01 -1 -1 -1 guixbuild
enewuser guixbuilder02 -1 -1 -1 guixbuild
enewuser guixbuilder03 -1 -1 -1 guixbuild
enewuser guixbuilder04 -1 -1 -1 guixbuild
enewuser guixbuilder05 -1 -1 -1 guixbuild
enewuser guixbuilder06 -1 -1 -1 guixbuild
enewuser guixbuilder07 -1 -1 -1 guixbuild
enewuser guixbuilder08 -1 -1 -1 guixbuild
enewuser guixbuilder09 -1 -1 -1 guixbuild
enewuser guixbuilder10 -1 -1 -1 guixbuild
}
src_configure() {
econf
}
#following 3 added later
src_prepare() {
default
eautoreconf
elibtoolize
}
src_compile() {
default
}
src_test() {
emake check
}
src_install() {
emake install DESTDIR="${D}"
#insinto /etc/init.d
#"${FILESDIR}"/guix
newinitd "${FILESDIR}"/guix guix
keepdir /run/guix
fowners :guixbuild /run/guix
}
#FIXME: Merge OpenRC startup file into guix master
#FIXME: Either Shepperd on Gentoo or Shepperd to OpenRC import.
pkg_preinst() {
enewgroup guixbuild
enewuser guixbuilder01 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder02 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder03 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder04 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder05 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder06 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder07 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder08 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder09 -1 /sbin/nologin "/var/empty" guixbuild
enewuser guixbuilder10 -1 /sbin/nologin "/var/empty" guixbuild
}
# To use substitutes from hydra.gnu.org or one of its mirrors (see Substitutes), authorize them:
# guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub
# (or on gentoo??: /usr/share/guix/hydra.gnu.org.pub)
pkg_postinst() {
einfo "Warning, this is a test package, thanks for participating"
einfo "in trying to get a functional Guix package manager into"
einfo "gentoo. please provide us with logs and ideas."
einfo "You have to run the following to enable substitutes from"
einfo "hydra.gnu.org or one of its mirrors:"
einfo "guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub"
einfo "you can test functionality with:"
einfo "guix pull ; guix package -i hello"
}
This is the service file used (witness how terrible wrong a work in progress service can be,
I actually use killall guix-daemon instead of the openrc stop.. but that's not the problem here):
#!/sbin/openrc-run
# Copyright 2016 the youbroketheinternet-overlay team
# Distributed under the terms of the GNU General Public License v2 or later
PIDFILE=/var/run/guix/guix-daemon.pid
GRACEFUL_TIMEOUT=${GRACEFUL_TIMEOUT:-60}
#extra_commands="checkconfig"
description="The GNU Guix Daemon"
depend() {
need net
}
#SUID_ROOT_HELPERS="guix guix-daemon"
#
#chmodown_execbin() {
# if [ -x $1 ]; then
# if [ "$3" ]; then
# chown $3 $1 2>/dev/null && chmod $2 $1
# else
# chmod $2 $1
# fi
# fi
#}
#
#checkconfig() {
# for helper in $SUID_ROOT_HELPERS; do
# chmodown_execbin ${libexec}
start() {
checkpath -d -m 0755 -o :guixbuild /var/run/guix
ebegin "Starting Guix"
start-stop-daemon --start --pidfile "${PIDFILE}" --quiet --exec /usr/bin/guix-daemon -- --build-users-group=guixbuild --listen=/var/lib/guix/daemon-socket/socket > /dev/null 2>&1
eend $?
}
#start() {
# local piddir=$(dirname ${PIDFILE})
# if [ ! -d ${piddir} ] ; then
# ebegin "Making ${piddir}"
# eend $?
# ebegin "Changing permissions of ${piddir}"
# chown :guixbuild ${piddir}
# eend $?
# fi
#
# ebegin "Starting ${SVCNAME}"
# start-stop-daemon --start --name guix-daemon --pidfile ${PIDFILE} \
# --exec /usr/bin/guix-daemon -- --debug --build-users-group=guixbuild
# eend $?
#}
stop() {
ebegin "Stopping Guix"
#start-stop-daemon --stop --pidfile "${PIDFILE}" --exec /usr/bin/guix-daemon
start-stop-daemon --stop --signal QUIT --pidfile "${PIDFILE}"
sleep 1
killall guix-daemon
sleep 1
eend $?
}
#stop() {
# ebegin "Stopping ${SVCNAME}"
# start-stop-daemon --stop --signal QUIT --pidfile ${PIDFILE}
# sleep 1
# killall guix-daemon
# sleep 1
# eend $?
#}
#[Unit]
#Description=Build daemon for GNU Guix
#
#[Service]
#ExecStart=/usr/bin/guix-daemon --build-users-group=guixbuild
#RemainAfterExit=yes
#StandardOutput=syslog
#StandardError=syslog
#
#[Install]
#WantedBy=multi-user.target
This is my .zpath which gets sourced by zsh:
ng0@khazad-dum:~$ cat .zpath
XSESSION="awesome"
export PATH=$PATH:~/src/n0.is/scripts:~/src/i3lock-fancy:/home/ng0/.guix-profile/bin
export TERMINFO_DIRS="/home/ng0/.guix-profile/share/terminfo"
export INFOPATH="$INFOPATH:/home/ng0/.guix-profile/share/info"
export ZATHURA_PLUGIN_PATH="/home/ng0/.guix-profile/lib/zathura"
#export GUIX_LOCPATH="/home/ng0/.guix-profile/lib/locale"
export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
#export GUIX_PACKAGE_PATH="/home/ng0/src/n0.is/my-guix/"
export GUIX_PACKAGE_PATH="/home/ng0/src/n0.is/youbroketheinternet-guix/"
export GUILE_LOAD_PATH="/home/ng0/.guix-profile/share/guile/site/2.0/"
guix package -l of this generation:
Generation 61 Jun 16 2016 20:34:51 (current)
dmenu 4.5 out /gnu/store/gwcymlv09dxkyxjly0l3n3j1vapbslwv-dmenu-4.5
bbdb 3.1.2 out /gnu/store/xkllqrqmw5y1raa2qb5c2s9d56a9k493-bbdb-3.1.2
xdg-utils 1.0.2 out /gnu/store/zs9wbl306q05y5a3gw67i2915xmb9vii-xdg-utils-1.0.2
tmux 2.2 out /gnu/store/awddlvv0m52d8pdx10fls8w5zjdcjv13-tmux-2.2
gs-fonts 8.11 out /gnu/store/7v3093adf31b2sg2c46y3z2m24x2cjmi-gs-fonts-8.11
font-un 1.0.2-080608 out /gnu/store/0zpbhdb4262dshfn6dxg0wn2gpqh27r9-font-un-1.0.2-080608
font-gnu-unifont 8.0.01 out /gnu/store/nwfgdild6l64fwkyf67r91wdnzgrw699-font-gnu-unifont-8.0.01
aspell-dict-en 2016.01.19-0 out /gnu/store/gv7pdi3qnkwkxx3clk221zzf40ayx478-aspell-dict-en-2016.01.19-0
aspell-dict-es 1.11-2 out /gnu/store/w6g8lzmm06xxkf9d8v1ia0i0dpk682sb-aspell-dict-es-1.11-2
aspell-dict-fr 0.50-3 out /gnu/store/ic19dn7bdc5fhpc714kamf98cqr4gkvq-aspell-dict-fr-0.50-3
aspell 0.60.6.1 out /gnu/store/nap51bp7filrnlc3cb4qg1hm787v9lq7-aspell-0.60.6.1
emacs-markdown-mode 2.1 out /gnu/store/fv25hfsp7g59pkn12wp1gl62cl0lj5cy-emacs-markdown-mode-2.1
font-hack 2.020 out /gnu/store/vn792942qyshzrhn04y4x4n8kikli535-font-hack-2.020
chess 6.2.2 out /gnu/store/91p5sqf2j8rsx3nzjkkhllr0xxlj5lxd-chess-6.2.2
xterm 322 out /gnu/store/4ddygf05z4fn8g1rkwgkbchpdb0514z0-xterm-322
font-terminus 4.40 out /gnu/store/0rhjk9j7hgwwl8m9zhk6vj7q6m32vmc6-font-terminus-4.40
luit 1.1.1 out /gnu/store/gcyqbs3c4qhi58jxvw3f3yc8agpc05ka-luit-1.1.1
font-dejavu 2.34 out /gnu/store/a76pp12hp9y9sczzkajzdy73jljpibmk-font-dejavu-2.34
font-liberation 2.00.1 out /gnu/store/4155q9bapgj0alkxrd4mpmpvqrclv7hw-font-liberation-2.00.1
font-gnu-freefont-ttf 20120503 out /gnu/store/5p87ii0g47c6ldilnnx0jwaaw3kcs74d-font-gnu-freefont-ttf-20120503
font-google-noto 20150929 out /gnu/store/xx1y7p6n4f0wwl5212l8binvhzshgliv-font-google-noto-20150929
graphviz 2.38.0 out /gnu/store/n0q0qhpspm4j3ifdjx19c4c1pkafzh67-graphviz-2.38.0
guile-json 0.5.0 out /gnu/store/yks3czzrdd350y8v4h0qd7mxhhhgikiy-guile-json-0.5.0
htop 2.0.1 out /gnu/store/g3hd9s0wc6nllvp5bbych9cyb5ri8r45-htop-2.0.1
setxkbmap 1.3.1 out /gnu/store/6xqxz63mbihw32cqyppnia7k24lgz3xm-setxkbmap-1.3.1
emacs-lua-mode 20151025 out /gnu/store/py9wbgc16gjzx7kij24xkyqkc4r4ldbn-emacs-lua-mode-20151025
emacs-ebuild-mode 1.30 out /gnu/store/kyw5fcizvgfxx8by06y56c4ajp0r81qg-emacs-ebuild-mode-1.30
mutt 1.6.1 out /gnu/store/plmr6ia9jf5qx44iwixjaiw15yapg5wv-mutt-1.6.1
mpv 0.17.0 out /gnu/store/p72hww1vv9d41vb7w4mmq4m4jbpwdqf8-mpv-0.17.0
getmail 4.48.0 out /gnu/store/zsi3klgyh5fp8hrw3g617q208cnlh6xl-getmail-4.48.0
emacs 24.5 out /gnu/store/82gacqn8igi3c9zsn6m58j93c8w2kp2b-emacs-24.5
zathura 0.3.3 out /gnu/store/m719g6iixnivz6nrpsc3jm28296gh3x9-zathura-0.3.3
zathura-cb 0.1.4 out /gnu/store/9j81s09cifixmdrk1yvvp5n2m2kad2hk-zathura-cb-0.1.4
zathura-pdf-poppler 0.2.5 out /gnu/store/wzsj8pnj741pdq94fbhlf4vx0qfsd891-zathura-pdf-poppler-0.2.5
rxvt-unicode 9.21 out /gnu/store/3gjg3f45jad8wl7k8fp9652j4qyigsgr-rxvt-unicode-9.21
shared-mime-info 1.6 out /gnu/store/b144wfsbswhxjwsx5mdy8rcm4xz7c01s-shared-mime-info-1.6
st 0.6 out /gnu/store/50ndsjr41l3184vjqv48a3r2rx9484r3-st-0.6
feh 2.14.1 out /gnu/store/aljvis7cvhjh0knrws3yyyw8ylhkni6f-feh-2.14.1
weechat 1.5 out /gnu/store/21w13gzc1wi00bw8lkcazlbsj72fkl4x-weechat-1.5
parallel 20160522 out /gnu/store/8fljbj6ld272idpklrir2g121rzl8fa0-parallel-20160522
milkytracker 0.90.86 out /gnu/store/6gpwrjjhr340cz4ysnlnzkn86gwzygwj-milkytracker-0.90.86
python-unidecode 0.04.18 out /gnu/store/ka834c0kskakibf5ykf481fx2k1al95d-python-unidecode-0.04.18
magit 2.7.0 out /gnu/store/zf04f4fg6vdhp54278b8xhx1my156w7x-magit-2.7.0
xscreensaver 5.34 out /gnu/store/9m53k9jacqvb89fdfa48mi79xk8mklfi-xscreensaver-5.34
powwow 1.2.17 out /gnu/store/7dc0ifa0gl7x926w17z2v6qrlz7d08g3-powwow-1.2.17
glibc-locales 2.22 out /gnu/store/dcqdfyal290awy1lwb6sxzs8sg0wr99h-glibc-locales-2.22
On the testing machine with the problem, the host uses this customized locale, which is
unproblematic on the host.
ng0@khazad-dum:~$ cat /etc/env.d/02locale
LANG="en_US.utf8"
LC_COLLATE="C"
LC_CTYPE="de_DE.utf8"
LC_MESSAGES="en_US.utf8"
LC_MONETARY="de_DE.utf8"
LC_NUMERIC="de_DE.utf8"
LC_TIME="en_DK.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LANGUAGE="en_US.utf8"
Now let's c&p something from weechat, directly after starting it with `weechat`:
Highlight Monitortting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.utf8",
LC_ALL = (unset),
LC_PAPER = "de_DE.utf8",
LC_ADDRESS = "de_DE.utf8",
[perl] 2:highmon LC_MONETARY = "de_DE.utf8",
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------WeeChat 1.5 (C) 2003-2016 - https://weechat.org/ LC_TELEPHONE = "de_DE.utf8",
WeeChat 1.5 [compiled on Jun 9 2016 15:46:12] LC_MESSAGES = "en_US.utf8",
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LC_COLLATE = "C",
=!= Warning: cannot set the locale; make sure $LANG and $LC_* variables are correct LC_IDENTIFICATION = "de_DE.utf8",
aspell: warning: dictionary "en" is not available on your system LC_MEASUREMENT = "de_DE.aspell: warning: dictionary "en" is not available on your system
aspell: warning: dictionary "en" is not available on your system
aspell: warning: dictionary "en" is not available on your system8",
aspell: warning: dictionary "en" is not available on your system LC_NAME = "de_DE.utf8",
python: stdout/stderr: Traceback (most recent call last): LANG = "en_US.utf8"
python: stdout/stderr: File "/home/ng0/.weechat/python/autoload/autosort.py", line 50, in <module> are supported and installed on your system.
python: stdout/stderr: import json perl: warning: Falling back to the standard locale ("Cpython: stdout/stderr: File "/usr/lib/python2.7/json/__init__.py", line 108, in <module>
python: stdout/stderr: from .decoder import JSONDecoder
python: stdout/stderr: File "/usr/lib/python2.7/json/decoder.py", line 5, in <module>
python: stdout/stderr: import struct
python: stdout/stderr: File "/usr/lib/python2.7/struct.py", line 1, in <module>
python: stdout/stderr: from _struct import *
python: stdout/stderr: ImportError: /usr/lib/python2.7/lib-dynload/_struct.so: undefined symbol: PyUnicodeUCS4_AsEncodedString
=!= python: unable to parse file "/home/ng0/.weechat/python/autoload/autosort.py"
python scripts loaded: autojoin_on_invite, autosavekey, colorize_nicks, completion, go, server_autoswitch
perl scripts loaded: highmon, iset, nickregain, parse_relayed_msg, unset_unused
script: 309 scripts for WeeChat 1.5
Plugins loaded: alias, aspell, charset, exec, fifo, guile, irc, logger, lua, perl, python, relay, script, tcl, trigger, xfer
=!= aspell: error: No word lists can be found for the language "en".
=!= aspell: error: No word lists can be found for the language "de".
=!= aspell: error: No word lists can be found for the language "en".
=!= aspell: error: No word lists can be found for the language "de".
Other applications behave similary ... eg: powwow just terminates itself on any unexpected characters,
contraty to the powwow ebuild I wrote and its behavior on guixsd.
Thanks for reading until this point and maybe helping me to fix the problem.
I can try to provide further output, like from running the guix-daemon with
--verbose.
--
♥Ⓐ ng0
For non-prism friendly talk find me on
psyced.org / loupsycedyglgamf.onion
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
next reply other threads:[~2016-06-17 10:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-17 10:39 ng0 [this message]
2016-06-17 18:40 ` GUIX_LOCPATH problems with guix on gentoo ng0
2016-06-18 7:45 ` Ricardo Wurmus
2016-06-18 8:32 ` ng0
2016-06-18 9:17 ` Ricardo Wurmus
2016-06-18 18:30 ` ng0
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160617103949.GA4337@khazad-dum \
--to=ng0@we.make.ritual.n0.is \
--cc=help-guix@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).