From 6ea80938aedd3ec4d7f5d7fd80b7da9b1993c577 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 2 Apr 2016 21:07:09 +0300 Subject: emacs: Factorize code for buffer names. * emacs/guix-ui.el (guix-ui-buffer-name-default): Extract the code to compose buffer name and move to... * emacs/guix-utils.el (guix-compose-buffer-name): ... here. New procedure. --- emacs/guix-ui.el | 22 +++------------------- emacs/guix-utils.el | 28 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 20 deletions(-) (limited to 'emacs') diff --git a/emacs/guix-ui.el b/emacs/guix-ui.el index 9a88efc286..47773de91f 100644 --- a/emacs/guix-ui.el +++ b/emacs/guix-ui.el @@ -1,6 +1,6 @@ ;;; guix-ui.el --- Common code for Guix package management interface -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -117,26 +117,10 @@ The function is called with 2 arguments: BASE-NAME and PROFILE." "Return BASE-NAME." base-name) -;; TODO separate '*...*' logic from the real profile appending. Also add -;; another function to return '*Guix ...: /full/path/to/profile*' name. (defun guix-ui-buffer-name-default (base-name profile) "Return buffer name by appending BASE-NAME and PROFILE's base file name." - (let ((profile-name (file-name-base (directory-file-name profile))) - (re (rx string-start - (group (? "*")) - (group (*? any)) - (group (? "*")) - string-end))) - (or (string-match re base-name) - (error "Unexpected error in defining guix buffer name")) - (let ((first* (match-string 1 base-name)) - (name-body (match-string 2 base-name)) - (last* (match-string 3 base-name))) - ;; Handle the case when buffer name is wrapped by '*'. - (if (and (string= "*" first*) - (string= "*" last*)) - (concat "*" name-body ": " profile-name "*") - (concat base-name ": " profile-name))))) + (guix-compose-buffer-name base-name + (file-name-base (directory-file-name profile)))) (defun guix-ui-buffer-name (base-name profile) "Return Guix buffer name based on BASE-NAME and profile. diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el index 8c1a5b42de..ea9933f5c3 100644 --- a/emacs/guix-utils.el +++ b/emacs/guix-utils.el @@ -1,6 +1,6 @@ ;;; guix-utils.el --- General utility functions -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -223,6 +223,32 @@ If NO-MESSAGE? is non-nil, do not display a message about it." See also `guix-copy-as-kill'." (guix-copy-as-kill (guix-command-string args) no-message?)) +(defun guix-compose-buffer-name (base-name postfix) + "Return buffer name by appending BASE-NAME and POSTFIX. + +In a simple case the result is: + + BASE-NAME: POSTFIX + +If BASE-NAME is wrapped by '*', then the result is: + + *BASE-NAME: POSTFIX*" + (let ((re (rx string-start + (group (? "*")) + (group (*? any)) + (group (? "*")) + string-end))) + (or (string-match re base-name) + (error "Unexpected error in defining buffer name")) + (let ((first* (match-string 1 base-name)) + (name-body (match-string 2 base-name)) + (last* (match-string 3 base-name))) + ;; Handle the case when buffer name is wrapped by '*'. + (if (and (string= "*" first*) + (string= "*" last*)) + (concat "*" name-body ": " postfix "*") + (concat base-name ": " postfix))))) + (defun guix-completing-read (prompt table &optional predicate require-match initial-input hist def inherit-input-method) -- cgit 1.4.1 From 117195c28d945e27ce47b0f52821e61284abb1d0 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 2 Apr 2016 21:19:13 +0300 Subject: emacs: Use full profile name in Guix buffer names. * emacs/guix-ui.el (guix-ui-buffer-name-default): Rename to... (guix-ui-buffer-name-short): ... this. (guix-ui-buffer-name-full): New procedure. (guix-ui-buffer-name-function): Set it as default. --- emacs/guix-ui.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'emacs') diff --git a/emacs/guix-ui.el b/emacs/guix-ui.el index 47773de91f..1b696314cd 100644 --- a/emacs/guix-ui.el +++ b/emacs/guix-ui.el @@ -105,10 +105,11 @@ If `all', update all Guix buffers (not recommended)." :group 'guix-ui) (defcustom guix-ui-buffer-name-function - #'guix-ui-buffer-name-default + #'guix-ui-buffer-name-full "Function used to define a name of a Guix buffer. The function is called with 2 arguments: BASE-NAME and PROFILE." - :type '(choice (function-item guix-ui-buffer-name-default) + :type '(choice (function-item guix-ui-buffer-name-full) + (function-item guix-ui-buffer-name-short) (function-item guix-ui-buffer-name-simple) (function :tag "Other function")) :group 'guix-ui) @@ -117,11 +118,15 @@ The function is called with 2 arguments: BASE-NAME and PROFILE." "Return BASE-NAME." base-name) -(defun guix-ui-buffer-name-default (base-name profile) +(defun guix-ui-buffer-name-short (base-name profile) "Return buffer name by appending BASE-NAME and PROFILE's base file name." (guix-compose-buffer-name base-name (file-name-base (directory-file-name profile)))) +(defun guix-ui-buffer-name-full (base-name profile) + "Return buffer name by appending BASE-NAME and PROFILE's full name." + (guix-compose-buffer-name base-name profile)) + (defun guix-ui-buffer-name (base-name profile) "Return Guix buffer name based on BASE-NAME and profile. See `guix-ui-buffer-name-function' for details." -- cgit 1.4.1 From b4ea535a9f0382f3575fdeb3b2eb1cc7cfc37cd4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 1 Apr 2016 00:07:33 +0300 Subject: emacs: Add 'guix-packages-by-location' command. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * emacs/guix-main.scm (packages-by-location-file, package-location-files): New procedures. (%patterns-makers): Add 'location' search type. * emacs/guix-messages.el (guix-message-packages-by-location): New procedure. (guix-messages): Use it. * emacs/guix-read.el (guix-package-locations) (guix-read-package-location): New procedures. * emacs/guix-ui-package.el (guix-packages-by-location): New command. * doc/emacs.texi (Emacs Commands): Document it. Co-authored-by: Ludovic Courtès --- doc/emacs.texi | 5 +++++ emacs/guix-main.scm | 30 ++++++++++++++++++++++++++++++ emacs/guix-messages.el | 15 +++++++++++++++ emacs/guix-read.el | 11 +++++++++++ emacs/guix-ui-package.el | 12 +++++++++++- 5 files changed, 72 insertions(+), 1 deletion(-) (limited to 'emacs') diff --git a/doc/emacs.texi b/doc/emacs.texi index c4fdfff272..3916aa62a7 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -160,6 +160,11 @@ Display package(s) with the specified name. @item M-x guix-packages-by-license Display package(s) with the specified license. +@item M-x guix-packages-by-location +Display package(s) located in the specified file. These files usually +have the following form: @file{gnu/packages/emacs.scm}, but don't type +them manually! Press @key{TAB} to complete the file name. + @item M-x guix-search-by-regexp Search for packages by a specified regexp. By default ``name'', ``synopsis'' and ``description'' of the packages will be searched. This diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index c62044056f..4780cced96 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -684,6 +684,8 @@ ENTRIES is a list of installed manifest entries." (license-proc (lambda (_ license-name) (packages-by-license (lookup-license license-name)))) + (location-proc (lambda (_ location) + (packages-by-location-file location))) (all-proc (lambda _ (all-available-packages))) (newest-proc (lambda _ (newest-available-packages)))) `((package @@ -693,6 +695,7 @@ ENTRIES is a list of installed manifest entries." (obsolete . ,(apply-to-first obsolete-package-patterns)) (regexp . ,regexp-proc) (license . ,license-proc) + (location . ,location-proc) (all-available . ,all-proc) (newest-available . ,newest-proc)) (output @@ -702,6 +705,7 @@ ENTRIES is a list of installed manifest entries." (obsolete . ,(apply-to-first obsolete-output-patterns)) (regexp . ,regexp-proc) (license . ,license-proc) + (location . ,location-proc) (all-available . ,all-proc) (newest-available . ,newest-proc))))) @@ -1097,3 +1101,29 @@ Return #t if the shell command was executed successfully." (define (license-entries search-type . search-values) (map license->sexp (apply find-licenses search-type search-values))) + + +;;; Package locations + +(define-values (packages-by-location-file + package-location-files) + (let* ((table (delay (fold-packages + (lambda (package table) + (let ((file (location-file + (package-location package)))) + (vhash-cons file package table))) + vlist-null))) + (files (delay (vhash-fold + (lambda (file _ result) + (if (member file result) + result + (cons file result))) + '() + (force table))))) + (values + (lambda (file) + "Return the (possibly empty) list of packages defined in location FILE." + (vhash-fold* cons '() file (force table))) + (lambda () + "Return the list of file names of all package locations." + (force files))))) diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index de0331fff8..7ebe7e8b5c 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -40,6 +40,10 @@ ,(lambda (_ entries licenses) (apply #'guix-message-packages-by-license entries 'package licenses))) + (location + ,(lambda (_ entries locations) + (apply #'guix-message-packages-by-location + entries 'package locations))) (regexp (0 "No packages matching '%s'." val) (1 "A single package matching '%s'." val) @@ -72,6 +76,10 @@ ,(lambda (_ entries licenses) (apply #'guix-message-packages-by-license entries 'output licenses))) + (location + ,(lambda (_ entries locations) + (apply #'guix-message-packages-by-location + entries 'output locations))) (regexp (0 "No package outputs matching '%s'." val) (1 "A single package output matching '%s'." val) @@ -174,6 +182,13 @@ Try \"M-x guix-search-by-name\"." (str-end (format "with license '%s'" license))) (message "%s %s." str-beg str-end))) +(defun guix-message-packages-by-location (entries entry-type location) + "Display a message for packages or outputs searched by LOCATION." + (let* ((count (length entries)) + (str-beg (guix-message-string-entries count entry-type)) + (str-end (format "placed in '%s'" location))) + (message "%s %s." str-beg str-end))) + (defun guix-message-generations-by-time (profile entries times) "Display a message for generations searched by TIMES." (let* ((count (length entries)) diff --git a/emacs/guix-read.el b/emacs/guix-read.el index a1a6b86364..5423c9bcfa 100644 --- a/emacs/guix-read.el +++ b/emacs/guix-read.el @@ -62,6 +62,12 @@ "Return a list of names of available licenses." (guix-eval-read (guix-make-guile-expression 'license-names))) +(guix-memoized-defun guix-package-locations () + "Return a list of available package locations." + (sort (guix-eval-read (guix-make-guile-expression + 'package-location-files)) + #'string<)) + ;;; Readers @@ -131,6 +137,11 @@ :single-reader guix-read-license-name :single-prompt "License: ") +(guix-define-readers + :completions-getter guix-package-locations + :single-reader guix-read-package-location + :single-prompt "Location: ") + (provide 'guix-read) ;;; guix-read.el ends here diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index df5f8d12d1..07bbd973e7 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -1,6 +1,6 @@ ;;; guix-ui-package.el --- Interface for displaying packages -*- lexical-binding: t -*- -;; Copyright © 2014, 2015 Alex Kost +;; Copyright © 2014, 2015, 2016 Alex Kost ;; This file is part of GNU Guix. @@ -969,6 +969,16 @@ Interactively with prefix, prompt for PROFILE." (guix-ui-read-profile))) (guix-package-get-display profile 'license license)) +;;;###autoload +(defun guix-packages-by-location (location &optional profile) + "Display Guix packages placed in LOCATION file. +If PROFILE is nil, use `guix-current-profile'. +Interactively with prefix, prompt for PROFILE." + (interactive + (list (guix-read-package-location) + (guix-ui-read-profile))) + (guix-package-get-display profile 'location location)) + ;;;###autoload (defun guix-search-by-regexp (regexp &optional params profile) "Search for Guix packages by REGEXP. -- cgit 1.4.1 From 79c7a8f214707c98c1ea1936fd62baec41177a81 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 1 Apr 2016 14:00:01 +0300 Subject: emacs: Separate package location code. * emacs/guix-base.el (guix-directory, guix-read-directory) (guix-set-directory): Move to "guix-backend.el". (guix-find-location, guix-package-location, guix-edit): Move to... * emacs/guix-location.el: ... here. New file. * emacs/guix-ui-package.el: Use it. * emacs.am (ELFILES): Add it. --- emacs.am | 1 + emacs/guix-backend.el | 24 +++++++++++++++- emacs/guix-base.el | 62 +---------------------------------------- emacs/guix-location.el | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ emacs/guix-ui-package.el | 1 + 5 files changed, 98 insertions(+), 62 deletions(-) create mode 100644 emacs/guix-location.el (limited to 'emacs') diff --git a/emacs.am b/emacs.am index 1897e2e956..c0d294de9d 100644 --- a/emacs.am +++ b/emacs.am @@ -40,6 +40,7 @@ ELFILES = \ emacs/guix-init.el \ emacs/guix-license.el \ emacs/guix-list.el \ + emacs/guix-location.el \ emacs/guix-messages.el \ emacs/guix-pcomplete.el \ emacs/guix-popup.el \ diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el index 8afbc9ed48..6341aacae1 100644 --- a/emacs/guix-backend.el +++ b/emacs/guix-backend.el @@ -82,7 +82,7 @@ If you have a slow system, try to increase this time." :type 'string :group 'guix-repl) -(defcustom guix-after-start-repl-hook () +(defcustom guix-after-start-repl-hook '(guix-set-directory) "Hook called after Guix REPL is started." :type 'hook :group 'guix-repl) @@ -336,6 +336,28 @@ additional internal REPL if it exists." (interactive "P") (geiser-repl--switch-to-buffer (guix-get-repl-buffer internal))) + +;;; Guix directory + +(defvar guix-directory nil + "Default directory with Guix source. +If it is not set by a user, it is set after starting Guile REPL. +This directory is used to define package locations.") + +(defun guix-read-directory () + "Return `guix-directory' or prompt for it. +This function is intended for using in `interactive' forms." + (if current-prefix-arg + (read-directory-name "Directory with Guix modules: " + guix-directory) + guix-directory)) + +(defun guix-set-directory () + "Set `guix-directory' if needed." + (or guix-directory + (setq guix-directory + (guix-eval-read "%guix-dir")))) + ;;; Evaluating expressions diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 75d19cbfe0..888836428f 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -48,53 +48,7 @@ (when output (concat ":" output)))) -;;; Location of packages, profiles and manifests - -(defvar guix-directory nil - "Default Guix directory. -If it is not set by a user, it is set after starting Guile REPL. -This directory is used to define location of the packages.") - -(defun guix-read-directory () - "Return `guix-directory' or prompt for it. -This function is intended for using in `interactive' forms." - (if current-prefix-arg - (read-directory-name "Directory with Guix modules: " - guix-directory) - guix-directory)) - -(defun guix-set-directory () - "Set `guix-directory' if needed." - (or guix-directory - (setq guix-directory - (guix-eval-read "%guix-dir")))) - -(add-hook 'guix-after-start-repl-hook 'guix-set-directory) - -(defun guix-find-location (location &optional directory) - "Go to LOCATION of a package. -LOCATION is a string of the form: - - \"PATH:LINE:COLUMN\" - -If PATH is relative, it is considered to be relative to -DIRECTORY (`guix-directory' by default)." - (cl-multiple-value-bind (path line col) - (split-string location ":") - (let ((file (expand-file-name path (or directory guix-directory))) - (line (string-to-number line)) - (col (string-to-number col))) - (find-file file) - (goto-char (point-min)) - (forward-line (- line 1)) - (move-to-column col) - (recenter 1)))) - -(defun guix-package-location (id-or-name) - "Return location of a package with ID-OR-NAME. -For the meaning of location, see `guix-find-location'." - (guix-eval-read (guix-make-guile-expression - 'package-location-string id-or-name))) +;;; Location of profiles and manifests (defun guix-generation-file (profile generation) "Return the file name of a PROFILE's GENERATION." @@ -120,20 +74,6 @@ See `guix-packages-profile'." (expand-file-name "manifest" (guix-packages-profile profile generation system?))) -;;;###autoload -(defun guix-edit (id-or-name &optional directory) - "Edit (go to location of) package with ID-OR-NAME. -See `guix-find-location' for the meaning of package location and -DIRECTORY. -Interactively, with prefix argument, prompt for DIRECTORY." - (interactive - (list (guix-read-package-name) - (guix-read-directory))) - (let ((loc (guix-package-location id-or-name))) - (if loc - (guix-find-location loc directory) - (message "Couldn't find package location.")))) - ;;; Actions on packages and generations diff --git a/emacs/guix-location.el b/emacs/guix-location.el new file mode 100644 index 0000000000..4b23293d94 --- /dev/null +++ b/emacs/guix-location.el @@ -0,0 +1,72 @@ +;;; guix-location.el --- Package locations + +;; Copyright © 2016 Alex Kost + +;; This file is part of GNU Guix. + +;; GNU Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public Location as published by +;; the Free Software Foundation, either version 3 of the Location, or +;; (at your option) any later version. + +;; GNU Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public Location for more details. + +;; You should have received a copy of the GNU General Public Location +;; along with this program. If not, see . + +;;; Commentary: + +;; This file provides the code to work with locations of Guix packages. + +;;; Code: + +(require 'cl-lib) +(require 'guix-backend) +(require 'guix-read) +(require 'guix-guile) + +(defun guix-package-location (id-or-name) + "Return location of a package with ID-OR-NAME. +For the meaning of location, see `guix-find-location'." + (guix-eval-read (guix-make-guile-expression + 'package-location-string id-or-name))) + +(defun guix-find-location (location &optional directory) + "Go to LOCATION of a package. +LOCATION is a string of the form: + + \"PATH:LINE:COLUMN\" + +If PATH is relative, it is considered to be relative to +DIRECTORY (`guix-directory' by default)." + (cl-multiple-value-bind (path line col) + (split-string location ":") + (let ((file (expand-file-name path (or directory guix-directory))) + (line (string-to-number line)) + (col (string-to-number col))) + (find-file file) + (goto-char (point-min)) + (forward-line (- line 1)) + (move-to-column col) + (recenter 1)))) + +;;;###autoload +(defun guix-edit (id-or-name &optional directory) + "Edit (go to location of) package with ID-OR-NAME. +See `guix-find-location' for the meaning of package location and +DIRECTORY. +Interactively, with prefix argument, prompt for DIRECTORY." + (interactive + (list (guix-read-package-name) + (guix-read-directory))) + (let ((loc (guix-package-location id-or-name))) + (if loc + (guix-find-location loc directory) + (message "Couldn't find package location.")))) + +(provide 'guix-location) + +;;; guix-location.el ends here diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 07bbd973e7..966fc9c5f6 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -38,6 +38,7 @@ (require 'guix-hydra-build) (require 'guix-read) (require 'guix-license) +(require 'guix-location) (require 'guix-profiles) (guix-ui-define-entry-type package) -- cgit 1.4.1 From 27986d7b192f23eb4185d5ff0135d0a0470cd86a Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 7 Apr 2016 19:07:23 +0300 Subject: emacs: Separate package license code. Move list/info interface code from "guix-license.el" to "guix-ui-license.el". * emacs/guix-license.el (guix-license-get-entries, guix-license-get-display) (guix-license-insert-packages-button, guix-license-insert-comment) (guix-licenses): Move to... * emacs/guix-ui-license.el: ... here. New file. * emacs.am (ELFILES): Add it. --- emacs.am | 1 + emacs/guix-license.el | 86 ---------------------------------- emacs/guix-ui-license.el | 119 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 86 deletions(-) create mode 100644 emacs/guix-ui-license.el (limited to 'emacs') diff --git a/emacs.am b/emacs.am index c0d294de9d..f0647d14fd 100644 --- a/emacs.am +++ b/emacs.am @@ -48,6 +48,7 @@ ELFILES = \ emacs/guix-profiles.el \ emacs/guix-read.el \ emacs/guix-ui.el \ + emacs/guix-ui-license.el \ emacs/guix-ui-package.el \ emacs/guix-ui-generation.el \ emacs/guix-ui-system-generation.el \ diff --git a/emacs/guix-license.el b/emacs/guix-license.el index a99d7af98d..940f5518e2 100644 --- a/emacs/guix-license.el +++ b/emacs/guix-license.el @@ -23,108 +23,22 @@ ;;; Code: -(require 'guix-buffer) -(require 'guix-list) -(require 'guix-info) (require 'guix-read) (require 'guix-backend) (require 'guix-guile) -(guix-define-entry-type license) - (defun guix-lookup-license-url (license) "Return URL of a LICENSE." (or (guix-eval-read (guix-make-guile-expression 'lookup-license-uri license)) (error "Hm, I don't know URL of '%s' license" license))) -(defun guix-license-get-entries (search-type &rest args) - "Receive 'license' entries. -SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." - (guix-eval-read - (apply #'guix-make-guile-expression - 'license-entries search-type args))) - -(defun guix-license-get-display (search-type &rest args) - "Search for licenses and show results." - (apply #'guix-list-get-display-entries - 'license search-type args)) - - -;;; License 'info' - -(guix-info-define-interface license - :buffer-name "*Guix License Info*" - :get-entries-function 'guix-license-get-entries - :format '((name ignore (simple guix-info-heading)) - ignore - guix-license-insert-packages-button - (url ignore (simple guix-url)) - guix-license-insert-comment) - :titles '((url . "URL"))) - -(declare-function guix-packages-by-license "guix-ui-package") - -(defun guix-license-insert-packages-button (entry) - "Insert button to display packages by license ENTRY." - (guix-info-insert-action-button - "Packages" - (lambda (btn) - (guix-packages-by-license (button-get btn 'license))) - "Show packages with this license" - 'license (guix-entry-value entry 'name))) - -(defun guix-license-insert-comment (entry) - "Insert 'comment' of a license ENTRY." - (let ((comment (guix-entry-value entry 'comment))) - (if (and comment - (string-match-p "^http" comment)) - (guix-info-insert-value-simple comment 'guix-url) - (guix-info-insert-title-simple - (guix-info-param-title 'license 'comment)) - (guix-info-insert-value-indent comment)))) - - -;;; License 'list' - -(guix-list-define-interface license - :buffer-name "*Guix Licenses*" - :get-entries-function 'guix-license-get-entries - :describe-function 'guix-license-list-describe - :format '((name nil 40 t) - (url guix-list-get-url 50 t)) - :titles '((name . "License")) - :sort-key '(name)) - -(let ((map guix-license-list-mode-map)) - (define-key map (kbd "RET") 'guix-license-list-show-packages)) - -(defun guix-license-list-describe (ids) - "Describe licenses with IDS (list of identifiers)." - (guix-buffer-display-entries - (guix-entries-by-ids ids (guix-buffer-current-entries)) - 'info 'license (cl-list* 'id ids) 'add)) - -(defun guix-license-list-show-packages () - "Display packages with the license at point." - (interactive) - (guix-packages-by-license (guix-list-current-id))) - - -;;; Interactive commands - ;;;###autoload (defun guix-browse-license-url (license) "Browse URL of a LICENSE." (interactive (list (guix-read-license-name))) (browse-url (guix-lookup-license-url license))) -;;;###autoload -(defun guix-licenses () - "Display licenses of the Guix packages." - (interactive) - (guix-license-get-display 'all)) - (provide 'guix-license) ;;; guix-license.el ends here diff --git a/emacs/guix-ui-license.el b/emacs/guix-ui-license.el new file mode 100644 index 0000000000..c5e642f606 --- /dev/null +++ b/emacs/guix-ui-license.el @@ -0,0 +1,119 @@ +;;; guix-ui-license.el --- Interface for displaying licenses + +;; Copyright © 2016 Alex Kost + +;; This file is part of GNU Guix. + +;; GNU Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; This file provides 'list'/'info' interface for displaying licenses of +;; Guix packages. + +;;; Code: + +(require 'guix-buffer) +(require 'guix-list) +(require 'guix-info) +(require 'guix-backend) +(require 'guix-guile) + +(guix-define-entry-type license) + +(defun guix-license-get-entries (search-type &rest args) + "Receive 'license' entries. +SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." + (guix-eval-read + (apply #'guix-make-guile-expression + 'license-entries search-type args))) + +(defun guix-license-get-display (search-type &rest args) + "Search for licenses and show results." + (apply #'guix-list-get-display-entries + 'license search-type args)) + + +;;; License 'info' + +(guix-info-define-interface license + :buffer-name "*Guix License Info*" + :get-entries-function 'guix-license-get-entries + :format '((name ignore (simple guix-info-heading)) + ignore + guix-license-insert-packages-button + (url ignore (simple guix-url)) + guix-license-insert-comment) + :titles '((url . "URL"))) + +(declare-function guix-packages-by-license "guix-ui-package") + +(defun guix-license-insert-packages-button (entry) + "Insert button to display packages by license ENTRY." + (let ((license (guix-entry-value entry 'name))) + (guix-info-insert-action-button + "Packages" + (lambda (btn) + (guix-packages-by-license (button-get btn 'license))) + (format "Display packages with license '%s'" license) + 'license license))) + +(defun guix-license-insert-comment (entry) + "Insert 'comment' of a license ENTRY." + (let ((comment (guix-entry-value entry 'comment))) + (if (and comment + (string-match-p "^http" comment)) + (guix-info-insert-value-simple comment 'guix-url) + (guix-info-insert-title-simple + (guix-info-param-title 'license 'comment)) + (guix-info-insert-value-indent comment)))) + + +;;; License 'list' + +(guix-list-define-interface license + :buffer-name "*Guix Licenses*" + :get-entries-function 'guix-license-get-entries + :describe-function 'guix-license-list-describe + :format '((name nil 40 t) + (url guix-list-get-url 50 t)) + :titles '((name . "License")) + :sort-key '(name)) + +(let ((map guix-license-list-mode-map)) + (define-key map (kbd "RET") 'guix-license-list-show-packages)) + +(defun guix-license-list-describe (ids) + "Describe licenses with IDS (list of identifiers)." + (guix-buffer-display-entries + (guix-entries-by-ids ids (guix-buffer-current-entries)) + 'info 'license (cl-list* 'id ids) 'add)) + +(defun guix-license-list-show-packages () + "Display packages with the license at point." + (interactive) + (guix-packages-by-license (guix-list-current-id))) + + +;;; Interactive commands + +;;;###autoload +(defun guix-licenses () + "Display licenses of the Guix packages." + (interactive) + (guix-license-get-display 'all)) + +(provide 'guix-ui-license) + +;;; guix-ui-license.el ends here -- cgit 1.4.1 From 8934c3b60f2d8438dca0e513b286e11cd2adb096 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 15 Apr 2016 21:43:13 +0300 Subject: emacs: Display message if license not found. * emacs/guix-ui-license.el (guix-license-message): New procedure. (guix-license-info-message-function): Use it. (guix-license-list-message-function): Likewise. --- emacs/guix-ui-license.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'emacs') diff --git a/emacs/guix-ui-license.el b/emacs/guix-ui-license.el index c5e642f606..ab1d25bfd2 100644 --- a/emacs/guix-ui-license.el +++ b/emacs/guix-ui-license.el @@ -44,12 +44,22 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (apply #'guix-list-get-display-entries 'license search-type args)) +(defun guix-license-message (entries search-type &rest args) + "Display a message after showing license ENTRIES." + ;; Some objects in (guix licenses) module are procedures (e.g., + ;; 'non-copyleft' or 'x11-style'). Such licenses cannot be "described". + (when (null entries) + (if (cdr args) + (message "Unknown licenses.") + (message "Unknown license.")))) + ;;; License 'info' (guix-info-define-interface license :buffer-name "*Guix License Info*" :get-entries-function 'guix-license-get-entries + :message-function 'guix-license-message :format '((name ignore (simple guix-info-heading)) ignore guix-license-insert-packages-button @@ -86,6 +96,7 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." :buffer-name "*Guix Licenses*" :get-entries-function 'guix-license-get-entries :describe-function 'guix-license-list-describe + :message-function 'guix-license-message :format '((name nil 40 t) (url guix-list-get-url 50 t)) :titles '((name . "License")) -- cgit 1.4.1 From e81a89d176a7330c22e263a000754cfa2b62476d Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 1 Apr 2016 21:52:21 +0300 Subject: emacs: Make 'guix-find-location' interactive. * emacs/guix-location.el (guix-find-location): Make interactive. Adjust to handle "reduced" locations (without line and column numbers). --- emacs/guix-location.el | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'emacs') diff --git a/emacs/guix-location.el b/emacs/guix-location.el index 4b23293d94..81396b4017 100644 --- a/emacs/guix-location.el +++ b/emacs/guix-location.el @@ -34,24 +34,31 @@ For the meaning of location, see `guix-find-location'." (guix-eval-read (guix-make-guile-expression 'package-location-string id-or-name))) +;;;###autoload (defun guix-find-location (location &optional directory) "Go to LOCATION of a package. LOCATION is a string of the form: - \"PATH:LINE:COLUMN\" + \"FILE:LINE:COLUMN\" + +If FILE is relative, it is considered to be relative to +DIRECTORY (`guix-directory' by default). -If PATH is relative, it is considered to be relative to -DIRECTORY (`guix-directory' by default)." - (cl-multiple-value-bind (path line col) +Interactively, prompt for LOCATION. With prefix argument, prompt +for DIRECTORY as well." + (interactive + (list (guix-read-package-location) + (guix-read-directory))) + (cl-multiple-value-bind (file line column) (split-string location ":") - (let ((file (expand-file-name path (or directory guix-directory))) - (line (string-to-number line)) - (col (string-to-number col))) - (find-file file) - (goto-char (point-min)) - (forward-line (- line 1)) - (move-to-column col) - (recenter 1)))) + (find-file (expand-file-name file (or directory guix-directory))) + (when (and line column) + (let ((line (string-to-number line)) + (column (string-to-number column))) + (goto-char (point-min)) + (forward-line (- line 1)) + (move-to-column column) + (recenter 1))))) ;;;###autoload (defun guix-edit (id-or-name &optional directory) -- cgit 1.4.1 From b4b9975d4abf8ee7d4f3762e5e6aea656cbeb61f Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 1 Apr 2016 23:53:20 +0300 Subject: emacs: Add interface for package locations. * emacs/guix-main.scm (%package-location-param-alist): New variable. (package-location->sexp, package-location-entries): New procedures. * emacs/guix-ui-location.el: New file. * emacs.am (ELFILES): Add it. * doc/emacs.texi (Emacs Package Locations): Document 'guix-locations'. * NEWS: Mention it. --- NEWS | 6 ++++ doc/emacs.texi | 7 ++++ emacs.am | 1 + emacs/guix-main.scm | 12 +++++++ emacs/guix-ui-location.el | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 emacs/guix-ui-location.el (limited to 'emacs') diff --git a/NEWS b/NEWS index 2ab208f206..267c197c4a 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,12 @@ Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.11.0 (since 0.10.0) + +** Package management + +*** New Emacs interface for package locations: M-x guix-locations + * Changes in 0.10.0 (since 0.9.0) ** Community diff --git a/doc/emacs.texi b/doc/emacs.texi index a4f77a1ca8..ed8896ad43 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -556,6 +556,13 @@ get lost in these locations: @table @kbd +@item M-x guix-locations +Display a list of package locations. You can press @key{RET} there to +display packages placed in the current location in the same way as +@kbd{M-x guix-packages-by-location} would do (@pxref{Emacs Commands}). +Note that when the point is on a location button, @key{RET} will open +this location file. + @item M-x guix-find-location Open the given package definition source file (press @key{TAB} to choose a location from a completion list). diff --git a/emacs.am b/emacs.am index f0647d14fd..62e33e4fd2 100644 --- a/emacs.am +++ b/emacs.am @@ -49,6 +49,7 @@ ELFILES = \ emacs/guix-read.el \ emacs/guix-ui.el \ emacs/guix-ui-license.el \ + emacs/guix-ui-location.el \ emacs/guix-ui-package.el \ emacs/guix-ui-generation.el \ emacs/guix-ui-system-generation.el \ diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 4780cced96..5358f3bfa4 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -1127,3 +1127,15 @@ Return #t if the shell command was executed successfully." (lambda () "Return the list of file names of all package locations." (force files))))) + +(define %package-location-param-alist + `((id . ,identity) + (location . ,identity) + (number-of-packages . ,(lambda (location) + (length (packages-by-location-file location)))))) + +(define package-location->sexp + (object-transformer %package-location-param-alist)) + +(define (package-location-entries) + (map package-location->sexp (package-location-files))) diff --git a/emacs/guix-ui-location.el b/emacs/guix-ui-location.el new file mode 100644 index 0000000000..0027c1fba8 --- /dev/null +++ b/emacs/guix-ui-location.el @@ -0,0 +1,83 @@ +;;; guix-ui-location.el --- Interface for displaying package locations + +;; Copyright © 2016 Alex Kost + +;; This file is part of GNU Guix. + +;; GNU Guix is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public Location as published by +;; the Free Software Foundation, either version 3 of the Location, or +;; (at your option) any later version. + +;; GNU Guix is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public Location for more details. + +;; You should have received a copy of the GNU General Public Location +;; along with this program. If not, see . + +;;; Commentary: + +;; This file provides a 'list' interface for displaying locations of Guix +;; packages. + +;;; Code: + +(require 'guix-buffer) +(require 'guix-list) +(require 'guix-location) +(require 'guix-backend) + +(guix-define-entry-type location) + +(defun guix-location-get-entries () + "Receive 'package location' entries." + (guix-eval-read "(package-location-entries)")) + + +;;; Location 'list' + +(guix-list-define-interface location + :buffer-name "*Guix Package Locations*" + :get-entries-function 'guix-location-get-entries + :format '((location guix-location-list-file-name-specification 50 t) + (number-of-packages nil 10 guix-list-sort-numerically-1 + :right-align t)) + :sort-key '(location)) + +(let ((map guix-location-list-mode-map)) + (define-key map (kbd "RET") 'guix-location-list-show-packages) + ;; "Location Info" buffer is not defined (it would be useless), so + ;; unbind "i" key (by default, it is used to display Info buffer). + (define-key map (kbd "i") nil)) + +(defun guix-location-list-file-name-specification (location &optional _) + "Return LOCATION button specification for `tabulated-list-entries'." + (list location + 'face 'guix-list-file-name + 'action (lambda (btn) + (guix-find-location (button-get btn 'location))) + 'follow-link t + 'help-echo (concat "Find location: " location) + 'location location)) + +(declare-function guix-packages-by-location "guix-ui-package") + +(defun guix-location-list-show-packages () + "Display packages placed in the location at point." + (interactive) + (guix-packages-by-location (guix-list-current-id))) + + +;;; Interactive commands + +;;;###autoload +(defun guix-locations () + "Display locations of the Guix packages." + (interactive) + (guix-list-get-display-entries 'location)) + +(provide 'guix-ui-location) + +;;; guix-ui-location.el ends here -- cgit 1.4.1 From 690c055b0816608e4bf740d4e931f3810e6ed120 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 2 Apr 2016 11:04:59 +0300 Subject: emacs: Add location "Packages" button to Package Info buffer. * emacs/guix-ui-package.el (guix-package-info-insert-location): New procedure. (guix-package-info-format): Use it. (guix-output-info-format): Likewise. --- emacs/guix-ui-package.el | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'emacs') diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 966fc9c5f6..7e20b32a06 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -223,7 +223,7 @@ ENTRIES is a list of package entries to get info about packages." ignore (outputs simple guix-package-info-insert-outputs) (source simple guix-package-info-insert-source) - (location format (format guix-package-location)) + (location simple guix-package-info-insert-location) (home-url format (format guix-url)) (license format (format guix-package-license)) (systems format guix-package-info-insert-systems) @@ -383,6 +383,22 @@ formatted with this string, an action button is inserted.") 'guix-package-heading 'spec (guix-package-entry->name-specification entry))) +(defun guix-package-info-insert-location (location &optional _) + "Insert package LOCATION at point." + (if (null location) + (guix-format-insert nil) + (let ((location-file (car (split-string location ":")))) + (guix-info-insert-value-indent location 'guix-package-location) + (guix-info-insert-indent) + (guix-info-insert-action-button + "Packages" + (lambda (btn) + (guix-package-get-display (guix-ui-current-profile) + 'location + (button-get btn 'location))) + (format "Display packages from location '%s'" location-file) + 'location location-file)))) + (defun guix-package-info-insert-systems (systems entry) "Insert supported package SYSTEMS at point." (guix-info-insert-value-format @@ -798,7 +814,7 @@ for all ARGS." (source simple guix-package-info-insert-source) (path simple (indent guix-file)) (dependencies simple (indent guix-file)) - (location format (format guix-package-location)) + (location simple guix-package-info-insert-location) (home-url format (format guix-url)) (license format (format guix-package-license)) (systems format guix-package-info-insert-systems) -- cgit 1.4.1 From a7c61781df789183665dc7570e088ec11678a7db Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 7 Apr 2016 21:36:32 +0300 Subject: emacs: Display license info on button press in Package Info buffer. * emacs/guix-ui-package.el (guix-package-license): Adjust button action to display license info instead of browsing license URL. --- emacs/guix-ui-package.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'emacs') diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index 7e20b32a06..38f0c08fc7 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -346,9 +346,13 @@ formatted with this string, an action button is inserted.") (define-button-type 'guix-package-license :supertype 'guix 'face 'guix-package-info-license - 'help-echo "Browse license URL" + 'help-echo "Display license info" 'action (lambda (btn) - (guix-browse-license-url (button-label btn)))) + (require 'guix-ui-license) + (guix-buffer-get-display-entries + 'info 'license + (list 'name (button-label btn)) + 'add))) (define-button-type 'guix-package-name :supertype 'guix -- cgit 1.4.1 From 03d0e2d2b9f9cc3be8e871842c11df9453e903bd Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 21 Apr 2016 18:07:52 +0200 Subject: build: Move 'Makefile' fragments to subdirectories. This follows a convention used by some other GNU packages like Autoconf, Bison, Coreutils, and Gnulib. * doc.am: Rename to ... * doc/local.mk: ... this. * emacs.am: Rename to ... * emacs/local.mk: ... this. * gnu-system.am: Rename to ... * gnu/local.mk: ... this. * daemon.am: Rename to ... * nix/local.mk: ... this. * Makefile.am: Adapt to them. * doc/guix.texi (Porting to a New Platform): Adapt documentation. * guix/config.scm.in (%state-directory, %config-directory): Adapt comments. * emacs/guix-config.el.in (guix-config-state-directory): Likewise. --- Makefile.am | 8 +- daemon.am | 226 ------------- doc.am | 157 --------- doc/guix.texi | 2 +- doc/local.mk | 157 +++++++++ emacs.am | 76 ----- emacs/guix-config.el.in | 2 +- emacs/local.mk | 76 +++++ gnu-system.am | 875 ------------------------------------------------ gnu/local.mk | 875 ++++++++++++++++++++++++++++++++++++++++++++++++ guix/config.scm.in | 4 +- nix/local.mk | 226 +++++++++++++ 12 files changed, 1342 insertions(+), 1342 deletions(-) delete mode 100644 daemon.am delete mode 100644 doc.am create mode 100644 doc/local.mk delete mode 100644 emacs.am create mode 100644 emacs/local.mk delete mode 100644 gnu-system.am create mode 100644 gnu/local.mk create mode 100644 nix/local.mk (limited to 'emacs') diff --git a/Makefile.am b/Makefile.am index 1f257a009c..5cee3d3b6f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -27,7 +27,7 @@ nodist_noinst_SCRIPTS = \ pre-inst-env \ test-env -include gnu-system.am +include gnu/local.mk MODULES = \ guix/base32.scm \ @@ -416,11 +416,11 @@ install-data-hook: set-bootstrap-executable-permissions SUBDIRS = po/guix po/packages BUILT_SOURCES = -include doc.am +include doc/local.mk if BUILD_DAEMON -include daemon.am +include nix/local.mk endif BUILD_DAEMON @@ -437,7 +437,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \ dist_emacsui_DATA = emacs/guix-main.scm nodist_emacsui_DATA = emacs/guix-helper.scm -include emacs.am +include emacs/local.mk # The self-contained tarball. guix-binary.%.tar.xz: diff --git a/daemon.am b/daemon.am deleted file mode 100644 index 3c15531f54..0000000000 --- a/daemon.am +++ /dev/null @@ -1,226 +0,0 @@ -# GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès -# Copyright © 2016 Mathieu Lirzin -# -# This file is part of GNU Guix. -# -# GNU Guix is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# GNU Guix is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Guix. If not, see . - -# -# Integration of the `guix-daemon' code taken from upstream Nix. -# - -BUILT_SOURCES += nix/libstore/schema.sql.hh -CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service etc/guix-daemon.conf - -noinst_LIBRARIES = libformat.a libutil.a libstore.a - -# Use '-std=c++11' for 'std::shared_ptr', 'auto', lambdas, and more. -AM_CXXFLAGS = -Wall -std=c++11 - -libformat_a_SOURCES = \ - nix/boost/format/free_funcs.cc \ - nix/boost/format/parsing.cc \ - nix/boost/format/format_implementation.cc - -libformat_headers = \ - nix/boost/throw_exception.hpp \ - nix/boost/format.hpp \ - nix/boost/assert.hpp \ - nix/boost/format/macros_default.hpp \ - nix/boost/format/format_fwd.hpp \ - nix/boost/format/format_class.hpp \ - nix/boost/format/exceptions.hpp \ - nix/boost/format/group.hpp \ - nix/boost/format/feed_args.hpp \ - nix/boost/format/internals_fwd.hpp \ - nix/boost/format/internals.hpp - -libformat_a_CPPFLAGS = \ - -I$(top_srcdir)/nix - -libutil_a_SOURCES = \ - nix/libutil/archive.cc \ - nix/libutil/affinity.cc \ - nix/libutil/serialise.cc \ - nix/libutil/util.cc \ - nix/libutil/xml-writer.cc \ - nix/libutil/hash.cc \ - nix/libutil/gcrypt-hash.cc - -libutil_headers = \ - nix/libutil/affinity.hh \ - nix/libutil/hash.hh \ - nix/libutil/serialise.hh \ - nix/libutil/xml-writer.hh \ - nix/libutil/util.hh \ - nix/libutil/archive.hh \ - nix/libutil/types.hh \ - nix/libutil/gcrypt-hash.hh \ - nix/libutil/md5.h \ - nix/libutil/sha1.h \ - nix/libutil/sha256.h \ - nix/libutil/sha512.h - -libutil_a_CPPFLAGS = \ - -I$(top_builddir)/nix \ - -I$(top_srcdir)/nix/libutil \ - $(libformat_a_CPPFLAGS) - -libstore_a_SOURCES = \ - nix/libstore/gc.cc \ - nix/libstore/globals.cc \ - nix/libstore/misc.cc \ - nix/libstore/references.cc \ - nix/libstore/store-api.cc \ - nix/libstore/optimise-store.cc \ - nix/libstore/local-store.cc \ - nix/libstore/build.cc \ - nix/libstore/pathlocks.cc \ - nix/libstore/derivations.cc - -libstore_headers = \ - nix/libstore/references.hh \ - nix/libstore/pathlocks.hh \ - nix/libstore/globals.hh \ - nix/libstore/worker-protocol.hh \ - nix/libstore/derivations.hh \ - nix/libstore/misc.hh \ - nix/libstore/local-store.hh \ - nix/libstore/store-api.hh - -libstore_a_CPPFLAGS = \ - $(libutil_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore \ - -I$(top_builddir)/nix/libstore \ - -DNIX_STORE_DIR=\"$(storedir)\" \ - -DNIX_DATA_DIR=\"$(datadir)\" \ - -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ - -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \ - -DNIX_CONF_DIR=\"$(sysconfdir)/guix\" \ - -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \ - -DNIX_BIN_DIR=\"$(bindir)\" \ - -DOPENSSL_PATH="\"guix-authenticate\"" \ - -DDEFAULT_CHROOT_DIRS="\"\"" - -libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \ - $(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS) - -bin_PROGRAMS = guix-daemon -sbin_PROGRAMS = guix-register - -guix_daemon_SOURCES = \ - nix/nix-daemon/nix-daemon.cc \ - nix/nix-daemon/guix-daemon.cc - -guix_daemon_CPPFLAGS = \ - -DLOCALEDIR=\"$(localedir)\" \ - $(libutil_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore - -guix_daemon_LDADD = \ - libstore.a libutil.a libformat.a -lbz2 \ - $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) - -guix_daemon_headers = \ - nix/nix-daemon/shared.hh - - -guix_register_SOURCES = \ - nix/guix-register/guix-register.cc - -guix_register_CPPFLAGS = \ - $(libutil_a_CPPFLAGS) \ - $(libstore_a_CPPFLAGS) \ - -I$(top_srcdir)/nix/libstore - -# XXX: Should we start using shared libs? -guix_register_LDADD = \ - libstore.a libutil.a libformat.a -lbz2 \ - $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) - - -noinst_HEADERS = \ - $(libformat_headers) $(libutil_headers) $(libstore_headers) \ - $(guix_daemon_headers) - -nix/libstore/schema.sql.hh: nix/libstore/schema.sql - $(AM_V_GEN)$(GUILE) --no-auto-compile -c \ - "(use-modules (rnrs io ports)) \ - (call-with-output-file \"$@\" \ - (lambda (out) \ - (call-with-input-file \"$^\" \ - (lambda (in) \ - (write (get-string-all in) out)))))" - -nodist_pkglibexec_SCRIPTS = \ - nix/scripts/list-runtime-roots \ - nix/scripts/substitute - -if BUILD_DAEMON_OFFLOAD - -nodist_pkglibexec_SCRIPTS += \ - nix/scripts/offload - -endif BUILD_DAEMON_OFFLOAD - - -# XXX: It'd be better to hide it in $(pkglibexecdir). -nodist_libexec_SCRIPTS = \ - nix/scripts/guix-authenticate - -# The '.service' file for systemd. -systemdservicedir = $(libdir)/systemd/system -nodist_systemdservice_DATA = etc/guix-daemon.service - -etc/guix-daemon.service: etc/guix-daemon.service.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ - $(SED) -e 's|@''bindir''@|$(bindir)|' < \ - "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp"; \ - mv "$@.tmp" "$@" - -# The '.conf' job for Upstart. -upstartjobdir = $(libdir)/upstart/system -nodist_upstartjob_DATA = etc/guix-daemon.conf - -etc/guix-daemon.conf: etc/guix-daemon.conf.in \ - $(top_builddir)/config.status - $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ - $(SED) -e 's|@''bindir''@|$(bindir)|' < \ - "$(srcdir)/etc/guix-daemon.conf.in" > "$@.tmp"; \ - mv "$@.tmp" "$@" - -EXTRA_DIST += \ - nix/libstore/schema.sql \ - nix/AUTHORS \ - nix/COPYING \ - etc/guix-daemon.service.in \ - etc/guix-daemon.conf.in - -if CAN_RUN_TESTS - -AM_TESTS_ENVIRONMENT += \ - top_builddir="$(abs_top_builddir)" - -TESTS += \ - tests/guix-daemon.sh - -endif CAN_RUN_TESTS - -clean-local: - -if test -d "$(GUIX_TEST_ROOT)"; then \ - find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \ - fi - -rm -rf "$(GUIX_TEST_ROOT)" diff --git a/doc.am b/doc.am deleted file mode 100644 index b9f07c3590..0000000000 --- a/doc.am +++ /dev/null @@ -1,157 +0,0 @@ -# GNU Guix --- Functional package management for GNU -# Copyright © 2016 Eric Bavier -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès -# Copyright © 2013 Andreas Enge -# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer -# Copyright © 2016 Mathieu Lirzin -# -# This file is part of GNU Guix. -# -# GNU Guix is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# GNU Guix is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Guix. If not, see . - -info_TEXINFOS = doc/guix.texi - -DOT_FILES = \ - doc/images/bootstrap-graph.dot \ - doc/images/bootstrap-packages.dot \ - doc/images/coreutils-graph.dot \ - doc/images/coreutils-bag-graph.dot \ - doc/images/service-graph.dot \ - doc/images/shepherd-graph.dot - -DOT_VECTOR_GRAPHICS = \ - $(DOT_FILES:%.dot=%.eps) \ - $(DOT_FILES:%.dot=%.pdf) - -EXTRA_DIST += \ - doc/htmlxref.cnf \ - doc/contributing.texi \ - doc/emacs.texi \ - doc/fdl-1.3.texi \ - $(DOT_FILES) \ - $(DOT_VECTOR_GRAPHICS) \ - doc/images/coreutils-size-map.eps \ - doc/environment-gdb.scm \ - doc/package-hello.scm - -OS_CONFIG_EXAMPLES_TEXI = \ - doc/os-config-bare-bones.texi \ - doc/os-config-desktop.texi \ - doc/os-config-lightweight-desktop.texi - -# Bundle this file so that makeinfo finds it in out-of-source-tree builds. -BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) -EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI) -MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) - -doc/os-config-%.texi: gnu/system/examples/%.tmpl - $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ - cp "$<" "$@" - -infoimagedir = $(infodir)/images -dist_infoimage_DATA = \ - $(DOT_FILES:%.dot=%.png) \ - doc/images/coreutils-size-map.png - -# Try hard to obtain an image size and aspect that's reasonable for inclusion -# in an Info or PDF document. -DOT_OPTIONS = \ - -Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \ - -Nfontsize=9 -Nheight=.1 -Nwidth=.1 - -.dot.png: - $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ - mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" - -.dot.pdf: - $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ - mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" - -.dot.eps: - $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ - mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" - -.png.eps: - $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \ - mv "$@-tmp.eps" "$@" - -# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake) -# Extending"). Using the `-local' rules is imperfect, because they may be -# triggered after the main rule. Oh, well. -pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf) -info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png) -ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \ - $(top_srcdir)/doc/images/coreutils-size-map.eps -dvi-local: ps-local - -## ----------- ## -## Man pages. ## -## ----------- ## - -# The man pages are generated using GNU Help2man. In makefiles rules they -# depend not on the binary, but on the source files. This usage allows a -# manual page to be generated by the maintainer and included in the -# distribution without requiring the end-user to have 'help2man' installed. -# They are built in $(srcdir) like info manuals. - -sub_commands_mans = \ - $(srcdir)/doc/guix-archive.1 \ - $(srcdir)/doc/guix-build.1 \ - $(srcdir)/doc/guix-challenge.1 \ - $(srcdir)/doc/guix-download.1 \ - $(srcdir)/doc/guix-edit.1 \ - $(srcdir)/doc/guix-environment.1 \ - $(srcdir)/doc/guix-gc.1 \ - $(srcdir)/doc/guix-hash.1 \ - $(srcdir)/doc/guix-import.1 \ - $(srcdir)/doc/guix-lint.1 \ - $(srcdir)/doc/guix-package.1 \ - $(srcdir)/doc/guix-publish.1 \ - $(srcdir)/doc/guix-pull.1 \ - $(srcdir)/doc/guix-refresh.1 \ - $(srcdir)/doc/guix-size.1 \ - $(srcdir)/doc/guix-system.1 - -dist_man1_MANS = \ - $(srcdir)/doc/guix.1 \ - $(sub_commands_mans) - -gen_man = \ - LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \ - $(HELP2MANFLAGS) - -HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME) - -$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans) - -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` - -# The 'case' ensures the man pages are only generated if the corresponding -# source script (the first prerequisite) has been changed. The $(GOBJECTS) -# prerequisite is solely meant to force these docs to be made only after all -# Guile modules have been compiled. -$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) - -@case '$?' in \ - *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ - $(gen_man) --output="$@" "guix $*";; \ - *) : ;; \ - esac - -if BUILD_DAEMON - -dist_man1_MANS += $(srcdir)/doc/guix-daemon.1 - -$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc - -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` - -endif diff --git a/doc/guix.texi b/doc/guix.texi index 859db2be12..ab07d1066e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11286,7 +11286,7 @@ to be updated to refer to these binaries on the target platform. That is, the hashes and URLs of the bootstrap tarballs for the new platform must be added alongside those of the currently supported platforms. The bootstrap Guile tarball is treated specially: it is expected to be -available locally, and @file{gnu-system.am} has rules do download it for +available locally, and @file{gnu/local.mk} has rules do download it for the supported architectures; a rule for the new platform must be added as well. diff --git a/doc/local.mk b/doc/local.mk new file mode 100644 index 0000000000..b9f07c3590 --- /dev/null +++ b/doc/local.mk @@ -0,0 +1,157 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2016 Eric Bavier +# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2013 Andreas Enge +# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer +# Copyright © 2016 Mathieu Lirzin +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +info_TEXINFOS = doc/guix.texi + +DOT_FILES = \ + doc/images/bootstrap-graph.dot \ + doc/images/bootstrap-packages.dot \ + doc/images/coreutils-graph.dot \ + doc/images/coreutils-bag-graph.dot \ + doc/images/service-graph.dot \ + doc/images/shepherd-graph.dot + +DOT_VECTOR_GRAPHICS = \ + $(DOT_FILES:%.dot=%.eps) \ + $(DOT_FILES:%.dot=%.pdf) + +EXTRA_DIST += \ + doc/htmlxref.cnf \ + doc/contributing.texi \ + doc/emacs.texi \ + doc/fdl-1.3.texi \ + $(DOT_FILES) \ + $(DOT_VECTOR_GRAPHICS) \ + doc/images/coreutils-size-map.eps \ + doc/environment-gdb.scm \ + doc/package-hello.scm + +OS_CONFIG_EXAMPLES_TEXI = \ + doc/os-config-bare-bones.texi \ + doc/os-config-desktop.texi \ + doc/os-config-lightweight-desktop.texi + +# Bundle this file so that makeinfo finds it in out-of-source-tree builds. +BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) +EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI) +MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) + +doc/os-config-%.texi: gnu/system/examples/%.tmpl + $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ + cp "$<" "$@" + +infoimagedir = $(infodir)/images +dist_infoimage_DATA = \ + $(DOT_FILES:%.dot=%.png) \ + doc/images/coreutils-size-map.png + +# Try hard to obtain an image size and aspect that's reasonable for inclusion +# in an Info or PDF document. +DOT_OPTIONS = \ + -Gratio=.9 -Gnodesep=.005 -Granksep=.00005 \ + -Nfontsize=9 -Nheight=.1 -Nwidth=.1 + +.dot.png: + $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ + mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" + +.dot.pdf: + $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ + mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" + +.dot.eps: + $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \ + mv "$(srcdir)/$@.tmp" "$(srcdir)/$@" + +.png.eps: + $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \ + mv "$@-tmp.eps" "$@" + +# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake) +# Extending"). Using the `-local' rules is imperfect, because they may be +# triggered after the main rule. Oh, well. +pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf) +info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png) +ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps) \ + $(top_srcdir)/doc/images/coreutils-size-map.eps +dvi-local: ps-local + +## ----------- ## +## Man pages. ## +## ----------- ## + +# The man pages are generated using GNU Help2man. In makefiles rules they +# depend not on the binary, but on the source files. This usage allows a +# manual page to be generated by the maintainer and included in the +# distribution without requiring the end-user to have 'help2man' installed. +# They are built in $(srcdir) like info manuals. + +sub_commands_mans = \ + $(srcdir)/doc/guix-archive.1 \ + $(srcdir)/doc/guix-build.1 \ + $(srcdir)/doc/guix-challenge.1 \ + $(srcdir)/doc/guix-download.1 \ + $(srcdir)/doc/guix-edit.1 \ + $(srcdir)/doc/guix-environment.1 \ + $(srcdir)/doc/guix-gc.1 \ + $(srcdir)/doc/guix-hash.1 \ + $(srcdir)/doc/guix-import.1 \ + $(srcdir)/doc/guix-lint.1 \ + $(srcdir)/doc/guix-package.1 \ + $(srcdir)/doc/guix-publish.1 \ + $(srcdir)/doc/guix-pull.1 \ + $(srcdir)/doc/guix-refresh.1 \ + $(srcdir)/doc/guix-size.1 \ + $(srcdir)/doc/guix-system.1 + +dist_man1_MANS = \ + $(srcdir)/doc/guix.1 \ + $(sub_commands_mans) + +gen_man = \ + LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \ + $(HELP2MANFLAGS) + +HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME) + +$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans) + -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` + +# The 'case' ensures the man pages are only generated if the corresponding +# source script (the first prerequisite) has been changed. The $(GOBJECTS) +# prerequisite is solely meant to force these docs to be made only after all +# Guile modules have been compiled. +$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) + -@case '$?' in \ + *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ + $(gen_man) --output="$@" "guix $*";; \ + *) : ;; \ + esac + +if BUILD_DAEMON + +dist_man1_MANS += $(srcdir)/doc/guix-daemon.1 + +$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc + -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` + +endif diff --git a/emacs.am b/emacs.am deleted file mode 100644 index 62e33e4fd2..0000000000 --- a/emacs.am +++ /dev/null @@ -1,76 +0,0 @@ -# GNU Guix --- Functional package management for GNU -# Copyright © 2014, 2015, 2016 Alex Kost -# Copyright © 2016 Mathieu Lirzin -# -# This file is part of GNU Guix. -# -# GNU Guix is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# GNU Guix is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Guix. If not, see . - -AUTOLOADS = emacs/guix-autoloads.el - -ELFILES = \ - emacs/guix-backend.el \ - emacs/guix-base.el \ - emacs/guix-build-log.el \ - emacs/guix-buffer.el \ - emacs/guix-command.el \ - emacs/guix-devel.el \ - emacs/guix-emacs.el \ - emacs/guix-entry.el \ - emacs/guix-external.el \ - emacs/guix-geiser.el \ - emacs/guix-guile.el \ - emacs/guix-help-vars.el \ - emacs/guix-history.el \ - emacs/guix-hydra.el \ - emacs/guix-hydra-build.el \ - emacs/guix-hydra-jobset.el \ - emacs/guix-info.el \ - emacs/guix-init.el \ - emacs/guix-license.el \ - emacs/guix-list.el \ - emacs/guix-location.el \ - emacs/guix-messages.el \ - emacs/guix-pcomplete.el \ - emacs/guix-popup.el \ - emacs/guix-prettify.el \ - emacs/guix-profiles.el \ - emacs/guix-read.el \ - emacs/guix-ui.el \ - emacs/guix-ui-license.el \ - emacs/guix-ui-location.el \ - emacs/guix-ui-package.el \ - emacs/guix-ui-generation.el \ - emacs/guix-ui-system-generation.el \ - emacs/guix-utils.el - -if HAVE_EMACS - -dist_lisp_DATA = $(ELFILES) - -nodist_lisp_DATA = \ - emacs/guix-config.el \ - $(AUTOLOADS) - -$(AUTOLOADS): $(ELFILES) - $(AM_V_EMACS)$(EMACS) --batch --eval \ - "(let ((backup-inhibited t) \ - (generated-autoload-file \ - (expand-file-name \"$(AUTOLOADS)\" \"$(builddir)\"))) \ - (update-directory-autoloads \ - (expand-file-name \"emacs\" \"$(srcdir)\")))" - -CLEANFILES += $(AUTOLOADS) - -endif HAVE_EMACS diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in index bd821596c4..d03df9ce63 100644 --- a/emacs/guix-config.el.in +++ b/emacs/guix-config.el.in @@ -24,7 +24,7 @@ (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")) (defconst guix-config-state-directory - ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'. + ;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'. (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")) (defconst guix-config-guile-program "@GUILE@" diff --git a/emacs/local.mk b/emacs/local.mk new file mode 100644 index 0000000000..62e33e4fd2 --- /dev/null +++ b/emacs/local.mk @@ -0,0 +1,76 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2014, 2015, 2016 Alex Kost +# Copyright © 2016 Mathieu Lirzin +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +AUTOLOADS = emacs/guix-autoloads.el + +ELFILES = \ + emacs/guix-backend.el \ + emacs/guix-base.el \ + emacs/guix-build-log.el \ + emacs/guix-buffer.el \ + emacs/guix-command.el \ + emacs/guix-devel.el \ + emacs/guix-emacs.el \ + emacs/guix-entry.el \ + emacs/guix-external.el \ + emacs/guix-geiser.el \ + emacs/guix-guile.el \ + emacs/guix-help-vars.el \ + emacs/guix-history.el \ + emacs/guix-hydra.el \ + emacs/guix-hydra-build.el \ + emacs/guix-hydra-jobset.el \ + emacs/guix-info.el \ + emacs/guix-init.el \ + emacs/guix-license.el \ + emacs/guix-list.el \ + emacs/guix-location.el \ + emacs/guix-messages.el \ + emacs/guix-pcomplete.el \ + emacs/guix-popup.el \ + emacs/guix-prettify.el \ + emacs/guix-profiles.el \ + emacs/guix-read.el \ + emacs/guix-ui.el \ + emacs/guix-ui-license.el \ + emacs/guix-ui-location.el \ + emacs/guix-ui-package.el \ + emacs/guix-ui-generation.el \ + emacs/guix-ui-system-generation.el \ + emacs/guix-utils.el + +if HAVE_EMACS + +dist_lisp_DATA = $(ELFILES) + +nodist_lisp_DATA = \ + emacs/guix-config.el \ + $(AUTOLOADS) + +$(AUTOLOADS): $(ELFILES) + $(AM_V_EMACS)$(EMACS) --batch --eval \ + "(let ((backup-inhibited t) \ + (generated-autoload-file \ + (expand-file-name \"$(AUTOLOADS)\" \"$(builddir)\"))) \ + (update-directory-autoloads \ + (expand-file-name \"emacs\" \"$(srcdir)\")))" + +CLEANFILES += $(AUTOLOADS) + +endif HAVE_EMACS diff --git a/gnu-system.am b/gnu-system.am deleted file mode 100644 index d58155a1b5..0000000000 --- a/gnu-system.am +++ /dev/null @@ -1,875 +0,0 @@ -# GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès -# Copyright © 2013, 2014, 2015, 2016 Andreas Enge -# Copyright © 2016 Mathieu Lirzin -# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver -# Copyright © 2016 Chris Marusich -# Copyright © 2016 Kei Yamashita -# -# This file is part of GNU Guix. -# -# GNU Guix is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# GNU Guix is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Guix. If not, see . - -# Definitions for the GNU System: package modules, patches, bootstrap -# binaries. - -GNU_SYSTEM_MODULES = \ - gnu.scm \ - gnu/artwork.scm \ - gnu/packages.scm \ - gnu/packages/abduco.scm \ - gnu/packages/abiword.scm \ - gnu/packages/acct.scm \ - gnu/packages/acl.scm \ - gnu/packages/admin.scm \ - gnu/packages/adns.scm \ - gnu/packages/algebra.scm \ - gnu/packages/aidc.scm \ - gnu/packages/animation.scm \ - gnu/packages/anthy.scm \ - gnu/packages/apl.scm \ - gnu/packages/apr.scm \ - gnu/packages/asciidoc.scm \ - gnu/packages/aspell.scm \ - gnu/packages/attr.scm \ - gnu/packages/audacity.scm \ - gnu/packages/audio.scm \ - gnu/packages/augeas.scm \ - gnu/packages/autogen.scm \ - gnu/packages/autotools.scm \ - gnu/packages/avahi.scm \ - gnu/packages/avr.scm \ - gnu/packages/backup.scm \ - gnu/packages/base.scm \ - gnu/packages/bash.scm \ - gnu/packages/bdw-gc.scm \ - gnu/packages/bioinformatics.scm \ - gnu/packages/bittorrent.scm \ - gnu/packages/bison.scm \ - gnu/packages/boost.scm \ - gnu/packages/bootstrap.scm \ - gnu/packages/busybox.scm \ - gnu/packages/c.scm \ - gnu/packages/calcurse.scm \ - gnu/packages/ccache.scm \ - gnu/packages/cdrom.scm \ - gnu/packages/certs.scm \ - gnu/packages/check.scm \ - gnu/packages/ci.scm \ - gnu/packages/cmake.scm \ - gnu/packages/code.scm \ - gnu/packages/commencement.scm \ - gnu/packages/compression.scm \ - gnu/packages/conkeror.scm \ - gnu/packages/conky.scm \ - gnu/packages/cook.scm \ - gnu/packages/cpio.scm \ - gnu/packages/cppi.scm \ - gnu/packages/cross-base.scm \ - gnu/packages/crypto.scm \ - gnu/packages/cryptsetup.scm \ - gnu/packages/cups.scm \ - gnu/packages/curl.scm \ - gnu/packages/cyrus-sasl.scm \ - gnu/packages/databases.scm \ - gnu/packages/datamash.scm \ - gnu/packages/datastructures.scm \ - gnu/packages/dav.scm \ - gnu/packages/dc.scm \ - gnu/packages/debug.scm \ - gnu/packages/dejagnu.scm \ - gnu/packages/dico.scm \ - gnu/packages/dictionaries.scm \ - gnu/packages/dillo.scm \ - gnu/packages/disk.scm \ - gnu/packages/djvu.scm \ - gnu/packages/dns.scm \ - gnu/packages/docbook.scm \ - gnu/packages/docker.scm \ - gnu/packages/doxygen.scm \ - gnu/packages/dunst.scm \ - gnu/packages/dvtm.scm \ - gnu/packages/ebook.scm \ - gnu/packages/ed.scm \ - gnu/packages/elf.scm \ - gnu/packages/emacs.scm \ - gnu/packages/enchant.scm \ - gnu/packages/engineering.scm \ - gnu/packages/enlightenment.scm \ - gnu/packages/fcitx.scm \ - gnu/packages/feh.scm \ - gnu/packages/figlet.scm \ - gnu/packages/file.scm \ - gnu/packages/finance.scm \ - gnu/packages/firmware.scm \ - gnu/packages/fish.scm \ - gnu/packages/flashing-tools.scm \ - gnu/packages/flex.scm \ - gnu/packages/fltk.scm \ - gnu/packages/fonts.scm \ - gnu/packages/fontutils.scm \ - gnu/packages/freedesktop.scm \ - gnu/packages/freeipmi.scm \ - gnu/packages/ftp.scm \ - gnu/packages/fribidi.scm \ - gnu/packages/fvwm.scm \ - gnu/packages/game-development.scm \ - gnu/packages/games.scm \ - gnu/packages/gawk.scm \ - gnu/packages/gcal.scm \ - gnu/packages/gcc.scm \ - gnu/packages/gd.scm \ - gnu/packages/gdb.scm \ - gnu/packages/geeqie.scm \ - gnu/packages/gettext.scm \ - gnu/packages/ghostscript.scm \ - gnu/packages/gimp.scm \ - gnu/packages/gkrellm.scm \ - gnu/packages/gl.scm \ - gnu/packages/glib.scm \ - gnu/packages/gnome.scm \ - gnu/packages/gnu-doc.scm \ - gnu/packages/gnucash.scm \ - gnu/packages/gnunet.scm \ - gnu/packages/gnupg.scm \ - gnu/packages/gnustep.scm \ - gnu/packages/gnuzilla.scm \ - gnu/packages/gnu-pw-mgr.scm \ - gnu/packages/gperf.scm \ - gnu/packages/gprolog.scm \ - gnu/packages/gps.scm \ - gnu/packages/graphics.scm \ - gnu/packages/graphviz.scm \ - gnu/packages/groff.scm \ - gnu/packages/grub.scm \ - gnu/packages/grue-hunter.scm \ - gnu/packages/gsasl.scm \ - gnu/packages/gstreamer.scm \ - gnu/packages/gtk.scm \ - gnu/packages/guile.scm \ - gnu/packages/guile-wm.scm \ - gnu/packages/gv.scm \ - gnu/packages/gxmessage.scm \ - gnu/packages/haskell.scm \ - gnu/packages/hugs.scm \ - gnu/packages/hurd.scm \ - gnu/packages/ibus.scm \ - gnu/packages/icu4c.scm \ - gnu/packages/idutils.scm \ - gnu/packages/image.scm \ - gnu/packages/imagemagick.scm \ - gnu/packages/indent.scm \ - gnu/packages/inklingreader.scm \ - gnu/packages/inkscape.scm \ - gnu/packages/irc.scm \ - gnu/packages/iso-codes.scm \ - gnu/packages/java.scm \ - gnu/packages/jemalloc.scm \ - gnu/packages/jrnl.scm \ - gnu/packages/julia.scm \ - gnu/packages/kde.scm \ - gnu/packages/kde-frameworks.scm \ - gnu/packages/key-mon.scm \ - gnu/packages/kodi.scm \ - gnu/packages/language.scm \ - gnu/packages/ldc.scm \ - gnu/packages/lego.scm \ - gnu/packages/less.scm \ - gnu/packages/lesstif.scm \ - gnu/packages/libcanberra.scm \ - gnu/packages/libdaemon.scm \ - gnu/packages/libedit.scm \ - gnu/packages/libevent.scm \ - gnu/packages/libffcall.scm \ - gnu/packages/libffi.scm \ - gnu/packages/libftdi.scm \ - gnu/packages/calendar.scm \ - gnu/packages/libidn.scm \ - gnu/packages/libphidget.scm \ - gnu/packages/libreoffice.scm \ - gnu/packages/libsigsegv.scm \ - gnu/packages/libunistring.scm \ - gnu/packages/libusb.scm \ - gnu/packages/libunwind.scm \ - gnu/packages/libupnp.scm \ - gnu/packages/lightning.scm \ - gnu/packages/links.scm \ - gnu/packages/linux.scm \ - gnu/packages/lirc.scm \ - gnu/packages/lisp.scm \ - gnu/packages/llvm.scm \ - gnu/packages/lout.scm \ - gnu/packages/lsh.scm \ - gnu/packages/lsof.scm \ - gnu/packages/lua.scm \ - gnu/packages/lxde.scm \ - gnu/packages/lxqt.scm \ - gnu/packages/lynx.scm \ - gnu/packages/m4.scm \ - gnu/packages/machine-learning.scm \ - gnu/packages/man.scm \ - gnu/packages/mail.scm \ - gnu/packages/make-bootstrap.scm \ - gnu/packages/markdown.scm \ - gnu/packages/marst.scm \ - gnu/packages/mate.scm \ - gnu/packages/maths.scm \ - gnu/packages/mc.scm \ - gnu/packages/mcrypt.scm \ - gnu/packages/messaging.scm \ - gnu/packages/mg.scm \ - gnu/packages/mit-krb5.scm \ - gnu/packages/moe.scm \ - gnu/packages/moreutils.scm \ - gnu/packages/mpd.scm \ - gnu/packages/mp3.scm \ - gnu/packages/mpi.scm \ - gnu/packages/multiprecision.scm \ - gnu/packages/music.scm \ - gnu/packages/mtools.scm \ - gnu/packages/nano.scm \ - gnu/packages/ncdu.scm \ - gnu/packages/ncurses.scm \ - gnu/packages/netpbm.scm \ - gnu/packages/nettle.scm \ - gnu/packages/networking.scm \ - gnu/packages/ninja.scm \ - gnu/packages/node.scm \ - gnu/packages/noweb.scm \ - gnu/packages/ntp.scm \ - gnu/packages/nutrition.scm \ - gnu/packages/nvi.scm \ - gnu/packages/ocaml.scm \ - gnu/packages/ocr.scm \ - gnu/packages/onc-rpc.scm \ - gnu/packages/openbox.scm \ - gnu/packages/openldap.scm \ - gnu/packages/openstack.scm \ - gnu/packages/orpheus.scm \ - gnu/packages/ots.scm \ - gnu/packages/owncloud.scm \ - gnu/packages/package-management.scm \ - gnu/packages/parallel.scm \ - gnu/packages/password-utils.scm \ - gnu/packages/patchutils.scm \ - gnu/packages/pciutils.scm \ - gnu/packages/pcre.scm \ - gnu/packages/pdf.scm \ - gnu/packages/pem.scm \ - gnu/packages/perl.scm \ - gnu/packages/photo.scm \ - gnu/packages/pkg-config.scm \ - gnu/packages/plotutils.scm \ - gnu/packages/polkit.scm \ - gnu/packages/popt.scm \ - gnu/packages/pth.scm \ - gnu/packages/pulseaudio.scm \ - gnu/packages/pumpio.scm \ - gnu/packages/pretty-print.scm \ - gnu/packages/protobuf.scm \ - gnu/packages/pv.scm \ - gnu/packages/python.scm \ - gnu/packages/qemu.scm \ - gnu/packages/qt.scm \ - gnu/packages/ragel.scm \ - gnu/packages/ratpoison.scm \ - gnu/packages/rc.scm \ - gnu/packages/rdesktop.scm \ - gnu/packages/rdf.scm \ - gnu/packages/readline.scm \ - gnu/packages/rrdtool.scm \ - gnu/packages/rsync.scm \ - gnu/packages/ruby.scm \ - gnu/packages/rush.scm \ - gnu/packages/samba.scm \ - gnu/packages/sawfish.scm \ - gnu/packages/scanner.scm \ - gnu/packages/scheme.scm \ - gnu/packages/screen.scm \ - gnu/packages/scribus.scm \ - gnu/packages/sdl.scm \ - gnu/packages/search.scm \ - gnu/packages/serialization.scm \ - gnu/packages/serveez.scm \ - gnu/packages/shishi.scm \ - gnu/packages/skarnet.scm \ - gnu/packages/skribilo.scm \ - gnu/packages/slang.scm \ - gnu/packages/slim.scm \ - gnu/packages/smalltalk.scm \ - gnu/packages/ssh.scm \ - gnu/packages/stalonetray.scm \ - gnu/packages/statistics.scm \ - gnu/packages/suckless.scm \ - gnu/packages/swig.scm \ - gnu/packages/sxiv.scm \ - gnu/packages/synergy.scm \ - gnu/packages/task-management.scm \ - gnu/packages/tbb.scm \ - gnu/packages/tcl.scm \ - gnu/packages/tcsh.scm \ - gnu/packages/telephony.scm \ - gnu/packages/terminals.scm \ - gnu/packages/texinfo.scm \ - gnu/packages/texlive.scm \ - gnu/packages/textutils.scm \ - gnu/packages/time.scm \ - gnu/packages/tls.scm \ - gnu/packages/tmux.scm \ - gnu/packages/tor.scm \ - gnu/packages/tre.scm \ - gnu/packages/tv.scm \ - gnu/packages/unrtf.scm \ - gnu/packages/upnp.scm \ - gnu/packages/uucp.scm \ - gnu/packages/valgrind.scm \ - gnu/packages/version-control.scm \ - gnu/packages/video.scm \ - gnu/packages/vim.scm \ - gnu/packages/vpn.scm \ - gnu/packages/vtk.scm \ - gnu/packages/w3m.scm \ - gnu/packages/wdiff.scm \ - gnu/packages/web.scm \ - gnu/packages/webkit.scm \ - gnu/packages/wget.scm \ - gnu/packages/wicd.scm \ - gnu/packages/wine.scm \ - gnu/packages/wm.scm \ - gnu/packages/wordnet.scm \ - gnu/packages/wv.scm \ - gnu/packages/wxwidgets.scm \ - gnu/packages/xfig.scm \ - gnu/packages/xiph.scm \ - gnu/packages/xml.scm \ - gnu/packages/xnee.scm \ - gnu/packages/xdisorg.scm \ - gnu/packages/xorg.scm \ - gnu/packages/xfce.scm \ - gnu/packages/yasm.scm \ - gnu/packages/yubico.scm \ - gnu/packages/zile.scm \ - gnu/packages/zip.scm \ - gnu/packages/zsh.scm \ - \ - gnu/services.scm \ - gnu/services/avahi.scm \ - gnu/services/base.scm \ - gnu/services/databases.scm \ - gnu/services/dbus.scm \ - gnu/services/desktop.scm \ - gnu/services/lirc.scm \ - gnu/services/mail.scm \ - gnu/services/networking.scm \ - gnu/services/shepherd.scm \ - gnu/services/herd.scm \ - gnu/services/ssh.scm \ - gnu/services/web.scm \ - gnu/services/xorg.scm \ - \ - gnu/system.scm \ - gnu/system/file-systems.scm \ - gnu/system/grub.scm \ - gnu/system/install.scm \ - gnu/system/linux-container.scm \ - gnu/system/linux-initrd.scm \ - gnu/system/locale.scm \ - gnu/system/mapped-devices.scm \ - gnu/system/nss.scm \ - gnu/system/pam.scm \ - gnu/system/shadow.scm \ - gnu/system/vm.scm \ - \ - gnu/build/activation.scm \ - gnu/build/file-systems.scm \ - gnu/build/install.scm \ - gnu/build/linux-boot.scm \ - gnu/build/linux-container.scm \ - gnu/build/linux-initrd.scm \ - gnu/build/linux-modules.scm \ - gnu/build/vm.scm - - -patchdir = $(guilemoduledir)/gnu/packages/patches -dist_patch_DATA = \ - gnu/packages/patches/abiword-explictly-cast-bools.patch \ - gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ - gnu/packages/patches/acl-hurd-path-max.patch \ - gnu/packages/patches/aegis-constness-error.patch \ - gnu/packages/patches/aegis-perl-tempdir1.patch \ - gnu/packages/patches/aegis-perl-tempdir2.patch \ - gnu/packages/patches/aegis-test-fixup-1.patch \ - gnu/packages/patches/aegis-test-fixup-2.patch \ - gnu/packages/patches/agg-am_c_prototype.patch \ - gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ - gnu/packages/patches/apr-skip-getservbyname-test.patch \ - gnu/packages/patches/arb-ldconfig.patch \ - gnu/packages/patches/asymptote-gsl2.patch \ - gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ - gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ - gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ - gnu/packages/patches/audacity-fix-ffmpeg-binding.patch \ - gnu/packages/patches/automake-skip-amhello-tests.patch \ - gnu/packages/patches/automake-regexp-syntax.patch \ - gnu/packages/patches/avahi-localstatedir.patch \ - gnu/packages/patches/avidemux-install-to-lib.patch \ - gnu/packages/patches/avrdude-fix-libusb.patch \ - gnu/packages/patches/bash-completion-directories.patch \ - gnu/packages/patches/bigloo-gc-shebangs.patch \ - gnu/packages/patches/binutils-ld-new-dtags.patch \ - gnu/packages/patches/binutils-loongson-workaround.patch \ - gnu/packages/patches/byobu-writable-status.patch \ - gnu/packages/patches/calibre-drop-unrar.patch \ - gnu/packages/patches/calibre-no-updates-dialog.patch \ - gnu/packages/patches/cdparanoia-fpic.patch \ - gnu/packages/patches/chmlib-inttypes.patch \ - gnu/packages/patches/clang-libc-search-path.patch \ - gnu/packages/patches/clucene-pkgconfig.patch \ - gnu/packages/patches/cmake-fix-tests.patch \ - gnu/packages/patches/cpio-gets-undeclared.patch \ - gnu/packages/patches/cpio-CVE-2016-2037.patch \ - gnu/packages/patches/cpufrequtils-fix-aclocal.patch \ - gnu/packages/patches/crda-optional-gcrypt.patch \ - gnu/packages/patches/crossmap-allow-system-pysam.patch \ - gnu/packages/patches/csound-header-ordering.patch \ - gnu/packages/patches/cssc-gets-undeclared.patch \ - gnu/packages/patches/cssc-missing-include.patch \ - gnu/packages/patches/clucene-contribs-lib.patch \ - gnu/packages/patches/cursynth-wave-rand.patch \ - gnu/packages/patches/dbus-helper-search-path.patch \ - gnu/packages/patches/dealii-p4est-interface.patch \ - gnu/packages/patches/devil-fix-libpng.patch \ - gnu/packages/patches/dico-libtool-deterministic.patch \ - gnu/packages/patches/diffutils-gets-undeclared.patch \ - gnu/packages/patches/dfu-programmer-fix-libusb.patch \ - gnu/packages/patches/doxygen-test.patch \ - gnu/packages/patches/duplicity-piped-password.patch \ - gnu/packages/patches/duplicity-test_selection-tmp.patch \ - gnu/packages/patches/elfutils-tests-ptrace.patch \ - gnu/packages/patches/einstein-build.patch \ - gnu/packages/patches/emacs-constants-lisp-like.patch \ - gnu/packages/patches/emacs-exec-path.patch \ - gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ - gnu/packages/patches/emacs-source-date-epoch.patch \ - gnu/packages/patches/eudev-rules-directory.patch \ - gnu/packages/patches/evilwm-lost-focus-bug.patch \ - gnu/packages/patches/expat-CVE-2015-1283.patch \ - gnu/packages/patches/fastcap-mulGlobal.patch \ - gnu/packages/patches/fastcap-mulSetup.patch \ - gnu/packages/patches/fasthenry-spAllocate.patch \ - gnu/packages/patches/fasthenry-spBuild.patch \ - gnu/packages/patches/fasthenry-spUtils.patch \ - gnu/packages/patches/fasthenry-spSolve.patch \ - gnu/packages/patches/fasthenry-spFactor.patch \ - gnu/packages/patches/findutils-localstatedir.patch \ - gnu/packages/patches/findutils-test-xargs.patch \ - gnu/packages/patches/flashrom-use-libftdi1.patch \ - gnu/packages/patches/flint-ldconfig.patch \ - gnu/packages/patches/fltk-shared-lib-defines.patch \ - gnu/packages/patches/fontforge-svg-modtime.patch \ - gnu/packages/patches/freeimage-CVE-2015-0852.patch \ - gnu/packages/patches/gawk-fts-test.patch \ - gnu/packages/patches/gawk-shell.patch \ - gnu/packages/patches/gcc-arm-link-spec-fix.patch \ - gnu/packages/patches/gcc-cross-environment-variables.patch \ - gnu/packages/patches/gcc-libvtv-runpath.patch \ - gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \ - gnu/packages/patches/geoclue-config.patch \ - gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ - gnu/packages/patches/ghostscript-runpath.patch \ - gnu/packages/patches/glib-networking-ssl-cert-file.patch \ - gnu/packages/patches/glib-tests-desktop.patch \ - gnu/packages/patches/glib-tests-homedir.patch \ - gnu/packages/patches/glib-tests-prlimit.patch \ - gnu/packages/patches/glib-tests-timer.patch \ - gnu/packages/patches/glib-tests-gapplication.patch \ - gnu/packages/patches/glibc-CVE-2015-7547.patch \ - gnu/packages/patches/glibc-bootstrap-system.patch \ - gnu/packages/patches/glibc-hurd-extern-inline.patch \ - gnu/packages/patches/glibc-ldd-x86_64.patch \ - gnu/packages/patches/glibc-locales.patch \ - gnu/packages/patches/glibc-locale-incompatibility.patch \ - gnu/packages/patches/glibc-o-largefile.patch \ - gnu/packages/patches/glibc-versioned-locpath.patch \ - gnu/packages/patches/gmp-arm-asm-nothumb.patch \ - gnu/packages/patches/gmp-faulty-test.patch \ - gnu/packages/patches/gnucash-price-quotes-perl.patch \ - gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch \ - gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ - gnu/packages/patches/gobject-introspection-cc.patch \ - gnu/packages/patches/gobject-introspection-girepository.patch \ - gnu/packages/patches/grep-timing-sensitive-test.patch \ - gnu/packages/patches/grub-CVE-2015-8370.patch \ - gnu/packages/patches/grub-gets-undeclared.patch \ - gnu/packages/patches/grub-freetype.patch \ - gnu/packages/patches/guile-1.8-cpp-4.5.patch \ - gnu/packages/patches/guile-arm-fixes.patch \ - gnu/packages/patches/guile-default-utf8.patch \ - gnu/packages/patches/guile-linux-syscalls.patch \ - gnu/packages/patches/guile-present-coding.patch \ - gnu/packages/patches/guile-relocatable.patch \ - gnu/packages/patches/guile-rsvg-pkgconfig.patch \ - gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ - gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ - gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ - gnu/packages/patches/hop-bigloo-4.0b.patch \ - gnu/packages/patches/hop-linker-flags.patch \ - gnu/packages/patches/hydra-automake-1.15.patch \ - gnu/packages/patches/hydra-disable-darcs-test.patch \ - gnu/packages/patches/icecat-avoid-bundled-includes.patch \ - gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ - gnu/packages/patches/icu4c-CVE-2014-6585.patch \ - gnu/packages/patches/icu4c-CVE-2015-1270.patch \ - gnu/packages/patches/icu4c-CVE-2015-4760.patch \ - gnu/packages/patches/ilmbase-fix-tests.patch \ - gnu/packages/patches/imagemagick-test-segv.patch \ - gnu/packages/patches/irrlicht-mesa-10.patch \ - gnu/packages/patches/jasper-CVE-2007-2721.patch \ - gnu/packages/patches/jasper-CVE-2008-3520.patch \ - gnu/packages/patches/jasper-CVE-2008-3522.patch \ - gnu/packages/patches/jasper-CVE-2011-4516-and-CVE-2011-4517.patch \ - gnu/packages/patches/jasper-CVE-2014-8137.patch \ - gnu/packages/patches/jasper-CVE-2014-8138.patch \ - gnu/packages/patches/jasper-CVE-2014-8157.patch \ - gnu/packages/patches/jasper-CVE-2014-8158.patch \ - gnu/packages/patches/jasper-CVE-2014-9029.patch \ - gnu/packages/patches/jasper-CVE-2016-1577.patch \ - gnu/packages/patches/jasper-CVE-2016-1867.patch \ - gnu/packages/patches/jasper-CVE-2016-2089.patch \ - gnu/packages/patches/jasper-CVE-2016-2116.patch \ - gnu/packages/patches/jbig2dec-ignore-testtest.patch \ - gnu/packages/patches/kmod-module-directory.patch \ - gnu/packages/patches/ldc-disable-tests.patch \ - gnu/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \ - gnu/packages/patches/liba52-enable-pic.patch \ - gnu/packages/patches/liba52-link-with-libm.patch \ - gnu/packages/patches/liba52-set-soname.patch \ - gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \ - gnu/packages/patches/libarchive-bsdtar-test.patch \ - gnu/packages/patches/libarchive-CVE-2013-0211.patch \ - gnu/packages/patches/libarchive-fix-lzo-test-case.patch \ - gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ - gnu/packages/patches/libbonobo-activation-test-race.patch \ - gnu/packages/patches/libcanberra-sound-theme-freedesktop.patch \ - gnu/packages/patches/libcmis-fix-test-onedrive.patch \ - gnu/packages/patches/libdrm-symbol-check.patch \ - gnu/packages/patches/libevent-dns-tests.patch \ - gnu/packages/patches/libextractor-ffmpeg-3.patch \ - gnu/packages/patches/libmtp-devices.patch \ - gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ - gnu/packages/patches/libotr-test-auth-fix.patch \ - gnu/packages/patches/liblxqt-include.patch \ - gnu/packages/patches/libmad-armv7-thumb-pt1.patch \ - gnu/packages/patches/libmad-armv7-thumb-pt2.patch \ - gnu/packages/patches/libmad-frame-length.patch \ - gnu/packages/patches/libmad-mips-newgcc.patch \ - gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ - gnu/packages/patches/libtheora-config-guess.patch \ - gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ - gnu/packages/patches/libtiff-oob-accesses-in-decode.patch \ - gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch \ - gnu/packages/patches/libtool-skip-tests2.patch \ - gnu/packages/patches/libunwind-CVE-2015-3239.patch \ - gnu/packages/patches/libwmf-CAN-2004-0941.patch \ - gnu/packages/patches/libwmf-CVE-2006-3376.patch \ - gnu/packages/patches/libwmf-CVE-2007-0455.patch \ - gnu/packages/patches/libwmf-CVE-2007-2756.patch \ - gnu/packages/patches/libwmf-CVE-2007-3472.patch \ - gnu/packages/patches/libwmf-CVE-2007-3473.patch \ - gnu/packages/patches/libwmf-CVE-2007-3477.patch \ - gnu/packages/patches/libwmf-CVE-2009-1364.patch \ - gnu/packages/patches/libwmf-CVE-2009-3546.patch \ - gnu/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ - gnu/packages/patches/libwmf-CVE-2015-4695.patch \ - gnu/packages/patches/libwmf-CVE-2015-4696.patch \ - gnu/packages/patches/libxslt-CVE-2015-7995.patch \ - gnu/packages/patches/lirc-localstatedir.patch \ - gnu/packages/patches/libpthread-glibc-preparation.patch \ - gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ - gnu/packages/patches/lua-pkgconfig.patch \ - gnu/packages/patches/lua51-liblua-so.patch \ - gnu/packages/patches/lua52-liblua-so.patch \ - gnu/packages/patches/luajit-no_ldconfig.patch \ - gnu/packages/patches/luajit-symlinks.patch \ - gnu/packages/patches/luit-posix.patch \ - gnu/packages/patches/m4-gets-undeclared.patch \ - gnu/packages/patches/make-impure-dirs.patch \ - gnu/packages/patches/mars-install.patch \ - gnu/packages/patches/mars-sfml-2.3.patch \ - gnu/packages/patches/matplotlib-setupext-tk.patch \ - gnu/packages/patches/maxima-defsystem-mkdir.patch \ - gnu/packages/patches/mcron-install.patch \ - gnu/packages/patches/mdadm-gcc-4.9-fix.patch \ - gnu/packages/patches/mhash-keygen-test-segfault.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8630.patch \ - gnu/packages/patches/mit-krb5-CVE-2015-8631.patch \ - gnu/packages/patches/mit-krb5-init-context-null-spnego.patch \ - gnu/packages/patches/mpc123-initialize-ao.patch \ - gnu/packages/patches/mplayer2-theora-fix.patch \ - gnu/packages/patches/module-init-tools-moduledir.patch \ - gnu/packages/patches/mumps-build-parallelism.patch \ - gnu/packages/patches/mupen64plus-ui-console-notice.patch \ - gnu/packages/patches/mutt-store-references.patch \ - gnu/packages/patches/net-tools-bitrot.patch \ - gnu/packages/patches/ngircd-handle-zombies.patch \ - gnu/packages/patches/ngircd-no-dns-in-tests.patch \ - gnu/packages/patches/ninja-tests.patch \ - gnu/packages/patches/ninja-zero-mtime.patch \ - gnu/packages/patches/nss-pkgconfig.patch \ - gnu/packages/patches/nvi-assume-preserve-path.patch \ - gnu/packages/patches/nvi-dbpagesize-binpower.patch \ - gnu/packages/patches/nvi-db4.patch \ - gnu/packages/patches/ocaml-findlib-make-install.patch \ - gnu/packages/patches/openexr-missing-samples.patch \ - gnu/packages/patches/openimageio-boost-1.60.patch \ - gnu/packages/patches/openjpeg-CVE-2015-6581.patch \ - gnu/packages/patches/openjpeg-use-after-free-fix.patch \ - gnu/packages/patches/openssh-CVE-2015-8325.patch \ - gnu/packages/patches/openssl-runpath.patch \ - gnu/packages/patches/openssl-c-rehash-in.patch \ - gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ - gnu/packages/patches/ots-no-include-missing-file.patch \ - gnu/packages/patches/patchelf-page-size.patch \ - gnu/packages/patches/patchelf-rework-for-arm.patch \ - gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ - gnu/packages/patches/patch-hurd-path-max.patch \ - gnu/packages/patches/pcre-CVE-2016-3191.patch \ - gnu/packages/patches/perl-CVE-2015-8607.patch \ - gnu/packages/patches/perl-CVE-2016-2381.patch \ - gnu/packages/patches/perl-autosplit-default-time.patch \ - gnu/packages/patches/perl-deterministic-ordering.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-io-socket-ssl-openssl-1.0.2f-fix.patch \ - gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \ - gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \ - gnu/packages/patches/perl-no-build-time.patch \ - gnu/packages/patches/perl-no-sys-dirs.patch \ - gnu/packages/patches/perl-module-pluggable-search.patch \ - gnu/packages/patches/perl-source-date-epoch.patch \ - gnu/packages/patches/pidgin-add-search-path.patch \ - gnu/packages/patches/pinball-const-fix.patch \ - gnu/packages/patches/pinball-cstddef.patch \ - gnu/packages/patches/pinball-missing-separators.patch \ - gnu/packages/patches/pinball-src-deps.patch \ - gnu/packages/patches/pinball-system-ltdl.patch \ - gnu/packages/patches/pingus-sdl-libs-config.patch \ - gnu/packages/patches/plink-1.07-unclobber-i.patch \ - gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ - gnu/packages/patches/polkit-drop-test.patch \ - gnu/packages/patches/portaudio-audacity-compat.patch \ - gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ - gnu/packages/patches/pt-scotch-build-parallelism.patch \ - gnu/packages/patches/pulseaudio-fix-mult-test.patch \ - gnu/packages/patches/pulseaudio-longer-test-timeout.patch \ - gnu/packages/patches/pycairo-wscript.patch \ - gnu/packages/patches/pybugz-encode-error.patch \ - gnu/packages/patches/pybugz-stty.patch \ - gnu/packages/patches/pygpgme-disable-problematic-tests.patch \ - gnu/packages/patches/pyqt-configure.patch \ - gnu/packages/patches/python-2-deterministic-build-info.patch \ - gnu/packages/patches/python-2.7-search-paths.patch \ - gnu/packages/patches/python-2.7-source-date-epoch.patch \ - gnu/packages/patches/python-3-deterministic-build-info.patch \ - gnu/packages/patches/python-3-search-paths.patch \ - gnu/packages/patches/python-disable-ssl-test.patch \ - gnu/packages/patches/python-fix-tests.patch \ - gnu/packages/patches/python-ipython-inputhook-ctype.patch \ - gnu/packages/patches/python-rarfile-fix-tests.patch \ - gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ - gnu/packages/patches/python-configobj-setuptools.patch \ - gnu/packages/patches/python-paste-remove-website-test.patch \ - gnu/packages/patches/python-paste-remove-timing-test.patch \ - gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ - gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \ - gnu/packages/patches/qemu-CVE-2015-8558.patch \ - gnu/packages/patches/qemu-CVE-2015-8567.patch \ - gnu/packages/patches/qemu-CVE-2015-8613.patch \ - gnu/packages/patches/qemu-CVE-2015-8619.patch \ - gnu/packages/patches/qemu-CVE-2015-8701.patch \ - gnu/packages/patches/qemu-CVE-2015-8743.patch \ - gnu/packages/patches/qemu-CVE-2016-1568.patch \ - gnu/packages/patches/qemu-CVE-2016-1922.patch \ - gnu/packages/patches/qemu-CVE-2016-1981.patch \ - gnu/packages/patches/qemu-CVE-2016-2197.patch \ - gnu/packages/patches/qemu-usb-ehci-oob-read.patch \ - gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch \ - gnu/packages/patches/qt4-ldflags.patch \ - gnu/packages/patches/ratpoison-shell.patch \ - gnu/packages/patches/readline-link-ncurses.patch \ - gnu/packages/patches/ripperx-missing-file.patch \ - gnu/packages/patches/rsem-makefile.patch \ - gnu/packages/patches/sed-hurd-path-max.patch \ - gnu/packages/patches/scheme48-tests.patch \ - gnu/packages/patches/scotch-test-threading.patch \ - gnu/packages/patches/sdl-libx11-1.6.patch \ - gnu/packages/patches/serf-comment-style-fix.patch \ - gnu/packages/patches/serf-deflate-buckets-test-fix.patch \ - gnu/packages/patches/slim-session.patch \ - gnu/packages/patches/slim-config.patch \ - gnu/packages/patches/slim-sigusr1.patch \ - gnu/packages/patches/slurm-configure-remove-nonfree-contribs.patch \ - gnu/packages/patches/soprano-find-clucene.patch \ - gnu/packages/patches/sudo-CVE-2015-5602.patch \ - gnu/packages/patches/superlu-dist-scotchmetis.patch \ - gnu/packages/patches/synfig-build-fix.patch \ - gnu/packages/patches/tar-d_ino_in_dirent-fix.patch \ - gnu/packages/patches/tar-skip-unreliable-tests.patch \ - gnu/packages/patches/tcl-mkindex-deterministic.patch \ - gnu/packages/patches/tclxml-3.2-install.patch \ - gnu/packages/patches/tcsh-fix-autotest.patch \ - gnu/packages/patches/texi2html-document-encoding.patch \ - gnu/packages/patches/texi2html-i18n.patch \ - gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ - gnu/packages/patches/tinyxml-use-stl.patch \ - gnu/packages/patches/tk-find-library.patch \ - gnu/packages/patches/ttf2eot-cstddef.patch \ - gnu/packages/patches/ttfautohint-source-date-epoch.patch \ - gnu/packages/patches/tophat-build-with-later-seqan.patch \ - gnu/packages/patches/torsocks-dns-test.patch \ - gnu/packages/patches/tvtime-gcc41.patch \ - gnu/packages/patches/tvtime-pngoutput.patch \ - gnu/packages/patches/tvtime-videodev2.patch \ - gnu/packages/patches/tvtime-xmltv.patch \ - gnu/packages/patches/unzip-CVE-2014-8139.patch \ - gnu/packages/patches/unzip-CVE-2014-8140.patch \ - gnu/packages/patches/unzip-CVE-2014-8141.patch \ - gnu/packages/patches/unzip-CVE-2014-9636.patch \ - gnu/packages/patches/unzip-CVE-2015-7696.patch \ - gnu/packages/patches/unzip-CVE-2015-7697.patch \ - gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ - gnu/packages/patches/unzip-attribs-overflow.patch \ - gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ - gnu/packages/patches/unzip-format-secure.patch \ - gnu/packages/patches/unzip-initialize-symlink-flag.patch \ - gnu/packages/patches/unzip-overflow-long-fsize.patch \ - gnu/packages/patches/unzip-remove-build-date.patch \ - gnu/packages/patches/util-linux-tests.patch \ - gnu/packages/patches/upower-builddir.patch \ - gnu/packages/patches/valgrind-enable-arm.patch \ - gnu/packages/patches/vorbis-tools-CVE-2015-6749.patch \ - gnu/packages/patches/vpnc-script.patch \ - gnu/packages/patches/vtk-mesa-10.patch \ - gnu/packages/patches/w3m-libgc.patch \ - gnu/packages/patches/w3m-force-ssl_verify_server-on.patch \ - gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ - gnu/packages/patches/w3m-disable-weak-ciphers.patch \ - gnu/packages/patches/weechat-python.patch \ - gnu/packages/patches/weex-vacopy.patch \ - gnu/packages/patches/wicd-bitrate-none-fix.patch \ - gnu/packages/patches/wicd-get-selected-profile-fix.patch \ - gnu/packages/patches/wicd-urwid-1.3.patch \ - gnu/packages/patches/wicd-wpa2-ttls.patch \ - gnu/packages/patches/wmctrl-64-fix.patch \ - gnu/packages/patches/woff2-libbrotli.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ - gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ - gnu/packages/patches/xdotool-fix-makefile.patch \ - gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-geode-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-glint-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-i128-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-intel-compat-api.patch \ - gnu/packages/patches/xf86-video-intel-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-nv-remove-mibstore.patch \ - gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch \ - gnu/packages/patches/xf86-video-tga-remove-mibstore.patch \ - gnu/packages/patches/xfce4-panel-plugins.patch \ - gnu/packages/patches/xfce4-session-fix-xflock4.patch \ - gnu/packages/patches/xfce4-settings-defaults.patch \ - gnu/packages/patches/xmodmap-asprintf.patch \ - gnu/packages/patches/zathura-plugindir-environment-variable.patch - -MISC_DISTRO_FILES = \ - gnu/packages/ld-wrapper.in - -bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap -bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux -bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux -bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux -bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux - -dist_bootstrap_x86_64_linux_DATA = \ - gnu/packages/bootstrap/x86_64-linux/bash \ - gnu/packages/bootstrap/x86_64-linux/mkdir \ - gnu/packages/bootstrap/x86_64-linux/tar \ - gnu/packages/bootstrap/x86_64-linux/xz - -dist_bootstrap_i686_linux_DATA = \ - gnu/packages/bootstrap/i686-linux/bash \ - gnu/packages/bootstrap/i686-linux/mkdir \ - gnu/packages/bootstrap/i686-linux/tar \ - gnu/packages/bootstrap/i686-linux/xz - -dist_bootstrap_armhf_linux_DATA = \ - gnu/packages/bootstrap/armhf-linux/bash \ - gnu/packages/bootstrap/armhf-linux/mkdir \ - gnu/packages/bootstrap/armhf-linux/tar \ - gnu/packages/bootstrap/armhf-linux/xz - -dist_bootstrap_mips64el_linux_DATA = \ - gnu/packages/bootstrap/mips64el-linux/bash \ - gnu/packages/bootstrap/mips64el-linux/mkdir \ - gnu/packages/bootstrap/mips64el-linux/tar \ - gnu/packages/bootstrap/mips64el-linux/xz - -# Big bootstrap binaries are not included in the tarball. Instead, they -# are downloaded. -nodist_bootstrap_x86_64_linux_DATA = \ - gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz -nodist_bootstrap_i686_linux_DATA = \ - gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz -nodist_bootstrap_armhf_linux_DATA = \ - gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz -nodist_bootstrap_mips64el_linux_DATA = \ - gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz - -# Those files must remain executable, so they remain executable once -# imported into the store. -set-bootstrap-executable-permissions: - chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz} - -DISTCLEANFILES = \ - $(nodist_bootstrap_x86_64_linux_DATA) \ - $(nodist_bootstrap_i686_linux_DATA) \ - $(nodist_bootstrap_armhf_linux_DATA) \ - $(nodist_bootstrap_mips64el_linux_DATA) - -# Method to download a file from an external source. -DOWNLOAD_FILE = \ - GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \ - $(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \ - "$(top_srcdir)/build-aux/download.scm" - -gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz: - $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ - $(DOWNLOAD_FILE) "$@" \ - "037b103522a2d0d7d69c7ffd8de683dfe5bb4b59c1fafd70b4ffd397fd2f57f0" -gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz: - $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ - $(DOWNLOAD_FILE) "$@" \ - "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846" -gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz: - $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ - $(DOWNLOAD_FILE) "$@" \ - "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6" -gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: - $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ - $(DOWNLOAD_FILE) "$@" \ - "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b" diff --git a/gnu/local.mk b/gnu/local.mk new file mode 100644 index 0000000000..d58155a1b5 --- /dev/null +++ b/gnu/local.mk @@ -0,0 +1,875 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2013, 2014, 2015, 2016 Andreas Enge +# Copyright © 2016 Mathieu Lirzin +# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver +# Copyright © 2016 Chris Marusich +# Copyright © 2016 Kei Yamashita +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# Definitions for the GNU System: package modules, patches, bootstrap +# binaries. + +GNU_SYSTEM_MODULES = \ + gnu.scm \ + gnu/artwork.scm \ + gnu/packages.scm \ + gnu/packages/abduco.scm \ + gnu/packages/abiword.scm \ + gnu/packages/acct.scm \ + gnu/packages/acl.scm \ + gnu/packages/admin.scm \ + gnu/packages/adns.scm \ + gnu/packages/algebra.scm \ + gnu/packages/aidc.scm \ + gnu/packages/animation.scm \ + gnu/packages/anthy.scm \ + gnu/packages/apl.scm \ + gnu/packages/apr.scm \ + gnu/packages/asciidoc.scm \ + gnu/packages/aspell.scm \ + gnu/packages/attr.scm \ + gnu/packages/audacity.scm \ + gnu/packages/audio.scm \ + gnu/packages/augeas.scm \ + gnu/packages/autogen.scm \ + gnu/packages/autotools.scm \ + gnu/packages/avahi.scm \ + gnu/packages/avr.scm \ + gnu/packages/backup.scm \ + gnu/packages/base.scm \ + gnu/packages/bash.scm \ + gnu/packages/bdw-gc.scm \ + gnu/packages/bioinformatics.scm \ + gnu/packages/bittorrent.scm \ + gnu/packages/bison.scm \ + gnu/packages/boost.scm \ + gnu/packages/bootstrap.scm \ + gnu/packages/busybox.scm \ + gnu/packages/c.scm \ + gnu/packages/calcurse.scm \ + gnu/packages/ccache.scm \ + gnu/packages/cdrom.scm \ + gnu/packages/certs.scm \ + gnu/packages/check.scm \ + gnu/packages/ci.scm \ + gnu/packages/cmake.scm \ + gnu/packages/code.scm \ + gnu/packages/commencement.scm \ + gnu/packages/compression.scm \ + gnu/packages/conkeror.scm \ + gnu/packages/conky.scm \ + gnu/packages/cook.scm \ + gnu/packages/cpio.scm \ + gnu/packages/cppi.scm \ + gnu/packages/cross-base.scm \ + gnu/packages/crypto.scm \ + gnu/packages/cryptsetup.scm \ + gnu/packages/cups.scm \ + gnu/packages/curl.scm \ + gnu/packages/cyrus-sasl.scm \ + gnu/packages/databases.scm \ + gnu/packages/datamash.scm \ + gnu/packages/datastructures.scm \ + gnu/packages/dav.scm \ + gnu/packages/dc.scm \ + gnu/packages/debug.scm \ + gnu/packages/dejagnu.scm \ + gnu/packages/dico.scm \ + gnu/packages/dictionaries.scm \ + gnu/packages/dillo.scm \ + gnu/packages/disk.scm \ + gnu/packages/djvu.scm \ + gnu/packages/dns.scm \ + gnu/packages/docbook.scm \ + gnu/packages/docker.scm \ + gnu/packages/doxygen.scm \ + gnu/packages/dunst.scm \ + gnu/packages/dvtm.scm \ + gnu/packages/ebook.scm \ + gnu/packages/ed.scm \ + gnu/packages/elf.scm \ + gnu/packages/emacs.scm \ + gnu/packages/enchant.scm \ + gnu/packages/engineering.scm \ + gnu/packages/enlightenment.scm \ + gnu/packages/fcitx.scm \ + gnu/packages/feh.scm \ + gnu/packages/figlet.scm \ + gnu/packages/file.scm \ + gnu/packages/finance.scm \ + gnu/packages/firmware.scm \ + gnu/packages/fish.scm \ + gnu/packages/flashing-tools.scm \ + gnu/packages/flex.scm \ + gnu/packages/fltk.scm \ + gnu/packages/fonts.scm \ + gnu/packages/fontutils.scm \ + gnu/packages/freedesktop.scm \ + gnu/packages/freeipmi.scm \ + gnu/packages/ftp.scm \ + gnu/packages/fribidi.scm \ + gnu/packages/fvwm.scm \ + gnu/packages/game-development.scm \ + gnu/packages/games.scm \ + gnu/packages/gawk.scm \ + gnu/packages/gcal.scm \ + gnu/packages/gcc.scm \ + gnu/packages/gd.scm \ + gnu/packages/gdb.scm \ + gnu/packages/geeqie.scm \ + gnu/packages/gettext.scm \ + gnu/packages/ghostscript.scm \ + gnu/packages/gimp.scm \ + gnu/packages/gkrellm.scm \ + gnu/packages/gl.scm \ + gnu/packages/glib.scm \ + gnu/packages/gnome.scm \ + gnu/packages/gnu-doc.scm \ + gnu/packages/gnucash.scm \ + gnu/packages/gnunet.scm \ + gnu/packages/gnupg.scm \ + gnu/packages/gnustep.scm \ + gnu/packages/gnuzilla.scm \ + gnu/packages/gnu-pw-mgr.scm \ + gnu/packages/gperf.scm \ + gnu/packages/gprolog.scm \ + gnu/packages/gps.scm \ + gnu/packages/graphics.scm \ + gnu/packages/graphviz.scm \ + gnu/packages/groff.scm \ + gnu/packages/grub.scm \ + gnu/packages/grue-hunter.scm \ + gnu/packages/gsasl.scm \ + gnu/packages/gstreamer.scm \ + gnu/packages/gtk.scm \ + gnu/packages/guile.scm \ + gnu/packages/guile-wm.scm \ + gnu/packages/gv.scm \ + gnu/packages/gxmessage.scm \ + gnu/packages/haskell.scm \ + gnu/packages/hugs.scm \ + gnu/packages/hurd.scm \ + gnu/packages/ibus.scm \ + gnu/packages/icu4c.scm \ + gnu/packages/idutils.scm \ + gnu/packages/image.scm \ + gnu/packages/imagemagick.scm \ + gnu/packages/indent.scm \ + gnu/packages/inklingreader.scm \ + gnu/packages/inkscape.scm \ + gnu/packages/irc.scm \ + gnu/packages/iso-codes.scm \ + gnu/packages/java.scm \ + gnu/packages/jemalloc.scm \ + gnu/packages/jrnl.scm \ + gnu/packages/julia.scm \ + gnu/packages/kde.scm \ + gnu/packages/kde-frameworks.scm \ + gnu/packages/key-mon.scm \ + gnu/packages/kodi.scm \ + gnu/packages/language.scm \ + gnu/packages/ldc.scm \ + gnu/packages/lego.scm \ + gnu/packages/less.scm \ + gnu/packages/lesstif.scm \ + gnu/packages/libcanberra.scm \ + gnu/packages/libdaemon.scm \ + gnu/packages/libedit.scm \ + gnu/packages/libevent.scm \ + gnu/packages/libffcall.scm \ + gnu/packages/libffi.scm \ + gnu/packages/libftdi.scm \ + gnu/packages/calendar.scm \ + gnu/packages/libidn.scm \ + gnu/packages/libphidget.scm \ + gnu/packages/libreoffice.scm \ + gnu/packages/libsigsegv.scm \ + gnu/packages/libunistring.scm \ + gnu/packages/libusb.scm \ + gnu/packages/libunwind.scm \ + gnu/packages/libupnp.scm \ + gnu/packages/lightning.scm \ + gnu/packages/links.scm \ + gnu/packages/linux.scm \ + gnu/packages/lirc.scm \ + gnu/packages/lisp.scm \ + gnu/packages/llvm.scm \ + gnu/packages/lout.scm \ + gnu/packages/lsh.scm \ + gnu/packages/lsof.scm \ + gnu/packages/lua.scm \ + gnu/packages/lxde.scm \ + gnu/packages/lxqt.scm \ + gnu/packages/lynx.scm \ + gnu/packages/m4.scm \ + gnu/packages/machine-learning.scm \ + gnu/packages/man.scm \ + gnu/packages/mail.scm \ + gnu/packages/make-bootstrap.scm \ + gnu/packages/markdown.scm \ + gnu/packages/marst.scm \ + gnu/packages/mate.scm \ + gnu/packages/maths.scm \ + gnu/packages/mc.scm \ + gnu/packages/mcrypt.scm \ + gnu/packages/messaging.scm \ + gnu/packages/mg.scm \ + gnu/packages/mit-krb5.scm \ + gnu/packages/moe.scm \ + gnu/packages/moreutils.scm \ + gnu/packages/mpd.scm \ + gnu/packages/mp3.scm \ + gnu/packages/mpi.scm \ + gnu/packages/multiprecision.scm \ + gnu/packages/music.scm \ + gnu/packages/mtools.scm \ + gnu/packages/nano.scm \ + gnu/packages/ncdu.scm \ + gnu/packages/ncurses.scm \ + gnu/packages/netpbm.scm \ + gnu/packages/nettle.scm \ + gnu/packages/networking.scm \ + gnu/packages/ninja.scm \ + gnu/packages/node.scm \ + gnu/packages/noweb.scm \ + gnu/packages/ntp.scm \ + gnu/packages/nutrition.scm \ + gnu/packages/nvi.scm \ + gnu/packages/ocaml.scm \ + gnu/packages/ocr.scm \ + gnu/packages/onc-rpc.scm \ + gnu/packages/openbox.scm \ + gnu/packages/openldap.scm \ + gnu/packages/openstack.scm \ + gnu/packages/orpheus.scm \ + gnu/packages/ots.scm \ + gnu/packages/owncloud.scm \ + gnu/packages/package-management.scm \ + gnu/packages/parallel.scm \ + gnu/packages/password-utils.scm \ + gnu/packages/patchutils.scm \ + gnu/packages/pciutils.scm \ + gnu/packages/pcre.scm \ + gnu/packages/pdf.scm \ + gnu/packages/pem.scm \ + gnu/packages/perl.scm \ + gnu/packages/photo.scm \ + gnu/packages/pkg-config.scm \ + gnu/packages/plotutils.scm \ + gnu/packages/polkit.scm \ + gnu/packages/popt.scm \ + gnu/packages/pth.scm \ + gnu/packages/pulseaudio.scm \ + gnu/packages/pumpio.scm \ + gnu/packages/pretty-print.scm \ + gnu/packages/protobuf.scm \ + gnu/packages/pv.scm \ + gnu/packages/python.scm \ + gnu/packages/qemu.scm \ + gnu/packages/qt.scm \ + gnu/packages/ragel.scm \ + gnu/packages/ratpoison.scm \ + gnu/packages/rc.scm \ + gnu/packages/rdesktop.scm \ + gnu/packages/rdf.scm \ + gnu/packages/readline.scm \ + gnu/packages/rrdtool.scm \ + gnu/packages/rsync.scm \ + gnu/packages/ruby.scm \ + gnu/packages/rush.scm \ + gnu/packages/samba.scm \ + gnu/packages/sawfish.scm \ + gnu/packages/scanner.scm \ + gnu/packages/scheme.scm \ + gnu/packages/screen.scm \ + gnu/packages/scribus.scm \ + gnu/packages/sdl.scm \ + gnu/packages/search.scm \ + gnu/packages/serialization.scm \ + gnu/packages/serveez.scm \ + gnu/packages/shishi.scm \ + gnu/packages/skarnet.scm \ + gnu/packages/skribilo.scm \ + gnu/packages/slang.scm \ + gnu/packages/slim.scm \ + gnu/packages/smalltalk.scm \ + gnu/packages/ssh.scm \ + gnu/packages/stalonetray.scm \ + gnu/packages/statistics.scm \ + gnu/packages/suckless.scm \ + gnu/packages/swig.scm \ + gnu/packages/sxiv.scm \ + gnu/packages/synergy.scm \ + gnu/packages/task-management.scm \ + gnu/packages/tbb.scm \ + gnu/packages/tcl.scm \ + gnu/packages/tcsh.scm \ + gnu/packages/telephony.scm \ + gnu/packages/terminals.scm \ + gnu/packages/texinfo.scm \ + gnu/packages/texlive.scm \ + gnu/packages/textutils.scm \ + gnu/packages/time.scm \ + gnu/packages/tls.scm \ + gnu/packages/tmux.scm \ + gnu/packages/tor.scm \ + gnu/packages/tre.scm \ + gnu/packages/tv.scm \ + gnu/packages/unrtf.scm \ + gnu/packages/upnp.scm \ + gnu/packages/uucp.scm \ + gnu/packages/valgrind.scm \ + gnu/packages/version-control.scm \ + gnu/packages/video.scm \ + gnu/packages/vim.scm \ + gnu/packages/vpn.scm \ + gnu/packages/vtk.scm \ + gnu/packages/w3m.scm \ + gnu/packages/wdiff.scm \ + gnu/packages/web.scm \ + gnu/packages/webkit.scm \ + gnu/packages/wget.scm \ + gnu/packages/wicd.scm \ + gnu/packages/wine.scm \ + gnu/packages/wm.scm \ + gnu/packages/wordnet.scm \ + gnu/packages/wv.scm \ + gnu/packages/wxwidgets.scm \ + gnu/packages/xfig.scm \ + gnu/packages/xiph.scm \ + gnu/packages/xml.scm \ + gnu/packages/xnee.scm \ + gnu/packages/xdisorg.scm \ + gnu/packages/xorg.scm \ + gnu/packages/xfce.scm \ + gnu/packages/yasm.scm \ + gnu/packages/yubico.scm \ + gnu/packages/zile.scm \ + gnu/packages/zip.scm \ + gnu/packages/zsh.scm \ + \ + gnu/services.scm \ + gnu/services/avahi.scm \ + gnu/services/base.scm \ + gnu/services/databases.scm \ + gnu/services/dbus.scm \ + gnu/services/desktop.scm \ + gnu/services/lirc.scm \ + gnu/services/mail.scm \ + gnu/services/networking.scm \ + gnu/services/shepherd.scm \ + gnu/services/herd.scm \ + gnu/services/ssh.scm \ + gnu/services/web.scm \ + gnu/services/xorg.scm \ + \ + gnu/system.scm \ + gnu/system/file-systems.scm \ + gnu/system/grub.scm \ + gnu/system/install.scm \ + gnu/system/linux-container.scm \ + gnu/system/linux-initrd.scm \ + gnu/system/locale.scm \ + gnu/system/mapped-devices.scm \ + gnu/system/nss.scm \ + gnu/system/pam.scm \ + gnu/system/shadow.scm \ + gnu/system/vm.scm \ + \ + gnu/build/activation.scm \ + gnu/build/file-systems.scm \ + gnu/build/install.scm \ + gnu/build/linux-boot.scm \ + gnu/build/linux-container.scm \ + gnu/build/linux-initrd.scm \ + gnu/build/linux-modules.scm \ + gnu/build/vm.scm + + +patchdir = $(guilemoduledir)/gnu/packages/patches +dist_patch_DATA = \ + gnu/packages/patches/abiword-explictly-cast-bools.patch \ + gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ + gnu/packages/patches/acl-hurd-path-max.patch \ + gnu/packages/patches/aegis-constness-error.patch \ + gnu/packages/patches/aegis-perl-tempdir1.patch \ + gnu/packages/patches/aegis-perl-tempdir2.patch \ + gnu/packages/patches/aegis-test-fixup-1.patch \ + gnu/packages/patches/aegis-test-fixup-2.patch \ + gnu/packages/patches/agg-am_c_prototype.patch \ + gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ + gnu/packages/patches/apr-skip-getservbyname-test.patch \ + gnu/packages/patches/arb-ldconfig.patch \ + gnu/packages/patches/asymptote-gsl2.patch \ + gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ + gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ + gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ + gnu/packages/patches/audacity-fix-ffmpeg-binding.patch \ + gnu/packages/patches/automake-skip-amhello-tests.patch \ + gnu/packages/patches/automake-regexp-syntax.patch \ + gnu/packages/patches/avahi-localstatedir.patch \ + gnu/packages/patches/avidemux-install-to-lib.patch \ + gnu/packages/patches/avrdude-fix-libusb.patch \ + gnu/packages/patches/bash-completion-directories.patch \ + gnu/packages/patches/bigloo-gc-shebangs.patch \ + gnu/packages/patches/binutils-ld-new-dtags.patch \ + gnu/packages/patches/binutils-loongson-workaround.patch \ + gnu/packages/patches/byobu-writable-status.patch \ + gnu/packages/patches/calibre-drop-unrar.patch \ + gnu/packages/patches/calibre-no-updates-dialog.patch \ + gnu/packages/patches/cdparanoia-fpic.patch \ + gnu/packages/patches/chmlib-inttypes.patch \ + gnu/packages/patches/clang-libc-search-path.patch \ + gnu/packages/patches/clucene-pkgconfig.patch \ + gnu/packages/patches/cmake-fix-tests.patch \ + gnu/packages/patches/cpio-gets-undeclared.patch \ + gnu/packages/patches/cpio-CVE-2016-2037.patch \ + gnu/packages/patches/cpufrequtils-fix-aclocal.patch \ + gnu/packages/patches/crda-optional-gcrypt.patch \ + gnu/packages/patches/crossmap-allow-system-pysam.patch \ + gnu/packages/patches/csound-header-ordering.patch \ + gnu/packages/patches/cssc-gets-undeclared.patch \ + gnu/packages/patches/cssc-missing-include.patch \ + gnu/packages/patches/clucene-contribs-lib.patch \ + gnu/packages/patches/cursynth-wave-rand.patch \ + gnu/packages/patches/dbus-helper-search-path.patch \ + gnu/packages/patches/dealii-p4est-interface.patch \ + gnu/packages/patches/devil-fix-libpng.patch \ + gnu/packages/patches/dico-libtool-deterministic.patch \ + gnu/packages/patches/diffutils-gets-undeclared.patch \ + gnu/packages/patches/dfu-programmer-fix-libusb.patch \ + gnu/packages/patches/doxygen-test.patch \ + gnu/packages/patches/duplicity-piped-password.patch \ + gnu/packages/patches/duplicity-test_selection-tmp.patch \ + gnu/packages/patches/elfutils-tests-ptrace.patch \ + gnu/packages/patches/einstein-build.patch \ + gnu/packages/patches/emacs-constants-lisp-like.patch \ + gnu/packages/patches/emacs-exec-path.patch \ + gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ + gnu/packages/patches/emacs-source-date-epoch.patch \ + gnu/packages/patches/eudev-rules-directory.patch \ + gnu/packages/patches/evilwm-lost-focus-bug.patch \ + gnu/packages/patches/expat-CVE-2015-1283.patch \ + gnu/packages/patches/fastcap-mulGlobal.patch \ + gnu/packages/patches/fastcap-mulSetup.patch \ + gnu/packages/patches/fasthenry-spAllocate.patch \ + gnu/packages/patches/fasthenry-spBuild.patch \ + gnu/packages/patches/fasthenry-spUtils.patch \ + gnu/packages/patches/fasthenry-spSolve.patch \ + gnu/packages/patches/fasthenry-spFactor.patch \ + gnu/packages/patches/findutils-localstatedir.patch \ + gnu/packages/patches/findutils-test-xargs.patch \ + gnu/packages/patches/flashrom-use-libftdi1.patch \ + gnu/packages/patches/flint-ldconfig.patch \ + gnu/packages/patches/fltk-shared-lib-defines.patch \ + gnu/packages/patches/fontforge-svg-modtime.patch \ + gnu/packages/patches/freeimage-CVE-2015-0852.patch \ + gnu/packages/patches/gawk-fts-test.patch \ + gnu/packages/patches/gawk-shell.patch \ + gnu/packages/patches/gcc-arm-link-spec-fix.patch \ + gnu/packages/patches/gcc-cross-environment-variables.patch \ + gnu/packages/patches/gcc-libvtv-runpath.patch \ + gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \ + gnu/packages/patches/geoclue-config.patch \ + gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ + gnu/packages/patches/ghostscript-runpath.patch \ + gnu/packages/patches/glib-networking-ssl-cert-file.patch \ + gnu/packages/patches/glib-tests-desktop.patch \ + gnu/packages/patches/glib-tests-homedir.patch \ + gnu/packages/patches/glib-tests-prlimit.patch \ + gnu/packages/patches/glib-tests-timer.patch \ + gnu/packages/patches/glib-tests-gapplication.patch \ + gnu/packages/patches/glibc-CVE-2015-7547.patch \ + gnu/packages/patches/glibc-bootstrap-system.patch \ + gnu/packages/patches/glibc-hurd-extern-inline.patch \ + gnu/packages/patches/glibc-ldd-x86_64.patch \ + gnu/packages/patches/glibc-locales.patch \ + gnu/packages/patches/glibc-locale-incompatibility.patch \ + gnu/packages/patches/glibc-o-largefile.patch \ + gnu/packages/patches/glibc-versioned-locpath.patch \ + gnu/packages/patches/gmp-arm-asm-nothumb.patch \ + gnu/packages/patches/gmp-faulty-test.patch \ + gnu/packages/patches/gnucash-price-quotes-perl.patch \ + gnu/packages/patches/gnupg-simple-query-ignore-status-messages.patch \ + gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ + gnu/packages/patches/gobject-introspection-cc.patch \ + gnu/packages/patches/gobject-introspection-girepository.patch \ + gnu/packages/patches/grep-timing-sensitive-test.patch \ + gnu/packages/patches/grub-CVE-2015-8370.patch \ + gnu/packages/patches/grub-gets-undeclared.patch \ + gnu/packages/patches/grub-freetype.patch \ + gnu/packages/patches/guile-1.8-cpp-4.5.patch \ + gnu/packages/patches/guile-arm-fixes.patch \ + gnu/packages/patches/guile-default-utf8.patch \ + gnu/packages/patches/guile-linux-syscalls.patch \ + gnu/packages/patches/guile-present-coding.patch \ + gnu/packages/patches/guile-relocatable.patch \ + gnu/packages/patches/guile-rsvg-pkgconfig.patch \ + gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ + gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ + gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ + gnu/packages/patches/hop-bigloo-4.0b.patch \ + gnu/packages/patches/hop-linker-flags.patch \ + gnu/packages/patches/hydra-automake-1.15.patch \ + gnu/packages/patches/hydra-disable-darcs-test.patch \ + gnu/packages/patches/icecat-avoid-bundled-includes.patch \ + gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ + gnu/packages/patches/icu4c-CVE-2014-6585.patch \ + gnu/packages/patches/icu4c-CVE-2015-1270.patch \ + gnu/packages/patches/icu4c-CVE-2015-4760.patch \ + gnu/packages/patches/ilmbase-fix-tests.patch \ + gnu/packages/patches/imagemagick-test-segv.patch \ + gnu/packages/patches/irrlicht-mesa-10.patch \ + gnu/packages/patches/jasper-CVE-2007-2721.patch \ + gnu/packages/patches/jasper-CVE-2008-3520.patch \ + gnu/packages/patches/jasper-CVE-2008-3522.patch \ + gnu/packages/patches/jasper-CVE-2011-4516-and-CVE-2011-4517.patch \ + gnu/packages/patches/jasper-CVE-2014-8137.patch \ + gnu/packages/patches/jasper-CVE-2014-8138.patch \ + gnu/packages/patches/jasper-CVE-2014-8157.patch \ + gnu/packages/patches/jasper-CVE-2014-8158.patch \ + gnu/packages/patches/jasper-CVE-2014-9029.patch \ + gnu/packages/patches/jasper-CVE-2016-1577.patch \ + gnu/packages/patches/jasper-CVE-2016-1867.patch \ + gnu/packages/patches/jasper-CVE-2016-2089.patch \ + gnu/packages/patches/jasper-CVE-2016-2116.patch \ + gnu/packages/patches/jbig2dec-ignore-testtest.patch \ + gnu/packages/patches/kmod-module-directory.patch \ + gnu/packages/patches/ldc-disable-tests.patch \ + gnu/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \ + gnu/packages/patches/liba52-enable-pic.patch \ + gnu/packages/patches/liba52-link-with-libm.patch \ + gnu/packages/patches/liba52-set-soname.patch \ + gnu/packages/patches/liba52-use-mtune-not-mcpu.patch \ + gnu/packages/patches/libarchive-bsdtar-test.patch \ + gnu/packages/patches/libarchive-CVE-2013-0211.patch \ + gnu/packages/patches/libarchive-fix-lzo-test-case.patch \ + gnu/packages/patches/libarchive-mtree-filename-length-fix.patch \ + gnu/packages/patches/libbonobo-activation-test-race.patch \ + gnu/packages/patches/libcanberra-sound-theme-freedesktop.patch \ + gnu/packages/patches/libcmis-fix-test-onedrive.patch \ + gnu/packages/patches/libdrm-symbol-check.patch \ + gnu/packages/patches/libevent-dns-tests.patch \ + gnu/packages/patches/libextractor-ffmpeg-3.patch \ + gnu/packages/patches/libmtp-devices.patch \ + gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ + gnu/packages/patches/libotr-test-auth-fix.patch \ + gnu/packages/patches/liblxqt-include.patch \ + gnu/packages/patches/libmad-armv7-thumb-pt1.patch \ + gnu/packages/patches/libmad-armv7-thumb-pt2.patch \ + gnu/packages/patches/libmad-frame-length.patch \ + gnu/packages/patches/libmad-mips-newgcc.patch \ + gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch \ + gnu/packages/patches/libtheora-config-guess.patch \ + gnu/packages/patches/libtiff-CVE-2015-8665+CVE-2015-8683.patch \ + gnu/packages/patches/libtiff-oob-accesses-in-decode.patch \ + gnu/packages/patches/libtiff-oob-write-in-nextdecode.patch \ + gnu/packages/patches/libtool-skip-tests2.patch \ + gnu/packages/patches/libunwind-CVE-2015-3239.patch \ + gnu/packages/patches/libwmf-CAN-2004-0941.patch \ + gnu/packages/patches/libwmf-CVE-2006-3376.patch \ + gnu/packages/patches/libwmf-CVE-2007-0455.patch \ + gnu/packages/patches/libwmf-CVE-2007-2756.patch \ + gnu/packages/patches/libwmf-CVE-2007-3472.patch \ + gnu/packages/patches/libwmf-CVE-2007-3473.patch \ + gnu/packages/patches/libwmf-CVE-2007-3477.patch \ + gnu/packages/patches/libwmf-CVE-2009-1364.patch \ + gnu/packages/patches/libwmf-CVE-2009-3546.patch \ + gnu/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ + gnu/packages/patches/libwmf-CVE-2015-4695.patch \ + gnu/packages/patches/libwmf-CVE-2015-4696.patch \ + gnu/packages/patches/libxslt-CVE-2015-7995.patch \ + gnu/packages/patches/lirc-localstatedir.patch \ + gnu/packages/patches/libpthread-glibc-preparation.patch \ + gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ + gnu/packages/patches/lua-pkgconfig.patch \ + gnu/packages/patches/lua51-liblua-so.patch \ + gnu/packages/patches/lua52-liblua-so.patch \ + gnu/packages/patches/luajit-no_ldconfig.patch \ + gnu/packages/patches/luajit-symlinks.patch \ + gnu/packages/patches/luit-posix.patch \ + gnu/packages/patches/m4-gets-undeclared.patch \ + gnu/packages/patches/make-impure-dirs.patch \ + gnu/packages/patches/mars-install.patch \ + gnu/packages/patches/mars-sfml-2.3.patch \ + gnu/packages/patches/matplotlib-setupext-tk.patch \ + gnu/packages/patches/maxima-defsystem-mkdir.patch \ + gnu/packages/patches/mcron-install.patch \ + gnu/packages/patches/mdadm-gcc-4.9-fix.patch \ + gnu/packages/patches/mhash-keygen-test-segfault.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-8630.patch \ + gnu/packages/patches/mit-krb5-CVE-2015-8631.patch \ + gnu/packages/patches/mit-krb5-init-context-null-spnego.patch \ + gnu/packages/patches/mpc123-initialize-ao.patch \ + gnu/packages/patches/mplayer2-theora-fix.patch \ + gnu/packages/patches/module-init-tools-moduledir.patch \ + gnu/packages/patches/mumps-build-parallelism.patch \ + gnu/packages/patches/mupen64plus-ui-console-notice.patch \ + gnu/packages/patches/mutt-store-references.patch \ + gnu/packages/patches/net-tools-bitrot.patch \ + gnu/packages/patches/ngircd-handle-zombies.patch \ + gnu/packages/patches/ngircd-no-dns-in-tests.patch \ + gnu/packages/patches/ninja-tests.patch \ + gnu/packages/patches/ninja-zero-mtime.patch \ + gnu/packages/patches/nss-pkgconfig.patch \ + gnu/packages/patches/nvi-assume-preserve-path.patch \ + gnu/packages/patches/nvi-dbpagesize-binpower.patch \ + gnu/packages/patches/nvi-db4.patch \ + gnu/packages/patches/ocaml-findlib-make-install.patch \ + gnu/packages/patches/openexr-missing-samples.patch \ + gnu/packages/patches/openimageio-boost-1.60.patch \ + gnu/packages/patches/openjpeg-CVE-2015-6581.patch \ + gnu/packages/patches/openjpeg-use-after-free-fix.patch \ + gnu/packages/patches/openssh-CVE-2015-8325.patch \ + gnu/packages/patches/openssl-runpath.patch \ + gnu/packages/patches/openssl-c-rehash-in.patch \ + gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ + gnu/packages/patches/ots-no-include-missing-file.patch \ + gnu/packages/patches/patchelf-page-size.patch \ + gnu/packages/patches/patchelf-rework-for-arm.patch \ + gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ + gnu/packages/patches/patch-hurd-path-max.patch \ + gnu/packages/patches/pcre-CVE-2016-3191.patch \ + gnu/packages/patches/perl-CVE-2015-8607.patch \ + gnu/packages/patches/perl-CVE-2016-2381.patch \ + gnu/packages/patches/perl-autosplit-default-time.patch \ + gnu/packages/patches/perl-deterministic-ordering.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-io-socket-ssl-openssl-1.0.2f-fix.patch \ + gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \ + gnu/packages/patches/perl-net-ssleay-disable-ede-test.patch \ + gnu/packages/patches/perl-no-build-time.patch \ + gnu/packages/patches/perl-no-sys-dirs.patch \ + gnu/packages/patches/perl-module-pluggable-search.patch \ + gnu/packages/patches/perl-source-date-epoch.patch \ + gnu/packages/patches/pidgin-add-search-path.patch \ + gnu/packages/patches/pinball-const-fix.patch \ + gnu/packages/patches/pinball-cstddef.patch \ + gnu/packages/patches/pinball-missing-separators.patch \ + gnu/packages/patches/pinball-src-deps.patch \ + gnu/packages/patches/pinball-system-ltdl.patch \ + gnu/packages/patches/pingus-sdl-libs-config.patch \ + gnu/packages/patches/plink-1.07-unclobber-i.patch \ + gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ + gnu/packages/patches/polkit-drop-test.patch \ + gnu/packages/patches/portaudio-audacity-compat.patch \ + gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ + gnu/packages/patches/pt-scotch-build-parallelism.patch \ + gnu/packages/patches/pulseaudio-fix-mult-test.patch \ + gnu/packages/patches/pulseaudio-longer-test-timeout.patch \ + gnu/packages/patches/pycairo-wscript.patch \ + gnu/packages/patches/pybugz-encode-error.patch \ + gnu/packages/patches/pybugz-stty.patch \ + gnu/packages/patches/pygpgme-disable-problematic-tests.patch \ + gnu/packages/patches/pyqt-configure.patch \ + gnu/packages/patches/python-2-deterministic-build-info.patch \ + gnu/packages/patches/python-2.7-search-paths.patch \ + gnu/packages/patches/python-2.7-source-date-epoch.patch \ + gnu/packages/patches/python-3-deterministic-build-info.patch \ + gnu/packages/patches/python-3-search-paths.patch \ + gnu/packages/patches/python-disable-ssl-test.patch \ + gnu/packages/patches/python-fix-tests.patch \ + gnu/packages/patches/python-ipython-inputhook-ctype.patch \ + gnu/packages/patches/python-rarfile-fix-tests.patch \ + gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ + gnu/packages/patches/python-configobj-setuptools.patch \ + gnu/packages/patches/python-paste-remove-website-test.patch \ + gnu/packages/patches/python-paste-remove-timing-test.patch \ + gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ + gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \ + gnu/packages/patches/qemu-CVE-2015-8558.patch \ + gnu/packages/patches/qemu-CVE-2015-8567.patch \ + gnu/packages/patches/qemu-CVE-2015-8613.patch \ + gnu/packages/patches/qemu-CVE-2015-8619.patch \ + gnu/packages/patches/qemu-CVE-2015-8701.patch \ + gnu/packages/patches/qemu-CVE-2015-8743.patch \ + gnu/packages/patches/qemu-CVE-2016-1568.patch \ + gnu/packages/patches/qemu-CVE-2016-1922.patch \ + gnu/packages/patches/qemu-CVE-2016-1981.patch \ + gnu/packages/patches/qemu-CVE-2016-2197.patch \ + gnu/packages/patches/qemu-usb-ehci-oob-read.patch \ + gnu/packages/patches/qemu-virtio-9p-use-accessor-to-get-thread-pool.patch \ + gnu/packages/patches/qt4-ldflags.patch \ + gnu/packages/patches/ratpoison-shell.patch \ + gnu/packages/patches/readline-link-ncurses.patch \ + gnu/packages/patches/ripperx-missing-file.patch \ + gnu/packages/patches/rsem-makefile.patch \ + gnu/packages/patches/sed-hurd-path-max.patch \ + gnu/packages/patches/scheme48-tests.patch \ + gnu/packages/patches/scotch-test-threading.patch \ + gnu/packages/patches/sdl-libx11-1.6.patch \ + gnu/packages/patches/serf-comment-style-fix.patch \ + gnu/packages/patches/serf-deflate-buckets-test-fix.patch \ + gnu/packages/patches/slim-session.patch \ + gnu/packages/patches/slim-config.patch \ + gnu/packages/patches/slim-sigusr1.patch \ + gnu/packages/patches/slurm-configure-remove-nonfree-contribs.patch \ + gnu/packages/patches/soprano-find-clucene.patch \ + gnu/packages/patches/sudo-CVE-2015-5602.patch \ + gnu/packages/patches/superlu-dist-scotchmetis.patch \ + gnu/packages/patches/synfig-build-fix.patch \ + gnu/packages/patches/tar-d_ino_in_dirent-fix.patch \ + gnu/packages/patches/tar-skip-unreliable-tests.patch \ + gnu/packages/patches/tcl-mkindex-deterministic.patch \ + gnu/packages/patches/tclxml-3.2-install.patch \ + gnu/packages/patches/tcsh-fix-autotest.patch \ + gnu/packages/patches/texi2html-document-encoding.patch \ + gnu/packages/patches/texi2html-i18n.patch \ + gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ + gnu/packages/patches/tinyxml-use-stl.patch \ + gnu/packages/patches/tk-find-library.patch \ + gnu/packages/patches/ttf2eot-cstddef.patch \ + gnu/packages/patches/ttfautohint-source-date-epoch.patch \ + gnu/packages/patches/tophat-build-with-later-seqan.patch \ + gnu/packages/patches/torsocks-dns-test.patch \ + gnu/packages/patches/tvtime-gcc41.patch \ + gnu/packages/patches/tvtime-pngoutput.patch \ + gnu/packages/patches/tvtime-videodev2.patch \ + gnu/packages/patches/tvtime-xmltv.patch \ + gnu/packages/patches/unzip-CVE-2014-8139.patch \ + gnu/packages/patches/unzip-CVE-2014-8140.patch \ + gnu/packages/patches/unzip-CVE-2014-8141.patch \ + gnu/packages/patches/unzip-CVE-2014-9636.patch \ + gnu/packages/patches/unzip-CVE-2015-7696.patch \ + gnu/packages/patches/unzip-CVE-2015-7697.patch \ + gnu/packages/patches/unzip-allow-greater-hostver-values.patch \ + gnu/packages/patches/unzip-attribs-overflow.patch \ + gnu/packages/patches/unzip-overflow-on-invalid-input.patch \ + gnu/packages/patches/unzip-format-secure.patch \ + gnu/packages/patches/unzip-initialize-symlink-flag.patch \ + gnu/packages/patches/unzip-overflow-long-fsize.patch \ + gnu/packages/patches/unzip-remove-build-date.patch \ + gnu/packages/patches/util-linux-tests.patch \ + gnu/packages/patches/upower-builddir.patch \ + gnu/packages/patches/valgrind-enable-arm.patch \ + gnu/packages/patches/vorbis-tools-CVE-2015-6749.patch \ + gnu/packages/patches/vpnc-script.patch \ + gnu/packages/patches/vtk-mesa-10.patch \ + gnu/packages/patches/w3m-libgc.patch \ + gnu/packages/patches/w3m-force-ssl_verify_server-on.patch \ + gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ + gnu/packages/patches/w3m-disable-weak-ciphers.patch \ + gnu/packages/patches/weechat-python.patch \ + gnu/packages/patches/weex-vacopy.patch \ + gnu/packages/patches/wicd-bitrate-none-fix.patch \ + gnu/packages/patches/wicd-get-selected-profile-fix.patch \ + gnu/packages/patches/wicd-urwid-1.3.patch \ + gnu/packages/patches/wicd-wpa2-ttls.patch \ + gnu/packages/patches/wmctrl-64-fix.patch \ + gnu/packages/patches/woff2-libbrotli.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ + gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch \ + gnu/packages/patches/xdotool-fix-makefile.patch \ + gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ + gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \ + gnu/packages/patches/xf86-video-geode-glibc-2.20.patch \ + gnu/packages/patches/xf86-video-glint-remove-mibstore.patch \ + gnu/packages/patches/xf86-video-i128-remove-mibstore.patch \ + gnu/packages/patches/xf86-video-intel-compat-api.patch \ + gnu/packages/patches/xf86-video-intel-glibc-2.20.patch \ + gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch \ + gnu/packages/patches/xf86-video-nv-remove-mibstore.patch \ + gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch \ + gnu/packages/patches/xf86-video-tga-remove-mibstore.patch \ + gnu/packages/patches/xfce4-panel-plugins.patch \ + gnu/packages/patches/xfce4-session-fix-xflock4.patch \ + gnu/packages/patches/xfce4-settings-defaults.patch \ + gnu/packages/patches/xmodmap-asprintf.patch \ + gnu/packages/patches/zathura-plugindir-environment-variable.patch + +MISC_DISTRO_FILES = \ + gnu/packages/ld-wrapper.in + +bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap +bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux +bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux +bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux +bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux + +dist_bootstrap_x86_64_linux_DATA = \ + gnu/packages/bootstrap/x86_64-linux/bash \ + gnu/packages/bootstrap/x86_64-linux/mkdir \ + gnu/packages/bootstrap/x86_64-linux/tar \ + gnu/packages/bootstrap/x86_64-linux/xz + +dist_bootstrap_i686_linux_DATA = \ + gnu/packages/bootstrap/i686-linux/bash \ + gnu/packages/bootstrap/i686-linux/mkdir \ + gnu/packages/bootstrap/i686-linux/tar \ + gnu/packages/bootstrap/i686-linux/xz + +dist_bootstrap_armhf_linux_DATA = \ + gnu/packages/bootstrap/armhf-linux/bash \ + gnu/packages/bootstrap/armhf-linux/mkdir \ + gnu/packages/bootstrap/armhf-linux/tar \ + gnu/packages/bootstrap/armhf-linux/xz + +dist_bootstrap_mips64el_linux_DATA = \ + gnu/packages/bootstrap/mips64el-linux/bash \ + gnu/packages/bootstrap/mips64el-linux/mkdir \ + gnu/packages/bootstrap/mips64el-linux/tar \ + gnu/packages/bootstrap/mips64el-linux/xz + +# Big bootstrap binaries are not included in the tarball. Instead, they +# are downloaded. +nodist_bootstrap_x86_64_linux_DATA = \ + gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz +nodist_bootstrap_i686_linux_DATA = \ + gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz +nodist_bootstrap_armhf_linux_DATA = \ + gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz +nodist_bootstrap_mips64el_linux_DATA = \ + gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz + +# Those files must remain executable, so they remain executable once +# imported into the store. +set-bootstrap-executable-permissions: + chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz} + +DISTCLEANFILES = \ + $(nodist_bootstrap_x86_64_linux_DATA) \ + $(nodist_bootstrap_i686_linux_DATA) \ + $(nodist_bootstrap_armhf_linux_DATA) \ + $(nodist_bootstrap_mips64el_linux_DATA) + +# Method to download a file from an external source. +DOWNLOAD_FILE = \ + GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \ + $(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \ + "$(top_srcdir)/build-aux/download.scm" + +gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz: + $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ + $(DOWNLOAD_FILE) "$@" \ + "037b103522a2d0d7d69c7ffd8de683dfe5bb4b59c1fafd70b4ffd397fd2f57f0" +gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz: + $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ + $(DOWNLOAD_FILE) "$@" \ + "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846" +gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz: + $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ + $(DOWNLOAD_FILE) "$@" \ + "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6" +gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: + $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \ + $(DOWNLOAD_FILE) "$@" \ + "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b" diff --git a/guix/config.scm.in b/guix/config.scm.in index 764e466bc5..d7df9f7d2b 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -55,11 +55,11 @@ "@storedir@")) (define %state-directory - ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'. + ;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'. (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")) (define %config-directory - ;; This must match `NIX_CONF_DIR' as defined in `daemon.am'. + ;; This must match `NIX_CONF_DIR' as defined in `nix/local.mk'. (or (getenv "NIX_CONF_DIR") "@guix_sysconfdir@/guix")) (define %guix-register-program diff --git a/nix/local.mk b/nix/local.mk new file mode 100644 index 0000000000..3c15531f54 --- /dev/null +++ b/nix/local.mk @@ -0,0 +1,226 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +# Copyright © 2016 Mathieu Lirzin +# +# This file is part of GNU Guix. +# +# GNU Guix is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# GNU Guix is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Guix. If not, see . + +# +# Integration of the `guix-daemon' code taken from upstream Nix. +# + +BUILT_SOURCES += nix/libstore/schema.sql.hh +CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service etc/guix-daemon.conf + +noinst_LIBRARIES = libformat.a libutil.a libstore.a + +# Use '-std=c++11' for 'std::shared_ptr', 'auto', lambdas, and more. +AM_CXXFLAGS = -Wall -std=c++11 + +libformat_a_SOURCES = \ + nix/boost/format/free_funcs.cc \ + nix/boost/format/parsing.cc \ + nix/boost/format/format_implementation.cc + +libformat_headers = \ + nix/boost/throw_exception.hpp \ + nix/boost/format.hpp \ + nix/boost/assert.hpp \ + nix/boost/format/macros_default.hpp \ + nix/boost/format/format_fwd.hpp \ + nix/boost/format/format_class.hpp \ + nix/boost/format/exceptions.hpp \ + nix/boost/format/group.hpp \ + nix/boost/format/feed_args.hpp \ + nix/boost/format/internals_fwd.hpp \ + nix/boost/format/internals.hpp + +libformat_a_CPPFLAGS = \ + -I$(top_srcdir)/nix + +libutil_a_SOURCES = \ + nix/libutil/archive.cc \ + nix/libutil/affinity.cc \ + nix/libutil/serialise.cc \ + nix/libutil/util.cc \ + nix/libutil/xml-writer.cc \ + nix/libutil/hash.cc \ + nix/libutil/gcrypt-hash.cc + +libutil_headers = \ + nix/libutil/affinity.hh \ + nix/libutil/hash.hh \ + nix/libutil/serialise.hh \ + nix/libutil/xml-writer.hh \ + nix/libutil/util.hh \ + nix/libutil/archive.hh \ + nix/libutil/types.hh \ + nix/libutil/gcrypt-hash.hh \ + nix/libutil/md5.h \ + nix/libutil/sha1.h \ + nix/libutil/sha256.h \ + nix/libutil/sha512.h + +libutil_a_CPPFLAGS = \ + -I$(top_builddir)/nix \ + -I$(top_srcdir)/nix/libutil \ + $(libformat_a_CPPFLAGS) + +libstore_a_SOURCES = \ + nix/libstore/gc.cc \ + nix/libstore/globals.cc \ + nix/libstore/misc.cc \ + nix/libstore/references.cc \ + nix/libstore/store-api.cc \ + nix/libstore/optimise-store.cc \ + nix/libstore/local-store.cc \ + nix/libstore/build.cc \ + nix/libstore/pathlocks.cc \ + nix/libstore/derivations.cc + +libstore_headers = \ + nix/libstore/references.hh \ + nix/libstore/pathlocks.hh \ + nix/libstore/globals.hh \ + nix/libstore/worker-protocol.hh \ + nix/libstore/derivations.hh \ + nix/libstore/misc.hh \ + nix/libstore/local-store.hh \ + nix/libstore/store-api.hh + +libstore_a_CPPFLAGS = \ + $(libutil_a_CPPFLAGS) \ + -I$(top_srcdir)/nix/libstore \ + -I$(top_builddir)/nix/libstore \ + -DNIX_STORE_DIR=\"$(storedir)\" \ + -DNIX_DATA_DIR=\"$(datadir)\" \ + -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ + -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \ + -DNIX_CONF_DIR=\"$(sysconfdir)/guix\" \ + -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \ + -DNIX_BIN_DIR=\"$(bindir)\" \ + -DOPENSSL_PATH="\"guix-authenticate\"" \ + -DDEFAULT_CHROOT_DIRS="\"\"" + +libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \ + $(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS) + +bin_PROGRAMS = guix-daemon +sbin_PROGRAMS = guix-register + +guix_daemon_SOURCES = \ + nix/nix-daemon/nix-daemon.cc \ + nix/nix-daemon/guix-daemon.cc + +guix_daemon_CPPFLAGS = \ + -DLOCALEDIR=\"$(localedir)\" \ + $(libutil_a_CPPFLAGS) \ + -I$(top_srcdir)/nix/libstore + +guix_daemon_LDADD = \ + libstore.a libutil.a libformat.a -lbz2 \ + $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) + +guix_daemon_headers = \ + nix/nix-daemon/shared.hh + + +guix_register_SOURCES = \ + nix/guix-register/guix-register.cc + +guix_register_CPPFLAGS = \ + $(libutil_a_CPPFLAGS) \ + $(libstore_a_CPPFLAGS) \ + -I$(top_srcdir)/nix/libstore + +# XXX: Should we start using shared libs? +guix_register_LDADD = \ + libstore.a libutil.a libformat.a -lbz2 \ + $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) + + +noinst_HEADERS = \ + $(libformat_headers) $(libutil_headers) $(libstore_headers) \ + $(guix_daemon_headers) + +nix/libstore/schema.sql.hh: nix/libstore/schema.sql + $(AM_V_GEN)$(GUILE) --no-auto-compile -c \ + "(use-modules (rnrs io ports)) \ + (call-with-output-file \"$@\" \ + (lambda (out) \ + (call-with-input-file \"$^\" \ + (lambda (in) \ + (write (get-string-all in) out)))))" + +nodist_pkglibexec_SCRIPTS = \ + nix/scripts/list-runtime-roots \ + nix/scripts/substitute + +if BUILD_DAEMON_OFFLOAD + +nodist_pkglibexec_SCRIPTS += \ + nix/scripts/offload + +endif BUILD_DAEMON_OFFLOAD + + +# XXX: It'd be better to hide it in $(pkglibexecdir). +nodist_libexec_SCRIPTS = \ + nix/scripts/guix-authenticate + +# The '.service' file for systemd. +systemdservicedir = $(libdir)/systemd/system +nodist_systemdservice_DATA = etc/guix-daemon.service + +etc/guix-daemon.service: etc/guix-daemon.service.in \ + $(top_builddir)/config.status + $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ + $(SED) -e 's|@''bindir''@|$(bindir)|' < \ + "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp"; \ + mv "$@.tmp" "$@" + +# The '.conf' job for Upstart. +upstartjobdir = $(libdir)/upstart/system +nodist_upstartjob_DATA = etc/guix-daemon.conf + +etc/guix-daemon.conf: etc/guix-daemon.conf.in \ + $(top_builddir)/config.status + $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ + $(SED) -e 's|@''bindir''@|$(bindir)|' < \ + "$(srcdir)/etc/guix-daemon.conf.in" > "$@.tmp"; \ + mv "$@.tmp" "$@" + +EXTRA_DIST += \ + nix/libstore/schema.sql \ + nix/AUTHORS \ + nix/COPYING \ + etc/guix-daemon.service.in \ + etc/guix-daemon.conf.in + +if CAN_RUN_TESTS + +AM_TESTS_ENVIRONMENT += \ + top_builddir="$(abs_top_builddir)" + +TESTS += \ + tests/guix-daemon.sh + +endif CAN_RUN_TESTS + +clean-local: + -if test -d "$(GUIX_TEST_ROOT)"; then \ + find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \ + fi + -rm -rf "$(GUIX_TEST_ROOT)" -- cgit 1.4.1 From 8472b2fd2d4c4d060b1333c9c527575d965a0ebd Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Apr 2016 11:49:39 +0300 Subject: emacs: Add 'guix-find-license-definition' command. * emacs/guix-license.el (guix-license-file): New procedure. (guix-find-license-definition): New command. * doc/emacs.texi (Emacs Licenses): Document it. --- doc/emacs.texi | 3 +++ emacs/guix-license.el | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) (limited to 'emacs') diff --git a/doc/emacs.texi b/doc/emacs.texi index ed8896ad43..575e87c262 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -544,6 +544,9 @@ Display a list of available licenses. You can press @kbd{@key{RET}} there to display packages with this license in the same way as @kbd{M-x guix-packages-by-license} would do (@pxref{Emacs Commands}). +@item M-x guix-find-license-definition +Open @file{@dots{}/guix/licenses.scm} and move to the specified license. + @end table diff --git a/emacs/guix-license.el b/emacs/guix-license.el index 940f5518e2..6003a21aac 100644 --- a/emacs/guix-license.el +++ b/emacs/guix-license.el @@ -27,12 +27,33 @@ (require 'guix-backend) (require 'guix-guile) +(defun guix-license-file (&optional directory) + "Return name of the file with license definitions. +DIRECTORY is a directory with Guix source (`guix-directory' by default)." + (expand-file-name "guix/licenses.scm" + (or directory guix-directory))) + (defun guix-lookup-license-url (license) "Return URL of a LICENSE." (or (guix-eval-read (guix-make-guile-expression 'lookup-license-uri license)) (error "Hm, I don't know URL of '%s' license" license))) +;;;###autoload +(defun guix-find-license-definition (license &optional directory) + "Open licenses file from DIRECTORY and move to the LICENSE definition. +See `guix-license-file' for the meaning of DIRECTORY. +Interactively, with prefix argument, prompt for DIRECTORY." + (interactive + (list (guix-read-license-name) + (guix-read-directory))) + (find-file (guix-license-file directory)) + (goto-char (point-min)) + (when (re-search-forward (concat "\"" (regexp-quote license) "\"") + nil t) + (beginning-of-defun) + (recenter 1))) + ;;;###autoload (defun guix-browse-license-url (license) "Browse URL of a LICENSE." -- cgit 1.4.1 From 57748c27565117b3ad10c7fce67c36ecf5e5d5c7 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Apr 2016 11:51:54 +0300 Subject: emacs: Add license definition button to License Info buffer. * emacs/guix-ui-license.el (guix-license-insert-file): New procedure. (guix-license-info-format): Use it. --- emacs/guix-ui-license.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'emacs') diff --git a/emacs/guix-ui-license.el b/emacs/guix-ui-license.el index ab1d25bfd2..772a16801f 100644 --- a/emacs/guix-ui-license.el +++ b/emacs/guix-ui-license.el @@ -29,6 +29,7 @@ (require 'guix-info) (require 'guix-backend) (require 'guix-guile) +(require 'guix-license) (guix-define-entry-type license) @@ -64,7 +65,9 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." ignore guix-license-insert-packages-button (url ignore (simple guix-url)) - guix-license-insert-comment) + guix-license-insert-comment + ignore + guix-license-insert-file) :titles '((url . "URL"))) (declare-function guix-packages-by-license "guix-ui-package") @@ -89,6 +92,16 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (guix-info-param-title 'license 'comment)) (guix-info-insert-value-indent comment)))) +(defun guix-license-insert-file (entry) + "Insert button to open license definition." + (let ((license (guix-entry-value entry 'name))) + (guix-insert-button + (guix-license-file) 'guix-file + 'help-echo (format "Open definition of license '%s'" license) + 'action (lambda (btn) + (guix-find-license-definition (button-get btn 'license))) + 'license license))) + ;;; License 'list' -- cgit 1.4.1 From 557361e79f9c78798084a1c3ceb177d18c65f6fc Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 9 Apr 2016 13:26:33 +0300 Subject: emacs: Add "edit" command to a list of licenses. * emacs/guix-ui-license.el (guix-license-list-edit): New command. (guix-license-list-mode-map): Bind it to "e" key. --- emacs/guix-ui-license.el | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'emacs') diff --git a/emacs/guix-ui-license.el b/emacs/guix-ui-license.el index 772a16801f..cf1b5cd357 100644 --- a/emacs/guix-ui-license.el +++ b/emacs/guix-ui-license.el @@ -116,6 +116,7 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." :sort-key '(name)) (let ((map guix-license-list-mode-map)) + (define-key map (kbd "e") 'guix-license-list-edit) (define-key map (kbd "RET") 'guix-license-list-show-packages)) (defun guix-license-list-describe (ids) @@ -129,6 +130,12 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'." (interactive) (guix-packages-by-license (guix-list-current-id))) +(defun guix-license-list-edit (&optional directory) + "Go to the location of the current license definition. +See `guix-license-file' for the meaning of DIRECTORY." + (interactive (list (guix-read-directory))) + (guix-find-license-definition (guix-list-current-id) directory)) + ;;; Interactive commands -- cgit 1.4.1