Silencing "user with UID X not found" message

2024-07-04 Thread Taha Aziz Ben Ali
Hello there,

I'm running Guix on a foreign distribution (Arch Linux). I've recently
migrated to systemd-homed ceding absolute control of my home directory
to it in the process. Any way, the premise of systemd-homed is to
provide portable, encrypted home directories "independent" of the host
system.

Given that systemd-homed doesn't write UIDs to the system-wide
/etc/passwd and instead keeps track of this information in JSON format
in $HOME/.identity, is there anything that can be done from the Guix
side to silence this message? It doesn't seem to have any negative
effect on typical operations of Guix (shell, pull, etc.)

I have seen a posting here where someone recommended to activate the
host's nscd service, but not only is that not readily-available for me,
it has certainly never hindered my usage of guix. On a related note, the
'passwd' category in my /etc/nsswitch.conf looks up the 'files' source
first and 'systemd' source last. Guix, to my understanding, does not
implement the 'systemd' source and therefore cannot identify the UID
without some sort of special treatment.

Regards,
Aziz



Re: Cannot run texlive context: permission denied

2024-05-29 Thread Taha Aziz Ben Ali
Nicolas Goaziou  writes:

> Branches are merged in a FIFO order. Two branches are currently located
> before "tex-team", as pointed out at . I think
> "gnome-team" will be merged very soon. I have no idea about
> "core-updates".

I really appreciate the explanation, thank you. I was taken aback by the
transparency of the whole process, it looks like a really well-polished
experience.

> Meanwhile, I'm polishing "tex-team" so it will be absolutely fantastic
> (or utterly broken) once merged ;)

I'm sure it'll be great.

> Thank you for your feedback! For now, waiting is the only thing to do,
> however.

Gotcha, thanks!

Kind regards,
-- 
Aziz



Re: Cannot run texlive context: permission denied

2024-05-27 Thread Taha Aziz Ben Ali
Hello there,

I've been following the master branch ever since the changes you've
introduced and I was wondering whether there was a particular reason
they haven't been merged yet.

If additional testing is required, I'd be happy to help out, but as I
previously pointed out, ConTeXt is working properly now.

Kind regards,
-- 
Aziz



Re: Cannot run texlive context: permission denied

2024-05-20 Thread Taha Aziz Ben Ali
> Nevermind! I misread your error message; your cache seems OK.
>
> I think you created an incomplete environment, i.e., you used something
> such as:
>
>   ./pre-inst-env guix shell texlive-context

Yes, you're totally right.

> But `texlive-context' alone is not sufficient. You need at least
> a scheme or a collection in this environment, as mentioned in the
> manual, or, if you really want to be minimal, `texlive-bin'. E.g., in
> decreasing size:

I used texlive-scheme-context and texlive-collection-context and both
worked without a problem. I took a .tex file for a spin just to make
sure compilation worked without issue, and as you'd expect, all was
good.

Thank you so much for fixing this, Nicolas.

Kind regards,
-- 
Aziz



Re: Cannot run texlive context: permission denied

2024-05-19 Thread Taha Aziz Ben Ali
> I think it is fixed in "tex-team" branch.

Thank you Nicolas,

I tried out your changes, and although the "permission denied" error no
longer shows up, running context in the terminal (user home intact,
i.e. without my previous configuration hack) yields the following
message:


