Re: Use of python pip packages and python virtual environments in guix

2023-09-21 Thread Hartmut Goebel

Am 18.09.23 um 17:07 schrieb Timothee Mathieu:

I am new to guix, and I would like to use the containers in order to have 
reproducible development environments for python.


I'm using python virtual env on top of guix, automated using direnv. 
Anyhow I did not yet try to setup containers for this.


Anyhow, my .envrc might be a starting point:

strict_env

# Colors constants
__NONE="$(tput sgr0)"
__GREEN="$(tput setaf 2)"
__BOLD=$(tput bold)


use_guix --ad-hoc glibc-locales python-wrapper python-pip 
python-virtualenv \

python-pyyaml  # add whatever you need

__has_pyenv=no
if [ $(ls $(direnv_layout_dir) 2>/dev/null | grep --count python || 
true) != 0 ] ; t

hen
   __has_pyenv=yes
fi
if [ $__has_pyenv != yes ] ; then
   echo "${__GREEN}${__BOLD}Setting up virtual environment${__NONE}"
   layout_python3
   python -m pip install -U pip
else
   path_add PATH $(ls -d $(direnv_layout_dir)/python-*/bin)
fi

# more setup


if [ $__has_pyenv != yes ] ; then
   # do this after cloning debops
   echo "${__GREEN}${__BOLD}Installing packages${__NONE}"
   python -m pip install -r requirements.txt
fi




--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |


Re: Putting a file into system image ~user/ but not on reconfigure

2023-08-24 Thread Hartmut Goebel

Hi Efraim,

hanks for sharing your thoughts. Meanwhile I learned two things:

 * vagrant needs adjustment to detect and support Guix, which is
   intended by vagrant and vagrant is extensible for this case, see
   https://github.com/hashicorp/vagrant/tree/main/plugins/guests
 * just replacing the "vagran isecure key" in /etc/ssh/auhorizedkeys.d/
   is of not much use: after reboot the file is restored.

So looks like I need to further investigate this topic in more depth.

--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |


Re: Putting a file into system image ~user/ but not on reconfigure

2023-08-17 Thread Hartmut Goebel

Hello Efraim,

Am 13.08.23 um 16:58 schrieb Efraim Flashner:

I feel compelled to ask if the key must be in
~vagrant/.ssh/authorized_keys or if /etc/ssh/authorized_keys.d/vagrant
is acceptable.


I'm afraid it needs to be in ~vagrant/.ssh/authorized_keys: When first 
booting the machine, Vagrant logs into it and replaces the key. Thus the 
user vagrant must be allowed to change the respective file.


Why are you asking? What would be easier (in respect of not 
re-installing the key), if putting the key into 
/etc/ssh/authorized_keys.d/vagrant would work?



Also, could you use /etc/services or another file in /etc/static as a
marker that the system has been booted at least once before?


Such a marker would be okay. Anyhow to make this work, some respective 
new service would need to detect this quite early, before /etc/service 
gets linked. Otherwise the service could not distinguish between "first" 
and "at least once"- Or did I misse something?


Is there some means of ordering service execution/start?

--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |




Re: Putting a file into system image ~user/ but not on reconfigure

2023-08-10 Thread Hartmut Goebel

Am 10.08.23 um 14:12 schrieb wolf:


I guess you could have a script that would use the existence of the key itself
as a marker.  In that case you would likely want to recreate it if the marker
(key) got deleted,


No! The key must not be recreated. The key is expected to be replaced by 
a new one when the box will become a machine. Thus, using the key as a 
marker is not possible, as the would recreate the insecure key on next 
reboot. The key must never ever be put into back into place.



I do not have much experience with Vagrant, but I assumed the general idea for
these kind of systems declarative systems is to just recreate the when updates
are required.  Is it expected to actually run guix reconfigure inside the VM?


This depends on how one uses the virtual machines :-)

And even if it is not expected to run guix reconfigure on it: If one 
does, this but open a front door to the system - which is not what one 
wants.


Anyhow, thanks for sharing thoughts,

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Putting a file into system image ~user/ but not on reconfigure

