Camlp4 error
Hello, the attached (partial) package is supposed to add GTK+ bindings for OCaml, which I would like to have for unison. Building currently fails with the following message: camlp4o pa_macro.cmo -D HAS_PRINTEXC_BACKTRACE -impl gtkSignal.ml4 -o gtkSignal.ml Camlp4: Uncaught exception: DynLoader.Error (Camlp4MacroParser.cmo, file not found in path) Makefile:515: recipe for target 'gtkSignal.ml' failed The file Camlp4MacroParser.cmo is available in /gnu/store/ikshd53q3pp3mdcsjqp5kkfakmcjs4xp-camlp4-4.02.0+1/lib/camlp4/Camlp4Parsers/ Does someone familiar with OCaml know what to do? Do we need a search path specification? Maybe relevant: configure complains about checking for ocamlfind... no ./configure: line 2670: no: command not found configure: WARNING: Ignoring ocamlfind Thanks for your help! Andreas diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 12d813f..3e68917 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -26,6 +26,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages gcc) + #:use-module (gnu packages gtk) #:use-module (gnu packages base) #:use-module (gnu packages emacs) #:use-module (gnu packages texinfo) @@ -472,3 +473,37 @@ a collection of files and directories to be stored on different hosts brought up to date by propagating the changes in each replica to the other.) (license gpl3+))) + +(define-public lablgtk + (package +(name lablgtk) +(version 2.18.3) +(source + (origin +(method url-fetch) + (uri (string-append https://forge.ocamlcore.org/frs/download.php/; + 1479/lablgtk-2.18.3.tar.gz)) + (sha256 +(base32 + 1bybn3jafxf4cx25zvn8h2xj9agn1xjbn7j3ywxxqx6az7rfnnwp +(build-system gnu-build-system) +(native-inputs + `((camlp4 ,camlp4) + (ocaml ,ocaml) + (pkg-config ,pkg-config))) +(inputs + `((gtk+ ,gtk+-2))) +(arguments + `(#:parallel-build? #f)) ; just in case +(home-page http://lablgtk.forge.ocamlcore.org/;) +(synopsis GTK+ bindings for OCaml) +(description + LablGtk is an OCaml interface to GTK+ 1.2 and 2.x. It provides +a strongly-typed object-oriented interface that is compatible with the +dynamic typing of GTK+. Most widgets and methods are available. LablGtk +also provides bindings to +gdk-pixbuf, the GLArea widget (in combination with LablGL), gnomecanvas, +gnomeui, gtksourceview, gtkspell, +libglade (and it an generate OCaml code from .glade files), +libpanel, librsvg and quartz.) +(license lgpl2.1)))
Re: FOSDEM 2016
Hello! (Sorry for the late reply.) Pjotr Prins pjotr.publi...@thebird.nl skribis: We should propose a Guile + Guix developers track for FOSDEM. They usually have Ruby/Perl/Python dev tracks, so Guile will fit right in. I am sure we can generate enough interesting talks on aspects of Guix packaging, for one. Deadline for dev room proposals is half September. That’s a good idea. In the past, Alex Sassmannshausen (Cc’d) took care of submitting dev room proposals for GNU as a whole. Alex: What would you think of making a Guix or Guile+Guix (instead of GNU) dev room? Would you like to give a hand? If we fail to get a dev room, we can surely submit one or two talk proposals. Thanks, Ludo’.
[PATCH] system: grub: Adjust eye-candy to work on non-Intel systems
This patch adjusts the 'eye-candy' portion of our GRUB configuration to work properly on non-Intel systems, and specially on Loongson machines. Mark From 943a4a9e30e1e659a6e1591e965d215bf8e8f351 Mon Sep 17 00:00:00 2001 From: Mark H Weaver m...@netris.org Date: Sun, 9 Aug 2015 18:45:49 -0400 Subject: [PATCH] system: grub: Adjust eye-candy to work on non-Intel systems. * gnu/system/grub.scm (eye-candy): Accept additional 'system' argument. Add local 'intel?' variable. Replace the 'load_video' grub function with 'setup_gfxterm', which includes everything in the 'if loadfont' form on Intel systems, but is empty on non-Intel. (grub-configuration-file): Pass 'system' to 'eye-candy. --- gnu/system/grub.scm | 36 +++- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 1378f5f..4e095c5 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -167,10 +167,14 @@ WIDTH/HEIGHT, or #f if none was found. (with-monad %store-monad (return #f) -(define (eye-candy config port) +(define (eye-candy config system port) Return in %STORE-MONAD a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part concerned with graphics mode, background images, colors, and all that. + (define intel? (or (string-prefix? x86_64- system) + (string-prefix? i686- system) + (string-prefix? i586- system))) + (define (theme-colors type) (let* ((theme (grub-configuration-theme config)) (colors (type theme))) @@ -178,22 +182,27 @@ all that. (symbol-string (assoc-ref colors 'bg) (mlet* %store-monad ((image (grub-background-image config))) -(return (and image #~(format #$port -function load_video { +(return (and image + #~(let ((setup-gfxterm-body + (if #$intel? + + set gfxmode=640x480 insmod vbe insmod vga insmod video_bochs insmod video_cirrus -} + insmod gfxterm + terminal_output gfxterm + + ))) + (format #$port +function setup_gfxterm {~a} # Set 'root' to the partition that contains /gnu/store. search --file --set ~a/share/grub/unicode.pf2 if loadfont ~a/share/grub/unicode.pf2; then - set gfxmode=640x480 - load_video - insmod gfxterm - terminal_output gfxterm + setup_gfxterm fi insmod png @@ -204,10 +213,11 @@ else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi~% -#$grub #$grub -#$image -#$(theme-colors grub-theme-color-normal) -#$(theme-colors grub-theme-color-highlight)) + setup-gfxterm-body + #$grub #$grub + #$image + #$(theme-colors grub-theme-color-normal) + #$(theme-colors grub-theme-color-highlight))) ;;; @@ -244,7 +254,7 @@ entries corresponding to old generations of the system. #$linux #$linux-image-name (string-join (list #$@arguments)) #$initrd - (mlet %store-monad ((sugar (eye-candy config #~port))) + (mlet %store-monad ((sugar (eye-candy config system #~port))) (define builder #~(call-with-output-file #$output (lambda (port) -- 2.5.0
Re: Running guix-daemon as an unprivileged user
Thompson, David dthomps...@worcester.edu skribis: Yes, user namespaces can be created by unprivileged users. The user that created the namespace then has root in the context of the new namespace, which allows for creating all of the other types of namespaces. There's been some bumps along the way, such as a security bug with groups that prompted the addition of the /proc/pid/setgroups file in Linux 3.19 (I think) that has since been backported to earlier kernel releases, the oldest I know of being 3.13. But overall, this feature is very good and using it for Guix would allow for the unprivileged daemon to take advantage of almost all of the isolation techniques used by the privileged daemon. That’d be a very nice thing to have. Thanks, Ludo’.
Re: [GSoC update] Porting Guix to GNU/Hurd
Hi! Manolis Ragkousis manolis...@gmail.com skribis: 1) Guix can successfully cross-build any package for the Hurd and produce the bootstrap-tarballs to build packages with Guix natively on such a system. 2) Guix can build the native final toolchain. 3) Guix can build packages natively using the final toolchain. Even though most of the work is already present in the wip-hurd branch, there are still some patches to be reviewed/merged. This will happen asap. But nevertheless we can safely say we have ported Guix to Hurd. :-) Congratulations on that! That’s a great achievement, and I know there were some bumps on the road, and the project covers several very different pieces of software, so thumbs up! 2) guix/build/syscalls (mount, umount, setns ) Those aren't available on Hurd, so building Guix would fail. It seems turning them into procedures is enough to work around this. This module is only used by GuixSD anyway (not Guix itself), so no problem. In the interim, we should perhaps arrange to not build that module when, say, ‘mount’ is missing (using an ‘AM_CONDITIONAL’.) 4) Perl could not be build because of a problem with memmove in hurd's glibc. Together with Samuel and Justus we traced the problem to a not properly tested part of glibc. Fixed. Pheew. :-) 5) glibc-intermediate could not find the gnumach/hurd headers because of unsetting the path during the build process. It seems that glibc's sysdeps/mach and sysdeps/mach/hurd configure weren't using the --with-headers variable to get the headers. Fixed that and sent the patch to bug-hurd :-). OK. 6) Binaries produced from gcc-boot0 had problems with their runpath and validate-runpath? was failing. It seems ld wasn't passing -rpath to them. Added an ld-wrapper, solved. Interesting, will look at the patch hopefully soon. 7) glibc-final's debug output refers to %glibc-bootstrap. I think this happens indirectly through the headers, currently solving that. Would be nice to understand why that happens. In the meantime you could disable #:allowed-references altogether for that package when on GNU/Hurd, if you want. Also, I am near finishing sys/mount.h for Hurd. Will finish it as soon as possible. Great! I get the feeling I forgot some things so please remind/ask me anything. For the next two days I will wrap up patches and push them to wip-hurd. After that I will continue working on getting the full GuixSD experience on Hurd. And one of these days we will deploy guix on darnassus together with rbraunr. I will inform you when that happens. Excellent. Thanks to the Hurd and Guix people for giving you a hand! Cheers, Ludo’.
[PATCH] linux-initrd: Make platform-specific linux modules optional
I now have GuixSD running well on my MIPS-based Lemote Yeeloong 8101B with XFCE, and many of the patches are now ready for submission upstream. Here's the first. Our 'base-initrd' has a hard-coded set of modules to include, some of which are only available on Intel platforms. It does not accept a 'system' argument, so it's not clear to me how to parameterize the set of modules based on the system. Since 'base-initrd' is used within OS configuration files and thus a part of our API, I was reluctant to add 'system' to its argument list. So, the approach I took here is to allow some of the modules to be optional, such that if they are not available, a warning is issued but not an error. I'm not wedded to this approach, and am open to suggestions. What do you think? Mark From 6201794d7a1aa36b5596048b890d65c0635e0d14 Mon Sep 17 00:00:00 2001 From: Mark H Weaver m...@netris.org Date: Sun, 9 Aug 2015 03:40:25 -0400 Subject: [PATCH] linux-initrd: Make platform-specific linux modules optional. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Add 'optional-modules' argument. Add 'required?' argument to internal 'lookup' procedure. Use it when producing the list of modules to copy. (base-initrd): Add 'optional-linux-modules' internal variable. Pass it to 'flat-linux-module-directory'. Move 'pata_acpi', 'pata_atiixp' and 'isci' from 'linux-modules' to 'optional-linux-modules'. --- gnu/system/linux-initrd.scm | 33 - 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 48b855b..b2d961b 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès l...@gnu.org +;;; Copyright © 2015 Mark H Weaver m...@netris.org ;;; ;;; This file is part of GNU Guix. ;;; @@ -85,13 +86,14 @@ MODULES is a list of Guile module names to be embedded in the initrd. (gnu build linux-initrd)) #:references-graphs `((closure ,init) -(define (flat-linux-module-directory linux modules) +(define (flat-linux-module-directory linux modules optional-modules) Return a flat directory containing the Linux kernel modules listed in MODULES and taken from LINUX. (define build-exp #~(begin (use-modules (ice-9 match) (ice-9 regex) (srfi srfi-1) + (srfi srfi-26) (guix build utils) (gnu build linux-modules)) @@ -102,22 +104,29 @@ MODULES and taken from LINUX. (define module-dir (string-append #$linux /lib/modules)) -(define (lookup module) +(define (lookup module required?) (let ((name (ensure-dot-ko module))) (match (find-files module-dir (string-regexp name)) ((file) file) (() - (error module not found name module-dir)) + (if required? + (error module not found name module-dir) + (begin + (format #t warning: module not found: ~a~% name) + #f))) ((_ ...) (error several modules by that name name module-dir) (define modules - (let ((modules (map lookup '#$modules))) + (let ((modules + (append (map(cut lookup #t) '#$modules) + (filter-map (cut lookup #f) '#$optional-modules (append modules (recursive-module-dependencies modules - #:lookup-module lookup + #:lookup-module + (cut lookup #t) (mkdir #$output) (for-each (lambda (module) @@ -178,8 +187,6 @@ loaded at boot time in the order in which they appear. (define linux-modules ;; Modules added to the initrd and loaded from the initrd. `(ahci ;for SATA controllers - pata_acpi pata_atiixp ;for ATA controllers - isci ;for SAS controllers like Intel C602 usb-storage uas ;for the installation image etc. usbkbd usbhid ;USB keyboards, for debugging ,@(if (or virtio? qemu-networking?) @@ -196,6 +203,12 @@ loaded at boot time in the order in which they appear. '()) ,@extra-modules)) + (define optional-linux-modules +;; Like linux-modules (above), but if these modules are not available, a +;; warning is issued instead of an error. +`(pata_acpi pata_atiixp ;for ATA controllers + isci))
[PATCH] system: grub: On MIPS, the linux image name is vmlinuz
Currently, we assume that the linux image name is bzImage, but this varies depending on platform. On MIPS, the name is vmlinuz. This modifies our 'grub-configuation-file' generation code to use vmlinuz on MIPS. Mark From a15b9a1eedd5b110b94e13f0fea17323aa1e160e Mon Sep 17 00:00:00 2001 From: Mark H Weaver m...@netris.org Date: Wed, 19 Aug 2015 16:30:02 -0400 Subject: [PATCH] system: grub: On MIPS, the linux image name is vmlinuz, not bzImage. * gnu/system/grub.scm (grub-configuration-file): Add 'linux-image-name' internal procedure. Use it from 'entry-gexp'. --- gnu/system/grub.scm | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index fe7400a..1378f5f 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -221,6 +221,11 @@ fi~% Return the GRUB configuration file corresponding to CONFIG, a grub-configuration object. OLD-ENTRIES is taken to be a list of menu entries corresponding to old generations of the system. + (define linux-image-name +(if (string-prefix? mips system) +vmlinuz +bzImage)) + (define all-entries (append entries (grub-configuration-menu-entries config))) @@ -229,13 +234,14 @@ entries corresponding to old generations of the system. (($ menu-entry label linux arguments initrd) #~(format port menuentry ~s { # Set 'root' to the partition that contains the kernel. - search --file --set ~a/bzImage~% + search --file --set ~a/~a~% - linux ~a/bzImage ~a + linux ~a/~a ~a initrd ~a }~% #$label -#$linux #$linux (string-join (list #$@arguments)) +#$linux #$linux-image-name +#$linux #$linux-image-name (string-join (list #$@arguments)) #$initrd (mlet %store-monad ((sugar (eye-candy config #~port))) -- 2.5.0
Re: Running guix-daemon as an unprivileged user
Eric Bavier ericbav...@openmailbox.org skribis: On 2015-08-17 15:46, Claes Wallin wrote: On Mon, Aug 17, 2015 at 10:33 AM, Eric Bavier ericbav...@openmailbox.org wrote: I have experimented with this a bit lately. It works to some extent, but I have had to apply a few patches to some package recipes. Some packages have failing tests (where presumably they would pass or be skipped in the chroot), which I have disabled for the time being just to move along. I can post a few of the patches to the ML later. Any patches related to bootstrapping gcc? I'm getting lib/lib64 confusion. Yes, that's been one issue. I’m afraid there are many such issues, with build systems sometimes deciding what to do based on existence of files such as /lib64 or the output of /usr/bin/gcc. :-/ I really look forward to user name space support in the daemon. Thanks, Ludo’.
[PATCH] system: grub: Convert grub background using rsvg-convert
This patch modifies 'svg-png' in (gnu system grub) to use rsvg-convert instead of inkscape. Inkscape is a rather heavy dependency to convert an image. This is important for users who choose to avoid binary substitutes. The main difficulty here was that our SVG artwork is partially transparent, and includes a Background layer with a checker-board pattern. I guess this layer is for convenience when editing in Inkscape, and apparently Inkscape excludes the Background layer when exporting to png. Other tools render all layers. Therefore, avoiding Inkscape required code to remove that layer before conversion to png. Comments and suggestions welcome, Mark From 0b3066420f72ecf15b65406bd417768450bfcac7 Mon Sep 17 00:00:00 2001 From: Mark H Weaver m...@netris.org Date: Wed, 19 Aug 2015 17:26:02 -0400 Subject: [PATCH] system: grub: Convert grub background using rsvg-convert, not inkscape. * gnu/system/grub.scm (svg-png): Accept additional arguments 'width' and 'height'. Reimplement using rsvg-convert and emacs instead of inkscape. (resize-image): Remove. (grub-background-image): Remove 'resize-image' step. Pass 'width' and 'height' to 'svg-png'. --- gnu/system/grub.scm | 57 + 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index e49b6db..fe7400a 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès l...@gnu.org +;;; Copyright © 2015 Mark H Weaver m...@netris.org ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,8 +27,8 @@ #:use-module (guix download) #:use-module (gnu artwork) #:autoload (gnu packages grub) (grub) - #:autoload (gnu packages inkscape) (inkscape) - #:autoload (gnu packages imagemagick) (imagemagick) + #:autoload (gnu packages emacs) (emacs) + #:autoload (gnu packages gnome) (librsvg) #:autoload (gnu packages compression) (gzip) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -119,25 +120,40 @@ ;;; Background image themes. ;;; -(define (svg-png svg) +(define (svg-png svg width height) Build a PNG from SVG. ;; Don't use #:local-build? so that it's substitutable. - (gexp-derivation grub-image.png -#~(zero? - (system* (string-append #$inkscape /bin/inkscape) ---without-gui -(string-append --export-png= #$output) -#$svg - -(define (resize-image image width height) - Resize IMAGE to WIDTHxHEIGHT. - ;; Don't use #:local-build? so that it's substitutable. - (let ((size (string-append (number-string width) - x (number-string height -(gexp-derivation grub-image.resized.png - #~(zero? - (system* (string-append #$imagemagick /bin/convert) - -resize #$size #$image #$output) + (let ((width (number-string width)) +(height (number-string height))) +(gexp-derivation + grub-image.png + #~(begin + (use-modules (guix build emacs-utils)) + (let ((image-file /tmp/image.svg)) + ;; The SVG images in the guix-artwork repository contain a bottom + ;; Background layer containing a checkerboard pattern. Here we + ;; remove that layer. + (copy-file #$svg image-file) + (chmod image-file #o644) + (parameterize ((%emacs (string-append #$emacs /bin/emacs))) + (emacs-batch-edit-file image-file + '(progn (goto-char (point-min)) + (when (re-search-forward inkscape:label=\Background\ +nil nil) + (nxml-backward-up-element) + (set-mark (point)) + (nxml-forward-element) + (kill-region (mark) (point)) + (basic-save-buffer) + (zero? +(system* (string-append #$librsvg /bin/rsvg-convert) + --width #$width + --height #$height + --background-color black + --format png + --output #$output + image-file + #:modules '((guix build emacs-utils) (define* (grub-background-image config #:key (width 640) (height 480)) Return the GRUB background image defined in CONFIG with a ratio of @@ -147,8 +163,7 @@ WIDTH/HEIGHT, or #f if none was found. (= (grub-image-aspect-ratio image) ratio)) (grub-theme-images (grub-configuration-theme config) (if image -(mlet %store-monad ((png (svg-png (grub-image-file image - (resize-image png width
Re: Camlp4 error
PS: Or do I need to update to a special version of camlp4? Their version numbers are a bit confusing. Their latest releases (counting backwards) are 4.02+6, 4.02.1+3, 4.02+5, 4.02+4, 4.02,1+1, The part before the + looks like the OCaml version, the +X like the patch level of camlp4. But there is no version 4.02.3*.
Re: Camlp4 error
On Sun, Aug 23, 2015 at 06:40:01PM +0200, Andreas Enge wrote: PS: Or do I need to update to a special version of camlp4? Their version numbers are a bit confusing. Their latest releases (counting backwards) are 4.02+6, 4.02.1+3, 4.02+5, 4.02+4, 4.02,1+1, The part before the + looks like the OCaml version, the +X like the patch level of camlp4. But there is no version 4.02.3*. Updating to 4.02+6, which is also the version available in Nix, solves my problem. So please disregard my previous messages. Andreas
Re: [PATCH 1/2] gnu: glibc/linux: Rename linux-headers input to kernel-headers.
Can I push this to wip-hurd?
Re: 01/02: gnu: itstool: Wrap with PYTHONPATH.
Mark H Weaver m...@netris.org writes: 宋文武 iyzs...@gmail.com writes: iyzsong pushed a commit to branch master in repository guix. commit 4b58d88bcde652e3307fb66d1da4f93dc10ac7a8 Author: 宋文武 iyzs...@gmail.com Date: Thu Aug 20 16:36:25 2015 +0800 gnu: itstool: Wrap with PYTHONPATH. * gnu/packages/glib.scm (itstool): Change 'propagated-inputs' to 'inputs'. [arguments]: New field. This caused 30 new build failures on hydra: http://hydra.gnu.org/eval/106345#tabs-now-fail Can you either fix them soon or else revert this commit? Fix pushed, thanks for notice!
Re: 01/02: gnu: itstool: Wrap with PYTHONPATH.
宋文武 iyzs...@gmail.com writes: iyzsong pushed a commit to branch master in repository guix. commit 4b58d88bcde652e3307fb66d1da4f93dc10ac7a8 Author: 宋文武 iyzs...@gmail.com Date: Thu Aug 20 16:36:25 2015 +0800 gnu: itstool: Wrap with PYTHONPATH. * gnu/packages/glib.scm (itstool): Change 'propagated-inputs' to 'inputs'. [arguments]: New field. This caused 30 new build failures on hydra: http://hydra.gnu.org/eval/106345#tabs-now-fail Can you either fix them soon or else revert this commit? Thanks! Mark
Re: [PATCH] gnu: Add GeoClue desktop service.
Andy Wingo wi...@igalia.com skribis: On Thu 20 Aug 2015 17:09, l...@gnu.org (Ludovic Courtès) writes: +@defvr {Scheme Variable} %standard-geoclue-applications +The standard list of well-known GeoClue application configurations, +granting authority to GNOME's date-and-time utility to ask for the +current location in order to set the time zone, and allowing the Firefox +(IceCat) and Epiphany web browsers to request location information. +Firefox and Epiphany both query the user before allowing a web page to +know the user's location. +@end defvr Does that mean that all these applications get blanket access to location info, and just happen to be nice enough to ask the user? If the answer is yes, I would rather remove the Web browsers from this list by default. I think that's right. I'm still figuring some of this out :P But yeah, I think the reasoning is that since web browsers ask you already, don't default to giving the web access, and you already trust the web browser in other ways, that this is a reasonable default that prevents double-asking. OK. But then that raises the question of how applications are authenticated: if I call my binary ‘epiphany’, will GeoClue consider it to be the authorized application? (Sorry for the newbie question...) I guess ideally it would be going through policykit and asking the user through the session manager. Maybe that's a TODO; dunno. My only concern is to make sure the default settings are privacy-preserving. I realize that’s a question that goes beyond GuixSD itself though. Thank you, Ludo’.
Re: [PATCH 5/7] gnu: Add i3-wm.
On Mon, 17 Aug 2015 22:06:04 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/i3.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/i3.scm | 87 + 2 files changed, 88 insertions(+) create mode 100644 gnu/packages/i3.scm We discussed briefly on IRC starting a new (gnu packages wm) module, so I pushed this patch with everything here moved to gnu/packages/wm.scm. Thanks, `~Eric
Re: [PATCH 6/7] gnu: Add libconfuse.
On Mon, 17 Aug 2015 22:06:05 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/i3.scm (libconfuse): New variable. --- gnu/packages/i3.scm | 21 + 1 file changed, 21 insertions(+) diff --git a/gnu/packages/i3.scm b/gnu/packages/i3.scm index 89837db..3daaa9b 100644 --- a/gnu/packages/i3.scm +++ b/gnu/packages/i3.scm @@ -39,6 +39,27 @@ #:use-module (guix download) #:use-module (guix git-download)) +(define-public libconfuse + (package +(name libconfuse) +(version 2.7) +(source (origin + (method url-fetch) + (uri (string-append http://savannah.nongnu.org/download/confuse/; + confuse- version .tar.gz)) + (sha256 + (base32 +0y47r2ashz44wvnxdb18ivpmj8nxhw3y9bf7v9w0g5byhgyp89g3 +(build-system gnu-build-system) +(home-page http://www.nongnu.org/confuse/;) +(synopsis Configuration file parser library) +(description A configuration file parser library. It supports +sections and (lists of) values (strings, integers, floats, booleans or +other sections), as well as some other features (such as +single/double-quoted strings, environment variable expansion, +functions and nested include statements).) +(license isc))) + (define-public i3-wm (package (name i3-wm) This is pushed with a small change to the description: libconfuse is a configuration file parser library... Thanks, `~Eric
Re: screen locker
Leo Famulari l...@famulari.name skribis: It seems that slock wants to have the setuid bit set. I see in the docs [1] that the store cannot contain setuid programs. Is the workaround in the docs only applicable to GuixSD, or can it be used with the standalone package manager? It’s only applicable to GuixSD: The ‘setuid-programs’ field mentioned there is for an ‘operating-system’ declaration. Ludo’.
Re: [PATCH 1/7] gnu: Add Pod-Simple.
On Mon, 17 Aug 2015 22:06:00 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/perl.scm (perl-pod-simple): New variable. --- gnu/packages/perl.scm | 20 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d2e38cc..8f9d599 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Andreas Enge andr...@enge.fr ;;; Copyright © 2015 Ricardo Wurmus rek...@elephly.net ;;; Copyright © 2015 Eric Bavier bav...@member.fsf.org +;;; Copyright © 2015 Eric Dvorsak e...@dvorsak.fr ;;; ;;; This file is part of GNU Guix. ;;; @@ -3941,6 +3942,25 @@ directory specifications in a cross-platform manner.) for a given module is comprehensive.) (license (package-license perl +(define-public perl-pod-simple + (package +(name perl-pod-simple) +(version 3.30) I pushed this patch with version 3.31 which was released today. ;) +(source (origin + (method url-fetch) + (uri (string-append mirror://cpan/authors/id/D/DW/DWHEELER/ +Pod-Simple- version .tar.gz)) I aligned the two arguments to 'string-append'. Thanks, `~Eric
Re: [PATCH 2/7] gnu: Add libyajl.
On Mon, 17 Aug 2015 22:06:01 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/web.scm (libyajl): New variable. --- gnu/packages/web.scm | 21 + 1 file changed, 21 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 48bfbc7..b93b569 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Ricardo Wurmus rek...@elephly.net ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer taylanbayi...@gmail.com ;;; Copyright © 2015 Eric Bavier bav...@member.fsf.org +;;; Copyright © 2015 Eric Dvorsak e...@dvorsak.fr ;;; ;;; This file is part of GNU Guix. ;;; @@ -287,6 +288,26 @@ parse JSON formatted strings back into the C representation of JSON objects.) style API.) (license l:expat))) +(define-public libyajl + (package +(name libyajl) +(version 2.1.0) +(source (origin + (method url-fetch) + (uri (string-append https://github.com/lloyd/yajl/; + archive/ version .tar.gz)) + (file-name (string-append name - version .tar.gz)) + (sha256 + (base32 +0nmcqpaiq4pv7dymyg3n3jsd57yhp5npxl26a1hzw3m3lmj37drz +(build-system cmake-build-system) +(home-page https://lloyd.github.io/yajl/;) +(synopsis C library for parsing JSON) +(description Yet Another JSON Library. YAJL is a small +event-driven (SAX-style) JSON parser written in ANSI C, and a small +validating JSON generator.) +(license l:isc))) + (define-public libwebsockets (package (name libwebsockets) I pushed this patch with a slightly adjusted description. Thanks, `~Eric
Re: [PATCH 7/7] gnu: Add i3status.
On Mon, 17 Aug 2015 05:05:37 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/i3.scm (i3status): New variable. --- gnu/packages/i3.scm | 38 ++ 1 file changed, 38 insertions(+) As I noted in the i3-wm patch, I moved gnu/packages/i3.scm to gnu/packages/wm.scm. diff --git a/gnu/packages/i3.scm b/gnu/packages/i3.scm index 725fdb6..a9a5640 100644 --- a/gnu/packages/i3.scm +++ b/gnu/packages/i3.scm @@ -61,6 +61,44 @@ functions and nested include statements). It makes it very easy to add configuration file capability to a program using a simple API. ) (license isc))) +(define-public i3status + (package +(name i3status) +(version 2.9) +(source (origin + (method url-fetch) + (uri (string-append http://i3wm.org/i3status/i3status-; + version .tar.bz2)) + (sha256 + (base32 +1qwxbrga2fi5wf742hh9ajwa8b2kpzkjjnhjlz4wlpv21i80kss2 +(build-system gnu-build-system) +(arguments + `(#:make-flags (list CC=gcc (string-append PREFIX= %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:tests? #f)) ; no test suite +(inputs + `((openlibm ,openlibm) + (libconfuse ,libconfuse) + (libyajl ,libyajl) + (alsa-lib ,alsa-lib) + (wireless-tools ,wireless-tools) + (libcap ,libcap) + (asciidoc ,asciidoc))) +(home-page http://i3wm.org/i3status/;) +(synopsis Generating a status bar for i3bar, dzen2, xmobar or +similar programs) I changed this to Status bar for... to get rid of the active voice. +(description i3status is a small program for generating a status +bar for i3bar, dzen2, xmobar or similar programs. It is designed to +be very efficient by issuing a very small number of system calls, as +one generally wants to update such a status line every second. This +ensures that even under high load, your status bar is updated +correctly. Also, it saves a bit of energy by not hogging your CPU as +much as spawning the corresponding amount of shell commands would.) +(license bsd-3))) + (define-public i3-wm (package (name i3-wm) Again, thanks for all these new packages, and welcome aboard. :) `~Eric
Re: Set screen resolution in X.
Sorry for the late reply. Dmitry Nikolaev camelthe...@gmail.com skribis: (define (my-slim-service) (mlet %store-monad ((config (xorg-configuration-file #:resolutions '((1366 768) (slim-service #:startx (xorg-start-command #:configuration-file config The problem is in the line above: ‘xorg-start-command’ is a “monadic procedure” so its result must be bound in an ‘mlet’: (define (my-slim-service) (mlet %store-monad ((config (xorg-configuration-file ...)) (startx (xorg-start-command ...))) (slim-service #:startx startx))) HTH! Ludo’. PS: Somebody reported the same thing on IRC last week, maybe it was you or Camel?
Re: [PATCH 1/2] gnu: Add font-ubuntu
l...@gnu.org (Ludovic Courtès) writes: Mark H Weaver m...@netris.org skribis: I'm not entirely sure it's a free software license as indicated by 'fsf-free' either, Why? The main thing that worries me is this combination of facts: 1. The license requires that both original and modified versions which are not Substantially Changed must retain the original name, which in this case contains ubuntu. 2. The license explicitly says: This licence does not grant any rights under trademark law and all such rights are reserved. 3. Ubuntu trademark policy, which states, among other things: * You can use the Trademarks, in accordance with Canonical’s brand guidelines, with Canonical’s permission in writing. If you require a Trademark licence, please contact us (as set out below). * You cannot use the Trademarks in software titles. [...] Here's a relevant comment on the subject: https://bugs.launchpad.net/ubuntu-font-licence/+bug/769874/comments/21 If Canonical were still a friendly member of our community, I probably wouldn't worry too much about this. However, ever since I learned about this: Matthew Garrett: Canonical's Ubuntu IP policy is garbage https://mjg59.dreamwidth.org/35969.html and the way they treated Jonathan Riddell (creator of Kubuntu) who had been trying to rectify this issue for years: http://jriddell.org/2015/07/15/ubuntu-policy-complies-with-gpl-but-fails-to-address-other-important-software-freedom-issues/ and the fact that they stubbornly refused to do more than the absolute minimum needed to retain their right to distribute software covered by the GNU GPL: https://www.fsf.org/news/canonical-updated-licensing-terms https://sfconservancy.org/news/2015/jul/15/ubuntu-ip-policy/ http://www.ebb.org/bkuhn/blog/2015/07/15/ubuntu-ip-policy.html I no longer consider Canonical a friend to the free software movement, and frankly I don't want to touch any of their stuff with a ten foot pole, unless it is crystal clear in legalese that we and our users have the rights we need. In this case, it is not clear to me. Thanks, Mark
Re: [PATCH 1/2] gnu: Add font-ubuntu
Mark H Weaver m...@netris.org skribis: l...@gnu.org (Ludovic Courtès) writes: Eric Dvorsak e...@dvorsak.fr skribis: * gnu/packages/fonts/scm (font-ubuntu): New variable. That last / should have been a .. Oh well. Oops. my bad. I changed the license URL to http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt and applied it. Thank you! The patch labelled this license as 'non-copyleft', but I'm not sure that's right. It includes this text: 4) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this licence, and must not be distributed under any other licence. [...] So this ensures that additional restrictions cannot be added later, like a copyleft license. Good point. I'm not entirely sure it's a free software license as indicated by 'fsf-free' either, Why? but that's okay because fonts qualify as non-functional data. It might be that we don't yet have anything in (guix licenses) that applies here. Maybe we need another license-producing procedure for non-functional works that satify the FSDG requirements? Right, that’s something we could do in this case. I’d be surprised if this one were not considered FSF-free though? Thank you, Ludo’.
Re: [PATCH 3/7] gnu: Add libev
On Mon, 17 Aug 2015 22:06:02 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/libevent.scm (libev): New variable. --- gnu/packages/libevent.scm | 24 1 file changed, 24 insertions(+) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 88b13ec..c9da139 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès l...@gnu.org ;;; Copyright © 2015 Mark H Weaver m...@netris.org +;;; Copyright © 2015 Eric Dvorsak e...@dvorsak.fr ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,29 @@ then add or remove events dynamically without having to change the event loop.) (license bsd-3))) +(define-public libev + (package +(name libev) +(version 4.20) +(source (origin + (method url-fetch) + (uri (string-append http://dist.schmorp.de/libev/libev-; + version + .tar.gz)) + (sha256 + (base32 +17j47pbkr65a18mfvy2861p5k7w4pxmdgiw723ryfqd9gx636w7q +(build-system gnu-build-system) +(home-page http://software.schmorp.de/pkg/libev.html;) +(synopsis An event loop that is loosely modelled after libevent) +(description A full-featured and high-performance event loop that +is loosely modelled after libevent, but without its limitations and +bugs. It is used in GNU Virtual Private Ethernet, rxvt-unicode, +auditd, the Deliantra MORPG Server and Client, and many other +programs.) +(license + (list bsd-2 gpl2+ + (define-public libuv (package (name libuv) I pushed this patch with adjusted synopsis and description fields: Removed the An according to 'guix lint libev' Thanks, `~Eric
Re: [PATCH] system: Make PAM use SHA-512 to encrypt passwords.
宋文武 iyzs...@gmail.com skribis: From 34a324e398c521954cc275211eabd44a92906aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= iyzs...@gmail.com Date: Sun, 23 Aug 2015 06:33:59 +0800 Subject: [PATCH] system: Make PAM store SHA-512 encrypted passwords in /etc/shadow. Fixes http://bugs.gnu.org/21318. * gnu/system/linux.scm (unix-pam-service)[password]: Add 'sha512' and 'shadow' to arguments. [...] - (password (list unix)) + (password (list (pam-entry + (control required) + (module pam_unix.so) + (arguments '(sha512 shadow) One last thing: a one-line comment explaining what these arguments do. Then OK to push ASAP! Thanks to both of you! Ludo’.
Re: [PATCH 4/7] gnu: Add xcb-util-cursor.
On Mon, 17 Aug 2015 22:06:03 +0200 Eric Dvorsak e...@dvorsak.fr wrote: * gnu/packages/xorg.scm (xcb-util-cursor): New variable. --- gnu/packages/xorg.scm | 30 ++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a9ecc1e..c5813a0 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver m...@netris.org ;;; Copyright © 2014 Eric Bavier bav...@member.fsf.org ;;; Copyright © 2015 Ludovic Courtès l...@gnu.org +;;; Copyright © 2015 Eric Dvorsak e...@dvorsak.fr ;;; ;;; This file is part of GNU Guix. ;;; @@ -2033,6 +2034,35 @@ legacy X clients.) (license license:x11))) +(define-public xcb-util-cursor + (package +(name xcb-util-cursor) +(version 0.1.2) +(source (origin + (method url-fetch) + (uri (string-append http://xcb.freedesktop.org/dist/; + xcb-util-cursor- version .tar.gz)) + (sha256 + (base32 +0bm0mp99abdfb6v4v60hq3msvk67b2x9ml3kbx5y2g18xdhm3rdr +(build-system gnu-build-system) +(native-inputs + `((m4 ,m4) + (pkg-config ,pkg-config))) +(inputs + `((libxcb ,libxcb) + (xcb-util-renderutil ,xcb-util-renderutil) + (xcb-util-image ,xcb-util-image))) +(home-page http://cgit.freedesktop.org/xcb/util-cursor/;) +(synopsis Port of libxcursor) +(description Port of libxcursor.) +(license + ; expat license with added clause regarding advertising + (license:non-copyleft + file://COPYING + See COPYING in the distribution. + + (define-public xcb-proto (package (name xcb-proto) I moved this package nearer to the other xcb-util-* packages, adjusted the description slightly and pushed. Thanks, `~Eric
Re: [GSoC] Guix + GNUnet: report
[+Cc: gnunet-developers] Hi Rémi, Thanks for the report. asg...@free.fr skribis: Once these problems have been addressed (i.e. a week ago), I could finally start working on the GNUnet publisher for Guix. Its first version can only upload one store item at a time, and isn’t even functional yet: a fikle segfault deems it unusable. Before noticing this segfault (it doesn’t always happen), I started working on a more complex version that would allow bulk publication of store items, but this gain in complexity came with a hole new set of strange and hardly traceable errors (SIGILL and SIGBUS), and it’s far from being usable. Moreover, the two version seem to have difficulties handling symlinks. OK. The FFI makes it easy to shoot oneself in the foot in such ways (for instance when using invalid struct layout, or if the FFI uses the wrong binary interface for a function.) Hopefully you’ll be able to pinpoint them eventually. But at least, it’s nice you’ve been able to make progress on the publisher! The bindings are focused on the FileSharing service, and seem usable. I’ll write detailed documentation before the end of the GSoC, and list the pitfalls to avoid (at least those I’m aware of). There’s still work to do, notably: Sounds like a good plan. Eclosed you’ll find the more usable version of the publisher, “tested” with the following software: — Guix: commit 7cb6f648b2486b0e6060a333564432a0830637de — GNUnet: rev. 36242 — Libextractor: rev. 36031 — the bindings: commit dc6f74d269fcb324d8649f3c511299b7ba2be2a4 It’s important to use a recent version of GNUnet, because its API changed recently (especially, Guix’s currently packaged version isn’t good). Could you add a package recipe to Guix for the right version of GNUnet? I started setting things up to test the code you sent and then realized I wasn’t using the right version. I hope we’ll be able to rely on stable versions of GNUnet soon. This publisher can be tested: for that you’ll have to put `publish-gnunet.scm` and `publish-utils.scm` in `guix/scripts`, and start GNUnet (see my previous reports). Then you can create an ego: $ gnunet-identity -C mytestego and call the publisher with: $ guix publish-gnunet -c /path/to/gnunet.conf -P mytestego \ /gnu/store/somedirectory Could you remind me what the right GNUnet command is to check whether the thing is actually published and visible? Nitpick: it’s a bit annoying that we have to specify a GNUnet configuration file. The file `publish-utils.scm` contains code shared between the HTTP publisher and this one; I did not knew were to store it, thus the improper module in (guix scripts). `publish-gnunet-multi.scm` is the WIP second version, not usable at all :( Instead of using ‘file-system-tree’, this variant should probably use ‘live-paths’ from (guix store), which returns the list of live store items. Still, I guess startup time may not be very good (I hadn’t realized that), but unlike with ‘guix publish’, we cannot do things lazily. BTW, I noticed there’s quite a bunch of global variables that are ‘set!’. It would be better to avoid that, but I suppose the continuation-passing style that the GNUnet libraries impose makes it difficult. Thanks for your report! Ludo’.
Re: screen locker
Marcus Moeller marcus.moel...@gmx.ch skribis: I wanted to install a screen locker on GuixSD and all I found was slock. FWIW I use xlockmore and I have this: (operating-system ;; ... (setuid-programs (cons #~(string-append #$xlockmore /bin/xlock) %setuid-programs))) From what others wrote, slock may need to be listed there as well. HTH, Ludo’.