mtxrun  | forcing cache reload
resolvers   | resolving | configuration files already identified
resolvers   | resolving | loading configuration file 
'/gnu/store/s0xbwkg8jqhbn85rqv90g30lxn5agf88-texlive-luatex-66594/share/texmf-dist/web2c/texmfcnf.lua'
resolvers   | resolving |
resolvers   | resolving | locating list of 'home:.texlive2023/texmf-config' 
(runtime) (tree:///home:.texlive2023/texmf-config)
resolvers   | methods | resolving, method 'locators', how 'uri', handler 
'tree', argument 'tree:///home:.texlive2023/texmf-config'
resolvers   | trees | locator 'home:.texlive2023/texmf-config' not found
resolvers   | resolving | locating list of 'home:.texlive2023/texmf-var' 
(runtime) (tree:///home:.texlive2023/texmf-var)
resolvers   | methods | resolving, method 'locators', how 'uri', handler 
'tree', argument 'tree:///home:.texlive2023/texmf-var'
resolvers   | trees | locator 'home:.texlive2023/texmf-var' not found
resolvers   | resolving | locating list of 'home:texmf' (runtime) 
(tree:///home:texmf)
resolvers   | methods | resolving, method 'locators', how 'uri', handler 
'tree', argument 'tree:///home:texmf'
resolvers   | trees | locator 'home:texmf' not found
resolvers   | resolving | locating list of 'selfautoparent:texmf-local' 
(runtime) (tree:///selfautoparent:texmf-local)
resolvers   | methods | resolving, method 'locators', how 'uri', handler 
'tree', argument 'tree:///selfautoparent:texmf-local'
resolvers   | trees | locator 'selfautoparent:texmf-local' not found
resolvers   | resolving |
resolvers   | resolving |
mtxrun  | the resolver databases are not present or outdated
resolvers   | resolving | using suffix based filetype 'scripts'
resolvers   | resolving | remembering file 'mtx-context.lua' using hash 
'lua::mtx-context.lua'
resolvers   | resolving | using suffix based filetype 'scripts'
resolvers   | resolving | remembering file 'mtx-contexts.lua' using hash 
'lua::mtx-contexts.lua'
resolvers   | resolving | remembered file 'mtx-context.lua'
resolvers   | resolving | using suffix based filetype 'scripts'
resolvers   | resolving | remembering file 'mtx-t-context.lua' using hash 
'lua::mtx-t-context.lua'
resolvers   | resolving | using suffix based filetype 'scripts'
resolvers   | resolving | remembering file 'mtx-t-contexts.lua' using hash 
'lua::mtx-t-contexts.lua'
resolvers   | resolving | remembered file 'mtx-t-context.lua'
resolvers   | resolving | using suffix based filetype 'scripts'
resolvers   | resolving | remembering file 'context.lua' using hash 
'lua::context.lua'
mtxrun  | unknown script 'context.lua' or 'mtx-context.lua

It seems that mtxrun fails to find either files, the same message will
also appear if invoking context through mtxrun via the --script flag.

-- 
Aziz



Re: Cannot run texlive context: permission denied

2024-05-06 Thread Taha Aziz Ben Ali
I'm here to tell you that I found a working workaround for making
ConTeXt work through `mtxrun --script context`.

Create a "texmf/web2c/texmfcnf.lua" file (and preceeding directories)
under your user's home directory and add the following:


return {
  content = {
 variables = {
   TEXMF = os.getenv("GUIX_ENVIRONMENT") .. "/share/texmf-dist"
},
  },
}


That should be enough to get the ball rolling. Note however that running
`context` independently from `mtxrun` continues to fail.

These changes should probably be added to the build derivation, it seems
that Guix' non-standard filesystem don't work well with TeXLive's
default settings.

Kind regards,
-- 
Aziz



Re: Cannot run texlive context: permission denied

2024-03-26 Thread Taha Aziz Ben Ali
I'm also experiencing this same issue on two different installations of
Guix.

Running `context` directly yields the same result as Reza's. However, I
was able to successfully run the `mtxrun` binary and to generate the
database files using `mtxrun --generate`.

While `context` is unable to execute, `mtxrun --script context` throws
the following error:

   unknown script 'context.lua' or 'mtx-context.lua'

Kind regards,
-- 
Aziz



Any success with fingerprint scanner/fprintd for Gnome login?

2024-03-23 Thread Ben Sturmfels
Hi Folks,

Has anyone had success using a fingerprint scanner for Gnome login? I'm 
currently
on a ThinkPad X230, but did have the fingerprint scanner working on an X60
working under Trisquel about 8 years ago.

I added "(service fprintd-service-type)" to my Guix System services list and
"fprintd" to my packages. I also added myself to the "input" group, which I
suspect might be required to enroll fingerprints as regular user.  After a 
reboot
I can run "fprintd-enrol" and "fprintd-verify" to add fingerprints.

I was initially unable to log in to Gnome at all (no password prompt), getting
the error:

  "Sorry, fingerprint authentication didn't work. Please try again."

After another reboot, I did get a password prompt and can login by password, but
that error message flashes rapidly below. The fingerprint scanner also doesn't
light up, so I assume it's not being activated for some reason.

Any suggestions or thoughts on how to troubleshoot this?

Regards,
Ben



Re: Correct way to protect `guix system vm` invocations from garbage collection?

2024-01-06 Thread Ben Weinstein-Raun
On 01/06/24 02:33, Julien Lepiller wrote:

> If by "as a service", you mean started by the Shepherd, you should be good: 
> the vm path will become alive as it's part of the system.

Ah, that makes sense! I assume this is only true if it's properly in a
profile (either guix home profile or the system profile) as opposed to
being added as a user-level shepherd service not inside my home
directory. I was planning to do the latter, since I'm not sure how to
properly describe the vm in a manifest (though I imagine I could examine
the source code for `guix system vm` to find out).

> Another solution would be to make it a gc root, which you can do by 
> symlinking it in /var/guix/gc-roots
Perfect, that seems to work great! Thanks a ton!


signature.asc
Description: OpenPGP digital signature


Correct way to protect `guix system vm` invocations from garbage collection?

2024-01-05 Thread Ben Weinstein-Raun
Hello!


I'm working on setting up permanent virtual machines to run as services.
In order for this to work, I think I need to be sure that the various
inputs to the vm runner script are kept alive. This includes the kernel,
the initrd, and the qemu binary.


What's the easiest way to permanently mark an arbitrary store file (in
this case, the `...-run-vm.sh` script) as "alive"? e.g. is there a way
to add it to my user's profile, or some other gc-root? Or add it to a
new profile altogether?

Thanks!



signature.asc
Description: OpenPGP digital signature


Re: Some methods of getting a "login shell" do not create /run/user/ or add a session to loginctl

2024-01-05 Thread Ben Weinstein-Raun
On 01/05/24 14:39, Skyler Ferris wrote:
> I was hoping that someone else more knowledgeable might have a better 
> solution, but since nobody has replied I'll share the less-than-ideal 
> solution I've been using.
Thanks a lot for the response!

> Basically, I just use some code to mount tmpfs onto the directories by 
> adding extra values to the file-systems declaration of my 
> operating-system declaration. The main disadvantage not already 
> mentioned is that UIDs and GIDs have to be explicitly defined for each 
> non-system user. Maybe the logic for the GIDs could be removed because 
> the group has no permissions on the directory anyway, but I haven't 
> thought it through.. There are some helper functions:


This is super useful, thank you! And probably substantially better than
my current hack (brute `mkdir -p` on startup, which seems likely to make
`mount` sad when later someone *does* log in properly, let alone the
issue you mention with surviving reboots).




signature.asc
Description: OpenPGP digital signature


[META] How to effectively ask for help with Guix?

2024-01-02 Thread Ben Weinstein-Raun
Hello!

I notice that I haven't been able to get much help with Guix, via any
route. Having asked six or seven questions[^1] over the last three weeks
(on this list, on the subreddit, and on the IRC channel), I've received
help with only one of those problems (thanks nckx!). Ultimately I've
cobbled together crappy solutions to my problems over that time, but a
couple knowledgeable responses could have saved me dozens of hours.

I'd love to wholeheartedly recommend Guix, because technically speaking
I much prefer it to Nix, and to the "classic" alternatives. I'm hugely
grateful that it exists! Of course it's nobody's responsibility to
answer beginner questions! But at the moment, I'm going to need to give
a big caveat with any recommendation: "The Guix documentation is
relatively high-quality, but if you want to understand anything that
isn't explained there, you should expect to dive much deeper than you
would with most tools, as it's quite hard to get any engagement fr
om
people who know the answers to your questions."

One possibility is that there just aren't many people who know those
answers. If that's true, then there's not much to be done. Another is
that I've gone about this wrongly somehow, in which case I'd love to
know how I could do better (in reply to this message is great, though I
also have an anonymous feedback form you can use, if you want to be
really ruthless :-) https://forms.gle/8fYoiNedq2g4UTPj8). And another
possibility is that I've just been unlucky, either with timing, or with
the particular questions I've wanted to ask.

Anyway, what, if anything, could I be doing better? I've read and try to
follow the advice at http://www.catb.org/~esr/faqs/smart-questions.html,
but it's been a while and it occurs to me that I should refresh myself.
What else?

Thanks for any meta-help!

[1]
- https://lists.gnu.org/archive/html/help-guix/2023-12/msg00123.html
- https://lists.gnu.org/archive/html/help-guix/2023-12/msg001
60.html
- https://lists.gnu.org/archive/html/help-guix/2023-12/msg00164.html
-
https://www.reddit.com/r/GUIX/comments/18mimv0/user_services_that_run_on_startup/
- https://logs.guix.gnu.org/guix/2023-12-16.log#003630



signature.asc
Description: OpenPGP digital signature


Re: Shepherd user services that run on startup?

2024-01-01 Thread Ben Weinstein-Raun
On 12/20/23 16:42, Ben Weinstein-Raun wrote:
> My guess is that this is at least possible, by defining a system-level
> service that starts a shepherd for each user. Would that work?


After struggling with this for a week, I've managed to get a user-level
`shepherd` starting! It fails to actually run, probably due to errors in
my init.scm, but I'm happy with the progress! I still have some fairly
important-feeling questions though:

* When I tried to use `sudo` via the actual package, I get an error
about it needing to be setuid-root. My workaround is to jut directly add
/run/setuid-programs to the PATH, but this is a pretty bad-feeling hack,
as it leaves an unspecified dependency. What's the right way to depend
on sudo? Force the user to pass it in as an argument, maybe?
* I still don't know how to "properly" ensure that the XDG_RUNTIME_DIR
is set, like it should be for a "proper" login shell. Right now, the
shell script just brute-creates the directory where I expec
t it on my
system (and exports that path to the environment). So, if anybody knows:
what's the right way to do this?
* Several times throughout this process, when I had errors in the shell
script that caused it to exit early, my system shepherd became
unresponsive and I had to roll-back, and then reboot using
/proc/sysrq-trigger. This was a little terrifying, since I'm currently
traveling and won't physically see my server again until February. It
was also surprising, since the script is running inside a shepherd
fork-exec constructor, and I'd have thought that this would deal
gracefully with failed starts. Is this a bug in shepherd, or am I
misusing it?

> Anyone have tips on how to go about building this, if so? Especially: 
> What's the easiest way to ensure that a guix service knows the list of 
> users-with-login-shells on the system?


I sidestepped this issue by forcing the user to specify usernames when
instantiating the service. This seems nicer anyway, as m
aybe you don't
want to start a shepherd for every user.

> And, of course, is there a simpler way?

This question still stands!



My code is on github if you're curious:

* service definition is here:
https://github.com/benwr/benwr_guix/blob/main/benwr/services/userherd.scm
* package definition is here:
https://github.com/benwr/benwr_guix/blob/main/benwr/packages/userherd.scm
* shell script is here: https://github.com/benwr/userherd

(This is probably obvious, but just in case: I'd strongly caution
against directly relying on my channel, as I break it constantly)

Thanks in advance for any help!



signature.asc
Description: OpenPGP digital signature


Some methods of getting a "login shell" do not create /run/user/ or add a session to loginctl

2023-12-30 Thread Ben Weinstein-Raun
I've noticed that several methods of opening a "login shell" do not
result in the XDG_RUNTIME_DIR (/run/user/) being created; and also
don't result in a session appearing in the output of `loginctl`:


* `mosh`
* `sudo -i  loginctl`
* `su -l `
* `login`

I mentioned in another message that I'm hoping to write a system
shepherd service that will start a user-level shepherd service. But a
user-level shepherd services won't run without the XDG_RUNTIME_DIR (or
some other explicitly-chosen suitable directory, but I'd prefer not to
deviate from the defaults, if I could instead understand what's going on).

Does anyone know why this would happen, or how to fix it? I'm using the
elogind service on top of %base-services.



signature.asc
Description: OpenPGP digital signature


Running untrusted code as root in a `guix system vm`?

2023-12-29 Thread Ben Weinstein-Raun
Hello!

I'm considering running some software inside a VM created using `guix
system vm`. The easiest thing to do would be to run the virtualized
software as root. Normally I wouldn't think twice about that, but iiuc
the guest will have the host's /store mounted. Am I right that this
should make me nervous about running untrusted things as root in the VM?
Or is there some trick by which a root process in the VM is prevented
from destructively changing /store?

Thanks!



signature.asc
Description: OpenPGP digital signature


Shepherd user services that run on startup?

2023-12-20 Thread Ben Weinstein-Raun
Hello! I'm fairly new to using Guix System, and I have a lot of questions.

One is: Is it possible to run a shepherd user service at system start, 
rather than at login?

My guess is that this is at least possible, by defining a system-level 
service that starts a shepherd for each user. Would that work?

Anyone have tips on how to go about building this, if so? Especially: 
What's the easiest way to ensure that a guix service knows the list of 
users-with-login-shells on the system? And easiest way to run a 
`shepherd` instance as each such user on startup? I'm working on writing 
a service definition, but as this is my first from-scratch service (guix 
or shepherd), and one of my first lisp projects since reading SICP 15 
years ago, it's slow going (even with the reference manual and source 
code of other services).


And, of course, is there a simpler way?


(I also asked this question on the r/guix subreddit, but haven't heard 
anything yet, and figured I'd ask here too)





Re: Gnome Tracker (tracker-miner-fs-3) behaving badly

2022-08-18 Thread Ben Sturmfels via
indieterminacy  writes:

> If I recall, Gnome Tracker uses Xapian as its backend.
>
> I seem to have previously noticed alternative software which appears more
> performant (though I moved onto other activity so I cant confirm).
>
> Is something like Redmine-Xapian a satisfactory alternative?
> https://github.com/xelkano/redmine_xapian

Thanks Indieterminacy - I believe Redmine-Xapian is specifically for the
Redmine project management system, so may not be suitable substitute for
Tracker.

Regards,
Ben



Re: Gnome Tracker (tracker-miner-fs-3) behaving badly

2022-08-17 Thread Ben Sturmfels via



Ben Sturmfels

Sturm Software Engineering
www.sturm.com.au
+61 3 9024 2467

Tobias Geerinckx-Rice  writes:

> Tracker logging every file it sees wouldn't be a good idea: apart from the 
> wasted space, you'd be adding even more I/O load to the mix...
>
> Try stracing (guix install strace) tracker's PID(s) instead.  It will 
> generate more output than you need, but file names should be obvious, and you 
> can use grep to further filter the output.

Thanks Tobias, I'll give strace a shot. Regarding th logging - I'm not
entirely convinced that this would be a space/performance issue for most
use-cases, such as this personal/work laptop with email, code, photos
and media. I wouldn't expect to be generating new files or modifying
existing files at such a rate that the logging would create a problem,
and log rotation would take care of the wasted space eventually.

Regards,
Ben



Gnome Tracker (tracker-miner-fs-3) behaving badly

2022-08-17 Thread Ben Sturmfels via
Hi Folks!

I really like the idea of Gnome Tracker - index all your files,
contacts, etc. so you can quickly search them. It just doesn't seem to
work properly, it uses a lot of resources and it's behaviour is
opaque. I'm not sure whether this is the configuration in Guix System,
or whether Tracker just isn't well designed. My hunch is that it's a
design problem. Does anyone have good/bad experience with Tracker
outside of Guix?

Specific issues:

 * the tracker-miner-fs-3 process runs spontaneously consuming at least
   one CPU for a few minutes (I haven't kept track of how long or how
   often)

 * after all this scanning, searching in Gnome Activities doesn't
   display any matches for the *contents* of files, only the filenames -
   I thought indexing the contents was the whole point

 * when it's busy, tracker-miner-fs-3 seems to ignore `kill` (SIGTERM)
   and needs `kill -9` (SIGKILL) to kill it

 * it's not clear exactly what files Tracker is indexing - there doesn't
   appear to be a log - I'd really like to be able to just `tail -f` to
   see what's going on

I'd like to also understand how tracker-miner-fs-3 is started by
Gnome. It seems to start automatically and restart after some time if
killed. It doesn't seem to be listed under "Startup Applications" in
Gnome Tweak Tool.

Debugging Tracker:

After killing it with `pkill --full tracker-miner-fs-3 --echo`, I can
restart it with some debugging information using:

env TRACKER_DEBUG=config,miner-fs-events,monitors,statistics,status 
/gnu/store/[...]-tracker-miners-3.3.1/libexec/tracker-miner-fs-3

This seems to show some scheduling information about the indexing, but
not exactly what it's indexing.

Regards,
Ben



Re: Guix on a cloud VM

2021-09-01 Thread Ben Sturmfels
FYI for others, I've updated my `guix deploy` blog post with a bunch of
extra learnings thanks to Mathieu and others:

https://stumbles.id.au/getting-started-with-guix-deploy.html

Regards,
Ben



Re: Guix on a cloud VM

2021-09-01 Thread Ben Sturmfels
Thanks Mathieu! We've discussed further on IRC, but summarising below
for the list.

On Tue, 31 Aug 2021, Mathieu Othacehe wrote:

> Oh, too bad. You could maybe contact Binary Lane support to find out
> why? Have you tried to boot your qcow2 image on your machine with QEMU?
> The command line would look like the one presented here:
> https://guix.gnu.org/manual/en/html_node/Installing-Guix-in-a-VM.html.
>
>> I've also tried efi-raw which boots and runs smoothly, but fails to
>> resize later on my hosting service. (Resize is required because
>> otherwise I literally have to generate and upload a 20GB image.) I
>> suspect (but don't know for sure) that this is related to the additional
>> 40M EFI partition created in the image before the root EXT4 partition.
>> The images provided by my hosting service only have a single EXT4
>> partition eg. Debian 10.
>>
>> Do you know if it's possible to get `guix system image` to skip the EFI
>> partition when creating an efi-raw image?
>
> No it is not possible currently, due to how Grub is installed on Guix
> System images. However, you should be able to resize your partition
> manually using fdisk and resize2fs, see below :).

I contacted Binary Lane's support and they advised that while they
didn't support QCOW2, I could resolve the resizing issue by using their
"BYO OS" configuration, rather than their built-in image configurations
like "Debian". Doing so disables their auto-magic storage resizing
feature which seems to choke on the multi-partition image. I can live
with uploading a 1.5GB raw image and then resizing the partition. :)

Noting that you also have a working demo of a single partition image
type, that we may see in the near future.

Thanks very much for your help!

Regards,
Ben



Guix on a cloud VM

2021-08-31 Thread Ben Sturmfels
Hi Mathieu (and CC'ing help-guix),

Thanks for your help on the Guix IRC yesterday! I'm still struggling
with getting the VM running as I'd like. I tried the ISO format as you
suggested, but my hosting service (Binary Lane) seems to treat this
somewhat-specially as a read-only format. I can "trick" it into
restoring from this image using their "clone" feature though. The
machine boots up fine but the result seems to be a read-only Guix where
/etc/fstab shows an iso9660 filesystem.

Backing up a little for context, I've tried qcow2 format which is lovely
and small, but fails to boot on my hosting service with "No bootable
devices".

I've also tried efi-raw which boots and runs smoothly, but fails to
resize later on my hosting service. (Resize is required because
otherwise I literally have to generate and upload a 20GB image.) I
suspect (but don't know for sure) that this is related to the additional
40M EFI partition created in the image before the root EXT4 partition.
The images provided by my hosting service only have a single EXT4
partition eg. Debian 10.

Do you know if it's possible to get `guix system image` to skip the EFI
partition when creating an efi-raw image?

A couple of other questions too:

Does the process in your blog post work for you if you go straight to
QCOW2 with `--image-type=QCOW2` rather than converting the efi-raw to
qcow2?

Are you able to later resize the storage via your DigitalOcean control
panel? This operation is failing for me currently.

Thanks again for your help and excellent blog post!

Ben

Reference for anyone else reading:

Mathieu's blog post:
https://othacehe.org/hosting-a-blog-using-only-scheme.html

My work-in-progress guix deploy experiments:
https://stumbles.id.au/getting-started-with-guix-deploy.html




Running graphical install inside existing Guix System

2021-01-11 Thread Ben Sturmfels

Hi Folks,

I have an existing Guix System running on my laptop and would like to 
install Guix System onto a brand new larger hard drive, connected by a 
USB-to-SATA cable.


Could it be possible to run the graphical installer from within my 
existing Guix System to partition and install onto the new drive rather 
than messing around with a bootable USB and rebooting?


I realise there's lower-level tools like "guix system init" you could 
use if you were happy to partition and format the new drive manually, 
but it would be such a great user experience to leverage the existing 
graphical installer from withing Guix System.


Regards,
Ben




a first question about parallel environments

2020-02-21 Thread Ben
Hi all
I've watched all the introduction videos (which are really helpful) and red 
some documentation, but I think I still miss something fundamental.

I run a vagrant vm with a simple node server app behind apache.  The setup is 
small, but still has a some configuration and packaging (npm) involved. So I'd 
like to try to introduce guix into this setup. In addition to that I have a 
second vagrant vm running with the same basic setup, but some minor 
differences. 

Would it be possible to put these two setups from two different vagrant 
machines into one machine? I don't need strong isolation, but I need the 
possibility of having different versions of software installed on a single 
vagrant vm.

If it is possible I would like to keep using vagrant. I know about docker, but 
in this case the preferred way would be: a vagrant vm with guix installed with 
a couple of parallel environments (if thats the correct term).

When reading about guix I always imagine the case when you're sitting infront 
of your linux notebook, something (package, dependency) breaks and now thanks 
to guix you're able to roll back very easily. So this would be a single user 
environment. But can guix also be helpful in a case where you have multiple 
different environments (I hope the term is correct) running in parallel? What 
is the best way to achieve that? Creating multiple users? Using containers?

Thanks
Ben





Boot failure after system reconfigure.

2020-02-07 Thread Ben Card
I slightly edited my /etc/config.scm file to add the Sway and 
Enlightenment window managers, but after a 'sudo guix system 
reconfigure /etc/config.scm', the system fails to boot.

I *can* boot back into my original configuration without any issue.
I could not find too much help on the problem. I understand 'guix 
system reconfigure' does not check for boot problems. I just don't 
know how to ensure my machine boots properly.

Durng the boot process, after the GRUB boot menu, I get the following 
output (note that I cannot copy/paste, so it is slightly abbreviated)

CG Warning: pthread_getattr_np or pthread_attr_getstack failed for main thread
CG Warning: Couldn't read /proc/stat
Welcome, this is GNU's early boot Guile.
use '--repl' for an initrd REPL.

loading kernel modules...
my-root: recovering journal
my-root: clean, xxx/yyy files, xxx/yyy blocks
loading '/gnu/store/6h9...gwz-system/boot'...
making '/gnu/store/6h9...gwz-system' the current system...

setting up setuid programs in '/run/setuid-programs'...
populating /etc from /gnu/store/219...9d8-etc...
error in finalization thread: Success
[3.163072] udevd[210]: no sender credentials received, message ignored
[3.236016] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Index (0x000FF) is 
beyond end of object (length 0x20) (20190816/exoparg2-396)
[3.236065] ACPI Error : Aborting method  \_SB.PCI0.SBRG.EC0.BIF9 due to 
previous error (AE_AML_BUFFER_LIMIT) (20190816/psparse-531)
...
[3.236217] ACPI Error : AE_AML_BUFFER_LIMIT, Evaluating _BIF 
(20190816/battery-527)


(End of output)
For what it's worth, the and "battery" line may be due to the 
fact that I took the battery out of my machine because it wasn't 
working ("my machine" is an x86_64 ASUS AMD A10 laptop), or it could 
be due to my 'tlp' program. I'll post my config.scm if you need it. I 
can't now cause I'm on another machine to copy the boot message.
Guix is up to date (not on root, but on my user account)


-- 
Rock on,
Ben Card (Muto)
https://muto.ca



Re: guix browsers timezones are set to GMT

2020-02-03 Thread Ben Sturmfels
Hi Divan,

On 4/2/20 3:57 am, di...@santanas.co.za wrote:
> I see timezones in browsers on my guix system are set to GMT.
> 
> An example would be qutebrowser and guessing ungoogled-chromium which
> use qtwebengine.
> 
> Example website is browsing to
> https://play.grafana.org/d/00012/grafana-play-home?orgId=1
> 
> in qutebrowser one can run ":jseval alert(new Date().toString())" From
> https://play.grafana.org/ and it reports GMT+ .
> 
> Browsing to the above with epiphany results in the correct local
> timezone being set.
> 
> I understand for fingerprinting and privacy it's nice to have a
> website not detect your correct timezone, though I'd prefer to have my
> timezone detected correctly in these browsers.
> 
> Does guix do something special in the packaging of
> qutebrowser/ungoogled-chromium/qtwebengine that causes this?
> 
> It seems to not occur on my colleagues systems with the same browsers.
> 
> I see my timezone on my system like so:
> 
> (operating-system
>  (host-name "example")
>  (timezone "Africa/Johannesburg")
>  (locale "en_US.utf8")

For what it's worth, there's a bug report here matching the issue you
describe. The issue appears to affect quite a number of programs.

https://issues.guix.gnu.org/issue/35746

Regards,
Ben



Re: Missing Secure and Private Communication Applications in Guix

2019-04-30 Thread Ben Sturmfels
On 01/05/19 03:16, Dexter Morgan wrote:

>[9] Twinkle (https://directory.fsf.org/wiki/Twinkle)

Hi Dexter,

Twinkle is in Guix too - I use it every day and it works very well. For
what it's worth, I wouldn't recommend packaging Ekiga. I've tried it
many times on other operating systems over the years and never had a
satisfactory experience. It just seems to be very buggy. Happy to be
corrected though.

Regards,
Ben



signature.asc
Description: OpenPGP digital signature


libssh source problem

2018-07-26 Thread Ben Woodcroft

Hi,

I run a setup that uses a non-standard store directory, and am running 
into this:


$ ~/git/guix-euramoo/pre-inst-env guix build -S libssh
substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' 
uses different store '/gnu/store'; ignoring it

The following derivations will be built:
/RDS/Q0227/store/sm6fhnj3yy0g44jk9nwzrrib8lhx569h-libssh-0.7.5-0.tar.xz.drv
/RDS/Q0227/store/imwprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv
substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' 
uses different store '/gnu/store'; ignoring it
substitute: guix substitute: warning: 'https://mirror.hydra.gnu.org' 
uses different store '/gnu/store'; ignoring it
@ build-started 
/RDS/Q0227/store/imwprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv 
- x86_64-linux 
/RDS/Q0227/var/log/guix/drvs/im//wprwb3ixmzkhw52rgbdcvna51ckh15-libssh-0.7.5-0.239d0f7-checkout.drv.bz2
Initialized empty Git repository in 
/RDS/Q0227/store/7871hkkcr3iqn8pjn0a8n1kfslg47rvh-libssh-0.7.5-0.239d0f7-checkout/.git/ 


fatal: dumb http transport does not support shallow capabilities


The terminal then hangs rather than failing.

Relatedly, is there some way to enable source substitutes when the store 
root does not match?


Also, is there some way to workaround this by downloading the source 
manually and then using 'guix download' or similar? I suspect that won't 
work because the file-name cannot be specified as an option to that command.


Thanks in advance, ben




Re: Problems with GNU Parallel and ulimit

2017-08-13 Thread Ben Woodcroft

On 14/08/17 12:31, Arun Isaac wrote:

Does `parallel' work for anybody? When I run

$ ls | parallel echo

I get the following error message, and nothing happens.
It works fine for me using Guix on a foreign OS, and has since I can 
remember.

ben



corrupt file on mirror?

2017-04-05 Thread Ben Woodcroft

Hi,

I just came across this, not sure what to make of it:

Found valid signature for 
/gnu/store/dhc2iy059hi91fk55dcv79z09kp6500y-gcc-5.4.0-lib
From 

https://mirror.hydra.gnu.org/guix/nar/gzip/dhc2iy059hi91fk55dcv79z09kp6500y-gcc-5.4.0-lib
Downloading dhc2iy...-gcc-5.4.0-lib (30.1MiB installed)...
 gcc-5.4.0-lib 189KiB/s 00:01 | 187KiB transferred
gzip: stdin: invalid compressed data--crc error

gzip: stdin: invalid compressed data--length error
guix substitute: error: corrupt input while restoring 
'/gnu/store/dhc2iy059hi91fk55dcv79z09kp6500y-gcc-5.4.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/include/cilk/cilk_api.h' 
from #{read pipe}#


Any ideas?
Thanks, ben



Re: downloading a tarball

2017-03-25 Thread Ben Woodcroft

Hi,


On 25/03/17 18:47, Catonano wrote:
2017-03-24 15:33 GMT+01:00 Hartmut Goebel <mailto:hart...@goebel-consult.de>>:


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.


I keep being unable to download this file

Now it downloads it but it can't decompress it - no such file

Here is my definition
http://paste.lisp.org/display/342342#1


Looks like a zipbomb, it unpacked for me using "(method 
url-fetch/zipbomb)" rather than "(method url-fetch)".


ben


Re: downloading a tarball

2017-03-24 Thread Ben Woodcroft

Hi,

On 24/03/17 22:06, Catonano wrote:

This
https://sourceforge.net/projects/libxls/files/

I attempted to build the package several times but every time the hash 
results to be wrong.


I correct it and then it's wrong again

For example, I get

@ build-failed 
/gnu/store/dcaqrf007jxyi0jzlsakr3j7faxm122f-libxsl-1.4.0.tar.gz.drv - 
1 output path 
`/gnu/store/v6i85v3myb09nbsacq9ghx6yd0spcr67-libxsl-1.4.0.tar.gz' 
should have sha256 hash 
`1574bcyagix5fkbs0yi2npi59y1zck23y2aia52vdv6ra3i5raid', instead has 
`1zmsb0w6qh4vx7n7r3yijc5p4fwljyk5apzi1hwmrr5rkawmqmks'


I think the mistake is that you are not taking the hash of the 
downloaded file, that is on the previous line. For instance from this 
example


output path 
`/gnu/store/7mfyynbzzi15265z92bdb00j7lxfa70y-libxls-1.4.0.zip' should 
have sha256 hash `0py8hsspvwjlckg2xi7jcpj0frrp2qbmsy9x55fx0knnwbhdg5d2', 
instead has `1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk'
@ build-failed 
/gnu/store/cv5nmjcwja91151zmxh9g956if0bl2xl-libxls-1.4.0.zip.drv - 1 
output path 
`/gnu/store/7mfyynbzzi15265z92bdb00j7lxfa70y-libxls-1.4.0.zip' should 
have sha256 hash `0py8hsspvwjlckg2xi7jcpj0frrp2qbmsy9x55fx0knnwbhdg5d2', 
instead has `1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk'


The correct hash is 0py8hsspvwjlckg2xi7jcpj0frrp2qbmsy9x55fx0knnwbhdg5d2.

HTH - speaking from experience making the same mistake here..
ben



Re: Help with Ruby: rouge 2.0.7

2017-03-15 Thread Ben Woodcroft

Hello there,


On 15/03/17 08:08, Björn Höfling wrote:

Hello,

I want to import the Ruby package 'rouge' 2.0.7 into Guix. I'm new to
Ruby, Gem, Rake, etc. and tried the importer with some success. Maybe
someone with more Ruby experience can tell me what's the right way here?

OK, I thought this is an easy one, because it has no dependencies:
Unfortunately, as you found, often the dependencies needed for testing 
are sometimes not listed at rubygems.org, since it is not common for 
tests to be run as part of the "gem install" installation process.



https://rubygems.org/gems/rouge/versions/2.0.7

I started with:

guix import gem rouge > rouge.scm

Then added some import headers in the file and tried to build it with
[..]
/gnu/store/6ks5gf4088qd23hac1cbd14aml6h1pgw-bundler-1.14.5/lib/ruby/gems/2.3.0/gems/bundler-1.14.5/lib/bundler/resolver.rb:386:in
`block in verify_gemfile_dependencies_are_found!': Could not find gem
'wrong' in any of the gem sources listed in your Gemfile.
(Bundler::GemNotFound)
from 
/gnu/store/6ks5gf4088qd23hac1cbd14aml6h1pgw-bundler-1.14.5/lib/ruby/gems/2.3.0/gems/bundler-1.14.5/lib/bundler/resolver.rb:356:in
`each'
[..]

Does that mean that I have to install
'wrong' (https://rubygems.org/gems/wrong) that itself has 5
dependencies, 4 are not in Guix?
That seems to be the case, unfortunately. There also seems to be some 
other gems in the Gemfile which aren't yet packaged for Guix. There are 
also a number of packages in the wip-rails branch on savannah which 
might be of use - these aren't quite ready yet but if there was interest 
I could finish them off.


If the number of packages needed gets too large, then there may be a 
case for not running the tests in some packages.


Good luck.
ben.



Re: rustc problem

2017-01-10 Thread Ben Woodcroft

On 09/01/17 23:48, David Craven wrote:

Not quite I'm afraid, I get
/gnu/store/p8543gm372dyff5p8mcq0phb09mq548z-profile/bin/ld: cannot find crti.o: 
No such file or directory

I have gcc-toolchain installed in my profile, this problem didn't
show. I submitted a patch that works with

guix environment --pure --ad-hoc rustc


And that patch works as advertised. Thanks, problem solved.
ben



Re: rustc problem

2017-01-09 Thread Ben Woodcroft

On 09/01/17 21:27, David Craven wrote:

Hi Ben,

The problem is that binutils isn't retained. This is due to:

(string-append "--default-ar=" gcc "/bin/ar").

This is a bug in the rustc package, which I haven't fixed yet.

To work around this issue you should be able to do

guix environment --ad-hoc binutils rustc


Not quite I'm afraid, I get

/gnu/store/p8543gm372dyff5p8mcq0phb09mq548z-profile/bin/ld: cannot find 
crti.o: No such file or directory


But OK. Thanks for the quick response.
ben



rustc problem

2017-01-09 Thread Ben Woodcroft

Hi,

I thought I'd try out rust today, just because. So I fired up Guix's 
rustc and tried to compile the example on https://www.rust-lang.org but 
alas:



$ ./pre-inst-env guix environment -C --ad-hoc rustc
[env]# rustc a.rs
error: linking with 
`/gnu/store/y1g6991kxvdk4vxhsq07r5saww30v8dq-gcc-4.9.4/bin/gcc` failed: 
exit code: 1

  |
  = note: 
"/gnu/store/y1g6991kxvdk4vxhsq07r5saww30v8dq-gcc-4.9.4/bin/gcc" 
"-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib" 
"a.0.o" "-o" "a" "-Wl,--gc-sections" "-pie" "-nodefaultlibs" "-L" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib" 
"-Wl,-Bstatic" "-Wl,-Bdynamic" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcollections-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_unicode-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-f5a209a9.rlib" 
"/gnu/store/cvvbiqz761ka2p3dhkc4ip94arlj710i-rustc-1.14.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-f5a209a9.rlib" 
"-l" "dl" "-l" "pthread" "-l" "gcc_s" "-l" "pthread" "-l" "c" "-l" "m" 
"-l" "rt" "-l" "util"

  = note: collect2: fatal error: cannot find 'ld'
compilation terminated.


This can be worked around by the following, but this seems non-ideal.

$ ./pre-inst-env environment -C rustc --ad-hoc rustc


Any ideas? Apologies if this is a known issue.

Thanks, ben.




Re: Non-privileged daemons and offloading

2016-07-29 Thread Ben Woodcroft
 https://hal.inria.fr/hal-01161771/en

In the end, for a sysadmin, it’s a cost/benefit tradeoff.  In some
situations, providing Guix may mean much less work for cluster admins.


I haven't had much luck with this so far, though there is some interest. 
I'm hoping to convince the sysadmins that Guix is mature enough software 
by running my own setup for a while. The difference between the number 
of bioinformatics packages available in Guix versus the number of 
available modules in the HPC reflects very well on us here - that would 
be a primary advantage. On a separate cluster where I do have root, 
we've also had good success in adapting profiles to sit behind 
modulefiles so that users are unaware that behind the scenes some 
packages have been transitioned to being built by Guix, especially as we 
upgrade the OS.



On 20/06/16 19:06, Roel Janssen wrote:

Hello Ben,

It seems like we are facing a similar problem.  A proper solution takes
a lot more work and a lot more time I believe.  I am also currently
working on a more complete guide to do this, but here I tried to get the
essentials written down.

As far as software deployment goes, I have done the following to get it
on the restricted environment (in my case a cluster, on your case, a
super computer):


Actually I misspoke, it is a cluster. I followed your instructions and 
it is working well, thanks! I would be happy to contribute to a guide on 
doing this if that is of use.



1. Get /gnu/store, or bootstrap your own store with a custom prefix
(I've done the latter) on a VM or a machine that has super user
privileges (let's call this the "build host").

For a custom prefix, you need to build guix from source with:

   ./configure --with-store-dir=/hpc/custom/guix-store \
   --localstatedir=/hpc/custom/guix-state/guix

You should change the environment variables: NIX_STATE_DIR and
NIX_STORE_DIR, before running the daemon, and before running the guix
command as a user.  In my case, I used:

   export NIX_STATE_DIR=/hpc/custom/guix-state/guix
   export NIX_STORE_DIR=/hpc/custom/guix-store
   guix-daemon --cores=4 --max-jobs=4 --no-substitutes 
--build-users-group=guixbuild


I didn't find exporting those environment variables necessary, except 
when running guix and guix-daemon on the restricted machine.



2. Build the packages you want to deploy on the HPC on the build host.

   export NIX_STATE_DIR=/hpc/custom/guix-state/guix
   export NIX_STORE_DIR=/hpc/custom/guix-store
   guix package -i 


3. Copy the store and profiles.  This is a bit more tricky.  In my case,
hardlinks would not work because of the properties of our storage
system.  I used the following to copy the store and the profile (and
update it later on):

   rsync -lrt --delete --exclude=.links /hpc/custom/guix-store 
user@restricted-machine:/hpc/custom
   rsync -lrt --delete --exclude=.links /hpc/custom/guix-state 
user@restricted-machine:/hpc/custom


I simplified this by putting all the things to rsync in a single folder 
so that a single call was needed, and I found "-z" helped too.



I excluded the .links directory to save space (you could copy them as
normal files instead of hardlinks, and the size of your store will
double).  Without this directory, you cannot efficiently do package
management, so don't remove it on the build host.

I didn't use the offloading mechanism on Guix.  I avoid using the
guix-daemon entirely, and reduce the deployment problem to an rsyncable
thing.

 From here on, you can run programs as usual by adding
/hpc/custom/guix-state/guix/profiles/per-user//guix-profile/bin
to your path (and the other relevant environment variables).

If you install guix in your store, you can run guix-daemon on the
restricted machine and get 'guix package --search-paths', 'guix graph
...' and even 'guix gc' to work.  I haven't tested the other commands
yet.


I take it by 'guix gc' you mean 'guix gc --references' since you don't 
want to modify the store, correct? I only tried 'guix package 
--search-paths', which is probably the most important for users.


Thanks,
ben



suspicious ownership after grafting

2016-07-11 Thread Ben Woodcroft

Hi,

I came across this issue while running `guix environment`, not sure what 
to make of it. Any ideas? The actual package 'roary' I'm working on but 
I guess this is immaterial.


Thanks.
ben

$ GUIX_PACKAGE_PATH=~/git/guix_mine ~/git/guix/pre-inst-env guix 
environment --pure --ad-hoc roary bash -- sh

[..]
The following derivations will be built:
   /gnu/store/15l1lm4nicr5qv2v2a05m0fm0755phxn-profile.drv
   /gnu/store/qc82cx25ay36cql71g6lv9q468phyk8s-xdg-mime-database.drv
   /gnu/store/n24l75vg3z1a9jkzyzzixwyngx3ca6l3-gtk-icon-themes.drv
/gnu/store/mgzk9gwrz5vcvfn2420jx0rwqlf3cy7q-ca-certificate-bundle.drv
   /gnu/store/6k2rh0602amgqwngrqx25p9dr06r6jgp-info-dir.drv
/gnu/store/fwc42sqhk7rcfm8fcx60wvlz6c6vr8nn-python-matplotlib-1.4.3.drv
/gnu/store/25fjylizlwry7ggkw070hcq8wksmcakj-python-biopython-1.66.drv
/gnu/store/3p9za09jbsp5znb66fqcc84ziz5gp78b-python-numpy-1.10.4.drv
/gnu/store/4dkp54cv8vbvmhh6ml3jrvrnfhf29cdw-python-pandas-0.18.1.drv
/gnu/store/dsiwlbxwg02zq0kgmfjlk6vcvxwnjai8-python-matplotlib-1.4.3.drv
/gnu/store/g5ril8d0bhfm81sxj6yi7l1xmzjssym6-bioperl-minimal-1.6.924.drv
/gnu/store/pmzhxkfsy2i9d004j8wwird06asw0yl5-python-scipy-0.16.0.drv
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash: 
warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash: 
warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

warning: failed to install locale: Invalid argument

Found valid signature for 
/gnu/store/9fyxg3nx4qgc70rxixlq4xvh6yxpg3qb-python-numpy-1.10.4-doc
From 

http://mirror.hydra.gnu.org/nar/9fyxg3nx4qgc70rxixlq4xvh6yxpg3qb-python-numpy-1.10.4-doc
Downloading 9fyxg3...-python-numpy-1.10.4-doc (29.5MiB installed)...
 
http://mirror.hydra.gnu.org/nar/9fyxg3nx4qgc70rxixlq4xvh6yxpg3qb-python-numpy-1.10.4-doc
 460KiB/s 00:20 | 8.8MiB transferredd
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash: 
warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash: 
warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

warning: failed to install locale: Invalid argument

[..]
Found valid signature for 
/gnu/store/7rx8bl62h0wsi0zskqfihg4yaman60ip-python-matplotlib-1.4.3-doc
From 

http://mirror.hydra.gnu.org/nar/7rx8bl62h0wsi0zskqfihg4yaman60ip-python-matplotlib-1.4.3-doc
Downloading 7rx8bl...-python-matplotlib-1.4.3-doc (164.9MiB installed)...
 
http://mirror.hydra.gnu.org/nar/7rx8bl62h0wsi0zskqfihg4yaman60ip-python-matplotlib-1.4.3-doc
 839KiB/s 02:39 | 130.0MiB transferred
grafting 
'/gnu/store/vdqwkb544hy4jqsaya4i8cflhp4i8a7r-bioperl-minimal-1.6.924' -> 
'/gnu/store/yl9irswc43y6lz3l4kilkhxd7m919h1j-bioperl-minimal-1.6.924'...
grafting 
'/gnu/store/i3rq0h92sp0qm1nc4a94f6nd1mcsz5dq-python-biopython-1.66' -> 
'/gnu/store/2m928yx71q3h2jsx8g0019cyhzrqgj5a-python-biopython-1.66'...
grafting 
'/gnu/store/7rx8bl62h0wsi0zskqfihg4yaman60ip-python-matplotlib-1.4.3-doc' -> 
'/gnu/store/w6ykkz7kxnbjx28vs1gkbbsqrfvqhwk1-python-matplotlib-1.4.3-doc'...
grafting 
'/gnu/store/3p34y7rwmk7bbc0n4j1xf3j6yhlxf5rg-python-matplotlib-1.4.3' -> 
'/gnu/store/sbi9plxyyvvzp4hn9wwix677w0808hrb-python-matplotlib-1.4.3'...
suspicious ownership or permission on 
`/gnu/store/w6ykkz7kxnbjx28vs1gkbbsqrfvqhwk1-python-matplotlib-1.4.3-doc'; 
rejecting this build output
cannot build derivation 
`/gnu/store/15l1lm4nicr5qv2v2a05m0fm0755phxn-profile.drv': 1 
dependencies couldn't be built
guix environment: error: build failed: build of 
`/gnu/store/15l1lm4nicr5qv2v2a05m0fm0755phxn-profile.drv' failed





Non-privileged daemons and offloading

2016-06-19 Thread Ben Woodcroft

Hi there,

I've recently gotten access to a supercomputer where I don't have sudo, 
and I'm trying to hatch a plan to run guix packaged programs. 
Unfortunately, I don't have anything substantial like a container-based 
build environment to add here, only a potential workaround idea.


I could run the daemon normally as a regular user, but I'm afraid of the 
issues that arise due to inability to chroot as described in the manual. 
Instead, I'm considering offloading the builds to a separate machine, 
where a guix-daemon runs as sudo and so can run builds in the chroot. 
IIUC, this gets around the issue of impurities in builds while not 
requiring sudo.


One hole the plan I can see is that at least according to the manual, 
offloads are defined in "/etc/guix/machines.scm" which as a regular user 
I cannot modify. Is there any other way to specify offload machines e.g. 
via an argument to 'guix-daemon'? Is there any better ways to go about 
this whole thing in general?


Thanks,
ben


Re: not tarred source file

2016-05-15 Thread Ben Woodcroft

Hi there,

On 16/05/16 06:57, Ludovic Courtès wrote:

Hi!

Catonano  skribis:


after having successfully packaged (locally) the Zenburn theme and
Smartparens, I am preparing the package for clojure-mode

But for the first time it happens that the downloaded source code is not
tarred so tar fails and so does the unpack phase.

How do I instruct the origin object not to attempt untarring my source ?

It’s OK if the ‘origin’ denotes a file that is not a tarball.

However, the build procedure will have to pay attention for that.  For
instance, the default sequence of phases of ‘gnu-build-system’ includes
an ‘unpack’ phase, which is inappropriate here:

   https://www.gnu.org/software/guix/manual/html_node/Build-Systems.html

There are a couple of examples, e.g., paredit in emacs.scm.  Most of
them use ‘trivial-build-system’, which requires explicitly writing the
build/install operations.
If it is a single file then I believe it is as simple as deleting the 
unpack phase e.g. fasttree in bioinformatics.scm, I had thought it was 
still good practice not to use the trivial build system where possible 
as it omits some useful defaults.


ben



Re: environment --container not working after upgrading Ubuntu

2016-05-01 Thread Ben Woodcroft



On 01/05/16 22:17, Thompson, David wrote:

On Sat, Apr 30, 2016 at 8:17 PM, Ben Woodcroft  wrote:

Hi,

I upgraded to the just-released Ubuntu Xenial yesterday, seems nice and
snappy. The only issue I've had with it so far is that 'guix environment
--container' run from a git checkout doesn't work. There's no error given,
it simply exits:

$ ./pre-inst-env guix environment --container coreutils
[..]
$ echo $?
1

Any ideas on debugging this? I tried 'make clean; make'. My daemon is a
little out of date, but it was working before the upgrade.

Could you prefix that command with 'strace -f -o /tmp/container.log'
and send the generated log file?  This way we'll see the system calls
that are failing.


OK, attached. My guess from that is that it may be due to my also 
updating my ~/.guix-profile recently, come to think of it.


Should I re-configure? I would go ahead, but want to check in case this 
is a valuable test case.


ta.
31702 read(10, "4\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/yy3ly86zllhjidal4kd1x"..., 52) = 52
31702 read(10, "\0\0\0\0", 4)   = 4
31702 read(10, "4\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/z8vgpay1q450ndgil902x"..., 52) = 52
31702 read(10, "\0\0\0\0", 4)   = 4
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/zhpsnd5gvfcbk02vclv60"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "7\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/zvm9rk007dd6r7rzy0ykj"..., 55) = 55
31702 read(10, "\0", 1) = 1
31702 write(10, "\5\0\0\0\0\0\0\0", 8)  = 8
31702 write(10, "6\0\0\0\0\0\0\0/gnu/store/01q81q7lxwpky"..., 64) = 64
31702 read(10, "stla\0\0\0\0", 8)   = 8
31702 read(10, "\4\0\0\0\0\0\0\0", 8)   = 8
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/01q81q7lxwpkykghl4yc7"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/8m00x5x8ykmar27s9248c"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "7\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/b1yqjimbdh5bf9jnizd4h"..., 55) = 55
31702 read(10, "\0", 1) = 1
31702 read(10, "9\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/v39bh3ln3ncnzhyw0kd12"..., 57) = 57
31702 read(10, "\0\0\0\0\0\0\0", 7) = 7
31702 write(10, "\5\0\0\0\0\0\0\0", 8)  = 8
31702 write(10, "4\0\0\0\0\0\0\0/gnu/store/304ljrrivn98d"..., 64) = 64
31702 read(10, "stla\0\0\0\0", 8)   = 8
31702 read(10, "\5\0\0\0\0\0\0\0", 8)   = 8
31702 read(10, "4\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/304ljrrivn98ds6zsv3lc"..., 52) = 52
31702 read(10, "\0\0\0\0", 4)   = 4
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/8m00x5x8ykmar27s9248c"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "7\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/b1yqjimbdh5bf9jnizd4h"..., 55) = 55
31702 read(10, "\0", 1) = 1
31702 read(10, "5\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/jfj94hba68b4py44l0imw"..., 53) = 53
31702 read(10, "\0\0\0", 3) = 3
31702 read(10, "9\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/v39bh3ln3ncnzhyw0kd12"..., 57) = 57
31702 read(10, "\0\0\0\0\0\0\0", 7) = 7
31702 write(10, "\5\0\0\0\0\0\0\0", 8)  = 8
31702 write(10, ":\0\0\0\0\0\0\0/gnu/store/34j2zmi69mqwr"..., 72) = 72
31702 read(10, "stla\0\0\0\0", 8)   = 8
31702 read(10, "\6\0\0\0\0\0\0\0", 8)   = 8
31702 read(10, ":\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/34j2zmi69mqwrslpyizbi"..., 58) = 58
31702 read(10, "\0\0\0\0\0\0", 6)   = 6
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/8m00x5x8ykmar27s9248c"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "5\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/chc189wmwl812vi19a8i8"..., 53) = 53
31702 read(10, "\0\0\0", 3) = 3
31702 read(10, "6\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/faxgil2xfskxww4zy7k6l"..., 54) = 54
31702 read(10, "\0\0", 2)   = 2
31702 read(10, "7\0\0\0\0\0\0\0", 8)= 8
31702 read(10, "/gnu/store/h9hrlbf5ax5z87rysij69"..., 55) = 55
31702 read(10, "\0", 1) = 1
31702 read(10, &

environment --container not working after upgrading Ubuntu

2016-04-30 Thread Ben Woodcroft

Hi,

I upgraded to the just-released Ubuntu Xenial yesterday, seems nice and 
snappy. The only issue I've had with it so far is that 'guix environment 
--container' run from a git checkout doesn't work. There's no error 
given, it simply exits:


$ ./pre-inst-env guix environment --container coreutils
[..]
$ echo $?
1

Any ideas on debugging this? I tried 'make clean; make'. My daemon is a 
little out of date, but it was working before the upgrade.

Thanks,
ben



Re: Design decision behind inputs/native-inputs/propagated-inputs

2016-01-21 Thread Ben Woodcroft

Hi,

On 22/01/16 09:19, Steven Allen wrote:

Just to be clear, given:

 (package
 (name "foo")
 (inputs `(("bar", bar)))
 (native-inputs `(("baz", baz)))
 ...
 )

If I install "foo", "foo" will **always** be able to use the files in "bar"
but will not (may not?) be able to use the files in "baz"?
That's true for some definition of 'use', yes. If you add foo to your 
profile and it is downloaded from a substitute (as opposed to being 
built from source on your machine), then you'll have to download bar as 
well, but not necessarily baz.

Sorry about the confusion...

Not at all.

ben



Re: Design decision behind inputs/native-inputs/propagated-inputs

2016-01-21 Thread Ben Woodcroft

Hi Steven,

On 22/01/16 02:08, Steven Allen wrote:

On 01-21-16, Ludovic Courtès wrote:

In short, the distinction between ‘native-inputs’ and ‘inputs’ exists
solely because Guix supports cross-compilation.  Otherwise it would be
unneeded.

Propagated inputs are a way to manually say: “I want this package to
automatically pull in those other packages.”  This is necessary in the
cases given above.

Does this clarify the rationale?

I believe I understand what they mean and how they solve the problem. My
question is more "why autodetect runtime dependencies"?

Can I ask, what do you mean by "autodetect" ?

Thanks,
ben



Re: boost 1-60

2016-01-07 Thread Ben Woodcroft

Hi Carl,

On 07/01/16 09:33, carl hansen wrote:

I see from guix-devel boost-1.60 is now included.
Actually Boost 1.60 has not yet been included in the master branch, so 
pulling will not grab it. If you wish to use it then you will either 
need to apply the patches sent to the mailing list yourself, or wait the 
patches have been integrated into master.


Thanks,
ben


Re: container issues

2016-01-01 Thread Ben Woodcroft



On 02/01/16 01:01, Ludovic Courtès wrote:

Ben Woodcroft  skribis:


$ ./pre-inst-env guix environment --ad-hoc -C ruby

It works for me on GuixSD.


In execvp of fsck.none: No such file or directory
'fsck.none' exited with code 127 on /home/ben/git/guix; spawning REPL

This comes from ‘mount-file-system’ in (gnu build file-systems), called
from (gnu build linux-container).

I suspect an ABI issue if you haven’t rebuilt since be21979d
(Dec. 22nd.)

Could you run ‘make clean-go && make’ and then retry?
You suspect correctly, all good. I'll make sure to do that in future 
before submitting a bug report.

TIA, and happy GNU year!

May all the bugs reported to you be false!

Thanks,
ben



Re: container issues

2015-12-31 Thread Ben Woodcroft



On 01/01/16 00:59, Thompson, David wrote:

On Thu, Dec 31, 2015 at 8:00 AM, Ben Woodcroft  wrote:

Hey,

I'm on newest master (45147b0), is something amiss?


$ ./pre-inst-env guix environment --ad-hoc -C ruby
In execvp of fsck.none: No such file or directory
'fsck.none' exited with code 127 on /home/ben/git/guix; spawning REPL
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>



I also cannot quit this terminal as it keeps respawning. Any ideas?

I'm able to reproduce this on my GuixSD laptop, but not on my
Guix+Ubuntu system.  Very interesting.  I will try to investigate
further when I get a chance.  Anyone should feel free to fix it before
I do. ;)

Thanks for the report,
I'm on Ubuntu so it isn't GuixSD specific. Using git bisect I found this 
commit to be where it stops working for me:


be21979d85304fedd5c0fb970ffc337d220eda7a is the first bad commit
commit be21979d85304fedd5c0fb970ffc337d220eda7a
Author: Ludovic Courtès 
Date:   Tue Dec 22 00:25:40 2015 +0100

file-systems: Add a 'mount?' field.

Fixes <http://bugs.gnu.org/22176>.
Reported by Florian Paul Schmidt .

* gnu/system/file-systems.scm ()[mount?]: New field.
(file-system->spec): Adjust accordingly.
* gnu/services/base.scm (file-system-dmd-service): Return the empty 
list

when FILE-SYSTEM has 'mount?' set to false.
(user-processes-service): Select the subset of FILE-SYSTEMS that 
matches

'file-system-mount?'.
* doc/guix.texi (File Systems): Document it.



Thanks,
ben

PS. It would be good to get your opinion on the Ruby reproducibility 
thread in guix-devel, in case you haven't noticed it.




container issues

2015-12-31 Thread Ben Woodcroft

Hey,

I'm on newest master (45147b0), is something amiss?


$ ./pre-inst-env guix environment --ad-hoc -C ruby
In execvp of fsck.none: No such file or directory
'fsck.none' exited with code 127 on /home/ben/git/guix; spawning REPL
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>



I also cannot quit this terminal as it keeps respawning. Any ideas?

thanks
ben