2023-08-09 Thread Hartmut Goebel
   Hi,

   sorry for the hard to understand subject.

   I need to put a file into a system image (into ~user) which will not be
   recreated or touched when running "system reconfigure" later, even if
   not existent. So this is  some kind of "one-time service", removing
   itself on first boot.

   Any ideas how to do this?

   (One could imagine some self-destructing script creating the file.
   Anyhow AFAIK this script would be recreated on next "system
   reconfigure". Als leaving some "script was run" marker is a bad option,
   as removing the marker would recreate the file, which is to be
   avoided.)

   Background:

   I aim to create Vagrant boxes (machine templates) based on guix system
   images. This works quite well so far, using image format qcow2, putting
   the image and some simple files at the right place and the
   vagrant-libvirt plugin for running the machine. Using a symlink I can
   even avoid copying the boxes disk image out of the store — vagrant will
   create a copy when creating a machine anyway.

   Now for vagrant being able to log into the machine when starting it
   (and eventually "provision" the machine = execute some commands) boxes
   are expected to include an "insecure ssh key" in
   ~vagrant/.ssh/authorized_keys. Vagrant will replace this key by another
   one when creating a machine. So this behavior is reasonable secure.

   One possible solution I found (not yet tested and tools not yet in
   guix) is to use one of the guestfstools ([1]https://libguestfs.org/) to
   copy the file into the image. Anyhow this would require copying the box
   out of the store to get a writable file.
--
Regards
Hartmut Goebel

| Hartmut Goebel  | [2]h.goe...@crazy-compilers.com   |
| [3]www.crazy-compilers.com | compilers which you thought are impossible |

References

   1. https://libguestfs.org/
   2. mailto:h.goe...@crazy-compilers.com
   3. http://www.crazy-compilers.com/


Re: Packaging a rust program with a lot of crates

2023-07-23 Thread Hartmut Goebel

Am 15.07.23 um 17:10 schrieb Paul Collignan:

It is a little bit different for Rust packages, as described in the 
documentation:
"In the rust ecosystem it is common for multiple incompatible versions of a package 
to be used at any given time, so all package definitions should have a versioned suffix. 
The versioned suffix is the left-most non-zero digit"
If I understand this correctly, one should keep all packages from 0.1 to 0.46 
(for example, if the versions are numbered like this). But from 1.1 to 1.46 you 
only keep the last one.


This is correct. Anyhow, please keep in mind that the variable name for 
the 1.x package will stay "some-crate-1".


This follows the idea of semantic versioning, which rust follows.

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Store path in package definition

2022-08-27 Thread Hartmut Goebel

Am 25.08.22 um 21:21 schrieb Saku Laesvuori:

I'm writing a package definition for
[passff-host](https://github.com/passff/passff-host) which requires a
file to reference another file with an absolute path (passff.json must
reference passff.py). How can I get the resulting store path to patch it
to the file? I would assume I have to do something with gexps but
couldn't figure it out by reading the documentation.


Please have a look at

- phase set-python-file-name of python-ipykernel

or

- phase call-wrapper-not-wrapped-snakemake of snakemake

HTH

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Two copies of same library in store after cleaning generations and gc

2022-08-18 Thread Hartmut Goebel

Am 14.08.22 um 13:31 schrieb Mike Jones:

So my question boils down to: why is the copy of mesa in
~/.guix-profile/lib different to the one to which programs in the same
profile are linked? And is there any guix command I can use to inspect
exactly how/why these copies differ?


I assume you installed mesa into your profile — or some other package 
installed in your profile has mesa as „propagated input“.


Try „guix package -l“ to see whether it is installed in your profile.

--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |


Re: Erlang Development with Guix

2022-06-30 Thread Hartmut Goebel

Am 30.06.22 um 03:27 schrieb jgart:

Is there a guide that shows the particularities of using erlang with
guix for development, or a mailing list thread I can read?


The rebar-build-system I created was published just a few weeks ago. 
Anyhow, I'm not a Erlang/OTP user, so this build-system might still need 
improvement. Any help on this is welcome.


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: wordpress

2022-06-20 Thread Hartmut Goebel

Am 20.06.22 um 11:57 schrieb Gottfried:
Does it mean we can't install wordpress in Guix or is there a workaround? 


I doubt wordpress can reasonably be used with a document-root on a 
read-only filesystem (which Guix creates).


The reason for this is that many plugins create additional files below 
document.root, depending on the configuration you make via the Web 
interface. E.g. if you add custom CSS, the plugin will create a file 
containing the CSS.


Workaround would be to configure the webserver service to serve a 
website from a read-write-able document-root. See 
https://guix.gnu.org/manual/en/html_node/Web-Services.html for examples.


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: with every guix pull icedove updating I have to set up icedove again

2022-04-02 Thread Hartmut Goebel

Am 31.03.22 um 20:25 schrieb Gottfried:
Should I delete the profiles number 2, 5, 6, 7, 8 ?which ask me to set 
icedove up? Is it save to delete profiles? 


According to your list, these profiles are not yet set up. Which means: 
they don't hold any mails or other relevant data. So I assume they can 
safely be removed.


And yes, you can also delete the files of this profile.

BTW: Please don't send messages to help-guix-*request*@gnu.org - this is 
just the subscription automat.


--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |


Re: Run .deb or .rpm packages

2021-12-10 Thread Hartmut Goebel

Hi,

Le 8 décembre 2021 14:46:24 GMT-05:00, "André A. 
Gomes"  a écrit :


--8<---cut here---start->8---
$ sudo dpkg -i foo-package.deb
dpkg: error: unable to access the dpkg database directory 
/gnu/store/902w5i1j38r33l6p871dyhng19zj1phk-dpkg-1.20.9/var/lib/dpkg: Read-only 
file system
--8<---cut here---end--->8---

Any ideas?  I don't know much about .deb or .rpm.


Beside Julien's objections: There might be legitimate use of installing 
.deb or .rpm packages and they might even work. E.g. i one wants to 
install free software provided as a .deb only and at the moment does not 
have the time to create a package definition for it.


So, "dpkg" and "rpm" should at least work :-)

Regarding the error show above: One would need to add 
"--localstatedir=/var" to the config flags (not sure whether this would 
build, then, since most probably "make install" will try to create 
"/var/lib/dpkg" which will fail in the build container.


--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |


Re: [package-building] configure: error: can not run /tmp/guix-build-.*

2021-12-06 Thread Hartmut Goebel

Am 04.12.21 um 17:37 schrieb indieterminacy@libre.brussels:

configure: error: can not run 
/tmp/guix-build-preccx-2.60.drv-0/precc-2.60/src/config.sub


AFAIK confgure writes a more detailed logfile, which should provide you 
with a more detailed error message on *why* it is failing. Please have a 
look there. Without knowing the cause, any solution would be fishing in 
murky waters.


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Logging and guix-home

2021-11-14 Thread Hartmut Goebel

Am 13.11.21 um 02:45 schrieb Fredrik Salomonsson:

But now that I use guix home, I have migrated them to shepherd. With
that I lost the handy logging you get from systemd. To mitigate that for
shepherd I'm right now using the #:log-file parameter, as suggested in
this thread [1], to send the output to a file.


Does setting #:log:file to /dev/stdout work for you? ((Just an idea, 
I've not tested it)


--
+++hartmut

| Hartmut Goebel|   |
| hart...@goebel-consult.de | www.goebel-consult.de |




Re: bluez builds successfully but check fails on test-crypto.c

2021-11-13 Thread Hartmut Goebel

Am 05.11.21 um 17:29 schrieb luke hayes:
I am not sure if this is a bug or a problem related to my specific 
machine. What is the best way to fix this issue? 


In these cases I typically try to understand the test-case (source) to 
see whether this is an issue related to guix.


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Crates versions and their replacement

2021-10-05 Thread Hartmut Goebel

Am 03.10.21 um 09:02 schrieb phodina:

   Now comes the question. How often should it be use and what are the
   pros and cons?


I suggest to use this only if required, since versions are defined to 
strict.


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Issue about building python on a foreign distro

2021-09-16 Thread Hartmut Goebel

Am 22.08.21 um 13:27 schrieb Wade Zhang:

Recently I installed Guix on a Debian buster host.  I want to install all build
dependencies by Guix.  Since I use pyenv to manage Python versions, I have to
install Python outside Guix.  Now I get stuck during the Python installation.


I never used pyenv, but Python's virtual environments a lot. Lately I 
moved on to "direnv" for most projects, as this matches my "directory 
based" working style. Maybe you want to give it a try?


A typical ".envrc" file for me looks like this (combining both a guix 
profile and a virtual env for developing the current package)


...8<---
use_guix --load-path=../guix-channel \
 -v 1 --keep-failed \
 --ad-hoc glibc-utf8-locales python-wrapper python-pip 
python-virtualenv \

 python-pep-adapter sequoia python-pyyaml python-requests \
 python-setuptools python-setuptools-scm python-wheel python-babel \
 python-pytest@5.3.5 python-pytest-cov python-pytest-mp \
 python-requests-mock python-filelock python-pexpect

layout_python3 --system-site-packages
pip install -e .
path_add PYTHONPATH $PWD
...8<---


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: error: "cannot download for method git-fetch"

2021-03-01 Thread Hartmut Goebel

Am 24.02.21 um 14:15 schrieb zimoun:

Maybe I misread, but it is not possible to refresh packages with
’git-fetch’ as source because of:


IC. Thanks.

(Maybe there should be a better error message for this case. But ATM I 
don't feel the power for even creating an bug report.)


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




error: "cannot download for method git-fetch"

2021-02-21 Thread Hartmut Goebel

Hi,

once again, my pre-inst-env seems to be incomplete, When running

$ ./pre-inst-env guix refresh -u vis
gnu/packages/text-editors.scm:81:2: error: cannot download for this 
method: #system guile git)>


Updating some other package, which is using http-fetch, works. So this 
seams to be related to git.


Looks like something missing. Any hints?

The manifest for the profile I'm using for development is:

(specifications->manifest
 '("recutils" "nss-certs" "openssl"
   "bzip2" "gzip" "zlib" "lzlib" "sqlite" "libgcrypt" "pkg-config" "guile"
   "util-linux" "glibc-utf8-locales"
   ;; propagated-inputs
   "gnutls" "guile-gcrypt" "guile-git" "guile-json" "guile-lzlib"
   "guile-semver" "guile-sqlite3" "guile-ssh" "guile-zlib" ))

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Re: Integrate Guix GUI programs into foreign distro's desktop?

2020-12-25 Thread Hartmut Goebel
Am 06.12.20 um 19:46 schrieb Hartmut Goebel:
> What is the correct way for doing so? What needs to be installed in the
> profile to make this work smoothly?

I made it work by adding the follwing code to ~/.bash_profile. This also
handles other env-vars and also the case one is running a login-shell in
an environment.

if [ -n "$GUIX_ENVIRONMENT" ] ; then
    # should only come here if a login-shell is started within a guix
environ
    _guix_profile="$GUIX_ENVIRONMENT"
elif [ -z "$GUIX_PROFILE" -a -r "$HOME/.guix-profile" ] ; then
    _guix_profile="$HOME/.guix-profile"
elif [ -n "$GUIX_PROFILE" -a -r "$GUIX_PROFILE" ] ; then
    _guix_profile="$GUIX_PROFILE"
fi
if [ -n "$_guix_profile" ] ; then
    source "$_guix_profile/etc/profile"
    if [ -r "$_guix_profile/lib/locale" ] ; then
    export
GUIX_LOCPATH="$_guix_profile/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
    fi
    if [ -r "$_guix_profile/share" ] ; then
    export
XDG_DATA_DIRS="$_guix_profile/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"
    fi
    if [ -r "$_guix_profile/etc/ssl/certs/ca-certificates.crt" ] ; then
    export SSL_CERT_DIR="$_guix_profile/etc/ssl/certs"
    export
SSL_CERT_FILE="$_guix_profile/etc/ssl/certs/ca-certificates.crt"
    export GIT_SSL_CAINFO="$SSL_CERT_FILE"
    fi
fi
unset _guix_profile

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Integrate Guix GUI programs into foreign distro's desktop?

2020-12-24 Thread Hartmut Goebel

Am 07.12.20 um 12:32 schrieb Bonface M. K.:

In that case, you'd just modify the path to point
to your profile's bin. Another way would be to
source the /etc/profile which
basically set's all these paths for you.


This is what I would expect, but this is not the case. E.g. when 
installing "dino", a GTK application providing .desktop file, 
XDG_DATA_DIRS is not defined in $GUIX_ENVIRONMENT/etc/profile (same for 
a profile)


$ guix environment --ad-hoc dino

# Proof dino "somehow" has a search-path definition
$ grep -E 'XDG|GTK' $(which dino)
export XDG_DATA_DIRS=…
export GTK_PATH=…

# Proof environment has a "share" directory and there are .desktop files
$ ls -F $GUIX_ENVIRONMENT
bin@  etc/  include@  lib/  manifest  share/
$ ls -F $GUIX_ENVIRONMENT/share/applications/
im.dino.Dino.desktop@  mimeinfo.cache@

# Proof XDG_DATA_DIR is not set for the environment
$ grep -E 'XDG|GTK' $GUIX_ENVIRONMENT/etc/profile
$  # no results



Wrt QT, I'm not exactly sure how to help with
that. I barely use applications that use QT(most
of the things I run use GTK).


As shown above, this does not always hold even for GTK applications.



The variables defined in the
/etc/profile set the correct paths wrt
your actual profile...


Have you installed gtk+ in your profile? This package is the one 
defining search-path GUIX_GTK3_PATH.


(When installing gtk+ in my environment/profile, I also get 
GUIX_GTK3_PATH defined. gtk+ propagates atk, which propagates glib, 
which defines search-path XDG_DATA_DIR - which is why XDG_DATA_DIR is 
also defined in the etc/profile.)



--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Integrate Guix GUI programs into foreign distro's desktop?

2020-12-06 Thread Hartmut Goebel

Hi,

What I do is to ensure that I have the path to the
Guix binaries configured properly:

--8<---cut here---start->8---
export PATH="$HOME/.config/guix/current/bin:$HOME/.local/bin:$PATH"


Thanks, anyhow this does not lock like what I' seeking. I want to add 
GUI programm, which are isntalled in a profile, while your example only 
adds guix itself - not any profile.


And what about not GUIC_LOC_PATH,  XDG_*_DIRS,  and all the other 
env-vars. How to avoid conflicts with QTDIRS5, QT_PLUGIN_PATH?


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Integrate Guix GUI programs into foreign distro's desktop?

2020-12-06 Thread Hartmut Goebel
Hi,

I'd like to use a Guix profile containing some GUI programs (esp.
ungoogle-chromium) as part of my foreign distro's desktop environment.

What is the correct way for doing so? What needs to be installed in the
profile to make this work smoothly?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Zoom

2020-11-14 Thread Hartmut Goebel
Am 13.11.20 um 19:15 schrieb Roy Lemmon:
> Can anyone give me hints on getting Zoom installed with sound ?

Don't do it, it's spyware.

And you don't even need it: When accessing Zoom via the Webbowser, there
should also be a tiny, tiny Link "Use Zoom in Browser."

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Packaging a python package that is using setuptools_rust

2020-10-24 Thread Hartmut Goebel
Am 19.10.20 um 12:52 schrieb Hamzeh Nasajpour:
> running build_rust
> error: [Errno 2] No such file or directory: 'cargo'
> command "python" "-c" "import setuptools, 
> tokenize;__file__='setup.py';f=getattr(tokenize, 'open', 
> open)(__file__);code=f.read().replace('\\r\\n', 
> '\\n');f.close();exec(compile(code, __file__, 'exec'))" "build" failed with 
> status 1
This looks like cargo is not found on the path, although it should be
there. You could validate $PATH like this: Add a phase before the
build-phase, containing just "(pk (getenv PATH))".

> Do you have any idea? I should add the rust dependencies to `native-inputs` 
> or `inputs` of `etebase-py`?

It must be a native-input, since cargo and rustc are expected to run on
the build system.


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: how to define inputs for python packages

2020-09-28 Thread Hartmut Goebel
Am 28.09.20 um 08:05 schrieb Reza Alizadeh Majd:
> is there any rule that I missed to choose a dependency as an `input` or
> as a `propageted-input` one?

This is described in the manual:

https://guix.gnu.org/manual/en/html_node/Python-Modules.html#Specifying-Dependencies

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: “Managing Servers with GNU Guix: A Tutorial”

2019-11-05 Thread Hartmut Goebel
Am 04.11.19 um 15:36 schrieb Ludovic Courtès:
> Jakob wrote a great tutorial on how to use ‘guix deploy’ to deploy Guix
> System to one machine or to several virtual private servers (VPSs):
>
>   https://guix.gnu.org/blog/2019/managing-servers-with-gnu-guix-a-tutorial/

Great tutorial! Thanks.

On questions: For the first example: Does guix installed on the manged
host need to be up-todate? Or will the update be done as part of the
"operating system closure", which is send to the managed host?

I spotted a minor error/typo, which is a tiny bit confusing for newbies:
In the first example it reads "|(define os …" whereas in the text below
"%system" is referenced. (Also ||"/home/alyssa/.ssh/server_key" is a bit
misleading. I suggest "…/key-for-server")|

||

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Re: “Guix Profiles in Practice”

2019-11-01 Thread Hartmut Goebel
Am 31.10.19 um 12:25 schrieb Pierre Neidhardt:

> David that the manifest be installed  to ~/.guix-develop-profile.  I
> suggest instead that we all manifest have their own folder,
> e.g. according to their path.

Dave did not write about any path, but wrote:

> Running 'guix develop' would check for a profile
> symlink with some canonical name, for example '.guix-develop-profile'.
> If it exists, it applies the environment variables and spawns a
> subshell.  If it doesn't exist, it looks for a 'develop.scm' file
> (canonical name TBD), builds the profile, symlinks it to
> '.guix-develop-profile', and then does the prior steps.  The tool


This only makes sense, of the link and the .scm file are places in you
project's worktree (aka checkout). Otherwise one could have a single
"guix-develop-profile" only.

At least this is what I intend.

This would keep the definition and the links to the profiles in the
project. If I remove the worktree, the link to the profile will vanish,
too, and the garbage collector can collect it. Whereas if the profile is
stored in e.g. "~/.guix-extra-profiles/" this will end up in stale
profiles in this directory.


> I suggest instead that we all manifest have their own folder,
> e.g. according to their path.
>
> For example
>
> - foo/bar/manifest.scm -> ~/.guix-extra-profiles/foo/bar
> - foo2/bar/manifest.scm -> ~/.guix-extra-profiles/foo2/bar

What the base for "foo/bar" be in your examples? For me, worktrees may
have paths like

~/projects/customerA/project42/mixmas/
/mnt/server/outgroup/projects/customerA/project42/mixmas/

Also I strongly vote against using yet another "top-level" directory
like ~/-guix-extra-path. There is the XDG directory standard and I
suggest to stick with it. Thus IMHO this should be
$XDG_DATA_HOME/guix/profiles or $XDG_CONFIG_HOME/… - but I stell prefer
having this within the project's worktree.


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |



Re: “Guix Profiles in Practice”

2019-10-30 Thread Hartmut Goebel
Am 27.10.19 um 22:08 schrieb Pierre Neidhardt:
> From the command line, we could do
>
>   guix install-manifest my-project

IC. This is also a good way, esp. if one uses the same "my-project"
manifest for several locations.

But this way you can not make the manifest part of the project source.

> Also I believe the Guix should store the channel specifications into the
> profile when installed from a manifest.  It would make everything simpler.

ACK

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: “Guix Profiles in Practice”

2019-10-27 Thread Hartmut Goebel
Am 27.10.19 um 20:06 schrieb Pierre Neidhardt:
> I think it's useful to support multiple directories since it's likely
> that users will work on multiple projects.
>
> See what I've done for Emacs-Guix.  The (configurable) file structure
> looks like this:
>
> - ~/.guix-extra-profiles/my-project
> - ~/.guix-extra-manifests/my-project
> - ~/.guix-extra-channels/my-project

AFAIU David (and this is what I meant, too), is to have the
"develop.scm" (or ".guix-develop-profile.scm") in the project working
tree. This would allow to easily maintain the profile together with the
source and a simple workflow like

cd /path/to/my-project
guix develop

or

guix develop /path/to/my-project

> Then I can do "guix-install-manifest", Emacs prompts me for a manifest
> name in ~/.guix-extra-manifests (with completion), and does all the
> necessary to install it in ~/.guix-extra-profiles.  It dumps the channel
> specification in ~/.guix-extra-channels/my-project.
IMHO this is a too emacs-centric approach. We should also have in mind
those not using guix-mode and not even using emacs.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: “Guix Profiles in Practice”

2019-10-27 Thread Hartmut Goebel
Am 25.10.19 um 12:24 schrieb Ludovic Courtès:
> Here’s a new blog post by Pierre Neidhardt entitled “Guix Profiles in
> Practice”:

Great! I was not aware about the benefits of profiles and mostly use
environments.

Now I'm eager to learn how to mimic "guix envorinment some-package",
whihc oulls in all build dependencies of "some-package". Any hints?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: “Guix Profiles in Practice”

2019-10-27 Thread Hartmut Goebel
Am 25.10.19 um 18:36 schrieb Thompson, David:
> tool "just work."  Running 'guix develop' would check for a profile
> symlink with some canonical name, for example '.guix-develop-profile'.
> If it exists, it applies the environment variables and spawns a
> subshell.  If it doesn't exist, it looks for a 'develop.scm' file
> (canonical name TBD), builds the profile, symlinks it to
> '.guix-develop-profile', and then does the prior steps.  The tool

I like this idea :-)

