Re: [PATCH] Add Emacs PDF tools
Since now we have 'emacs-byte-compile-directory', the elisp files may also be compiled. I modified your patch to: - move patching the variables (including 'pdf-tools-handle-upgrades') into a separate phase; - compile the elisp files; - generate autoloads. So if there is no way to build elisp files using the top-level Makefile, and then to build epdfinfo using autogen.sh and friends from the server subdir, I think the attached patch will do. WDYT? From f1ad90ddcbe7ede8124f2b4c18a3ce31857ec9e0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus rek...@elephly.net Date: Sun, 5 Jul 2015 19:59:37 +0200 Subject: [PATCH] gnu: Add emacs-pdf-tools. * gnu/packages/emacs.scm (emacs-pdf-tools): New variable. Co-authored-by: Alex Kost alez...@gmail.com --- gnu/packages/emacs.scm | 73 ++ 1 file changed, 73 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f00e15c..169ab08 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver m...@netris.org ;;; Copyright © 2014 Alex Kost alez...@gmail.com ;;; Copyright © 2015 Federico Beffa be...@fbengineering.ch +;;; Copyright © 2015 Ricardo Wurmus rek...@elephly.net ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +53,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages acl) #:use-module (gnu packages perl) + #:use-module (gnu packages pdf) #:use-module (gnu packages linux) ;alsa #:use-module (gnu packages xiph) #:use-module (gnu packages mp3) @@ -826,3 +828,74 @@ or XEmacs.) MMM Mode is a minor mode that allows multiple major modes to coexist in a single buffer.) (license license:gpl3+))) + +(define-public emacs-pdf-tools + (package +(name emacs-pdf-tools) +(version 0.60) +(source (origin + (method url-fetch) + (uri (string-append +https://github.com/politza/pdf-tools/archive/v; +version .tar.gz)) + (file-name (string-append name - version .tar.gz)) + (sha256 + (base32 +1y8k5n2jbyaxby0j6f4m9xbm0ddpmbkrfj6rp6ll5sb97lcg3vrx +(build-system gnu-build-system) +(arguments + `(#:tests? #f ; there are no tests + #:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir (lambda _ (chdir server) #t)) + (add-before + 'configure 'autogen + (lambda _ +(zero? (system* bash autogen.sh + (add-before + 'build 'patch-variables + (lambda* (#:key outputs #:allow-other-keys) +(with-directory-excursion ../lisp + ;; Set path to epdfinfo program. + (emacs-substitute-variables pdf-info.el +(pdf-info-epdfinfo-program + (string-append (assoc-ref outputs out) +/bin/epdfinfo))) + ;; Set 'pdf-tools-handle-upgrades' to nil to avoid auto + ;; upgrading that pdf-tools tries to perform. + (emacs-substitute-variables pdf-tools.el +(pdf-tools-handle-upgrades '()) + (add-after + 'install 'install-lisp + (lambda* (#:key outputs #:allow-other-keys) +(let ((target (string-append (assoc-ref outputs out) + /share/emacs/site-lisp/))) + (mkdir-p target) + (for-each + (lambda (file) + (copy-file file (string-append target (basename file + (find-files ../lisp ^(pdf|tab).*\\.elc?)) + (emacs-byte-compile-directory target) + (emacs-generate-autoloads pdf-tools target))) +(native-inputs `((autoconf ,autoconf) + (automake ,automake) + (pkg-config ,pkg-config) + (emacs ,emacs-no-x))) +(inputs `((poppler ,poppler) + (cairo ,cairo) + (glib ,glib) + (libpng ,libpng) + (zlib ,zlib))) +(synopsis Emacs support library for PDF files) +(description + PDF Tools is, among other things, a replacement of DocView for PDF +files. The key difference is that pages are not pre-rendered by +e.g. ghostscript and stored in the file-system, but rather created on-demand +and stored in memory.) +(home-page https://github.com/politza/pdf-tools;) +(license license:gpl3+))) -- 2.4.3
Re: [PATCH 12/12] gnu: pinentry: Update to 1.9.5.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (pinentry): Update to 1.9.5. Add input libassuan. Please include ; Add input libassuan in the first summary line. Okay to push with this change. Thank you! Mark
Re: [PATCH 06/12] gnu: libgpg-error: Update to 1.19.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (libgpg-error): Update to 1.19. This update will trigger a huge amount of rebuilding, so maybe it's best left for core-updates or at least another branch. Do you know if it is an important update, e.g. a security update? Thanks, Mark
Re: [PATCH] gnu: Add gst-plugins-ugly
Mark H Weaver m...@netris.org writes: Mark H Weaver m...@netris.org writes: I looked in Parabola's blacklist https://projects.parabola.nu/blacklist.git/tree/ and didn't find issues listed with gst-plugins-ugly, so I guess that's a good sign. I've attached a preliminary 'gst-plugins-ugly' package for Guix. Note that this depends on commit 23da88f61e82e2b32d6dedb3af467f665cd03bf5 gnu: liba52: Build shared library, which I pushed to master just a few minutes ago. I've since added libmpeg2 (commit e088410984) and noticed that we already have libdvdread and libdvdnav (which I just updated). Here's an updated version of my preliminary 'gst-plugins-ugly' patch. I went ahead and pushed this. Mark
Re: [PATCH 06/12] gnu: libgpg-error: Update to 1.19.
Paul van der Walt p...@denknerd.org writes: Oh crap, i have egg on my face now :( I am not yet 100% familiar with magit (used to command line), and ended up pushing all the patches, instead of excluding libgpg-error like i wanted to :( Okay, I reverted it, which means I added another commit that reverses that change. No worries. Thanks for letting me know. Mark
Re: [PATCH] Add preseq.
Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes: ERROR: In procedure mkstemp!: ERROR: In procedure mkstemp!: No such file or directory builder for `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed with exit code 1 @ build-failed /gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv - 1 builder for `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed The problem was that the “enter-dir” and “use-samtools-headers” phases were both added after “unpack”. (Has the order in which phases are added with ‘modify-phases’ changed? No. It's deterministic, and 'modify-phases' is in (guix build utils) so it can't be changed without triggering a full rebuild. The edits are done in the order shown, as if it was imperative code. For example: (modify-phases %standard-phases (add-after 'unpack 'A phase-A) (add-after 'unpack 'B phase-B)) expands into: (let* ((phases* %standard-phases) (phases* (alist-cons-after 'unpack 'A phase-A phases*)) (phases* (alist-cons-after 'unpack 'B phase-B phases*))) phases*) which is equivalent to: (alist-cons-after 'unpack 'B phase-B (alist-cons-after 'unpack 'A phase-A %standard-phases)) Since B is the last one added, it ends up after 'unpack' and before A. When I built it locally back then “use-samtools-headers” must have ended up after “enter-dir”.) I don't see how that could have happened. Maybe you made some changes after your last test? Anyway, if 'use-samtools-headers' must come after 'enter-dir' then it's surely better to make that explicit. I just pushed a commit that explicitly moves “use-samtools-headers” after the “enter-dir” phase, fixing this problem. Thank you! Mark
Re: [PATCH 08/12] gnu: pius: Update to 2.1.1.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (pius): Update to 2.1.1. Okay, please push! Mark
Re: [PATCH 10/12] gnu: gpgme: Update to 1.5.5.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (gpgme): Update to 1.5.5. Okay, please push! Mark
Re: [PATCH 11/12] gnu: libksba: Update to 1.3.3.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (libksba): Update to 1.3.3. Okay, please push! Mark
Re: [PATCH 09/12] gnu: npth: Update to 1.2.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (npth): Update to 1.2. Looks good, please push! Mark
Re: [PATCH 07/12] gnu: libassuan: Update to 2.2.1.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (libassuan): Update to 2.2.1. Okay, please push! Mark
Re: [PATCH 03/12] gnu: mpd-mpc: Update to 0.27.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/mpd.scm (mpd-mpc): Update to 0.27. Please push! Mark
Re: [PATCH 02/12] gnu: mpd: Update to 0.19.10.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/mpd.scm (mpd): Update to 0.19.10. Please push! Thanks, Mark
Re: [PATCH 01/12] gnu: libmpdclient: Update to 2.10.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/mpd.scm (libmpdclient): Update to 2.10. Looks good, please push! Mark
Re: [PATCH 04/12] gnu: ncmpcpp: Update to 0.6.5.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/mpd.scm (ncmpcpp): Update to 0.6.5. Please push! Mark
Re: [PATCH 05/12] gnu: ncmpc: Update to 0.24.
Paul van der Walt p...@denknerd.org writes: * gnu/packages/mpd.scm (ncmpc): Update to 0.24. Looks good, please push! Mark
Re: [PATCH 06/12] gnu: libgpg-error: Update to 1.19.
Oh crap, i have egg on my face now :( I am not yet 100% familiar with magit (used to command line), and ended up pushing all the patches, instead of excluding libgpg-error like i wanted to :( I hope i haven't broken anything serious, please advise? I'll pause activity on my side till further notice... My apologies if this is a serious problem :( p. On 2015-07-09 at 18:13, quoth Mark H Weaver: Paul van der Walt p...@denknerd.org writes: * gnu/packages/gnupg.scm (libgpg-error): Update to 1.19. This update will trigger a huge amount of rebuilding, so maybe it's best left for core-updates or at least another branch. Do you know if it is an important update, e.g. a security update? Thanks, Mark
Re: [PATCH] gnu: Update pumpa to 0.9.1.
One last thing before pushing. :) Following the http://lists.gnu.org/archive/html/guix-devel/2015-07/msg00235.html discussion, I want to know if the usage of the email address g...@clacke.user.lysator.liu.se instead of claes.wal...@greatsinodevelopment.com in your patch was intentionnal? If not, please send an updated patch that uses your usual address. Else indicate which address you want to be added to 'AUTHORS'. -- Mathieu Lirzin PS: There is no need to use git send-mail ... here. Just attach the file generated by git format-patch origin/master to your answer.
OpenStack and GuixOps (was: Re: Guix ops)
David Thompson writes: As discussed on IRC, I was unsure about OpenStack, but I’ll trust your judgment. Maybe Cyril can comment? I threw out OpenStack because it's a self-hostable, free software VM platform. I'm open to any other platforms that will exercise the full range of capabilities that 'guix deploy' needs to be useful. I'm starting to put some time into GuixOps and seeing how I can help today. Dave has pointed out that for now we should focus on testing with VMs and containers, but that OpenStack will still be a useful long-term goal. As such, I talked to a friend of mine (Boris Bobrov) who works on OpenStack as part of his dayjob. He gave me this advice and okayed me to posting the conversation to this list: paroneayea I'm interested in helping with the guixops adapter to openstack, but I don't know really where to get started in openstack land paroneayea do you have a good pointer on where to start? breton pong breton well, openstack 101 will give some theoretical overview breton after that -- http://docs.openstack.org/developer/devstack/. Devstack is a bash script that sets up bleeding edge openstack for you breton big red warning: do not set it up on your laptop directly. Better install a minimal ubuntu/centos in a vm and run devstack there breton since you want to do something with guix, my guess is that you need to pay attention to the following openstack components: nova (the thing that brings up a VM), glance (image registry, stores metadata about objects), swift (stores data), maybe murano (it my company's component, it has something to do with app deployment to VMs) breton official docs are very good too, btw: http://docs.openstack.org/ breton a very brief overview of what's going on in openstack: you tell nova to bring up a vm, nova fetches image from glance (glance fetches it from swift or from some other storage), fetches networking info from neutron, fetches list of disks from cinder, connects it alltogether and gives you a vm. Every operation if authenticated by keystone. It looks like Nova (OpenStack Compute) is the main thing we'll end up targeting. Some links: - Nix peoples' wiki page on the subject: https://nixos.org/wiki/NixOS_and_OpenStack_Compute - Nova's main page: http://www.openstack.org/software/openstack-compute/ - Python library, which we may want to examine to make a Guile library equiv: https://github.com/openstack/python-novaclient I figured it's best to document this on the list while I'm looking into it. Hope that helps! - Chris
Re: [PATCH] gnu: bootstrap: Create a wrapper for guile to set the system load path
Solved the problem with bootstrap guile on Hurd. Manolis
Re: [PATCH] gnu: brasero: Update to 3.12.1, Add inputs.
David Hashe david.ha...@dhashe.com writes: I already have my copyright line in this particular file, since I've submitted to it before. Ah, indeed. Pushed, thanks! Mark
Re: [PATCH] gnu: Add gst-plugins-ugly
David Hashe david.ha...@dhashe.com writes: From c3ec7cf01a6c1bf9013a2819c2c5ec7181724947 Mon Sep 17 00:00:00 2001 From: David Hashe david.ha...@dhashe.com Date: Tue, 7 Jul 2015 23:40:01 -0500 Subject: [PATCH] gnu: Add rhythmbox. * gnu/packages/gnome.scm (rhythmbox): New variable. --- gnu/packages/gnome.scm | 74 ++ 1 file changed, 74 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0ec5ea2..6d238af 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages libusb) + #:use-module (gnu packages lirc) #:use-module (gnu packages image) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) I've since added (gnu packages lirc) here as part of the Totem patch, so this hunk should be removed. @@ -2718,3 +2719,76 @@ the patterned block to the area bordered by green markers. To do so, you will need to slide other blocks out of the way. Complete each puzzle in as few moves as possible!) (license license:gpl2+))) + +(define-public rhythmbox + (package + (name rhythmbox) + (version 3.2.1) + (source (origin +(method url-fetch) +(uri (string-append mirror://gnome/sources/ name / +(version-major+minor version) / +name - version .tar.xz)) +(sha256 + (base32 + 0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz + (build-system glib-or-gtk-build-system) + (arguments +`(#:configure-flags + (list --enable-lirc +--enable-python +--enable-vala +--with-brasero +--with-gudev +--with-libsecret))) + (propagated-inputs +`((dconf ,dconf) + (gobject-introspection ,gobject-introspection) + (gst-libav ,gst-libav) + (gst-plugins-base ,gst-plugins-base) + (gst-plugins-good ,gst-plugins-good) + (gst-plugins-ugly ,gst-plugins-ugly) + (totem-pl-parser ,totem-pl-parser))) I agree that 'dconf' should be a propagated-input. 'gobject-introspection' should be moved to 'native-inputs'. 'gst-libav' and 'gst-plugins-ugly' should be removed entirely. Users can add them to their profile if they wish. As for 'gst-plugins-base' and 'gst-plugins-good': I think it would be better to make them normal inputs, and add a wrapper for rhythmbox that adds a prefix to GST_PLUGIN_SYSTEM_PATH, similar to what we do in the Totem package. What about 'totem-pl-parser'? Does that need to be a propagated-input? If so, why? + (native-inputs +`((intltool ,intltool) + (glib ,glib bin) + (desktop-file-utils ,desktop-file-utils) + (pkg-config ,pkg-config))) + (inputs +`((json-glib ,json-glib) + (tdb ,tdb) + (gnome-desktop ,gnome-desktop) + (python ,python) + (python-pygobject ,python2-pygobject) + (vala ,vala) + (gmime ,gmime) + (nettle ,nettle) + (itstool ,itstool) + (adwaita-icon-theme ,adwaita-icon-theme) + (gstreamer ,gstreamer) + (gudev ,eudev) Does 'eudev' provide 'gudev'? This seems mismatched, but perhaps I'm mistaken. + ;(libmtp ,libmtp) FIXME Not detected Please use two semicolons here. In general, use one semicolon for margin comments (on the right), and two semicolons for comments that are in the same column as the surrounding code. Emacs decides how to auto-indent Lisp/Scheme comments based on the number of semicolons. + (libsecret ,libsecret) + (libsoup ,libsoup) + (libnotify ,libnotify) + (libpeas ,libpeas) + (lirc ,lirc) + ; TODO Unused without mx Two semicolons, and it's not clear which input the comment above refers to. Please make it more clear. + ;(clutter ,clutter) + ;(clutter-gtk ,clutter-gtk) + ;(clutter-gst ,clutter-gst) Two semicolons. + (gsettings-desktop-schemas ,gsettings-desktop-schemas) + (atk ,atk) + (pango ,pango) + (gtk+ ,gtk+) + ;; TODO: + ;; * grilo We have grilo now. You should probably add both 'grilo' and 'grilo-plugins' as inputs and then set GRL_PLUGIN_PATH in the wrapper, like we do in the Totem package. + ;; * libgpod + ;; * mx + ;; * webkit + (brasero ,brasero))) + (home-page https://wiki.gnome.org/Apps/Rhythmbox;) + (synopsis Music player for GNOME) + (description Rhythmbox is a music playing application for GNOME. It +supports playlists, song ratings, and any codecs installed through gstreamer.) + (license license:gpl2+))) Can you send an updated patch? Thanks, Mark
[PATCH 5/6] guix: Move package-transitive-propagated-labels* and package-propagated-input-refs to (guix packages).
From: Eric Bavier bav...@member.fsf.org * gnu/packages/version-control.scm (package-transitive-propagated-labels*) (package-propagated-input-refs): Move from here... * guix/packages.scm: ...to here. --- gnu/packages/version-control.scm | 17 - guix/packages.scm| 20 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 15e6fb6..eee3a2f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -99,23 +99,6 @@ changes to project files over time. It supports both a distributed workflow as well as the classic centralized workflow.) (license gpl2+))) -(define (package-transitive-propagated-labels* package) - Return a list of the input labels of PACKAGE and its transitive inputs. - (let ((name (package-name package))) -`(,name - ,@(map (match-lambda - ((label (? package? _) . _) -(string-append name / label))) - (package-transitive-propagated-inputs package) - -(define (package-propagated-input-refs inputs packages) - Return a list of (assoc-ref INPUTS package-name) for each package in -PACKAGES and their propagated inputs. - (map (lambda (l) - `(assoc-ref ,inputs ,l)) - (append-map package-transitive-propagated-labels* - packages))) - (define-public git ;; Keep in sync with 'git-manpages'! (package diff --git a/guix/packages.scm b/guix/packages.scm index 5a28085..e84d129 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -93,6 +93,9 @@ package-output package-grafts +package-transitive-propagated-labels* +package-propagated-input-refs + %supported-systems %hydra-supported-systems supported-package? @@ -559,6 +562,23 @@ for the host system (\native inputs\), and not target inputs. recursively. (transitive-inputs (package-propagated-inputs package))) +(define (package-transitive-propagated-labels* package) + Return a list of the input labels of PACKAGE and its transitive inputs. + (let ((name (package-name package))) +`(,name + ,@(map (match-lambda + ((label (? package? _) . _) +(string-append name / label))) + (package-transitive-propagated-inputs package) + +(define (package-propagated-input-refs inputs packages) + Return a list of (assoc-ref INPUTS package-name) for each package in +PACKAGES and their transitive propagated inputs. + (map (lambda (l) + `(assoc-ref ,inputs ,l)) + (append-map package-transitive-propagated-labels* + packages))) + (define-syntax define-memoized/v (lambda (form) Define a memoized single-valued unary procedure with docstring. -- 2.4.3
[PATCH 2/6] gnu: Add perl-html-tableextract.
From: Eric Bavier bav...@member.fsf.org * gnu/packages/web.scm (perl-html-tableextract): New variable. --- gnu/packages/web.scm | 23 +++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ee67119..c80b239 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1690,6 +1690,29 @@ components.) syntactic legitmacy.) (license l:artistic2.0))) +(define-public perl-html-tableextract + (package +(name perl-html-tableextract) +(version 2.13) +(source + (origin + (method url-fetch) + (uri (string-append https://cpan.metacpan.org/authors/id/M/MS/MSISK/; + HTML-TableExtract- version .tar.gz)) + (sha256 +(base32 + 01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a +(build-system perl-build-system) +(propagated-inputs + `((perl-html-element-extended ,perl-html-element-extended) + (perl-html-parser ,perl-html-parser))) +(home-page http://search.cpan.org/dist/HTML-TableExtract;) +(synopsis Extract contents from HTML tables) +(description + HTML::TableExtract is a Perl module for extracting the content contained +in tables within an HTML document, either as text or encoded element trees.) +(license (package-license perl + (define-public perl-html-tree (package (name perl-html-tree) -- 2.4.3
[PATCH 6/6] gnu: gnucash: Add Finance::Quote support.
From: Eric Bavier bav...@member.fsf.org * gnu/packages/patches/gnucash-price-quotes-perl.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/gnucash.scm (gnucash)[source]: Use it. [arguments]: Add 'wrap-programs' phase. [inputs]: Add perl-date-manip and perl-finance-quote. --- gnu-system.am | 1 + gnu/packages/gnucash.scm | 41 -- .../patches/gnucash-price-quotes-perl.patch| 23 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/gnucash-price-quotes-perl.patch diff --git a/gnu-system.am b/gnu-system.am index fafe9ed..99899e7 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -447,6 +447,7 @@ dist_patch_DATA = \ gnu/packages/patches/glibc-ldd-x86_64.patch \ gnu/packages/patches/glibc-locales.patch \ gnu/packages/patches/gmp-arm-asm-nothumb.patch \ + gnu/packages/patches/gnucash-price-quotes-perl.patch \ gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ gnu/packages/patches/gobject-introspection-cc.patch \ gnu/packages/patches/gobject-introspection-girepository.patch\ diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 6ab8f09..d7e72c9 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus rek...@elephly.net +;;; Copyright © 2015 Eric Bavier bav...@member.fsf.org ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,7 +28,9 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xml)) @@ -42,11 +45,41 @@ version .tar.bz2)) (sha256 (base32 -103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3 +103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3)) + (patches (list (search-patch gnucash-price-quotes-perl.patch) (build-system gnu-build-system) (arguments `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff - #:configure-flags '(--disable-dbi))) + #:configure-flags '(--disable-dbi) + #:modules ((srfi srfi-1) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after + 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) +(for-each (lambda (prog) +(wrap-program (string-append (assoc-ref outputs out) + /bin/ prog) + `(PERL5LIB : prefix +,(map (lambda (o) +(string-append o /lib/perl5/site_perl/ + ,(package-version perl))) + (delete-duplicates + (if (string=? prog gnc-fq-helper) + (list +,@(package-propagated-input-refs + 'inputs + (list perl-finance-quote + perl-date-manip))) + (list +,@(package-propagated-input-refs + 'inputs + (list perl-finance-quote) + '(gnucash +gnc-fq-check +gnc-fq-helper +gnc-fq-dump))) (inputs `((guile ,guile-2.0) (icu4c ,icu4c) @@ -56,7 +89,9 @@ (libgnomecanvas ,libgnomecanvas) (libxml2 ,libxml2) (libxslt ,libxslt) - (webkitgtk ,webkitgtk/gtk+-2))) + (webkitgtk ,webkitgtk/gtk+-2) + (perl-date-manip ,perl-date-manip) + (perl-finance-quote ,perl-finance-quote))) (native-inputs `((glib ,glib bin) ; glib-compile-schemas, etc. (intltool ,intltool) diff --git a/gnu/packages/patches/gnucash-price-quotes-perl.patch b/gnu/packages/patches/gnucash-price-quotes-perl.patch new file mode 100644 index 000..982763f --- /dev/null +++ b/gnu/packages/patches/gnucash-price-quotes-perl.patch @@ -0,0 +1,23 @@ +After wrapping gnc-fq-check and gnc-fq-helper we can no longer execute them +with perl, so execute them directly instead. + +--- gnucash-2.6.6/src/scm/price-quotes.scm.orig2014-04-27 17:42:28.0 -0500
[PATCH 1/6] gnu: Add perl-html-element-extended.
From: Eric Bavier bav...@member.fsf.org * gnu/packages/web.scm (perl-html-element-extended): New variable. --- gnu/packages/web.scm | 22 ++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ae51cc7..ee67119 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1620,6 +1620,28 @@ which can be used to parse directory listings.) described in RFC 2744.) (license (package-license perl +(define-public perl-html-element-extended + (package +(name perl-html-element-extended) +(version 1.18) +(source + (origin + (method url-fetch) + (uri (string-append mirror://cpan/authors/id/M/MS/MSISK/ + HTML-Element-Extended- version .tar.gz)) + (sha256 +(base32 + 0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk +(build-system perl-build-system) +(propagated-inputs + `((perl-html-tree ,perl-html-tree))) +(home-page http://search.cpan.org/dist/HTML-Element-Extended;) +(synopsis Manipulate tables of HTML::Element) +(description + Perl extension for manipulating a table composed of HTML::Element style +components.) +(license (package-license perl + (define-public perl-html-form (package (name perl-html-form) -- 2.4.3
[PATCH 4/6] gnu: Add perl-finance-quote.
From: Eric Bavier bav...@member.fsf.org * gnu/packages/web.scm (perl-finance-quote): New variable. * gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + .../perl-finance-quote-unuse-mozilla-ca.patch | 15 ++ gnu/packages/web.scm | 33 ++ 3 files changed, 49 insertions(+) create mode 100644 gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch diff --git a/gnu-system.am b/gnu-system.am index a3c56a8..fafe9ed 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -540,6 +540,7 @@ dist_patch_DATA = \ gnu/packages/patches/patchutils-xfail-gendiff-tests.patch\ gnu/packages/patches/patch-hurd-path-max.patch \ gnu/packages/patches/pavucontrol-sigsegv.patch \ + gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \ gnu/packages/patches/perl-module-pluggable-search.patch \ gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \ diff --git a/gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch b/gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch new file mode 100644 index 000..5f37bb0 --- /dev/null +++ b/gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch @@ -0,0 +1,15 @@ +Rather than unconditionally using Mozilla's CA certificates, let the user tell +LWP's UserAgent where to find certificates with the PERL_LWP_SSL_CA_FILE, +HTTPS_CA_FILE, PERL_LWP_SSL_CA_PATH, or HTTPS_CA_DIR environment variables +instead. + +--- Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm.orig 2015-02-01 13:24:41.0 -0600 Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm 2015-07-07 20:09:47.278885944 -0500 +@@ -30,7 +30,6 @@ + package Finance::Quote::Tiaacref; + require 5.005; + require LWP::Protocol::https; +-require Mozilla::CA; + + use strict; + diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c80b239..cb73c9a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1597,6 +1597,39 @@ Encode::decode(locale = $string).) which can be used to parse directory listings.) (home-page http://search.cpan.org/~gaas/File-Listing/;))) +(define-public perl-finance-quote + (package + (name perl-finance-quote) + (version 1.37) + (source +(origin + (method url-fetch) + (uri (string-append https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/; + Finance-Quote- version .tar.gz)) + (sha256 + (base32 +1b6pbh7f76fb5sa4f0lhx085xy55pprz5v7z7li7pqiyw7i4f4bf)) + (patches (list +(search-patch perl-finance-quote-unuse-mozilla-ca.patch) + (build-system perl-build-system) + (propagated-inputs +`((perl-datetime ,perl-datetime) + (perl-html-parser ,perl-html-parser) + (perl-html-tableextract ,perl-html-tableextract) + (perl-html-tree ,perl-html-tree) + (perl-http-cookies ,perl-http-cookies) + (perl-http-message ,perl-http-message) + (perl-json ,perl-json) + (perl-libwww ,perl-libwww) + (perl-lwp-protocol-https ,perl-lwp-protocol-https) + (perl-uri ,perl-uri))) + (home-page http://search.cpan.org/dist/Finance-Quote;) + (synopsis Stock and mutual fund quotes) + (description +This module gets stock quotes from various internet sources, including +Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.) + (license l:gpl2))) + (define-public perl-gssapi (package (name perl-gssapi) -- 2.4.3
[PATCH 3/6] gnu: Add perl-date-manip.
From: Eric Bavier bav...@member.fsf.org * gnu/packages/perl.scm (perl-date-manip): New variable. --- gnu/packages/perl.scm | 23 +++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 3d28455..9250feb 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1283,6 +1283,29 @@ applicable).) Date::Calc.) (license (list (package-license perl) lgpl2.0+ +(define-public perl-date-manip + (package +(name perl-date-manip) +(version 6.50) +(source + (origin + (method url-fetch) + (uri (string-append https://cpan.metacpan.org/authors/id/S/SB/SBECK/; + Date-Manip- version .tar.gz)) + (sha256 +(base32 + 0zd0wbf91i49753rnf7m1lw197hdl5r97mxy0n43zdmcmhvkb3qq +(build-system perl-build-system) +(arguments + ;; Tests would require tzdata for timezone information, but tzdata is in + ;; (gnu packages base) which would create a circular dependency. TODO: + ;; Maybe put this package elsewhere so we can turn on tests. + '(#:tests? #f)) +(home-page http://search.cpan.org/dist/Date-Manip;) +(synopsis Date manipulation routines) +(description ) +(license (package-license perl + (define-public perl-datetime (package (name perl-datetime) -- 2.4.3
Call for testing : guix-tox, a version of tox that uses guix environment.
Hey! Those of who you write Python code probably know tox[1], a tool used to manage tests/builds for Python. It uses virtualenv[2], which allows developers to create isolated environments and install packages without polluting their systems. I hacked tox to replace virtualenv with guix environment. The code is available at https://git.framasoft.org/Steap/guix-tox , in the guix-tox branch (the master branch is just a mirror of tox). Note that I will probably use git push -f on this branch :) I explained the details in README.rst. If there are Python developers on this list, I would love to know what they think about this. I intend to propose a 20 minute talk about guix-tox at the next PyConFR. print(Happy Hacking!) Cyril. [1] https://bitbucket.org/hpk42/tox [2] https://virtualenv.pypa.io/en/latest/
Re: [PATCH] gnu: brasero: Update to 3.12.1, Add inputs.
I already have my copyright line in this particular file, since I've submitted to it before. - David On Thu, Jul 9, 2015 at 12:34 AM, Mark H Weaver m...@netris.org wrote: David Hashe david.ha...@dhashe.com writes: * gnu/packages/gnome.scm (brasero): Update to 3.12.1. [inputs]: Add gobject-introspection, nettle, and totem-pl-parser. Looks good to me. Can you add your copyright line to the top and send an updated patch? Thanks, Mark
Re: OpenStack and GuixOps (was: Re: Guix ops)
Quoting Christopher Allan Webber (2015-07-09 14:27:04) ... I'd throw heat[1] into the list of things to read up on, but otherwise this sounds like fairly good/complete advice. -Ian [1]: https://wiki.openstack.org/wiki/Heat signature.asc Description: signature
Policy regarding adding email addresses to '.mailmap'.
My questions are about how do we maintain the new '.mailmap' file. - Do the new addresses need to be added in the same commit where it appears or in a separate commit? - In the case of a separate commit, will it be synchronous or asynchronous (meaning that multiples adresses can be added at the same time) ? - Is it better to ask the owner which email to choose in AUTHORS or to use automatically the more recent one? - On the technical side, how to automate the process? Ideas welcome! -- Mathieu Lirzin
Re: [PATCH] emacs: Find autoloads in guix.d subdirectories.
Ludovic Courtès (2015-07-09 01:02 +0300) wrote: Alex Kost alez...@gmail.com skribis: From 5ef9e359203a82f9394391161da9fd9dda982f46 Mon Sep 17 00:00:00 2001 From: Alex Kost alez...@gmail.com Date: Fri, 19 Jun 2015 12:31:59 +0300 Subject: [PATCH] emacs: Find autoloads in guix.d subdirectories. Co-authored-by: Federico Beffa be...@fbengineering.ch. * emacs/guix-emacs.el (guix-emacs-find-autoloads-in-directory, guix-emacs-subdirs): New functions. (guix-emacs-find-autoloads): Search for autoloads in guix.d subdirectories. (guix-emacs-load-autoloads): Add subdirectories to 'load-path'. * emacs/guix-init.el.in: Do not add guix emacs directory to 'load-path' because it will be done by 'guix-emacs-load-autoloads'. Move requiring 'guix-emacs' from the top-level to a clause for checking for 'guix-package-enable-at-startup'. LGTM. As a user, do I now need to (setq guix-package-enable-at-startup t)? No, nothing has changed here; `t' is a default value. A user need to set it to nil if he doesn't want the emacs packages installed with guix to be autoloaded. -- Alex
Re: [PATCH 5/5] gnu: Add emacs-mmm-mode
Mark H Weaver (2015-07-09 02:19 +0300) wrote: Alex Kost alez...@gmail.com writes: Ludovic Courtès (2015-07-04 18:16 +0300) wrote: Alex Kost alez...@gmail.com skribis: I think I've found a problem with downloading packages from melpa-stable (probably the same will be with 'melpa', but I don't know). I tried to build this 'emacs-mmm-mode' package but it failed because http://stable.melpa.org/packages/mmm-mode-0.5.2.tar does not exist anymore (because the current version is 0.5.4). If tarball deletion or renaming is common on MELPA, then maybe we could address it by providing an additional alternate URL, as is done for ‘lftp’ and other packages. WDYT? If I understand correctly, there is no alternative URL. Only URL for a latest version. (but I may be wrong) emacs-mmm-mode is failing to build on hydra, because the downloaded tarball doesn't match the expected hash: http://hydra.gnu.org/build/563640/nixlog/1/tail-reload starting download of `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' from `http://stable.melpa.org/packages/mmm-mode-0.5.4.tar'... http://stable.melpa.org/.../mmm-mode-0.5.4.tar 0.0% of 300.0 KiB (0. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 21.3% of 300.0 KiB (405. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 42.7% of 300.0 KiB (372. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 64.0% of 300.0 KiB (439. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 85.3% of 300.0 KiB (411. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar100.0% of 300.0 KiB (419. KiB/s) output path `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' should have sha256 hash `1llkzb6d978ym3zv3yfzwj0w5zzmmj3ksrm5swrx1papxcnqnkb9', instead has `1kjc41nlsf7qxmmy9mrzk6myinjvc550zl5ia0ivvdz945x39yay' What went wrong here? Wow, it looks like using melpa(-stable) URLs are even more unreliable than I thought. I've just downloaded 'mmm-mode-0.5.4.tar' and the hash is different again: --8---cut here---start-8--- $ guix download http://stable.melpa.org/packages/mmm-mode-0.5.4.tar starting download of `/tmp/guix-file.V1XHG4' from `http://stable.melpa.org/packages/mmm-mode-0.5.4.tar'... http://stable.melpa.org/.../mmm-mode-0.5.4.tar 100.0% of 300.0 KiB (110. KiB/s) /gnu/store/mqkacn4hm16j7cx91g4ml9287bznfva1-mmm-mode-0.5.4.tar 0bsbp93wb5b78yp2gyvk4jkmv6vawcwyyfy35wbq6hdfi5q75a9w --8---cut here---end---8--- So my guess is: MELPA periodically updates all the tarballs, not just the packages with the new version tags. I think it means we should refuse from using melpa(-stable) tarballs and use the upstream releases instead. In this particular case it will be https://github.com/purcell/mmm-mode/archive/0.5.4.tar.gz. Also I think if an emacs package provides a proper gnu build system it should be prefered over the emacs build system (as it may provide tests and, dunno, it's just the usual way to go). If people agree on this, what about the attached patch? From 35e622f13b5971ffab154da2ed316c2076c0c652 Mon Sep 17 00:00:00 2001 From: Alex Kost alez...@gmail.com Date: Thu, 9 Jul 2015 11:48:12 +0300 Subject: [PATCH] gnu: emacs-mmm-mode: Use gnu-build-system. * gnu/packages/emacs.scm (emacs-mmm-mode): Replace melpa-stable URL with the github URL and use 'gnu-build-system' instead of 'emacs-build-system'. Fix typo (add missing space before the description). --- gnu/packages/emacs.scm | 26 ++ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f00e15c..32b27fc 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -812,17 +812,27 @@ or XEmacs.) (origin (method url-fetch) (uri (string-append - http://stable.melpa.org/packages/mmm-mode-; - version - .tar)) + https://github.com/purcell/mmm-mode/archive/; + version .tar.gz)) + (file-name (string-append name - version .tar.gz)) (sha256 (base32 - 1llkzb6d978ym3zv3yfzwj0w5zzmmj3ksrm5swrx1papxcnqnkb9 -(build-system emacs-build-system) + 10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv +(build-system gnu-build-system) +(arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (zero? (system* sh autogen.sh))) +(native-inputs + `((autoconf ,autoconf) + (automake ,automake) + (emacs ,emacs-no-x) + (texinfo ,texinfo))) (home-page https://github.com/purcell/mmm-mode;) -(synopsis - Allow multiple major modes in an Emacs buffer) +(synopsis Allow multiple major modes in an Emacs buffer) (description -MMM Mode is a minor mode that allows multiple major modes to coexist in
Re: How to handle required plugins and dbus services for GNOME Programs?
Mark H Weaver m...@netris.org writes: 'dconf' apparently needs to be in the profile for both GNOME Terminal and Totem because of the session dbus service(s) it provides. Without it, modern GNOME programs behave quite badly. They have no way to access or change their own configuration settings, e.g. if you go into their preferences, you see checkboxes that do not change their state when clicked. I'm not sure how best to deal with issues like this, and also with things like grilo-plugins and gst-plugins-* that are needed for the proper functioning of Totem. Should we make them propagated-inputs? Or perhaps they should be normal inputs and we should use a wrapper to add those directories as suffixes to GRL_PLUGIN_PATH and GST_PLUGIN_SYSTEM_PATH automatically? What do you think? So, at this point my inclination is to do the following: * Add 'dconf' to the propagated-inputs of 'totem', since totem needs dconf services to be available on the user session D-Bus. * Add a wrapper for 'totem' that add prefixes to both GST_PLUGIN_SYSTEM_PATH and GRL_PLUGIN_PATH to ensure reliable access to a baseline set of plugins needed for proper functioning of 'totem'. This includes grilo-plugins, gst-plugins-base, and gst-plugins-good. IMO, this hard-coded set of plugins should exclude patent-encumbered codecs, so no gst-libav or gst-plugins-ugly. Please see the attached 'totem' package. To simplify things, the values of the GST_PLUGIN_SYSTEM_PATH and GRL_PLUGIN_PATH environment variables are taken directly from the build environment (using 'getenv') and propagated unchanged into the created wrapper. What do you think? Mark From f1cbb55b1dd87bffd34d77cf6e1e68f33c38b9e0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver m...@netris.org Date: Sat, 20 Jun 2015 18:26:34 -0400 Subject: [PATCH] gnu: Add totem. * gnu/packages/gnome.scm (totem): New variable. --- gnu/packages/gnome.scm | 79 ++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 30277f5..3142506 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages libusb) + #:use-module (gnu packages lirc) #:use-module (gnu packages lua) #:use-module (gnu packages image) #:use-module (gnu packages perl) @@ -2823,3 +2824,81 @@ for application developers.) Grilo is a framework focused on making media discovery and browsing easy for application developers.) (license license:lgpl2.1+))) + +(define-public totem + (package +(name totem) +(version 3.16.1) +(source + (origin + (method url-fetch) + (uri (string-append mirror://gnome/sources/ name / + (version-major+minor version) / + name - version .tar.xz)) + (sha256 +(base32 + 1nkm2i271ivq40hryrl6px39gbbvhmlx4vmvwvw4h3z8xh3013f9 +(build-system glib-or-gtk-build-system) +(native-inputs + `((pkg-config ,pkg-config) + (desktop-file-utils ,desktop-file-utils) + (gobject-introspection ,gobject-introspection) + (intltool ,intltool) + (itstool ,itstool))) +(propagated-inputs + `((dconf ,dconf))) +(inputs + `((gtk+ ,gtk+) + (gdk-pixbuf ,gdk-pixbuf) + (atk ,atk) + (cairo ,cairo) + (dbus-glib ,dbus-glib) + (clutter ,clutter) + (clutter-gtk ,clutter-gtk) + (clutter-gst ,clutter-gst) + (xproto ,xproto) + (libxxf86vm ,libxxf86vm) + (libxtst ,libxtst) + (libxrandr ,libxrandr) + (libxml2 ,libxml2) + (libsoup ,libsoup) + (libpeas ,libpeas) + (librsvg ,librsvg) + (lirc ,lirc) + (gnome-desktop ,gnome-desktop) + (gstreamer ,gstreamer) + (gst-plugins-base ,gst-plugins-base) + (gst-plugins-good ,gst-plugins-good) + (gsettings-desktop-schemas ,gsettings-desktop-schemas) + (adwaita-icon-theme ,adwaita-icon-theme) + ;; XXX We use python-2 because libxml2 because itstool (which needs + ;; libxml) currently uses python-2. + (python ,python-2) + (python-pygobject ,python2-pygobject) + ;; XXX TODO pylint needed for python support + (totem-pl-parser ,totem-pl-parser) + (grilo ,grilo) + (grilo-plugins ,grilo-plugins) + (nettle ,nettle) + (vala ,vala))) +(arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'install 'wrap-totem + (lambda* (#:key inputs outputs #:allow-other-keys) +(let ((out (assoc-ref outputs out)) + (gst-plugin-path (getenv GST_PLUGIN_SYSTEM_PATH)) + (grl-plugin-path (getenv GRL_PLUGIN_PATH))) + (wrap-program (string-append out /bin/totem) +`(GST_PLUGIN_SYSTEM_PATH :
Re: Policy regarding adding email addresses to '.mailmap'.
Mathieu Lirzin m...@openmailbox.org writes: My questions are about how do we maintain the new '.mailmap' file. - Do the new addresses need to be added in the same commit where it appears or in a separate commit? - In the case of a separate commit, will it be synchronous or asynchronous (meaning that multiples adresses can be added at the same time) ? - Is it better to ask the owner which email to choose in AUTHORS or to use automatically the more recent one? I’m using two email addresses and I alternate between them depending on what I do (bioinfo stuff is done mostly from the official office email address, whereas other stuff is sent from my private email address). - On the technical side, how to automate the process? Does it need automation at all?
Re: [PATCH 3/5] build: Add 'emacs-build-system'
Federico Beffa (2015-07-08 23:22 +0300) wrote: On Tue, Jul 7, 2015 at 6:58 PM, Alex Kost alez...@gmail.com wrote: A side note: I think generally it would be preferable to use an upstream release in the package recipe rather than to use a melpa(-stable) URL, i.e.: http://foo-upstream.org/foo-0.1.tar.gz instead of http://stable.melpa.org/packages/foo-0.1.tar I believe that such information is not available from ELPA archives. Therefore the ELPA importer has no way to do this. But, obviously, manual modification is possible. (By the way, the tar files are similar but not identical.) Surely, I didn't mean that it's a task for the elpa importer. I'm totally for the manual modification to use an upstream release, not the melpa(-stable) one. By the tar files are similar do you mean that MELPA usually leaves only elisp files in the tarballs? I think since it's a common practice to put elisp files in the root directory of the repo, we should add a phase to the emacs build system to remove non-elisp files (like .gitignore or README) from the final /gnu/store/…-foo-0.1/share/emacs/site-lisp/guix.d/foo-0.1/ directory. Also along with the concern that melpa stores a tarball only for the latest package version I think I've found another problem that will happen with a package from any repository: there are many single-file packages and these ones are not put in tarballs. I mean the package in this case is just a simple elisp file, so the 'unpack' will fail. Look at http://elpa.gnu.org/packages/rainbow-mode.html for example: guix import elpa --archive=gnu rainbow-mode gives a package that fails on 'unpack' phase. Currently this can be handled, as in many packages using other build systems, by custom phases. But handling of this type of packages would definitely be useful. Unfortunately, in the near future, I will not have time to spend on this. I've pushed the code as reviewed on the ML today. If you are interested, feel free to improve/extend it. Thanks for the proposal :-) -- Alex
Re: Policy regarding adding email addresses to '.mailmap'.
Mathieu Lirzin (2015-07-09 10:38 +0300) wrote: My questions are about how do we maintain the new '.mailmap' file. - Do the new addresses need to be added in the same commit where it appears or in a separate commit? I'm for a separate commit. - In the case of a separate commit, will it be synchronous or asynchronous (meaning that multiples adresses can be added at the same time) ? I believe multiple addresses may be added in the same commit. - Is it better to ask the owner which email to choose in AUTHORS or to use automatically the more recent one? I think it's always better to ask. - On the technical side, how to automate the process? I don't see how it may be automate. -- Alex
[PATCH 01/12] gnu: libmpdclient: Update to 2.10.
* gnu/packages/mpd.scm (libmpdclient): Update to 2.10. --- gnu/packages/mpd.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index f89d3ed..d012f80 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -48,16 +48,16 @@ (define-public libmpdclient (package (name libmpdclient) -(version 2.9) +(version 2.10) (source (origin (method url-fetch) (uri (string-append http://musicpd.org/download/libmpdclient/; (car (string-split version #\.)) - /libmpdclient- version .tar.gz)) + /libmpdclient- version .tar.xz)) (sha256 (base32 -0csb9r3nlmbwpiryixjr5k33x3zqd61xjhwmlps3a6prck1n1xw2 +10pzs9z815a8hgbbbiliapyiw82bnplsccj5irgqjw5f5plcs22g (build-system gnu-build-system) (native-inputs `((doxygen ,doxygen))) (synopsis Music Player Daemon client library) -- 2.4.5
[PATCH 09/12] gnu: npth: Update to 1.2.
* gnu/packages/gnupg.scm (npth): Update to 1.2. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 9d2d156..fdeeb99 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -167,7 +167,7 @@ specifications are building blocks of S/MIME and TLS.) (define-public npth (package (name npth) -(version 1.1) +(version 1.2) (source (origin (method url-fetch) @@ -176,7 +176,7 @@ specifications are building blocks of S/MIME and TLS.) version .tar.bz2)) (sha256 (base32 -0zyzwmk4mp6pas87jz35zx0jvwdz7x5b13w225gs73gcn8g5cv49 +12n0nvhw4fzwp0k7gjv3rc6pdml0qiinbbfiz4ilg6pl5kdxvnvd (build-system gnu-build-system) (home-page http://www.gnupg.org;) (synopsis Non-preemptive thread library) -- 2.4.5
[PATCH 05/12] gnu: ncmpc: Update to 0.24.
* gnu/packages/mpd.scm (ncmpc): Update to 0.24. --- gnu/packages/mpd.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 56a2d19..15e7e8f 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -154,16 +154,16 @@ player daemon.) (define-public ncmpc (package (name ncmpc) -(version 0.21) +(version 0.24) (source (origin (method url-fetch) (uri (string-append http://musicpd.org/download/ncmpc/; (car (string-split version #\.)) - /ncmpc- version .tar.gz)) + /ncmpc- version .tar.xz)) (sha256 (base32 -1gpy6rr0awl6xgkswmr8rdvqfkrz83rmwk441c00a9d4z3zb1a16 +1sf3nirs3mcx0r5i7acm9bsvzqzlh730m0yjg6jcyj8ln6r7cvqf (build-system gnu-build-system) (inputs `((glib ,glib) (libmpdclient ,libmpdclient) -- 2.4.5
[PATCH 04/12] gnu: ncmpcpp: Update to 0.6.5.
* gnu/packages/mpd.scm (ncmpcpp): Update to 0.6.5. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index ad5882e..56a2d19 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -178,7 +178,7 @@ terminal using ncurses.) (define-public ncmpcpp (package (name ncmpcpp) -(version 0.6.2) +(version 0.6.5) (source (origin (method url-fetch) (uri @@ -186,7 +186,7 @@ terminal using ncurses.) version .tar.bz2)) (sha256 (base32 -1mrd6m6ph0fscxp9x96ipxh6ai7w0n1miapcfqrqfy058qx5zbck +1zfidkskmiqx1wfykinmr639lhd90s7b0rks6vaci4n56ml8y4ji (build-system gnu-build-system) (inputs `((libmpdclient ,libmpdclient) (boost ,boost) -- 2.4.5
[PATCH 03/12] gnu: mpd-mpc: Update to 0.27.
* gnu/packages/mpd.scm (mpd-mpc): Update to 0.27. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index ac8b634..ad5882e 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -132,7 +132,7 @@ protocol.) (define-public mpd-mpc (package (name mpd-mpc) -(version 0.26) +(version 0.27) (source (origin (method url-fetch) (uri @@ -141,7 +141,7 @@ protocol.) /mpc- version .tar.xz)) (sha256 (base32 -0hp2qv6w2v902dhrmck5hg32s1ai6xiv9n61a3n6prfcfdqmywr0 +0r10wsqxsi07gns6mfnicvpci0sbwwj4qa9iyr1ysrgadl5bx8j5 (build-system gnu-build-system) (inputs `((libmpdclient ,libmpdclient))) (native-inputs `((pkg-config ,pkg-config))) -- 2.4.5
[PATCH 07/12] gnu: libassuan: Update to 2.2.1.
* gnu/packages/gnupg.scm (libassuan): Update to 2.2.1. --- gnu/packages/gnupg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 1e09e36..014a549 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge andr...@enge.fr ;;; Copyright © 2014 Eric Bavier bav...@member.fsf.org ;;; Copyright © 2014, 2015 Mark H Weaver m...@netris.org +;;; Copyright © 2015 Paul van der Walt p...@denknerd.org ;;; ;;; This file is part of GNU Guix. ;;; @@ -108,7 +109,7 @@ generation.) (define-public libassuan (package (name libassuan) -(version 2.2.0) +(version 2.2.1) (source (origin (method url-fetch) @@ -116,7 +117,7 @@ generation.) version .tar.bz2)) (sha256 (base32 -1ikf9whfi7rg71qa610ynyv12qrw20zkn7zxgvvr9dp41gbqxxbx +1pp2kl5gc2vja41g3wk03h1hgh7gxy6pj354fb5n4lrlg6xqb4ll (build-system gnu-build-system) (propagated-inputs `((libgpg-error ,libgpg-error) (pth ,pth))) -- 2.4.5
[PATCH 08/12] gnu: pius: Update to 2.1.1.
* gnu/packages/gnupg.scm (pius): Update to 2.1.1. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 014a549..9d2d156 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -327,14 +327,14 @@ and every application benefits from this.) (define-public pius (package (name pius) - (version 2.0.11) + (version 2.1.1) (source (origin (method url-fetch) (uri (string-append mirror://sourceforge/pgpius/pius/ version /pius- version .tar.bz2)) (sha256 (base32 - 0pdbyqz6k0bm182cz81ss7yckmpms5qhrrw0wcr4a1srzcjyzf5f + 0ry3kc3x1qjmvb581ja2z2v32r1rl1g8rhfj7iqvs8nzq4ca512i (build-system gnu-build-system) (inputs `((perl ,perl) (python ,python-2) ;uses the Python 2 'print' syntax -- 2.4.5
[PATCH 10/12] gnu: gpgme: Update to 1.5.5.
* gnu/packages/gnupg.scm (gpgme): Update to 1.5.5. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index fdeeb99..85e5d7f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -293,7 +293,7 @@ libskba (working with X.509 certificates and CMS data).) (define-public gpgme (package (name gpgme) -(version 1.5.4) +(version 1.5.5) (source (origin (method url-fetch) @@ -301,7 +301,7 @@ libskba (working with X.509 certificates and CMS data).) .tar.bz2)) (sha256 (base32 -0v7azxazsfakvhrxzj5ysvcxma0892c89d27c17fkj8mi3nc0f5v +01y28fkq52wwf4p470wscaxd2vgzl615irmafx3mj3380x8ksg8b (build-system gnu-build-system) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. -- 2.4.5
[PATCH 02/12] gnu: mpd: Update to 0.19.10.
* gnu/packages/mpd.scm (mpd): Update to 0.19.10. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index d012f80..ac8b634 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -69,7 +69,7 @@ interfacing MPD in the C, C++ Objective C languages.) (define-public mpd (package (name mpd) -(version 0.19.9) +(version 0.19.10) (source (origin (method url-fetch) (uri @@ -78,7 +78,7 @@ interfacing MPD in the C, C++ Objective C languages.) /mpd- version .tar.xz)) (sha256 (base32 -0vzj365s4j0pw5w37lfhx3dmpkdp85driravsvx8rlrw0lii91a7 +0laqn68iggqf0h06hg282cvpd9wsjqpjfg5fnn9wk3gr48yyp1n3 (build-system gnu-build-system) (inputs `((ao ,ao) (alsa-lib ,alsa-lib) -- 2.4.5
[PATCH 06/12] gnu: libgpg-error: Update to 1.19.
* gnu/packages/gnupg.scm (libgpg-error): Update to 1.19. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 432409b..1e09e36 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -40,7 +40,7 @@ (define-public libgpg-error (package (name libgpg-error) -(version 1.18) +(version 1.19) (source (origin (method url-fetch) @@ -48,7 +48,7 @@ version .tar.bz2)) (sha256 (base32 -0408v19h3h0q6w61g51hgbdg6cyw81nyzkh70qfprvsc3pkddwcz +12wpqhjlsw4iaanifbqm2kich6c7x7lm8a7zhy6x5ifm6c9hw4jk (build-system gnu-build-system) (home-page http://gnupg.org;) (synopsis Library of error values for GnuPG components) -- 2.4.5
[PATCH 11/12] gnu: libksba: Update to 1.3.3.
* gnu/packages/gnupg.scm (libksba): Update to 1.3.3. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 85e5d7f..ba82e2a 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -134,7 +134,7 @@ provided.) (define-public libksba (package (name libksba) -(version 1.3.2) +(version 1.3.3) (source (origin (method url-fetch) @@ -143,7 +143,7 @@ provided.) version .tar.bz2)) (sha256 (base32 -01l4hvcknk9nb4bvyb6aqaid19jg0wv3ik54j1b89hnzamwm75gb +11kp3h9l3b8ikydkcdkwgx45r662zi30m26ra5llyhfh6kz5yzqc (build-system gnu-build-system) (propagated-inputs `((libgpg-error ,libgpg-error))) -- 2.4.5
[PATCH 12/12] gnu: pinentry: Update to 1.9.5.
* gnu/packages/gnupg.scm (pinentry): Update to 1.9.5. Add input libassuan. --- gnu/packages/gnupg.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index ba82e2a..1c2b567 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -476,17 +476,18 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry (package (name pinentry) -(version 0.9.0) +(version 0.9.5) (source (origin (method url-fetch) (uri (string-append mirror://gnupg/pinentry/pinentry- version .tar.bz2)) (sha256 (base32 -1awhajq21hcjgqfxg9czaxg555gij4bba6axrwg8w6lfmc3ml14h +1338hj1h3sh34897120y30x12b64wyj3xjzzk5asm2hdzhxgsmva (build-system gnu-build-system) (inputs `((ncurses ,ncurses) + (libassuan ,libassuan) (gtk+ ,gtk+-2) (glib ,glib))) (native-inputs -- 2.4.5
Re: Policy regarding adding email addresses to '.mailmap'.
Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes: I’m using two email addresses and I alternate between them depending on what I do (bioinfo stuff is done mostly from the official office email address, whereas other stuff is sent from my private email address). Correct me If I'm wrong. You mean that you would prefer that only your your private email address appears in AUTHORS even if your last commit was made using your office address? -- Mathieu Lirzin
Re: Policy regarding adding email addresses to '.mailmap'.
Mathieu Lirzin m...@openmailbox.org writes: Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes: I’m using two email addresses and I alternate between them depending on what I do (bioinfo stuff is done mostly from the official office email address, whereas other stuff is sent from my private email address). Correct me If I'm wrong. You mean that you would prefer that only your your private email address appears in AUTHORS even if your last commit was made using your office address? Correct. My private address will hopefully outlast any office email address. ~~ Ricardo
Re: [PATCH] gnu: make-bootstrap: Produce the correct %glibc-bootstrap-tarball for Hurd systems.
Hey Ludo On 7 July 2015 at 17:58, Ludovic Courtès l...@gnu.org wrote: Could you make sure that ‘guix build glibc-stripped-tarball’ still works as expected? (I assume you already tested with --target=i586-pc-gnu.) All OK with the changes, but 'guix build glibc-stripped-tarball' does not work anymore because I have turned (%glibc-bootstrap-tarball) into a procedure. Unless I do that, it will not evaluate correctly. How can I export it correctly now? Manolis
Re: [PATCH] gnu: bootstrap: Create a wrapper for guile to set the system load path
Hey Mark First of all thank you for helping on this :-) Seems to work fine for me, but I will need a bit more time to test it on my local Hurd vm because the vm filesystem crashed for some reason yesterday, some, not previously encountered, errors appeared after I restored the vm and had to run make clean make again on the vm. :-( Manolis
Re: [PATCH] Add preseq.
ERROR: In procedure mkstemp!: ERROR: In procedure mkstemp!: No such file or directory builder for `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed with exit code 1 @ build-failed /gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv - 1 builder for `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed with exit code 1 guix build: error: build failed: build of `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed The problem was that the “enter-dir” and “use-samtools-headers” phases were both added after “unpack”. (Has the order in which phases are added with ‘modify-phases’ changed? When I built it locally back then “use-samtools-headers” must have ended up after “enter-dir”.) I just pushed a commit that explicitly moves “use-samtools-headers” after the “enter-dir” phase, fixing this problem. Thank you, Mark, for the notification. ~~ Ricardo
Re: Policy regarding adding email addresses to '.mailmap'.
Mathieu Lirzin m...@openmailbox.org skribis: - Do the new addresses need to be added in the same commit where it appears or in a separate commit? Separate, but I expect changes to be rare (it’s only for people who want to choose among several addresses that they’ve used, or people whose recorded email address is no longer valid.) - In the case of a separate commit, will it be synchronous or asynchronous (meaning that multiples adresses can be added at the same time) ? It’s fine to add several at once, if needed. - Is it better to ask the owner which email to choose in AUTHORS or to use automatically the more recent one? Yes, better ask. - On the technical side, how to automate the process? We don’t. :-) Ludo’.
Re: [PATCH 08/15] gnu: build: Add Linux container module.
On Wed, Jul 8, 2015 at 5:57 PM, Ludovic Courtès l...@gnu.org wrote: Thompson, David dthomps...@worcester.edu skribis: +(test-assert call-with-container, pid namespace + (zero? + (call-with-container '() + (lambda () + (match (primitive-fork) + (0 + ;; The first forked process in the new pid namespace is pid 2. + (assert-exit (= 2 (getpid But its parent doesn’t sees itself as PID 1? Only if it were to 'exec'. The reason being that PID namespaces are special in how they treat the process that created the new namespace. It's somewhat confusing. Hmm, indeed. :-) From 83943ab47145180f13d3c08490a9ae09fccf3b92 Mon Sep 17 00:00:00 2001 From: David Thompson dthomps...@worcester.edu Date: Tue, 7 Jul 2015 21:58:15 -0400 Subject: [PATCH 1/2] build: file-systems: Import (guix build syscalls) for non-static Guiles. * gnu/build/file-systems.scm: Import (guix build syscalls) when 'mount' is not defined. * gnu/system.scm (operating-system-activation-script): Include (guix build syscalls) module in derivation. LGTM. From 72705fd6a8cd7b60bd727221897dc8bb79e3e4d7 Mon Sep 17 00:00:00 2001 From: David Thompson da...@gnu.org Date: Tue, 2 Jun 2015 08:48:16 -0400 Subject: [PATCH 2/2] gnu: build: Add Linux container module. * gnu/build/linux-container.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * .dir-locals.el: Add Scheme indent rules for 'call-with-clone', 'with-clone', 'call-with-container', and 'container-excursion'. * tests/containers.scm: New file. * Makefile.am (SCM_TESTS): Add it. OK! I found and fixed the race condition in the 'container-excursion' test. Pushed! - Dave
Re: How to handle required plugins and dbus services for GNOME Programs?
Mark H Weaver m...@netris.org writes: [...] So, at this point my inclination is to do the following: * Add 'dconf' to the propagated-inputs of 'totem', since totem needs dconf services to be available on the user session D-Bus. * Add a wrapper for 'totem' that add prefixes to both GST_PLUGIN_SYSTEM_PATH and GRL_PLUGIN_PATH to ensure reliable access to a baseline set of plugins needed for proper functioning of 'totem'. This includes grilo-plugins, gst-plugins-base, and gst-plugins-good. IMO, this hard-coded set of plugins should exclude patent-encumbered codecs, so no gst-libav or gst-plugins-ugly. Please see the attached 'totem' package. To simplify things, the values of the GST_PLUGIN_SYSTEM_PATH and GRL_PLUGIN_PATH environment variables are taken directly from the build environment (using 'getenv') and propagated unchanged into the created wrapper. What do you think? Look great!
Re: [PATCH 14/15] scripts: environment: Add --container option.
On Tue, Jul 7, 2015 at 10:35 AM, Ludovic Courtès l...@gnu.org wrote: David Thompson dthomps...@worcester.edu skribis: * guix/scripts/enviroment.scm (show-help): Show help for new option. (%options): Add --container option. (launch-environment, launch-environment/container): New procedures. (guix-environment): Spawn new process in a container when requested. * doc/guix.texi (Invoking guix environment): Document it. [...] --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4191,6 +4191,15 @@ NumPy: guix environment --ad-hoc python2-numpy python-2.7 -E python @end example +Sometimes it is desirable to isolate the environment as much as +possible, for maximal purity and reproducibility. + “In particular, when using Guix on a host distro that is not GuixSD, it is desirable to prevent access to @file{/usr/bin} and other system-wide resources from the development environment.” +following command spawns a Guile REPL in a ``container'' where only the +store and the current working directory are mounted: @cindex container +@item --container +@itemx -C +Run command within an isolated container. The current working directory @var{command} Since this works without root privileges, what about adding a test in tests/guix-environment.sh? Basically something similar to one of the existing tests, but additionally checking from within the container that ‘id -u’ returns 0, that ‘$$’ is 2, and that files outside of $PWD are not in the container. For some reason that I haven't figured out, the existing tests do not pass on my machine when I run: make check TESTS=tests/guix-environment.sh I'm finding it difficult to debug our tests because the test runner eats backtraces and other useful info. Which reminds me: In a separate commit, it Would Be Nice to document our minimal kernel requirements for the container functionality. Could you look into that? AFAIK the recommended minimal kernel version that folks should be using for this stuff is 3.13, and the kernel needs to be configured with that DEVPTS_MULTIPLE_INSTANCES flag. Where would you put this information? Thanks, - Dave
Re: [PATCH 11/15] gnu: system: Add Linux container module.
On Tue, Jul 7, 2015 at 9:55 AM, Ludovic Courtès l...@gnu.org wrote: David Thompson dthomps...@worcester.edu skribis: * gnu/system/linux-container.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system.scm: Export 'operating-system-etc-directory', 'operating-system-boot-script', 'operating-system-locale-directory', and 'file-union'. (operating-system-boot-script): Add #:container? keyword argument. (operating-system-activation-script): Add #:container? keyword argument. Don't call 'activate-firmware' or 'activate-ptrace-attach' when activating a container. [...] +(define* (operating-system-boot-script os #:key container?) Return the boot script for OS---i.e., the code started by the initrd once we're running in the final root. Augment the docstring with something like: When CONTAINER? is true, skip all hardware-related operations as necessary when booting a Linux container. +(define (system-container os) docstring +(define* (container-script os #:key (mappings '())) docstring OK with these changes! I made these changes and added a 'containerized-operating-system' procedure to the module that does something similar to 'virtualized-operating-system' in (gnu system vm), as discussed in the main thread. Updated patch attached. WDYT? - Dave - Dave From 7c41e765a91f6a4c50b692f6230d6e0e3e3b7099 Mon Sep 17 00:00:00 2001 From: David Thompson da...@gnu.org Date: Mon, 8 Jun 2015 08:59:00 -0400 Subject: [PATCH] gnu: system: Add Linux container module. * gnu/system/linux-container.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system.scm: Export 'operating-system-etc-directory', 'operating-system-boot-script', 'operating-system-locale-directory', and 'file-union'. (operating-system-boot-script): Add #:container? keyword argument. (operating-system-activation-script): Add #:container? keyword argument. Don't call 'activate-firmware' or 'activate-ptrace-attach' when activating a container. --- gnu-system.am | 1 + gnu/system.scm | 30 +++ gnu/system/linux-container.scm | 118 + 3 files changed, 139 insertions(+), 10 deletions(-) create mode 100644 gnu/system/linux-container.scm diff --git a/gnu-system.am b/gnu-system.am index d6369b5..83d04d8 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -346,6 +346,7 @@ GNU_SYSTEM_MODULES =\ gnu/system/grub.scm\ gnu/system/install.scm \ gnu/system/linux.scm\ + gnu/system/linux-container.scm \ gnu/system/linux-initrd.scm \ gnu/system/locale.scm\ gnu/system/nss.scm\ diff --git a/gnu/system.scm b/gnu/system.scm index efad145..3ec1a4c 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -82,6 +82,11 @@ operating-system-derivation operating-system-profile operating-system-grub.cfg +operating-system-etc-directory +operating-system-locale-directory +operating-system-boot-script + +file-union local-host-aliases %setuid-programs @@ -679,7 +684,7 @@ variable is not set---hence the need for this wrapper. (apply execl #$modprobe (cons #$modprobe (cdr (command-line -(define (operating-system-activation-script os) +(define* (operating-system-activation-script os #:key container?) Return the activation script for OS---i.e., the code that \activates\ the stateful part of OS, including user accounts and groups, special directories, etc. @@ -753,12 +758,15 @@ etc. ;; Tell the kernel to use our 'modprobe' command. (activate-modprobe #$modprobe) -;; Tell the kernel where firmware is. -(activate-firmware - (string-append #$firmware /lib/firmware)) - -;; Let users debug their own processes! -(activate-ptrace-attach) +;; Tell the kernel where firmware is, unless we are +;; activating a container. +#$@(if container? + #~() + ;; Tell the kernel where firmware is. + #~((activate-firmware + (string-append #$firmware /lib/firmware)) + ;; Let users debug their own processes! + (activate-ptrace-attach))) ;; Run the services' activation snippets. ;; TODO: Use 'load-compiled'. @@ -767,11 +775,13 @@ etc. ;; Set up /run/current-system. (activate-current-system) -(define (operating-system-boot-script os) +(define* (operating-system-boot-script os #:key container?) Return the boot script for OS---i.e., the code started by the initrd once -we're
Re: [PATCH 5/5] gnu: Add emacs-mmm-mode
Federico Beffa be...@ieee.org writes: On Thu, Jul 9, 2015 at 1:19 AM, Mark H Weaver m...@netris.org wrote: emacs-mmm-mode is failing to build on hydra, because the downloaded tarball doesn't match the expected hash: http://hydra.gnu.org/build/563640/nixlog/1/tail-reload --8---cut here---start-8--- starting download of `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' from `http://stable.melpa.org/packages/mmm-mode-0.5.4.tar'... http://stable.melpa.org/.../mmm-mode-0.5.4.tar0.0% of 300.0 KiB (0. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 21.3% of 300.0 KiB (405. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 42.7% of 300.0 KiB (372. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 64.0% of 300.0 KiB (439. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 85.3% of 300.0 KiB (411. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 100.0% of 300.0 KiB (419. KiB/s) output path `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' should have sha256 hash `1llkzb6d978ym3zv3yfzwj0w5zzmmj3ksrm5swrx1papxcnqnkb9', instead has `1kjc41nlsf7qxmmy9mrzk6myinjvc550zl5ia0ivvdz945x39yay' --8---cut here---end---8--- What went wrong here? That's not a good sign. I still have in the store the tar file with the hash indicated in the package and it builds fine. However, if I 'guix download ...' the file again I get a hash which is different from the one in the package and also from the one in the hydra log. I can imagine that melpa is building the tar file on the fly. Is guix taking the time stamp as an input to determine the hash? Guix is taking a hash of the complete contents of the downloaded file, i.e. all of the bytes inside the file. That, of course, includes timestamps from inside the tar file, but not any metadata of the file itself. Mark
Re: [PATCH 5/5] gnu: Add emacs-mmm-mode
On Thu, Jul 9, 2015 at 1:19 AM, Mark H Weaver m...@netris.org wrote: Alex Kost alez...@gmail.com writes: Ludovic Courtès (2015-07-04 18:16 +0300) wrote: Alex Kost alez...@gmail.com skribis: I think I've found a problem with downloading packages from melpa-stable (probably the same will be with 'melpa', but I don't know). I tried to build this 'emacs-mmm-mode' package but it failed because http://stable.melpa.org/packages/mmm-mode-0.5.2.tar does not exist anymore (because the current version is 0.5.4). If tarball deletion or renaming is common on MELPA, then maybe we could address it by providing an additional alternate URL, as is done for ‘lftp’ and other packages. WDYT? If I understand correctly, there is no alternative URL. Only URL for a latest version. (but I may be wrong) emacs-mmm-mode is failing to build on hydra, because the downloaded tarball doesn't match the expected hash: http://hydra.gnu.org/build/563640/nixlog/1/tail-reload --8---cut here---start-8--- starting download of `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' from `http://stable.melpa.org/packages/mmm-mode-0.5.4.tar'... http://stable.melpa.org/.../mmm-mode-0.5.4.tar0.0% of 300.0 KiB (0. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 21.3% of 300.0 KiB (405. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 42.7% of 300.0 KiB (372. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 64.0% of 300.0 KiB (439. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 85.3% of 300.0 KiB (411. KiB/s) http://stable.melpa.org/.../mmm-mode-0.5.4.tar 100.0% of 300.0 KiB (419. KiB/s) output path `/gnu/store/gdwf9rsqvvqqb77qkgpp94w8k8z1i6wf-mmm-mode-0.5.4.tar' should have sha256 hash `1llkzb6d978ym3zv3yfzwj0w5zzmmj3ksrm5swrx1papxcnqnkb9', instead has `1kjc41nlsf7qxmmy9mrzk6myinjvc550zl5ia0ivvdz945x39yay' --8---cut here---end---8--- What went wrong here? That's not a good sign. I still have in the store the tar file with the hash indicated in the package and it builds fine. However, if I 'guix download ...' the file again I get a hash which is different from the one in the package and also from the one in the hydra log. I can imagine that melpa is building the tar file on the fly. Is guix taking the time stamp as an input to determine the hash? Fede
Re: [PATCH 3/5] build: Add 'emacs-build-system'
On Thu, Jul 9, 2015 at 10:51 AM, Alex Kost alez...@gmail.com wrote: Federico Beffa (2015-07-08 23:22 +0300) wrote: On Tue, Jul 7, 2015 at 6:58 PM, Alex Kost alez...@gmail.com wrote: A side note: I think generally it would be preferable to use an upstream release in the package recipe rather than to use a melpa(-stable) URL, i.e.: http://foo-upstream.org/foo-0.1.tar.gz instead of http://stable.melpa.org/packages/foo-0.1.tar I believe that such information is not available from ELPA archives. Therefore the ELPA importer has no way to do this. But, obviously, manual modification is possible. (By the way, the tar files are similar but not identical.) Surely, I didn't mean that it's a task for the elpa importer. I'm totally for the manual modification to use an upstream release, not the melpa(-stable) one. By the tar files are similar do you mean that MELPA usually leaves only elisp files in the tarballs? I think since it's a common practice to put elisp files in the root directory of the repo, we should add a phase to the emacs build system to remove non-elisp files (like .gitignore or README) from the final /gnu/store/…-foo-0.1/share/emacs/site-lisp/guix.d/foo-0.1/ directory. One difference that I noticed in the tar files is that tar coming from elpa archives always include the .info file, while the upstream ones do not always do so. I've not investigated further differences. While often the READMEs are not very usefull, sometimes they are. Therefore I do not like the idea of removing them, nor anything else provided by the package. It's upstream who should decide what's relevant. With the use of 'guix.d' there will be no name clashes. Did you happen to see the following thread? https://lists.gnu.org/archive/html/guix-devel/2015-06/msg00392.html Fede
Re: 01/01: gnu: boost: Update to 1.58.0.
On Thu, Jul 09, 2015 at 06:00:39PM -0400, Mark H Weaver wrote: Boost turns out to be an important package. The fallout from this is 412 newly failed builds on mips64el: http://hydra.gnu.org/eval/105333#tabs-now-fail I do not quite understand this number, it should be 65 according to the first link. But anyway, it is an important package. I noticed the problem this morning when looking at hydra, and did a quick check, by grepping for -m32. It appears in boost_1_58_0/tools/build/src/tools/gcc.jam: rule setup-address-model ( targets * : sources * : properties * ) { local model = [ feature.get-values address-model : $(properties) ] ; if $(model) { local option ; local os = [ feature.get-values target-os : $(properties) ] ; if $(os) = aix ... else if $(os) = hpux ... else { local arch = [ feature.get-values architecture : $(properties) ] ; if $(arch) != arm { if $(model) = 32 { option = -m32 ; } else if $(model) = 64 { option = -m64 ; } } # For darwin, the model can be 32_64. darwin.jam will handle that # on its own. } OPTIONS on $(targets) += $(option) ; } } So it might be enough to exclude mips (or something starting with mips) at the same time as arm. On the other hand, I just checked that the same expressions were already there in 1.57, so this cannot be the problem. And on yet another hand, I made a recursive diff of boost 1.57 and 1.58 and grepped for '\-m32', without success. So the change must be more subtle. The build log for 1.58 contains the following: starting phase `build' Performing configuration checks - 32-bit : yes - arm : no - mips1: no - power: no - sparc: no - x86 : no - combined : no Building the Boost C++ Libraries. - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add using mpi ; to your user-config.jam - zlib : no - iconv (libc) : no - iconv (separate) : no - icu : no - icu (lib64) : no - Boost.Locale needs either iconv or ICU library to be built. - Boost.Locale needs either iconv or ICU library to be built. - Boost.Locale needs either iconv or ICU library to be built. - Boost.Locale needs either iconv or ICU library to be built. - Boost.Locale needs either iconv or ICU library to be built. - Boost.Locale needs either iconv or ICU library to be built. - x86 : no - arm : no - mips1: no - power: no - sparc: no - lockfree boost::atomic_flag : no - gcc visibility : no - long double support : no For the last (working) build of boost 1.57, the corresponding passage was: starting phase `build' Building the Boost C++ Libraries. Performing configuration checks - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add using mpi ; to your user-config.jam - zlib : yes - iconv (libc) : yes - icu : no - icu (lib64) : no - x86 : no - arm : no - mips1: no - power: no - sparc: no - lockfree boost::atomic_flag : yes - gcc visibility : yes - long double support : yes The new line 32-bit: yes looks suspicious. Strangely enough, it was already present in boost 1.57 for i686, and similar lines (32-bit: no 64-bit: yes) for x86_64. So I think that the logic for checking for 32 bits changed. When I try to build by hand (with the toolchain from debian jessie, not guix) on my mips machine, the first few lines are Performing configuration checks - 32-bit : yes - arm : no - mips1: yes Building the Boost C++ Libraries. This is already different; on hydra, the mips architecture is apparently not recognised. But I also get the additional -m32 flag and the subsequent build failure. I tried to replace in the above file gcc.jam the line if $(arch) != arm by if $(arch) = x86 The build starts and compiles a few files without problem. I need to stop now, but can make more thorough tests tomorrow, unless you feel like giving the attached patch a try on mips and x86, which could be helpful: The last time I updated my guix on mips was before
Re: 01/01: gnu: boost: Update to 1.58.0.
Mark H Weaver m...@netris.org writes: Andreas Enge andr...@enge.fr writes: commit 16de69c950c473cc3d386cd7569bd1d6051614b6 Author: Andreas Enge andr...@enge.fr Date: Wed Jul 8 23:18:40 2015 +0200 gnu: boost: Update to 1.58.0. * gnu/packages/boost.scm (boost): Update to 1.58.0. This fails to build on mips64el, where boost-1.57.0 worked. http://hydra.gnu.org/build/563826 It appears to be because of the -m32 compiler option, which is Intel specific. Can you take a look? Boost turns out to be an important package. The fallout from this is 412 newly failed builds on mips64el: http://hydra.gnu.org/eval/105333#tabs-now-fail http://hydra.gnu.org/eval/105355?compare=105351#tabs-now-fail If we can't fix this soon, I think we should revert the boost update. What do you think? Mark