From 936715c9f491ddbb943f4665cca1e7ec3c84ac22 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 21 May 2015 14:30:43 -0400 Subject: [PATCH 1/8] gnu: gnutls: Update to 3.4.1. * gnu/packages/patches/gnutls-fix-duplicate-manpages.patch: Remove file. * gnu-system.am (dist_patch_DATA): Remove it. * gnu/packages/gnutls.scm (gnutls): Update to 3.4.1. Remove patch. --- gnu-system.am | 1 - gnu/packages/gnutls.scm | 6 ++-- .../gnutls-fix-duplicate-manpages.patch | 30 ------------------- 3 files changed, 2 insertions(+), 35 deletions(-) delete mode 100644 gnu/packages/patches/gnutls-fix-duplicate-manpages.patch diff --git a/gnu-system.am b/gnu-system.am index 23113bb16c..a79495480a 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -439,7 +439,6 @@ 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/gnutls-fix-duplicate-manpages.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/gnutls.scm b/gnu/packages/gnutls.scm index c549ff3410..4ed339a09b 100644 --- a/gnu/packages/gnutls.scm +++ b/gnu/packages/gnutls.scm @@ -104,7 +104,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.4.0") + (version "3.4.1") (source (origin (method url-fetch) (uri @@ -115,9 +115,7 @@ living in the same process.") "/gnutls-" version ".tar.xz")) (sha256 (base32 - "0bj7ydvsyvml59b6040wg7694iz37rwnqnv09bic9ddz652588ml")) - (patches - (list (search-patch "gnutls-fix-duplicate-manpages.patch"))))) + "0bmih0zyiplr4v8798w0v9g3215zmganq18n8935cizkxj5zbdg9")))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/patches/gnutls-fix-duplicate-manpages.patch b/gnu/packages/patches/gnutls-fix-duplicate-manpages.patch deleted file mode 100644 index 95a25560e5..0000000000 --- a/gnu/packages/patches/gnutls-fix-duplicate-manpages.patch +++ /dev/null @@ -1,30 +0,0 @@ -Remove duplicate manpage entries from Makefile. - ---- gnutls-3.4.0/doc/manpages/Makefile.am.orig 2015-04-06 04:48:30.000000000 -0400 -+++ gnutls-3.4.0/doc/manpages/Makefile.am 2015-04-12 16:52:58.029694525 -0400 -@@ -134,11 +134,8 @@ - APIMANS += gnutls_certificate_get_peers_subkey_id.3 - APIMANS += gnutls_certificate_get_trust_list.3 - APIMANS += gnutls_certificate_get_verify_flags.3 --APIMANS += gnutls_certificate_get_verify_flags.3 --APIMANS += gnutls_certificate_get_x509_crt.3 - APIMANS += gnutls_certificate_get_x509_crt.3 - APIMANS += gnutls_certificate_get_x509_key.3 --APIMANS += gnutls_certificate_get_x509_key.3 - APIMANS += gnutls_certificate_send_x509_rdn_sequence.3 - APIMANS += gnutls_certificate_server_set_request.3 - APIMANS += gnutls_certificate_set_dh_params.3 ---- gnutls-3.4.0/doc/manpages/Makefile.in.orig 2015-04-08 02:08:30.000000000 -0400 -+++ gnutls-3.4.0/doc/manpages/Makefile.in 2015-04-12 16:53:13.319694530 -0400 -@@ -1275,11 +1275,8 @@ - gnutls_certificate_get_peers_subkey_id.3 \ - gnutls_certificate_get_trust_list.3 \ - gnutls_certificate_get_verify_flags.3 \ -- gnutls_certificate_get_verify_flags.3 \ -- gnutls_certificate_get_x509_crt.3 \ - gnutls_certificate_get_x509_crt.3 \ - gnutls_certificate_get_x509_key.3 \ -- gnutls_certificate_get_x509_key.3 \ - gnutls_certificate_send_x509_rdn_sequence.3 \ - gnutls_certificate_server_set_request.3 \ - gnutls_certificate_set_dh_params.3 \ From ba3bcec9d6913dd34e5f3f93b1953b81ca571200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 23 May 2015 12:42:20 +0200 Subject: [PATCH 2/8] doc: Change "GSD" to "GuixSD". * doc/emacs.texi (Emacs Initial Setup): Change "GSD" to "GuixSD". --- doc/emacs.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/emacs.texi b/doc/emacs.texi index 93d0c86b42..e1d14a4c4a 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -29,7 +29,7 @@ is ready to use, provided Guix is installed system-wide, which is the case by default. So if that is what you're using, you can happily skip this section and read about the fun stuff. -If you're not yet a happy user of GSD, a little bit of setup is needed. +If you're not yet a happy user of GuixSD, a little bit of setup is needed. To be able to use ``guix.el'', you need to install the following packages: From 92492b23838f77decfc63810b56add0af6805feb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 23 May 2015 15:51:06 +0200 Subject: [PATCH 3/8] doc: Update detailed node list. * doc/guix.texi (Top): Add "package Reference" and "origin Reference" in detailed node list. --- doc/guix.texi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 9bd9c581ce..1d882afeca 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -114,6 +114,11 @@ Programming Interface * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. +Defining Packages + +* package Reference:: The package data type. +* origin Reference:: The origin data type. + Utilities * Invoking guix build:: Building packages from the command line. From c71979f416df409425391e1de35ec95528ed0f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 23 May 2015 15:55:08 +0200 Subject: [PATCH 4/8] doc: Add "Running Guix Before It Is Installed". * doc/guix.texi (Running Guix Before It Is Installed): New node. (Packaging Guidelines): Refer to it. --- HACKING | 14 ++------------ doc/guix.texi | 43 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/HACKING b/HACKING index e8f6cc4208..cf10ba5536 100644 --- a/HACKING +++ b/HACKING @@ -2,7 +2,7 @@ #+TITLE: Hacking GNU Guix and Its Incredible Distro -Copyright © 2012, 2013, 2014 Ludovic Courtès +Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès Copyright © 2013 Nikita Karetnikov Copyright © 2014 Pierre-Antoine Rault @@ -46,17 +46,7 @@ take a look at “info '(guix) Installation'” or send a message to * Running Guix before it is installed -Command-line tools can be used even if you have not run "make install". -To do that, prefix each command with ‘./pre-inst-env’, as in: - - ./pre-inst-env guix build --help - -Similarly, for a Guile session using the Guix modules: - - ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' - -The ‘pre-inst-env’ script sets up all the environment variables -necessary to support this. +See the same-named section in the manual. * The Perfect Setup diff --git a/doc/guix.texi b/doc/guix.texi index 1d882afeca..cfb626c705 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -88,6 +88,7 @@ Installation * Running the Test Suite:: Testing Guix. * Setting Up the Daemon:: Preparing the build daemon's environment. * Invoking guix-daemon:: Running the build daemon. +* Running Guix Before It Is Installed:: Hacker tricks. Setting Up the Daemon @@ -252,6 +253,7 @@ instead, you want to install the complete GNU operating system, * Running the Test Suite:: Testing Guix. * Setting Up the Daemon:: Preparing the build daemon's environment. * Invoking guix-daemon:: Running the build daemon. +* Running Guix Before It Is Installed:: Hacker tricks. @end menu @node Binary Installation @@ -830,6 +832,44 @@ useful in exceptional circumstances, such as if you need to run several daemons on the same machine. @end table +@node Running Guix Before It Is Installed +@section Running Guix Before It Is Installed + +If you are hacking Guix itself---which is a good idea!---you will find +it useful to test the changes made in your local source tree checkout +without actually installing them. + +To that end, all the command-line tools can be used even if you have not +run @command{make install}. To do that, prefix each command with +@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the +top build tree of Guix), as in: + +@example +$ sudo ./pre-inst-env guix-daemon --build-users-group=guixbuild +$ ./pre-inst-env guix build hello +@end example + +@noindent +Similarly, for a Guile session using the Guix modules: + +@example +$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' +@end example + +The @command{pre-inst-env} script sets up all the environment variables +necessary to support this, including @code{PATH} and +@code{GUILE_LOAD_PATH}. + +If you are hacking Guix from Emacs using the wonderful Geiser +(@pxref{Introduction,,, geiser, Geiser User Manual}), make sure to +augment Guile's load path so that it finds source files from your +checkout: + +@lisp +;; Assuming the Guix checkout is in ~/src/guix. +(add-to-list 'geiser-guile-load-path "~/src/guix") +@end lisp + @c ********************************************************************* @node Package Management @@ -6215,7 +6255,8 @@ creating packages. For more information on package definitions, Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is -called @code{gnew}, you may run this command from the Guix build tree: +called @code{gnew}, you may run this command from the Guix build tree +(@pxref{Running Guix Before It Is Installed}): @example ./pre-inst-env guix build gnew --keep-failed From 2e88d113aac31dbea0b998fca92b35dbfc998872 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sat, 23 May 2015 16:43:18 +0200 Subject: [PATCH 5/8] gnu: dbus-glib: Propagate inputs dbus and glib. * gnu/packages/glib.scm (dbus-glib): Propagate inputs dbus and glib. * gnu/packages/audio.scm (patchage), gnu/packages/gnuzilla.scm (icecat), gnu/packages/python.scm (python-dbus): Drop inputs dbus and glib. * gnu/packages/gnome.scm (colord, gconf, gnome-vfs, upower), gnu/packages/mail.scm (claws-mail), gnu/packages/messaging.scm (hexchat), gnu/packages/wicd.scm (wicd): Drop input dbus. --- gnu/packages/audio.scm | 2 -- gnu/packages/glib.scm | 5 +++-- gnu/packages/gnome.scm | 6 +----- gnu/packages/gnuzilla.scm | 2 -- gnu/packages/mail.scm | 2 +- gnu/packages/messaging.scm | 1 + gnu/packages/python.scm | 4 +--- gnu/packages/wicd.scm | 4 ++-- 8 files changed, 9 insertions(+), 17 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index e607d1a9a0..fdc783a455 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -991,10 +991,8 @@ buffers, and audio capture.") ("boost" ,boost) ("jack" ,jack-1) ("ganv" ,ganv) - ("glib" ,glib) ("glibmm" ,glibmm) ("gtkmm" ,gtkmm-2) - ("dbus" ,dbus) ("dbus-glib" ,dbus-glib))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 1d43895f5c..305c89c022 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -353,10 +353,11 @@ translated.") (base32 "1xi1v1msz75qs0s4lkyf1psrksdppa3hwkg0mznc6gpw5flg3hdz")))) (build-system gnu-build-system) - (inputs + (propagated-inputs ; according to dbus-glib-1.pc `(("dbus" ,dbus) - ("expat" ,expat) ("glib" ,glib))) + (inputs + `(("expat" ,expat))) (native-inputs `(("glib" ,glib "bin") ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 970df5ef20..de40420651 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -823,8 +823,7 @@ use in GNOME applications, built on top of CORBA.") (sha256 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr")))) (build-system gnu-build-system) - (inputs `(("dbus" ,dbus) - ("dbus-glib" ,dbus-glib) + (inputs `(("dbus-glib" ,dbus-glib) ("libxml2" ,libxml2))) (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file ("orbit2" ,orbit2))) @@ -893,7 +892,6 @@ designed to be accessed through the MIME functions in GnomeVFS.") %standard-phases)))) (inputs `(("libxml2" ,libxml2) ("dbus-glib" ,dbus-glib) - ("dbus" ,dbus) ("gconf" ,gconf) ("gnome-mime-data" ,gnome-mime-data) ("zlib" ,zlib))) @@ -1935,7 +1933,6 @@ keyboard shortcuts.") ("intltool" ,intltool))) (inputs `(("eudev" ,eudev) - ("dbus" ,dbus) ("dbus-glib" ,dbus-glib) ("libusb" ,libusb) ("lcms" ,lcms) @@ -2069,7 +2066,6 @@ faster results and to avoid unnecessary server load.") ("python" ,python))) (inputs `(("eudev" ,eudev) - ("dbus" ,dbus) ("dbus-glib" ,dbus-glib) ("libusb" ,libusb))) (home-page "http://upower.freedesktop.org/") diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 4410c5bc43..20930c302a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -245,9 +245,7 @@ standards.") `(("alsa-lib" ,alsa-lib) ("bzip2" ,bzip2) ("cairo" ,cairo) - ("dbus" ,dbus) ("dbus-glib" ,dbus-glib) - ("glib" ,glib) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+-2) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index f9eb5a7453..70b0b0298d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -493,7 +494,6 @@ MailCore 2.") (inputs `(("bogofilter" ,bogofilter) ("curl" ,curl) ("dbus-glib" ,dbus-glib) - ("dbus" ,dbus) ("enchant" ,enchant) ("expat" ,expat) ("ghostscript" ,ghostscript) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 99c5bdb0ff..50d59cfcc5 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Julien Lepiller ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2015 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9da91111f6..9b4f6b6787 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3274,9 +3274,7 @@ features useful for text console applications.") `(("pkg-config" ,pkg-config))) (inputs `(("python" ,python) - ("dbus" ,dbus) - ("dbus-glib" ,dbus-glib) - ("glib" ,glib))) + ("dbus-glib" ,dbus-glib))) (synopsis "Python bindings for D-bus") (description "python-dbus provides bindings for libdbus, the reference implementation of D-Bus.") diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm index 779ec84e3c..908b15e30b 100644 --- a/gnu/packages/wicd.scm +++ b/gnu/packages/wicd.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Pierre-Antoine Rault +;;; Copyright © 2015 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,8 +50,7 @@ "wicd-template-instantiation.patch"))))) (build-system python-build-system) (native-inputs `(("gettext" ,gnu-gettext))) - (inputs `(("dbus" ,dbus) - ("dbus-glib" ,dbus-glib) + (inputs `(("dbus-glib" ,dbus-glib) ("python2-dbus" ,python2-dbus) ("python2-pygtk" ,python2-pygtk) ("python2-urwid" ,python2-urwid) From 53142109a06155980397514795d9a36afb418f54 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sat, 23 May 2015 20:39:57 +0200 Subject: [PATCH 6/8] gnu: bluez: Install the library and header files. * gnu/packages/linux.scm (bluez)[arguments]: Add --enable-library to #:configure-flags. --- gnu/packages/linux.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 26e9aa9000..62a19f5332 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès -;;; Copyright © 2013, 2014 Andreas Enge +;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Federico Beffa @@ -308,7 +308,7 @@ It has been modified to remove all non-free binary blobs.") (license gpl2) (home-page "http://www.gnu.org/software/linux-libre/")))) - + ;;; ;;; Pluggable authentication modules (PAM). ;;; @@ -354,7 +354,7 @@ be used through the PAM API to perform tasks, like authenticating a user at login. Local and dynamic reconfiguration are its key features") (license bsd-3))) - + ;;; ;;; Miscellaneous. ;;; @@ -1582,7 +1582,7 @@ from the module-init-tools project.") ;; Work around undefined reference to ;; 'mq_getattr' in sc-daemon.c. "LDFLAGS=-lrt") - #:phases + #:phases (alist-cons-before 'build 'pre-build ;; The program 'g-ir-scanner' (part of the package @@ -2203,7 +2203,8 @@ applications.") (arguments '(#:configure-flags (let ((out (assoc-ref %outputs "out"))) - (list "--disable-systemd" + (list "--enable-library" + "--disable-systemd" ;; Install dbus/udev files to the correct location. (string-append "--with-dbusconfdir=" out "/etc") (string-append "--with-udevdir=" out "/lib/udev"))))) From 40245ef316d0a37721b2c79620e83e750368eef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 23 May 2015 16:52:17 +0200 Subject: [PATCH 7/8] gnu: linux-boot: Remove outdated and misleading comment. * gnu/build/linux-boot.scm (boot-system): Remove outdated comment. --- gnu/build/linux-boot.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index f54e3d3a35..3081a93a97 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -418,7 +418,6 @@ to it are lost." (switch-root "/root") (format #t "loading '~a'...\n" to-load) - ;; TODO: Remove /lib, /share, and /loader.go. (primitive-load to-load) (format (current-error-port) From 4a35a866be51361b80a5618e422d135959960c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 23 May 2015 16:52:17 +0200 Subject: [PATCH 8/8] guix system: init: Make sure the target is root-owned. Suggested by Mark H Weaver . * guix/scripts/system.scm (install): Add 'chown' and 'chmod' calls for TARGET when running as root, and warn otherwise. --- guix/scripts/system.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 8d5fbe5a78..1feb821389 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -145,6 +145,16 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG." ;; Copy items to the new store. (copy-closure to-copy target #:log-port log-port))))) + ;; Make sure TARGET is root-owned when running as root, but still allow + ;; non-root uses (useful for testing.) See + ;; . + (if (zero? (geteuid)) + (chown target 0 0) + (warning (_ "not running as 'root', so \ +the ownership of '~a' may be incorrect!~%") + target)) + + (chmod target #o755) (let ((os-dir (derivation->output-path os-drv)) (format (lift format %store-monad)) (populate (lift2 populate-root-file-system %store-monad)))