I suggest naming the file like the directory: .guix-develop-profile.scm
(altough not sure whether the filenname should have the leading removed
or not)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Tons of packages get rebuild

2019-10-24 Thread Hartmut Goebel
Am 23.10.19 um 20:07 schrieb Marius Bakke:
> Does your /etc/guix/acl contain an entry such as 
[…]
>   (q #8D156F295D24B0D9A86FA5741A840FF2D24F60F7B6C4134814AD55625971B394#)

I only had

    (curve Ed25519)
    (q #1C4515A7B9D775C7B35AE56A4B9CC58E77751D95C2DCACDFE0BD98E20513FE6B#)

which looks like I did miss some key-change.


> Does 'guix weather' give any clues?

Without the "#8D156F29" key, guix weather reports:
  80.0% substitutes available (8994 out of 11244)
  0.0% (0 out of 2250) of the missing items are queued

Running guix weather took approx. 10,5 minutes.

Adding the "#8D156F29" key gave the same values.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




signature.asc
Description: OpenPGP digital signature


Re: Tons of packages get rebuild

2019-10-22 Thread Hartmut Goebel
Am 22.10.19 um 05:27 schrieb Maxim Cournoyer:
> I can only think that one of the packages you updated as part of your
> work on the KDE Framework must be a dependency of many others (such as
> Python, or another core tool)?

Of course the updated package have many dependencies. But I would expect
all these packages to be build at ci.guix.gnu.org and be fetched from there.


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Tons of packages get rebuild

2019-10-21 Thread Hartmut Goebel
Hi,

I'm again experiencing wired behavior on my system: When trying to
rebuild KDE Framework based on c37c8ef (2019-10-18 20:35:28), tons of
packages get rebuild, including ruby, llvm-8.0.0, gcc, glibc, openssl,
mariadb, linux-PAM, etc. Since my computer is not quite fast, this is
running since Saturday morning already.

Looks like I've  broken my setup.

Daemon is running with

guix-daemon --build-users-group=guixbuild
--substitute-urls=https://ci.guix.gnu.org

$ /usr/local/sbin/guix-daemon --version
guix-daemon (GNU Guix) 1.0.1-6.0ed97e6

$ ./pre-inst-env guix --version
guix (GNU Guix) 1.0.1.3831-dec845   -- which is my branch based on c37c8ef

Building packages with e.g.

$ ./pre-inst-env guix build -K attica

What's wrong here?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Re: editing /etc/sudoers

2019-06-17 Thread Hartmut Goebel
Am 17.06.19 um 01:20 schrieb Jeff Bauer:
> Okay, to make it more clear: I was having a problem
> trying to use visudo on a native Guix System.  The
> visudo packaged with the Guix System cannot actually
> edit a sudoers file because it relies on /usr/bin/vi,

Try

VISUAL=/path/tp/my/editor visudo

See the man-page for details

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: removal of induces installation of other package

2018-11-04 Thread Hartmut Goebel
Am 04.11.2018 um 23:34 schrieb Leo Famulari:
> On Sun, Nov 04, 2018 at 11:20:22PM +0100, Hartmut Goebel wrote:
>> I experienced an even more irritating behavior:
>>
>> On a system which I hadn't touched for long, I switched a profile - from
>> an old one it's predecessor. Even in this case guix started to download
>> substitutes and build software.
> To clarify, `guix package --switch-generation NNN` required something to
> be built?

Exactly.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: removal of induces installation of other package

2018-11-04 Thread Hartmut Goebel
Hi,

Am 04.11.2018 um 22:06 schrieb Leo Famulari:
> If you have updated Guix (`guix pull`) since your last profile was
> created, the collection of software required to build profiles may have
> been updated. So, now you need that software in order to make the new
> profile.
>
> It's a bit counterintuitive that removing a package may require
> something new, but it's expected behaviour for Guix.

I experienced an even more irritating behavior:

On a system which I hadn't touched for long, I switched a profile - from
an old one it's predecessor. Even in this case guix started to download
substitutes and build software.

I find this behavior extremely irritating.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Installation: Load non-free wifi firmware (iwlwifi)

2018-03-25 Thread Hartmut Goebel
Am 25.03.2018 um 07:34 schrieb Chris Marusich:
> As Ludo mentioned elsewhere, using a dongle is one good option.  What
> prevents you from using a dongle?

Why should I punish myself just for to says "Hey, I'm using only free
software"? This benefits nobody! [1]

Please don't get me wrong: free software is to be preferred and we
should push users and vendors towards it. But if for any reason one owns
a device demanding non-free firmware, using e.g. a dongle would not
benefit anybody.[1] The vendor already has the money. In contrary:
buying a dongle adds to environmental pollution and sweating in poor
countries.

The only thing we achieve is distracting users from free software since
it "doe not work".

[1] Given that you basically "trust" the non-free software. Bu if you
don't, you'll not going to use it anyway.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Posts in languages other than English on help-guix?

2018-03-03 Thread Hartmut Goebel
Am 03.03.2018 um 11:45 schrieb Hartmut Goebel:
> +1 @Ludo: Please use this genter-neutral translation. Thanks.

@Ludo Correction: I've just seen Andreas' translation from 2018-03-03
11:00, which is okay, too. That one works around the gender-issue be
translating more freely and should be preferred IMHO, since it is less
arguable.


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Re: Posts in languages other than English on help-guix?

2018-03-03 Thread Hartmut Goebel
Am 02.03.2018 um 21:31 schrieb ng0:
> To not pick the generischer Maskulinum (which would be contrary the rest of 
> our
> Documentation guidelines), I'd write:
>
>  ("de"
>   "Melden Sie sich bei der „Help“-Mailingliste an, um per E-Mail Hilfe von 
> anderen
>  GuixSD- und Guix-Nutzer:innen zu bekommen.  Sie können Nachrichten auch auf 
> deutsch
>  schicken.")

+1 @Ludo: Please use this genter-neutral translation. Thanks.

(One could argue whether the gender-gap should be a star, underscore, colon or 
a full-stop. I'm used to a full stop, but this is secondary.)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Avoiding the need to set user passwords for 'guix system vm-image'

2018-02-01 Thread Hartmut Goebel
Am 01.02.2018 um 02:41 schrieb George myglc2 Clemmer:
> Is there a way to pre-populate user accounts with public keys?

Yes, there is: Just search the manual for "authorized-keys" to find the
documentation.

You may also want to have a look at the real-world examples
<http://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/berlin-new.scm>
and
<http://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/modules/sysadmin/people.scm>.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Seeking best-practice for managing guix-defined VMs

2018-01-14 Thread Hartmut Goebel
Hi,

I wonder about the best-practice for managing VMs built using `guix
system vm`.

My idea is to have the system-configuration on the (foreign distro) host
and build and run VMs using `guix system vm`. Background is that for
some reasons I can not use GuixSD on the host, but wont to use guix for
managing the actual work-horses.

* For specifying the parameters of the host-side of the VM-emulation,
and for starting the VM with the appropriate parameters, I can add a
wrapper shell-script. Is there a better way than a shell-script?

* When updating the config, the currently running VM needs to be shut
down. What are good ways to handle this? How to notice, which is the
correct VM to shut down (this one's "predecissor")?

* Over time, the store will fill up with `xxx-run-vm.sh` scripts. Will
these be garbage-collected? (I assume not.) What are good ways to keep
track of scripts and discard those no longer needed (and garbage-collect)?

* How to handle "secrets", which need to go into the machine? Obviously
it's not a good idea to have them in a system-declaration. OTO the VM's
disk gets discarded with the next system generation.

* Is using `guix system vm` the wrong approach at all? Should I better
use `vm-image` or `container`?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Introducing GNUPaste

2017-12-17 Thread Hartmut Goebel
Am 14.12.2017 um 19:37 schrieb Kristofer Buffington:
> Currently the frontend uses twitter bootstrap + jquery and highlightjs
> from a CDN.

If the default is to this stull, please consider *including* it into the
software or as part of the installation procedure. Using CDN is obeying
user privacy, since it allows these CDNs to track users. Thanks.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Using a "guix publish"er as a proxy?

2017-10-30 Thread Hartmut Goebel
Am 30.10.2017 um 10:30 schrieb Ludovic Courtès:
> That cannot be done currently.

Rethinking this, this might even be hard to solve. Since the "client"
downloads a list of all existing substitutes, the proxy would need to
fetch the substitutes from the remote side on demand. Probably this is
not worth the effort for now.

> However, what you can do is use the two URLs:
>
>   --substitute-urls="http://guix-buiilder.local: https://berlin…;

This is what I'm currently using. But if is one of the servers listed
there is lagging, this delays the build process. And every local system
will reach out to the remote servers again.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Should I upgrade root user's guix too?

2017-10-05 Thread Hartmut Goebel
Am 26.09.2017 um 20:10 schrieb Oleg Pykhalov:
> Adonay Felipe Nogueira <adf...@hyperbola.info> writes:
>
>> As a personal preference, I always do:
>>
>> # guix pull && guix package -u
>>
>> ... as root, and then:
>>
>> $ guix pull && guix package -u
>>
>> ... as normal user
> I wrote a little script to not compile 2 times :-)

What should be the use of pulling guix for both root and the user?

If you symlink root's `guix` into e.g. /usr/local/bin, all users can use
root's version:

ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix
/usr/local/bin/guix

This is described in
https://www.gnu.org/software/guix/manual/guix.html#Binary-Installation
number 6.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Does the installation image support UEFI boot?

2017-09-18 Thread Hartmut Goebel
Hi Marius,

thanks again.

I was able to generating an ISO9660 image and boot from it. :-)

Although after partitioning the (virtual) hard-disk, I was not able to
boot from that, but this may simply be that I partitioned wrong.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




GuixSD for Raspberry?

2017-09-17 Thread Hartmut Goebel
Hi,

quick answer: What is the status of GuixSD for Raspberry? Searching the
web did not help finding this out.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Does the installation image support UEFI boot?

2017-09-17 Thread Hartmut Goebel
Hi,

today I tried installing GuixSD from the installation image
(guixsd-usb-install) into a virtual machine which only supports UEFI and
EUFI CSM. I "installed" the image as CD-ROM drive, but booting failed.

I tried the same with the Debian netinst image which booted.

Before I start spending time investigating the issue: Is this expcted to
work?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: guix package -u --fallback does nothing

2017-07-25 Thread Hartmut Goebel
Am 25.07.2017 um 11:35 schrieb Hartmut Goebel:
> "guix package -u --fallback" when run another time does *nothing*. "guix
> package -l" still show the old generation.

"guix package --fallback -u" did the trick.

Weird. I'll open a bug-report

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




guix package -u --fallback does nothing

2017-07-25 Thread Hartmut Goebel
Hi,

I'm try upgrading from guix-0.12.0-10.ba2260d but the profile is not upated.

I used "guix pull" to get the latest version.

"guix package -u" is loading substitutes, fails with this and recommends
using --fallback.

"guix package -u --fallback" when run the first time did compile some
packages, but did not update the profile.

"guix package -u --fallback" when run another time does *nothing*. "guix
package -l" still show the old generation.


"guix package -A guix" lists guix-0.13.0-4.f1ddfe4, so it should be
aware of the new package.

What is going on here? How can I solve this?

I also tried setting SSL_CERT_DIR, SSL_CERT_FILE and GIT_SSL_CAINFO
without success.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |



0xBF773B65.asc
Description: application/pgp-keys


guix environment: list packages in a file

2017-05-09 Thread Hartmut Goebel
Hi,

I'm wondering if there is a way to pass to `guix environment` the list
package names to be installed in a file.

I know `--load=file` where file is a scheme file. The drawback of this
is that one need to know in which scheme module the package is defined –
thus this is much more complicated than imply naming the packages like
on the command line.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Hwo to debug and teacking builds?

2017-04-11 Thread Hartmut Goebel
Am 11.04.2017 um 17:40 schrieb Chris Marusich:
> myglc2 <myg...@gmail.com> writes:
>
>> On 03/28/2017 at 23:10 Chris Marusich writes:
>>
>> [...]
>>
>>>   export INFOPATH="$HOME/guix/doc${INFOPATH:+:}$INFOPATH"
>> export INFOPATH="$HOME/guix/doc${INFOPATH:+:$INFOPATH}"
> Yes, you're correct.  I mis-typed that.

But isn't the result the same?


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: trytond

2017-04-05 Thread Hartmut Goebel
Am 05.04.2017 um 22:03 schrieb Catonano:
>
>
> Has the daemon environment anything to do with this ?

Be the source with you;:

https://hg.tryton.org/trytond/file/4.2.3/trytond/backend/sqlite/database.py#l261

So it seem the database name needs to be ":memory:" or or you need to
use a full-qualified path to avoid the ned to configure the trytond.


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Hwo to debug and teacking builds?

2017-03-28 Thread Hartmut Goebel
Hi,

when defining a new package, I often find myself spending *a lot* of
time debugging and tweaking the build. E.g. the if the Makefile needs to
be modified, or some test-cases adjusted.

How do I "get into" the build container, so I can debug, modify files,
rebuild and run tests there - in a closed environment (nearly) like the
build-daemon has?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: downloading a tarball

2017-03-25 Thread Hartmut Goebel
Am 24.03.2017 um 23:10 schrieb Ludovic Courtès:
> What about this (patch below)?

This is definitively an enhancement :-) Thanks! (I did not know,
newlines are usable in log-messages. Good to know.)

-- 
+++hartmut

| Hartmut Goebel|   |
| hart...@goebel-consult.de | www.goebel-consult.de |




Re: downloading a tarball

2017-03-24 Thread Hartmut Goebel
Am 24.03.2017 um 14:14 schrieb Tobias Geerinckx-Rice:
>> > HTH - speaking from experience making the same mistake here..
> I suspect most people have. The message isn't as clear as it could be.

Either way round the message is hard to read: squezzed between many
other message, no line-break and arguable wording. IMHO this should be
improved to empower more people.

-- 
+++hartmut

| Hartmut Goebel|   |
| hart...@goebel-consult.de | www.goebel-consult.de |




Re: string-append plus package

2016-12-31 Thread Hartmut Goebel
Am 31.12.2016 um 00:42 schrieb Ludovic Courtès:
> Where does that string you want to build go to?

As I already wrote in my initial mail, I need to reference the actual
package output's path in some config-file within a system definition
(e.g. gnu/system/examples/nginx.tmpl).

So assume gnu/system/examples/nginx.tmpl to be:

(use-modules (gnu))
(use-package-modules networking web)
(define NGINX (package-output (open-connection) nginx))
(define TEST (string-append NGINX "/bin/nginxctl"))

If "package-output" is not the correct solution, please tell me the
correct one.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: string-append plus package

2016-12-29 Thread Hartmut Goebel
Am 29.12.2016 um 14:06 schrieb Mathieu Lirzin:
>   (use-modules (guix)
>(gnu packages web))
>   (define conn (open-connection))
>   (package-output conn nginx) ;returns the actual string

Thanks, based on this I made it work

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: string-append plus package

2016-12-29 Thread Hartmut Goebel
Am 19.12.2016 um 10:47 schrieb Ludovic Courtès:
> Hartmut Goebel <h.goe...@crazy-compilers.com> skribis:
>
>> Am 08.12.2016 um 20:56 schrieb Leo Famulari:
>>>> Here is the service-definition I use:
>>>>
>>>>  (nginx-service #:vhost-list
>>>>(list (nginx-vhost-configuration 
>>>>   (root (string-append nginx "/share/nginx/html"))
>>> I believe that file-append is intended for this use case.
>> Maybe, but I can't get it to work. This minimal system declarision fails
>> with "In procedure string-append: Wrong type (expecting string):
>> #< base: #> 2a236c0> suffix: ("/")>"
>>
>> (use-modules (gnu))
>> (use-package-modules networking web)
>> (define NGINX (file-append nginx "/bin/nginxctl"))
>> (define TEST (string-append NGINX ""))
> […]For example:
>
>   (scheme-file "foo" #~(foo bar #$(file-append nginx "/foo/bar")))
>
> leads to a file “foo” containing:
>
>   (foo bar "/gnu/store/…-nginx-1.2.3/foo/bar")
>
> HTH!

I now found time trying this out. Unfortunately this does not do what I
expect. I do not need some string "(foo bar
\"/gnu/store/…-nginx-1.2.3/foo/bar\")".

I need the string "/gnu/store/…-nginx-1.2.3/bin/nginxctl". No gexpr, no
scheme magic, no string representing scheme code. But simply a string
containing the path of a file with the package (nginx in the example)
which I can assign to some variable (NGINX as shown in the example) and
then be used for other string operations (like when defining TEST in the
example).

I tried adopting your example but #~ always gave me a gexp, which of
course I can't use in string-append.

The manual says "Gexps are meant to be written to a file …" so I assume
"file-append" is the wrong approach at all

Could you please correct my above example?. Thanks.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: After installing Java, what should I set JAVA_HOME to?

2016-11-28 Thread Hartmut Goebel
Hi,

as Ricardo already wrote, bootstrapping Java packages from source is a
nightmare since gradle requires itself for building. And it requires a
lot of other Java packages which again require gradle for building. This
Gordian Knot can be cut by someone brave and knowledgeable about the
.pom files or whatever is the Java-way for describing the build-process.

I tried doing some work on this and gave up.

Am 28.11.2016 um 06:15 schrieb Zachary Kanfer:
> means that I can no longer follow any tutorial I find, since the
> tutorials I'm using are Gradle and Clojure tutorials

When using gradle for building your software, you should be able to
follow the tutorial. Yo only need to install gradle itself from (what
they call) "source.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Re: Why is die "doc" output downloaded when building this package?

2016-11-06 Thread Hartmut Goebel
Am 05.11.2016 um 22:53 schrieb Ludovic Courtès:
> Most likely this is due to a limitation of the current implementation of
> grafts: all the outputs of packages on a “grafting path” need to be
> downloaded, even if some of these outputs are unused.

IC. Thanks for the explanation.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: How to make current icecat less crashy

2016-11-05 Thread Hartmut Goebel
Am 05.11.2016 um 20:01 schrieb Leo Famulari:
> Can we set this option while building?

Fedora adds default configs be simply copying [1] a file [2] to
|…/browser/defaults/preferences.|

[1]
http://pkgs.fedoraproject.org/cgit/rpms/firefox.git/tree/firefox.spec#n667

[2]
http://pkgs.fedoraproject.org/cgit/rpms/firefox.git/tree/firefox-redhat-default-prefs.js

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |





Why is die "doc" output downloaded when building this package?

2016-11-05 Thread Hartmut Goebel
Hi,

when building this package, qt-4.8.7-doc (the doc-output of qt-4.7.8)
will be downloaded. I do not understand why.

  (package
(name "automoc4")
(version "0.9.88")
(source (origin
  (method url-fetch)
  (uri (string-append
"http://download.kde.org/stable/; name "/" version "/"
name "-" version ".tar.xz"))
  (sha256
   (base32
  "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93"
(build-system cmake-build-system)
(arguments
 `(#:tests? #f))
(inputs
 `(("qt-4" ,qt-4)))
(home-page "http://kde.org/;)
(synopsis "")
(description "")
(license
license:gpl3+))         




-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Seeking working, complete example for a vm

2016-11-02 Thread Hartmut Goebel
Am 29.10.2016 um 01:57 schrieb Ludovic Courtès:
> [... some tipps ...]

Thanks a lot. I was able to get a machine up and running and access it.

> Maybe we could move the note in
> <https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html>
> higher, in the description of the ‘vm’ sub-command?

I've put "reworking the guix system manual part" on my todo list. I'm
afraid, this will not happen soon, tough.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Lots of files in /gnu/store/.links, but not in the store

2016-10-07 Thread Hartmut Goebel
Hi,

I hafe a huge pile of files in /gnu/store/.links/, but they seem not to
belong to the store:

[root guix]# /usr/bin/ls /gnu/store/.links/ | wc -l
33412
[root guix]# /usr/bin/ls /gnu/store/.links/ | sed
s'!^!/gnu/store/.links/!' | xargs -n1 guix gc -d
guix gc: error: build failed: path
`/gnu/store/.links/0002s1j2dmph0jcqj04z1a39li6fc9glyss3fscwg3nyd5n918q1'
is not in the Nix store
……
and so on.

I't not an error in the sed-command:
[root guix]# ls
/gnu/store/.links/0002s1j2dmph0jcqj04z1a39li6fc9glyss3fscwg3nyd5n918q1
/gnu/store/.links/0002s1j2dmph0jcqj04z1a39li6fc9glyss3fscwg3nyd5n918q1

How can I get rid of them?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




guix package -r *downloads* new packages?

2016-10-07 Thread Hartmut Goebel
Hi,

I tried cleaning up my system. But when I did "guix package -r …", it
started to build derivations and download stuff.

How can this happen? Even if that package would still be required by
some other package in my profile, it should not download *new* stuff.

$ /usr/local/sbin/guix-daemon --version
guix-daemon (GNU Guix) 0.11.0
$ guix --version
warning: failed to install locale: Invalid argument
guix (GNU Guix) 0.11.0
…
$ guix package -r guix
warning: failed to install locale: Invalid argument
The following package will be removed:
   guix 0.10.0-0.e901  
/gnu/store/vw26xsn24jmrijn939fjjk50m5i4hfq3-guix-0.10.0-0.e901

substitute: updating list of substitutes from
'https://mirror.hydra.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/4mdahqlzar6fl9f9cx6i16561x2yclwx-profile.drv
   /gnu/store/2pn3gbhq7hnnh8kzwblihlw8f34irkgg-module-import.drv
   /gnu/store/j46m2a8fnxklnckiqkn7r9id6jhs94s1-module-import-compiled.drv
   /gnu/store/zhdym8ynv7sbr1iiaj917ln1z1ris2zw-gtk-icon-themes.drv
   /gnu/store/plq1855s06gi77x3qbsyp4217ssn635i-info-dir.drv
   /gnu/store/n1kdin8g51m6dd7ds8hiv8pgv20dczki-fonts-dir.drv
   /gnu/store/lcp53c781kk1d6fxr2xm4dhfm1fgv9x1-ca-certificate-bundle.drv
   /gnu/store/19ngbl2rmvag3dgsii8pkfmhzbg3zbx8-xdg-mime-database.drv
The following files will be downloaded:
   /gnu/store/ik15p8lrbk6jfa3fs3x34m78lj2c0ix1-guile-2.0.11
   /gnu/store/1vmfjpapw15nmhdw3hvrkdp8k933j518-module-import-compiled
   /gnu/store/f9m713c1v5db09b0asxd3mifdskllbri-texinfo-6.1
   /gnu/store/ws7ypryg4khzflj2sdnny7kxibvhwll2-gzip-1.8
   /gnu/store/ldv60j4g1pndr1x2v4ibyp3la6p62ag7-module-import
   /gnu/store/qpmxi57hdx4f41xzjr486fk8xmhq2avy-mkfontdir-1.0.7
   /gnu/store/sppd07krb4w0bbbwyykwg05dcjn9p2kd-module-import-compiled
   /gnu/store/zy0wpxgcjqdq4a83v39hpjxa83fdq5lr-module-import
   /gnu/store/0gj5a9i1vhv5ka3hn1saarmi08b5fvdw-mkfontscale-1.1.2
   /gnu/store/akx97sgcvnjrp0ywf02ab4m4wsmdzwyp-glibc-utf8-locales-2.23
   /gnu/store/p3vih58h0yvbd9ncbz3igxvs5fy7j2cz-module-import
   /gnu/store/g7awvh1xgi6by2pgzh2071gcqa42vnv7-module-import-compiled
   /gnu/store/b4n1n8saa2sjs03xj8i1gmckwiiw04xk-libfontenc-1.1.3
   /gnu/store/0jx4nqk33vd8xsgfkfay9vx4zv9pacd0-libffi-3.2.1
   /gnu/store/1q64vzsgdnrym40vmghsdy5ybzwkqrlc-libatomic-ops-7.4.2
   /gnu/store/8x8bgyyd998w794wkrqb7magm04wbih2-libgc-7.4.2
   /gnu/store/9fz1bak63p51ywrgjrcy0xha7hd7g43y-pkg-config-0.29
   /gnu/store/fhx6c44qbh8m9ha7ha2jbyags516wvkg-libltdl-2.4.6
   /gnu/store/ifqgpapsrh6b7jvd68q0ajirpj941pxp-readline-6.3
   /gnu/store/lxv20br9ic8abvqd7fipszbs4mg8hkjv-ncurses-6.0
   /gnu/store/ppf3vpc22zvn327dns8m0s3y2bh1smxx-libunistring-0.9.6


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: Why does installing icedtea-1.13.12 install the docs and jdk, too?

2016-09-16 Thread Hartmut Goebel
Am 16.09.2016 um 16:49 schrieb ng0:
> They are not separated
> like for example Debian does it with their -dev version packages.
> For the exact reasons someone else has to explain. I guess it's
> something about grafting, reproducibility, source provision etc.

This is what the docs say about this;

Sometimes it is more appropriate to separate the various types of files
produced from a single source package into separate outputs.  For
instance, the GLib C library (used by GTK+ and related packages)
installs more than 20 MiB of reference documentation as HTML pages.
To *save space* for users who do not need it, the documentation goes
to a
separate output, called @code{doc}.  [...]

Some packages install programs with different ``dependency footprints''.
[…] This allows users
who do not need the GUIs to *save space*.  […]

For me this sound more like a bug. But maybe someone can explain this.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |



Why does installing icedtea-1.13.12 install the docs and jdk, too?

2016-09-16 Thread Hartmut Goebel
Hi,

I just installed icedtea-1.13.12, and for no reason, icedtea-1.13.12-doc
get installed, too,

IMHO, only icedtea-1.13.12 should be installed. What is going wrong here?

$ ./pre-inst-env guix package -i icedtea-1.13.12
guix package: warning: deprecated NAME-VERSION syntax; use NAME@VERSION
instead
substitute: updating list of substitutes from
'https://mirror.hydra.gnu.org'... 100.0%
The following package will be installed:
   icedtea  1.13.12
/gnu/store/ms8bgmxhsy8nxdp78lj3pwsz0yr72jva-icedtea-1.13.12

substitute: updating list of substitutes from
'https://mirror.hydra.gnu.org'... 100.0%
The following derivations will be built:
  …
   /gnu/store/mp4hmmbz2sci2m2m114msc7qnyc3skbj-icedtea-1.13.12.drv
The following files will be downloaded:
   /gnu/store/n3gqnkjlk0ssd9i509f7pgszf14v4adh-icedtea-1.13.12-doc
   /gnu/store/kc6gbjaiby4bfh1id76yyaj2zxm73gfg-icedtea-1.13.12-jdk
   /gnu/store/1005jvxaqdrrk684f91d7268r05ys426-icedtea-1.13.12

…
Downloading n3gqnk...-icedtea-1.13.12-doc (219.0MiB installed)...
 icedtea-1.13.12-doc 1.2MiB/s 00:09 |
10.6MiB transferred
…
Downloading 1005jv...-icedtea-1.13.12 (52.4MiB installed)...
 icedtea-1.13.12 1.3MiB/s 00:28 |
36.6MiB transferred
…
Downloading kc6gbj...-icedtea-1.13.12-jdk (385.9MiB installed)...
 icedtea-1.13.12-jdk1.5MiB/s 02:16 |
198.8MiB transferred


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: neo tty layout

2016-09-05 Thread Hartmut Goebel
Am 29.08.2016 um 16:13 schrieb ng0:
> If you think you can do it and have the resources to do so, could you
> take on this task?

Not any time soon, sorry.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: http://www.goebel-consult.de/blog/ehrlichkeit-made-in-germany
Kolumne:
http://www.cissp-gefluester.de/2012-01-in-die-cloud-in-die-cloud-aber-wo-soll-die-sein




smime.p7s
Description: S/MIME Cryptographic Signature


Re: neo tty layout

2016-08-15 Thread Hartmut Goebel
Am 13.08.2016 um 18:15 schrieb ng0:
>  Would it be okay to replicate this for Guix?

+1 (Currently trying to learn myself neo :-)

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: http://www.goebel-consult.de/blog/feiertagsarbeit-bei-teletrust
Kolumne:
http://www.cissp-gefluester.de/2012-04-compliance-bringt-keine-sicherheit



smime.p7s
Description: S/MIME Cryptographic Signature


How to install an old package version?

2016-08-11 Thread Hartmut Goebel
Hi,

I'm curious about how to install an old package version with guix.

Example for what I mean:

In e.g Debian, the list of available packages is separate from apt-get
(et al.). So I can query all available versions of a package and install
the version I need:

 $ apt-cache madison nginx
 nginx | 1.9.10-1~bpo8+3 | http://debian.mirror.lrz.de/debian/
jessie-backports/ma
 nginx | 1.6.2-5+deb8u2 | http://security.debian.org/
jessie/updates/main amd64 Pa

Now in guix, the list of available packages is build into guix, there is
no external cache. So how can I e.g. install python-2.7.10 after I
installed guix 0.11.0, which only defines python-2.7.11?

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/bewertung-pgp-verschlusselung-bei-web.de-und-gmx

Kolumne:
http://www.cissp-gefluester.de/2012-04-compliance-bringt-keine-sicherheit



Re: How to force rebuilding a pacakge?

2016-06-03 Thread Hartmut Goebel
Am 02.06.2016 um 23:08 schrieb Ludovic Courtès:
> If the thing was never built anywhere, or if the log was removed from
> the servers (that can happen for old builds), then no log files are
> found.

And what I experienced: If the package has been grafted, the log only
contains some "grafting" message.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: How to force rebuilding a pacakge?

2016-06-02 Thread Hartmut Goebel
Am 02.06.2016 um 16:16 schrieb Thompson, David:
> See 'guix build --log-file'

I did try this, bit it did not give me a logfile, since nothing was build.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




How to force rebuilding a pacakge?

2016-06-02 Thread Hartmut Goebel
Hi,

I just try (force-) rebuilding some package (python-scikit-learn), I do
not succeed:

- guix build … simply fetches the package from hydra
- guix build --no-substitutes … rebuilds an lot of other stuff , e.g.
fontforge-dist
- guix build --check … does not provide a meaningful build log
- guix build --check --log-file … does not provide a meaningful build
log either
  guix gc -d /gnu/store/*python-scikit-learn* does not change this

Any help?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: How to remove old (test) builds from store?

2016-06-02 Thread Hartmut Goebel
Am 02.06.2016 um 14:02 schrieb Ludovic Courtès:
> Alternately (ah ha!):
>
>   guix gc -d $(guix build foo)

This would build remove the packages just build, wouldn't it? But I want
to clean up old test builds

It's not about determinism and not about free disk-space :-) It's just
about removing stuff which I know is outdated.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




guix environment --ad-hoc should work the other way round

2016-04-24 Thread Hartmut Goebel
Hi,

being quite new to guix and playing around with `guix environment`. I
find it confusing and IMHO it is working the wrong way round:

I'd expect it to get me an environment where the specified packages are
installed. So I could easily test if a new version of a program works as
expected. Instead I get an environment where the tools for building
these packages are installed.

What I actually need to type  | What I'd expect to type
--
guix env --ad-hoc python-2.7  | guix env python-2.7
guix env python-2.7 --ad-hoc git  | guix env git --XXX python-2.7

(Where XXX is placeholder for something like --for-building ;-)

So basically I'd expect the meaning for the packages in front of
`--ad-hock` exchanged with those behind.

Please note that these are two different views on environments: The
currently implemented view i the one of a developer, who wants to set up
an environment for building quick. The other view is the one of a user,
who wants to test packages.

I'm in favor of changing `guix environment` to take the seconds view,
since I assume, this will be the case uses much more often. (Even given
that there ought to be no difference between developers and users, as
most users simply will not even think about something like a
build-environments.)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |