From bc0b89bb3eca3adf35230d1fe7f89664762be4e8 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 23 Nov 2014 15:41:30 +0100 Subject: gnu: xf86-video-openchrome: Patch to correct build failure. * gnu/packages/xorg.scm (xf86-video-openchrome): Add patch for build failure with glibc-2.20. Fixes bug #18740. * gnu/packages/patches/xf86-video-openchrome-includes.patch: New file. * gnu-system.am (dist_patch_DATA): Register patch. --- gnu-system.am | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index d3b822c169..4c9fcda8b9 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -435,6 +435,7 @@ dist_patch_DATA = \ gnu/packages/patches/vpnc-script.patch \ gnu/packages/patches/w3m-fix-compile.patch \ gnu/packages/patches/xf86-input-synaptics-glibc-2.20.patch \ + gnu/packages/patches/xf86-video-openchrome-includes.patch \ gnu/packages/patches/xmodmap-asprintf.patch bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap -- cgit 1.4.1 From 598e19dca1677aebfe235e974f480b5bdd322694 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 26 Nov 2014 22:49:11 +0100 Subject: system: Build system-wide locale definitions. * gnu/system/locale.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system.scm ()[locale]: Change the default to "en_US.utf8". (operating-system-locale-directory): New procecure. (operating-system-derivation): Use it. * doc/guix.texi (Using the Configuration System): Change example locale to "fr_FR.utf8". (operating-system Reference): Add xref to "Locales". Document 'locale-definitions'. (Locales): New section. * po/guix/POTFILES.in: Add gnu/system.scm. --- doc/guix.texi | 86 ++++++++++++++++++++++++++++++++-- gnu-system.am | 1 + gnu/system.scm | 23 ++++++++- gnu/system/locale.scm | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++ po/guix/POTFILES.in | 1 + 5 files changed, 232 insertions(+), 5 deletions(-) create mode 100644 gnu/system/locale.scm (limited to 'gnu-system.am') diff --git a/doc/guix.texi b/doc/guix.texi index fe1f8a8b76..d4bc74f8a4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -139,6 +139,7 @@ System Configuration * File Systems:: Configuring file system mounts. * Mapped Devices:: Block device extra processing. * User Accounts:: Specifying user accounts. +* Locales:: Language and cultural convention settings. * Services:: Specifying system services. * Setuid Programs:: Programs running with root privileges. * Initial RAM Disk:: Linux-Libre bootstrapping. @@ -3470,6 +3471,7 @@ instance to support new system services. * File Systems:: Configuring file system mounts. * Mapped Devices:: Block device extra processing. * User Accounts:: Specifying user accounts. +* Locales:: Language and cultural convention settings. * Services:: Specifying system services. * Setuid Programs:: Programs running with root privileges. * Initial RAM Disk:: Linux-Libre bootstrapping. @@ -3496,7 +3498,7 @@ kernel, initial RAM disk, and boot loader looks like this: (operating-system (host-name "komputilo") (timezone "Europe/Paris") - (locale "fr_FR.UTF-8") + (locale "fr_FR.utf8") (bootloader (grub-configuration (device "/dev/sda"))) (file-systems (cons (file-system @@ -3649,9 +3651,13 @@ package}). @item @code{timezone} A timezone identifying string---e.g., @code{"Europe/Paris"}. -@item @code{locale} (default: @code{"en_US.UTF-8"}) -The name of the default locale (@pxref{Locales,,, libc, The GNU C -Library Reference Manual}). +@item @code{locale} (default: @code{"en_US.utf8"}) +The name of the default locale (@pxref{Locale Names,,, libc, The GNU C +Library Reference Manual}). @xref{Locales}, for more information. + +@item @code{locale-definitions} (default: @var{%default-locale-definitions}) +The list of locale definitions to be compiled and that may be used at +run time. @xref{Locales}. @item @code{services} (default: @var{%base-services}) A list of monadic values denoting system services. @xref{Services}. @@ -3958,6 +3964,78 @@ to be present on the system. This includes groups such as ``root'', specific devices such as ``audio'', ``disk'', and ``cdrom''. @end defvr +@node Locales +@subsection Locales + +@cindex locale +A @dfn{locale} defines cultural conventions for a particular language +and region of the world (@pxref{Locales,,, libc, The GNU C Library +Reference Manual}). Each locale has a name that typically has the form +@code{@var{language}_@var{territory}.@var{charset}}---e.g., +@code{fr_LU.utf8} designates the locale for the French language, with +cultural conventions from Luxembourg, and using the UTF-8 encoding. + +@cindex locale definition +Usually, you will want to specify the default locale for the machine +using the @code{locale} field of the @code{operating-system} declaration +(@pxref{operating-system Reference, @code{locale}}). + +That locale must be among the @dfn{locale definitions} that are known to +the system---and these are specified in the @code{locale-definitions} +slot of @code{operating-system}. The default value includes locale +definition for some widely used locales, but not for all the available +locales, in order to save space. + +If the locale specified in the @code{locale} field is not among the +definitions listed in @code{locale-definitions}, @command{guix system} +raises an error. In that case, you should add the locale definition to +the @code{locale-definitions} field. For instance, to add the North +Frisian locale for Germany, the value of that field may be: + +@example +(cons (locale-definition + (name "fy_DE.utf8") (source "fy_DE")) + %default-locale-definitions) +@end example + +Likewise, to save space, one might want @code{locale-definitions} to +list only the locales that are actually used, as in: + +@example +(list (locale-definition + (name "ja_JP.eucjp") (source "ja_JP") + (charset "EUC-JP"))) +@end example + +The @code{locale-definition} form is provided by the @code{(gnu system +locale)} module. Details are given below. + +@deftp {Data Type} locale-definition +This is the data type of a locale definition. + +@table @asis + +@item @code{name} +The name of the locale. @xref{Locale Names,,, libc, The GNU C Library +Reference Manual}, for more information on locale names. + +@item @code{source} +The name of the source for that locale. This is typically the +@code{@var{language}_@var{territory}} part of the locale name. + +@item @code{charset} (default: @code{"UTF-8"}) +The ``character set'' or ``code set'' for that locale, +@uref{http://www.iana.org/assignments/character-sets, as defined by +IANA}. + +@end table +@end deftp + +@defvr {Scheme Variable} %default-locale-definitions +An arbitrary list of commonly used locales, used as the default value of +the @code{locale-definitions} field of @code{operating-system} +declarations. +@end defvr @node Services @subsection Services diff --git a/gnu-system.am b/gnu-system.am index 4c9fcda8b9..bd1ac5d273 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -294,6 +294,7 @@ GNU_SYSTEM_MODULES = \ gnu/system/install.scm \ gnu/system/linux.scm \ gnu/system/linux-initrd.scm \ + gnu/system/locale.scm \ gnu/system/shadow.scm \ gnu/system/vm.scm \ \ diff --git a/gnu/system.scm b/gnu/system.scm index 5c915d3969..8883d3e752 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -46,12 +46,15 @@ #:use-module (gnu services base) #:use-module (gnu system grub) #:use-module (gnu system shadow) + #:use-module (gnu system locale) #:use-module (gnu system linux) #:use-module (gnu system linux-initrd) #:use-module (gnu system file-systems) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:export (operating-system operating-system? @@ -69,6 +72,7 @@ operating-system-packages operating-system-timezone operating-system-locale + operating-system-locale-definitions operating-system-mapped-devices operating-system-file-systems operating-system-activation-script @@ -129,7 +133,9 @@ (timezone operating-system-timezone) ; string (locale operating-system-locale ; string - (default "en_US.UTF-8")) + (default "en_US.utf8")) + (locale-definitions operating-system-locale-definitions ; list of + (default %default-locale-definitions)) (services operating-system-user-services ; list of monadic services (default %base-services)) @@ -649,6 +655,19 @@ we're running in the final root." #:mapped-devices mapped-devices))) (return #~(string-append #$initrd "/initrd")))) +(define (operating-system-locale-directory os) + "Return the directory containing the locales compiled for the definitions +listed in OS. The C library expects to find it under +/run/current-system/locale." + ;; While we're at it, check whether the locale of OS is defined. + (unless (member (operating-system-locale os) + (map locale-definition-name + (operating-system-locale-definitions os))) + (raise (condition + (&message (message "system locale lacks a definition"))))) + + (locale-directory (operating-system-locale-definitions os))) + (define (kernel->grub-label kernel) "Return a label for the GRUB menu entry that boots KERNEL." (string-append "GNU with " @@ -698,6 +717,7 @@ this file is the reconstruction of GRUB menu entries for old configurations." (boot (operating-system-boot-script os)) (kernel -> (operating-system-kernel os)) (initrd (operating-system-initrd-file os)) + (locale (operating-system-locale-directory os)) (params (operating-system-parameters-file os))) (file-union "system" `(("boot" ,#~#$boot) @@ -705,6 +725,7 @@ this file is the reconstruction of GRUB menu entries for old configurations." ("parameters" ,#~#$params) ("initrd" ,initrd) ("profile" ,#~#$profile) + ("locale" ,#~#$locale) ;used by libc ("etc" ,#~#$etc))))) ;;; system.scm ends here diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm new file mode 100644 index 0000000000..9c5c4d2fd9 --- /dev/null +++ b/gnu/system/locale.scm @@ -0,0 +1,126 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu system locale) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (srfi srfi-26) + #:export (locale-definition + locale-definition? + locale-definition-name + locale-definition-source + locale-definition-charset + + locale-directory + + %default-locale-definitions)) + +;;; Commentary: +;;; +;;; Locale definitions, and compilation thereof. +;;; +;;; Code: + +(define-record-type* locale-definition + make-locale-definition + locale-definition? + (name locale-definition-name) ;string--e.g., "fr_FR.utf8" + (source locale-definition-source) ;string--e.g., "fr_FR" + (charset locale-definition-charset ;string--e.g., "UTF-8" + (default "UTF-8"))) + +(define* (localedef-command locale + #:key (libc (canonical-package glibc))) + "Return a gexp that runs 'localdef' from LIBC to build LOCALE." + #~(begin + (format #t "building locale '~a'...~%" + #$(locale-definition-name locale)) + (zero? (system* (string-append #$libc "/bin/localedef") + "--no-archive" "--prefix" #$output + "-i" #$(locale-definition-source locale) + "-f" #$(locale-definition-charset locale) + (string-append #$output "/" + #$(locale-definition-name locale)))))) + +(define* (locale-directory locales + #:key (libc (canonical-package glibc))) + "Return a directory containing all of LOCALES compiled." + (define build + #~(begin + (mkdir #$output) + + ;; 'localedef' executes 'gzip' to access compressed locale sources. + (setenv "PATH" (string-append #$gzip "/bin")) + + (exit + (and #$@(map (cut localedef-command <> #:libc libc) + locales))))) + + (gexp->derivation "locale" build + #:local-build? #t)) + +(define %default-locale-definitions + ;; Arbitrary set of locales that are built by default. They are here mostly + ;; to facilitate first-time use to some people, while others may have to add + ;; a specific . + (letrec-syntax ((utf8-locale (syntax-rules () + ((_ name*) + (locale-definition + (name (string-append name* ".utf8")) + (source name*) + (charset "UTF-8"))))) + (utf8-locales (syntax-rules () + ((_ name ...) + (list (utf8-locale name) ...))))) + (utf8-locales "ca_ES" + "cs_CZ" + "da_DK" + "de_DE" + "el_GR" + "en_AU" + "en_CA" + "en_GB" + "en_US" + "es_AR" + "es_CL" + "es_ES" + "es_MX" + "fi_FI" + "fr_BE" + "fr_CA" + "fr_CH" + "fr_FR" + "ga_IE" + "it_IT" + "ja_JP" + "ko_KR" + "nb_NO" + "nl_NL" + "pl_PL" + "pt_PT" + "ro_RO" + "ru_RU" + "sv_SE" + "tr_TR" + "uk_UA" + "vi_VN" + "zh_CN"))) + +;;; locale.scm ends here diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 5cc68ff404..591b6a1c9a 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -1,6 +1,7 @@ # List of source files which contain translatable strings. # This should be source files of the various tools, and not package modules. gnu/packages.scm +gnu/system.scm guix/scripts/build.scm guix/scripts/download.scm guix/scripts/package.scm -- cgit 1.4.1 From fcaa5f44a197ab24f288d319dbdd27e2745bb052 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 27 Nov 2014 23:54:25 +0100 Subject: system: Add (gnu build linux-modules). * gnu/build/linux-modules.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/build/linux-modules.scm | 170 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 gnu/build/linux-modules.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index bd1ac5d273..6d188233e6 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -303,6 +303,7 @@ GNU_SYSTEM_MODULES = \ gnu/build/install.scm \ gnu/build/linux-boot.scm \ gnu/build/linux-initrd.scm \ + gnu/build/linux-modules.scm \ gnu/build/vm.scm diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm new file mode 100644 index 0000000000..0fa09b2912 --- /dev/null +++ b/gnu/build/linux-modules.scm @@ -0,0 +1,170 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu build linux-modules) + #:use-module (guix elf) + #:use-module (rnrs io ports) + #:use-module (rnrs bytevectors) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 vlist) + #:use-module (ice-9 match) + #:export (dot-ko + ensure-dot-ko + module-dependencies + recursive-module-dependencies + modules-loaded + module-loaded? + load-linux-module* + + current-module-debugging-port)) + +;;; Commentary: +;;; +;;; Tools to deal with Linux kernel modules. +;;; +;;; Code: + +(define current-module-debugging-port + (make-parameter (%make-void-port "w"))) + +(define (section-contents elf section) + "Return the contents of SECTION in ELF as a bytevector." + (let* ((modinfo (elf-section-by-name elf ".modinfo")) + (contents (make-bytevector (elf-section-size modinfo)))) + (bytevector-copy! (elf-bytes elf) (elf-section-offset modinfo) + contents 0 + (elf-section-size modinfo)) + contents)) + +(define %not-nul + (char-set-complement (char-set #\nul))) + +(define (nul-separated-string->list str) + "Split STR at occurrences of the NUL character and return the resulting +string list." + (string-tokenize str %not-nul)) + +(define (key=value->pair str) + "Assuming STR has the form \"KEY=VALUE\", return a pair like (KEY +. \"VALUE\")." + (let ((= (string-index str #\=))) + (cons (string->symbol (string-take str =)) + (string-drop str (+ 1 =))))) + +(define (modinfo-section-contents file) + "Return the contents of the '.modinfo' section of FILE as a list of +key/value pairs.." + (let* ((bv (call-with-input-file file get-bytevector-all)) + (elf (parse-elf bv)) + (modinfo (section-contents elf ".modinfo"))) + (map key=value->pair + (nul-separated-string->list (utf8->string modinfo))))) + +(define %not-comma + (char-set-complement (char-set #\,))) + +(define (module-dependencies file) + "Return the list of modules that FILE depends on. The returned list +contains module names, not actual file names." + (let ((info (modinfo-section-contents file))) + (match (assq 'depends info) + (('depends . what) + (string-tokenize what %not-comma))))) + +(define dot-ko + (cut string-append <> ".ko")) + +(define (ensure-dot-ko name) + "Return NAME with a '.ko' prefix appended, unless it already has it." + (if (string-suffix? ".ko" name) + name + (dot-ko name))) + +(define* (recursive-module-dependencies files + #:key (lookup-module dot-ko)) + "Return the topologically-sorted list of file names of the modules depended +on by FILES, recursively. File names of modules are determined by applying +LOOKUP-MODULE to the module name." + (let loop ((files files) + (result '()) + (visited vlist-null)) + (match files + (() + (delete-duplicates (reverse result))) + ((head . tail) + (let* ((visited? (vhash-assoc head visited)) + (deps (if visited? + '() + (map lookup-module (module-dependencies head)))) + (visited (if visited? + visited + (vhash-cons head #t visited)))) + (loop (append deps tail) + (append result deps) visited)))))) + +(define %not-newline + (char-set-complement (char-set #\newline))) + +(define (modules-loaded) + "Return the list of names of currently loaded Linux modules." + (let* ((contents (call-with-input-file "/proc/modules" + get-string-all)) + (lines (string-tokenize contents %not-newline))) + (match (map string-tokenize lines) + (((modules . _) ...) + modules)))) + +(define (module-loaded? module) + "Return #t if MODULE is already loaded. MODULE must be a Linux module name, +not a file name." + (member module (modules-loaded))) + +(define* (load-linux-module* file + #:key + (recursive? #t) + (lookup-module dot-ko)) + "Load Linux module from FILE, the name of a `.ko' file. When RECURSIVE? is +true, load its dependencies first (à la 'modprobe'.) The actual files +containing modules depended on are obtained by calling LOOKUP-MODULE with the +module name." + (define (slurp module) + ;; TODO: Use 'mmap' to reduce memory usage. + (call-with-input-file file get-bytevector-all)) + + (when recursive? + (for-each (cut load-linux-module* <> #:lookup-module lookup-module) + (map lookup-module (module-dependencies file)))) + + (format (current-module-debugging-port) + "loading Linux module from '~a'...~%" file) + + (catch 'system-error + (lambda () + (load-linux-module (slurp file))) + (lambda args + ;; If this module was already loaded and we're in modprobe style, ignore + ;; the error. + + ;; FIXME: Use errno once 'guile-linux-syscalls.patch' provides a useful + ;; errno here. + (unless (and recursive? + (module-loaded? (string-drop-right (basename file) 3))) + (apply throw args))))) + +;;; linux-modules.scm ends here -- cgit 1.4.1 From 2184ed9179a5e858283f2569a6bc965e47c8dbbd Mon Sep 17 00:00:00 2001 From: Taylan Ulrich B Date: Wed, 26 Nov 2014 23:14:16 +0100 Subject: gnu: Add mg. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/mg.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add mg.scm. Signed-off-by: Ludovic Courtès --- gnu-system.am | 1 + gnu/packages/mg.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 gnu/packages/mg.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 6d188233e6..ac0bfa1cc3 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -173,6 +173,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/mc.scm \ gnu/packages/mcrypt.scm \ gnu/packages/messaging.scm \ + gnu/packages/mg.scm \ gnu/packages/miscfiles.scm \ gnu/packages/mit-krb5.scm \ gnu/packages/moe.scm \ diff --git a/gnu/packages/mg.scm b/gnu/packages/mg.scm new file mode 100644 index 0000000000..a315dfed33 --- /dev/null +++ b/gnu/packages/mg.scm @@ -0,0 +1,64 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer +;;; +;;; 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 . + +(define-module (gnu packages mg) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pkg-config)) + +(define-public mg + (package + (name "mg") + (version "20050429") + (source (origin + (method url-fetch) + (uri (string-append "http://homepage.boetes.org/software/mg/mg-" + version ".tar.gz")) + (sha256 + (base32 + "19kib0aha4a40izzds7r63qfb2akq4sily6k28fl0n0zdgq0cna1")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "Makefile.in" + (("-Werror") "") + (("-lcurses") "-lncurses") + (("/usr/bin/install") "install -D") + (("/usr/bin/strip") "strip")))))) + (build-system gnu-build-system) + (inputs + `(("ncurses" ,ncurses))) + (arguments + ;; No test suite available. + '(#:tests? #f + #:phases (alist-cons-before + 'configure 'pre-configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile.in" + (("(prefix=[[:blank:]]*)/usr/local" all prefix) + (string-append prefix (assoc-ref outputs "out"))))) + %standard-phases))) + (home-page "http://homepage.boetes.org/software/mg/") + (synopsis "Microscopic GNU Emacs clone") + (description + "mg is Micro GNU Emacs; this is a portable version of the mg maintained +by the OpenBSD team.") + (license public-domain))) -- cgit 1.4.1 From 3c156c8a9446f45347526f925d59fe7d9ea07af6 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 2 Dec 2014 14:29:01 +0100 Subject: gnu: move xorg to xdisorg * gnu/packages/xorg.scm (xeyes, pixman, libdrm, libdrm-2.4.33, mtdev): Move to ... * gnu/packages/xdisorg.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/xdisorg.scm | 169 +++++++++++++++++++++++++++++++++++++++++++++++ gnu/packages/xorg.scm | 138 -------------------------------------- 3 files changed, 170 insertions(+), 138 deletions(-) create mode 100644 gnu/packages/xdisorg.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index ac0bfa1cc3..f7532f0164 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -274,6 +274,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/xlockmore.scm \ gnu/packages/xml.scm \ gnu/packages/xnee.scm \ + gnu/packages/xdisorg.scm \ gnu/packages/xorg.scm \ gnu/packages/yasm.scm \ gnu/packages/zile.scm \ diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm new file mode 100644 index 0000000000..2fc9bb0d76 --- /dev/null +++ b/gnu/packages/xdisorg.scm @@ -0,0 +1,169 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014 Andreas Enge +;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (gnu packages xdisorg) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages image) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xorg)) + + + +;; packages outside the x.org system proper + +(define-public xeyes + (package + (name "xeyes") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_" + version + ".orig.tar.gz")) + (sha256 + (base32 + "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9")))) + (build-system gnu-build-system) + (inputs + `(("libxext" ,libxext) + ("libxmu" ,libxmu) + ("libxt" ,libxt))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://xeyes.sourcearchive.com/") + (synopsis "Follow-the-mouse X demo") + (description "Xeyes is a demo program for x.org. It shows eyes +following the mouse.") + (license license:x11))) + + +(define-public pixman + (package + (name "pixman") + (version "0.32.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://cairographics.org/releases/pixman-" + version + ".tar.gz")) + (sha256 + (base32 + "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0")))) + (build-system gnu-build-system) + (inputs + `(("libpng" ,libpng) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.pixman.org/") + (synopsis "Low-level pixel manipulation library") + (description "Pixman is a low-level software library for pixel +manipulation, providing features such as image compositing and trapezoid +rasterisation.") + (license license:x11))) + + +(define-public libdrm + (package + (name "libdrm") + (version "2.4.46") + (source + (origin + (method url-fetch) + (uri (string-append + "http://dri.freedesktop.org/libdrm/libdrm-" + version + ".tar.bz2")) + (sha256 + (base32 + "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk")))) + (build-system gnu-build-system) + (inputs + `(("libpciaccess" ,libpciaccess) + ("libpthread-stubs" ,libpthread-stubs))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://dri.freedesktop.org/wiki/") + (synopsis "Direct rendering userspace library") + (description "The Direct Rendering Infrastructure, also known as the DRI, +is a framework for allowing direct access to graphics hardware under the +X Window System in a safe and efficient manner. It includes changes to the +X server, to several client libraries, and to the kernel (DRM, Direct +Rendering Manager). The most important use for the DRI is to create fast +OpenGL implementations providing hardware acceleration for Mesa. +Several 3D accelerated drivers have been written to the DRI specification, +including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel +and Matrox.") + (license license:x11))) + + +;; old version, required by old mesa, see +;; http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg10098.html +(define-public libdrm-2.4.33 + (package (inherit libdrm) + (version "2.4.33") + (source + (origin + (method url-fetch) + (uri (string-append + "http://dri.freedesktop.org/libdrm/libdrm-" + version + ".tar.bz2")) + (sha256 + (base32 + "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd")))) + (arguments + `(#:configure-flags + ;; create libdrm_nouveau.so, needed by mesa, see + ;; http://comments.gmane.org/gmane.linux.lfs.beyond.support/43261 + `("--enable-nouveau-experimental-api"))))) + + +(define-public mtdev + (package + (name "mtdev") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://bitmath.org/code/mtdev/mtdev-" + version ".tar.bz2")) + (sha256 + (base32 + "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d")))) + (build-system gnu-build-system) + (home-page "http://bitmath.org/code/mtdev/") + (synopsis "Multitouch protocol translation library") + (description "Mtdev is a stand-alone library which transforms all +variants of kernel MT events to the slotted type B protocol. The events +put into mtdev may be from any MT device, specifically type A without +contact tracking, type A with contact tracking, or type B with contact +tracking.") + (license license:x11))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 292845c64e..643e26bb5f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -45,144 +45,6 @@ -;; packages outside the x.org system proper - -(define-public xeyes - (package - (name "xeyes") - (version "1.0.1") - (source - (origin - (method url-fetch) - (uri (string-append - "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_" - version - ".orig.tar.gz")) - (sha256 - (base32 - "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9")))) - (build-system gnu-build-system) - (inputs - `(("libxext" ,libxext) - ("libxmu" ,libxmu) - ("libxt" ,libxt))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "http://xeyes.sourcearchive.com/") - (synopsis "Follow-the-mouse X demo") - (description "Xeyes is a demo program for x.org. It shows eyes -following the mouse.") - (license license:x11))) - - -(define-public pixman - (package - (name "pixman") - (version "0.32.4") - (source - (origin - (method url-fetch) - (uri (string-append - "http://cairographics.org/releases/pixman-" - version - ".tar.gz")) - (sha256 - (base32 - "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0")))) - (build-system gnu-build-system) - (inputs - `(("libpng" ,libpng) - ("zlib" ,zlib))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "http://www.pixman.org/") - (synopsis "Low-level pixel manipulation library") - (description "Pixman is a low-level software library for pixel -manipulation, providing features such as image compositing and trapezoid -rasterisation.") - (license license:x11))) - - -(define-public libdrm - (package - (name "libdrm") - (version "2.4.46") - (source - (origin - (method url-fetch) - (uri (string-append - "http://dri.freedesktop.org/libdrm/libdrm-" - version - ".tar.bz2")) - (sha256 - (base32 - "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk")))) - (build-system gnu-build-system) - (inputs - `(("libpciaccess" ,libpciaccess) - ("libpthread-stubs" ,libpthread-stubs))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "http://dri.freedesktop.org/wiki/") - (synopsis "Direct rendering userspace library") - (description "The Direct Rendering Infrastructure, also known as the DRI, -is a framework for allowing direct access to graphics hardware under the -X Window System in a safe and efficient manner. It includes changes to the -X server, to several client libraries, and to the kernel (DRM, Direct -Rendering Manager). The most important use for the DRI is to create fast -OpenGL implementations providing hardware acceleration for Mesa. -Several 3D accelerated drivers have been written to the DRI specification, -including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel -and Matrox.") - (license license:x11))) - - -;; old version, required by old mesa, see -;; http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg10098.html -(define-public libdrm-2.4.33 - (package (inherit libdrm) - (version "2.4.33") - (source - (origin - (method url-fetch) - (uri (string-append - "http://dri.freedesktop.org/libdrm/libdrm-" - version - ".tar.bz2")) - (sha256 - (base32 - "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd")))) - (arguments - `(#:configure-flags - ;; create libdrm_nouveau.so, needed by mesa, see - ;; http://comments.gmane.org/gmane.linux.lfs.beyond.support/43261 - `("--enable-nouveau-experimental-api"))))) - - -(define-public mtdev - (package - (name "mtdev") - (version "1.1.3") - (source - (origin - (method url-fetch) - (uri (string-append - "http://bitmath.org/code/mtdev/mtdev-" - version ".tar.bz2")) - (sha256 - (base32 - "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d")))) - (build-system gnu-build-system) - (home-page "http://bitmath.org/code/mtdev/") - (synopsis "Multitouch protocol translation library") - (description "Mtdev is a stand-alone library which transforms all -variants of kernel MT events to the slotted type B protocol. The events -put into mtdev may be from any MT device, specifically type A without -contact tracking, type A with contact tracking, or type B with contact -tracking.") - (license license:x11))) - - ;; packages without propagated input ;; (rationale for this separation: The packages in PROPAGATED_INPUTS need to -- cgit 1.4.1 From b88e1b0a626aa434e3934732392140dc9e919dd6 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 17 Nov 2014 19:36:01 -0600 Subject: gnu: python: Add sqlite input. * gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch, gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch: New patches. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/python.scm (python-2)[source]: Add patch. [inputs]: Add sqlite. (python)[source]: Add patch. --- gnu-system.am | 2 ++ gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch | 15 +++++++++++++++ gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch | 15 +++++++++++++++ gnu/packages/python.scm | 8 +++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch create mode 100644 gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index f7532f0164..161580f43f 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -417,6 +417,8 @@ dist_patch_DATA = \ gnu/packages/patches/pybugz-stty.patch \ gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/python-libffi-mips-n32-fix.patch \ + gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch \ + gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \ gnu/packages/patches/qt4-tests.patch \ gnu/packages/patches/ratpoison-shell.patch \ gnu/packages/patches/readline-link-ncurses.patch \ diff --git a/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch new file mode 100644 index 0000000000..2f8b159870 --- /dev/null +++ b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch @@ -0,0 +1,15 @@ +From resolution of upstream python issue #20901: http://bugs.python.org/issue20901 + +diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py +--- Lib/sqlite3/test/hooks.py ++++ Lib/sqlite3/test/hooks.py +@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase): + create table bar (a, b) + """) + second_count = len(progress_calls) +- self.assertGreater(first_count, second_count) ++ self.assertGreaterEqual(first_count, second_count) + + def CheckCancelOperation(self): + """ + diff --git a/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch new file mode 100644 index 0000000000..f121e8852a --- /dev/null +++ b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch @@ -0,0 +1,15 @@ +From resolution of upstream python issue #20901: http://bugs.python.org/issue20901 + +diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py +--- Lib/sqlite3/test/hooks.py ++++ Lib/sqlite3/test/hooks.py +@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase): + create table bar (a, b) + """) + second_count = len(progress_calls) +- self.assertTrue(first_count > second_count) ++ self.assertGreaterEqual(first_count, second_count) + + def CheckCancelOperation(self): + """ + diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 88f892799f..de60dca0a0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -65,7 +65,8 @@ (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) - (patches (list (search-patch "python-libffi-mips-n32-fix.patch"))) + (patches (list (search-patch "python-libffi-mips-n32-fix.patch") + (search-patch "python2-sqlite-3.8.4-test-fix.patch"))) (patch-flags '("-p0")) (sha256 (base32 @@ -119,6 +120,7 @@ (let ((bz2 (assoc-ref %build-inputs "bzip2")) (gdbm (assoc-ref %build-inputs "gdbm")) (libffi (assoc-ref %build-inputs "libffi")) + (sqlite (assoc-ref %build-inputs "sqlite")) (openssl (assoc-ref %build-inputs "openssl")) (readline (assoc-ref %build-inputs "readline")) (zlib (assoc-ref %build-inputs "zlib"))) @@ -127,6 +129,7 @@ (string-append "CPPFLAGS=" "-I" bz2 "/include " "-I" gdbm "/include " + "-I" sqlite "/include " "-I" openssl "/include " "-I" readline "/include " "-I" zlib "/include") @@ -134,6 +137,7 @@ "-L" bz2 "/lib " "-L" gdbm "/lib " "-L" libffi "/lib " + "-L" sqlite "/lib " "-L" openssl "/lib " "-L" readline "/lib " "-L" zlib "/lib"))) @@ -177,6 +181,7 @@ `(("bzip2" ,bzip2) ("gdbm" ,gdbm) ("libffi" ,libffi) ; for ctypes + ("sqlite" ,sqlite) ; for sqlite extension ("openssl" ,openssl) ("readline" ,readline) ("zlib" ,zlib) @@ -208,6 +213,7 @@ data types.") (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) (patches (list (search-patch "python-fix-tests.patch") + (search-patch "python-sqlite-3.8.4-test-fix.patch") (search-patch "python-libffi-mips-n32-fix.patch"))) (patch-flags '("-p0")) (sha256 -- cgit 1.4.1 From a1de06b6ab382bf8fa0f715ec938467f5dcc25a5 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 18 Nov 2014 18:57:41 -0600 Subject: gnu: Add python-pygobject. * gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/glib.scm (python-pygobject, python2-pygobject-2): New variables. --- gnu-system.am | 1 + gnu/packages/glib.scm | 84 ++++++++++++++++++++++ ...on2-pygobject-2-gi-info-type-error-domain.patch | 39 ++++++++++ 3 files changed, 124 insertions(+) create mode 100644 gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 161580f43f..adf27874a9 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -419,6 +419,7 @@ dist_patch_DATA = \ gnu/packages/patches/python-libffi-mips-n32-fix.patch \ gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch \ gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \ + gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ gnu/packages/patches/qt4-tests.patch \ gnu/packages/patches/ratpoison-shell.patch \ gnu/packages/patches/readline-link-ncurses.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index be2924c606..b472349d49 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -22,6 +22,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages base) @@ -37,6 +38,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages bash) #:use-module (gnu packages file) + #:use-module (gnu packages which) #:use-module (gnu packages xorg) #:use-module (gnu packages m4) @@ -430,3 +432,85 @@ has an ease of use unmatched by other C++ callback libraries.") "Glibmm provides a C++ programming interface to the part of GLib that are useful for C++.") (license license:lgpl2.1+))) + +(define-public python2-pygobject-2 + (package + (name "python2-pygobject") + ;; This was the last version to declare the 2.0 platform number, i.e. its + ;; pkg-config files were named pygobject-2.0.pc + (version "2.28.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pygobject/" + (version-major+minor version) + "/pygobject-" version ".tar.xz")) + (sha256 + (base32 + "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv")) + (patches + (list (search-patch + "python2-pygobject-2-gi-info-type-error-domain.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("which" ,which) + ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas + ("pkg-config" ,pkg-config) + ("dbus" ,dbus))) ;for tests + (inputs + `(("python" ,python-2) + ("glib" ,glib) + ("python2-py2cairo" ,python2-py2cairo) + ("gobject-introspection" ,gobject-introspection))) + (propagated-inputs + `(("libffi" ,libffi))) ;mentioned in pygobject-2.0.pc + (arguments + `(#:tests? #f ;segfaults during tests + #:configure-flags '("LIBS=-lcairo-gobject"))) + (home-page "https://pypi.python.org/pypi/PyGObject") + (synopsis "Python bindings for GObject") + (description + "Python bindings for GLib, GObject, and GIO.") + (license license:lgpl2.1+))) + +(define-public python-pygobject + (package + (name "python-pygobject") + (version "3.12.2") ;last version that works with + ;gobject-introspection 1.38 + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/pygobject/" + (version-major+minor version) + "/pygobject-" version ".tar.xz")) + (sha256 + (base32 + "08m5yad1hjdax4g39w6lgjk4124mcwpa8fc5iyvb8nygk8s3syky")))) + ;; 3.14.0: 0m1d75iwxa6k1xbkn6c6yq5r10pxnf7i5c2a5yvwsnab7ylzz7kp + (build-system gnu-build-system) + (native-inputs + `(("which" ,which) + ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas + ("pkg-config" ,pkg-config))) + (inputs + `(("python" ,python) + ("glib" ,glib) + ("python-pycairo" ,python-pycairo) + ("gobject-introspection" ,gobject-introspection) + ("libffi" ,libffi))) + (arguments + ;; TODO: failing tests: test_native_calls_async + ;; test_native_calls_async_errors test_native_calls_sync + ;; test_native_calls_sync_errors test_python_calls_async + ;; test_python_calls_async_error test_python_calls_async_error_result + ;; test_python_calls_sync test_python_calls_sync_errors + ;; test_python_calls_sync_noargs test_callback_user_data_middle_none + ;; test_callback_user_data_middle_single + ;; test_callback_user_data_middle_tuple + '(#:tests? #f)) + (home-page "https://pypi.python.org/pypi/PyGObject") + (synopsis "Python bindings for GObject") + (description + "Python bindings for GLib, GObject, and GIO.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch b/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch new file mode 100644 index 0000000000..6a08e56351 --- /dev/null +++ b/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch @@ -0,0 +1,39 @@ +From e5df32ffbf37481dbb6a70c4d4e7b7b9778c5549 Mon Sep 17 00:00:00 2001 +From: "John (J5) Palmieri" +Date: Sat, 13 Aug 2011 04:13:28 -0400 +Subject: remove references to deprecated GI_INFO_TYPE_ERROR_DOMAIN + + +diff --git a/gi/pygi-info.c b/gi/pygi-info.c +index 8729e25..007b609 100644 +--- a/gi/pygi-info.c ++++ b/gi/pygi-info.c +@@ -165,9 +165,6 @@ _pygi_info_new (GIBaseInfo *info) + case GI_INFO_TYPE_CONSTANT: + type = &PyGIConstantInfo_Type; + break; +- case GI_INFO_TYPE_ERROR_DOMAIN: +- type = &PyGIErrorDomainInfo_Type; +- break; + case GI_INFO_TYPE_UNION: + type = &PyGIUnionInfo_Type; + break; +@@ -484,7 +481,6 @@ _pygi_g_type_info_size (GITypeInfo *type_info) + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +@@ -863,7 +859,6 @@ pygi_g_struct_info_is_simple (GIStructInfo *struct_info) + case GI_INFO_TYPE_INVALID: + case GI_INFO_TYPE_FUNCTION: + case GI_INFO_TYPE_CONSTANT: +- case GI_INFO_TYPE_ERROR_DOMAIN: + case GI_INFO_TYPE_VALUE: + case GI_INFO_TYPE_SIGNAL: + case GI_INFO_TYPE_PROPERTY: +-- +cgit v0.10.1 + -- cgit 1.4.1 From f4c4513d478df5b22c7bae53b876dbd7b9cf5639 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 20 Nov 2014 22:16:52 -0600 Subject: gnu: Add gourmet. * gnu/packages/nutrition.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/nutrition.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/nutrition.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index adf27874a9..1cf16213c5 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -190,6 +190,7 @@ GNU_SYSTEM_MODULES = \ 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/ocrad.scm \ diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm new file mode 100644 index 0000000000..72bd5b0d3e --- /dev/null +++ b/gnu/packages/nutrition.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (gnu packages nutrition) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages) + #:use-module (gnu packages gtk) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages python)) + +(define-public gourmet + (package + (name "gourmet") + (version "0.17.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/thinkle/gourmet/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1qvz175arzqm10lpfx8ffadrgirs3240zzqcp0h7sl53qfwx7v8k")))) + (build-system python-build-system) + (native-inputs + `(("distutils-extra" ,python2-distutils-extra) + ("intltool" ,intltool) + ("python-pygtk" ,python2-pygtk))) ;for tests + ;; TODO: Add python-reportlab and/or python-poppler for printing/pdf + ;; export, and python-beautifulsoup for web import plugin. + (inputs + `(("pygtk" ,python2-pygtk) + ("sqlalchemy" ,python2-sqlalchemy) + ("python-pillow" ,python2-pillow) + ("elib.intl" ,python2-elib.intl) + ;; XXX: This really isn't an input for gourmet but of pillow. Making + ;; it a propagated input in pillow doesn't seem to get its site path + ;; into gourmet's wrapper's PYTHONPATH however... + ("python-setuptools" ,python2-setuptools))) + (arguments + `(#:python ,python-2 ;exception and print syntax + #:tests? #f)) ;tests look bitrotted + (home-page "http://thinkle.github.io/gourmet/") + (synopsis "Recipe organizer") + (description + "Gourmet Recipe Manager is a recipe organizer that allows you to collect, +search, organize, and browse your recipes. Gourmet can also generate shopping +lists and calculate nutritional information. It imports Mealmaster, +MasterCook and KRecipe files and exports PDFs, webpages, and other formats.") + (license gpl2+))) -- cgit 1.4.1 From 1567bb197698da49f6aad5db8394636e8f60c173 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 3 Dec 2014 09:46:41 +0100 Subject: gnu: Add tre (including the agrep utility) * gnu/packages/tre.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/tre.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 gnu/packages/tre.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 1cf16213c5..b3ba176b5b 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -251,6 +251,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/time.scm \ gnu/packages/tmux.scm \ gnu/packages/tor.scm \ + gnu/packages/tre.scm \ gnu/packages/unclutter.scm \ gnu/packages/unrtf.scm \ gnu/packages/upnp.scm \ diff --git a/gnu/packages/tre.scm b/gnu/packages/tre.scm new file mode 100644 index 0000000000..33d2cff093 --- /dev/null +++ b/gnu/packages/tre.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright 2014 John Darrington +;;; +;;; 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 . + +(define-module (gnu packages tre) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public tre + (package + (name "tre") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri + (string-append "http://laurikari.net/tre/" name "-" version + ".tar.bz2")) + (sha256 + (base32 "0n36cgqys59r2gmb7jzbqiwsy790v8nbxk82d2n2saz0rp145ild")))) + + (build-system gnu-build-system) + (synopsis "Approximate regex matching library and agrep utility") + (description "Superset of the POSIX regex API, enabling approximate +matching. Also ships a version of the agrep utility which behaves similar to +grep but features ineaxct matching.") + (home-page "http://laurikari.net/tre") + (license bsd-2))) -- cgit 1.4.1 From 36d2a3afeb9fba6f00de77cc62ef51e74380aff9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 3 Dec 2014 22:51:18 +0100 Subject: gnu: glib: Work around unreliable GIO test. Fixes . * gnu/packages/patches/glib-tests-gapplication.patch: New file * gnu/packages/glib.scm (glib)[source]: Add it. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/glib.scm | 3 ++- gnu/packages/patches/glib-tests-gapplication.patch | 28 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/glib-tests-gapplication.patch (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index b3ba176b5b..ddcf2e4943 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -358,6 +358,7 @@ dist_patch_DATA = \ 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-bootstrap-system.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ gnu/packages/patches/gnunet-fix-scheduler.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index fd4aa8860d..a6149cdc0e 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -129,7 +129,8 @@ shared NFS home directories.") (patches (list (search-patch "glib-tests-homedir.patch") (search-patch "glib-tests-desktop.patch") (search-patch "glib-tests-prlimit.patch") - (search-patch "glib-tests-timer.patch"))))) + (search-patch "glib-tests-timer.patch") + (search-patch "glib-tests-gapplication.patch"))))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch new file mode 100644 index 0000000000..1845fcb9b8 --- /dev/null +++ b/gnu/packages/patches/glib-tests-gapplication.patch @@ -0,0 +1,28 @@ +This test has proven to be unreliable, often leading to things like this +in gapplication.log: + + PASS: gapplication 3 /gapplication/properties + Failed to register: The connection is closed + ** + GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) + ok 4 /gapplication/app-id + PASS: gapplication 4 /gapplication/app-id + ../../tap-test: line 5: 24133 Aborted $1 -k --tap + # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) + cleaning up pid 24154 + ERROR: gapplication - missing test plan + ERROR: gapplication - exited with status 134 (terminated by signal 6?) + +See and . + + +--- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100 ++++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100 +@@ -685,7 +685,6 @@ main (int argc, char **argv) + /* g_test_add_func ("/gapplication/non-unique", test_nonunique); */ + g_test_add_func ("/gapplication/properties", properties); + g_test_add_func ("/gapplication/app-id", appid); +- g_test_add_func ("/gapplication/quit", test_quit); + g_test_add_func ("/gapplication/local-actions", test_local_actions); + /* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */ + g_test_add_func ("/gapplication/local-command-line", test_local_command_line); -- cgit 1.4.1 From 6036453fff4c92396a0c2fbbfabd6baa07164716 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 7 Dec 2014 00:02:43 +0100 Subject: gnu: Add libyubikey and ykclient. * gnu/packages/yubico.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/yubico.scm | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 gnu/packages/yubico.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index ddcf2e4943..62fd9e54f4 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -279,6 +279,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/xdisorg.scm \ gnu/packages/xorg.scm \ gnu/packages/yasm.scm \ + gnu/packages/yubico.scm \ gnu/packages/zile.scm \ gnu/packages/zip.scm \ gnu/packages/zsh.scm \ diff --git a/gnu/packages/yubico.scm b/gnu/packages/yubico.scm new file mode 100644 index 0000000000..f2e8ff133c --- /dev/null +++ b/gnu/packages/yubico.scm @@ -0,0 +1,76 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages yubico) + #:use-module (gnu packages) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages man) + #:use-module (gnu packages curl)) + +(define-public libyubikey + (package + (name "libyubikey") + (version "1.12") + (source (origin + (method url-fetch) + (uri (string-append + "https://developers.yubico.com/yubico-c/Releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1f0plzmr1gwry4rfgq9q70v6qwqny009hac289ad5m6sj7vqflxr")))) + (build-system gnu-build-system) + (synopsis "Development kit for the YubiKey authentication device") + (description + "This package contains a C library and command-line tools that make up +the low-level development kit for the Yubico YubiKey authentication device.") + (home-page "https://developers.yubico.com/yubico-c/") + (license bsd-2))) + +(define-public ykclient + (package + (name "ykclient") + (version "2.13") + (source (origin + (method url-fetch) + (uri (string-append + "https://developers.yubico.com/yubico-c-client/Releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1lw1j61rfjngs8vvv9m348zl4166zg24bq0dy72r44wiz79yic4j")))) + (build-system gnu-build-system) + + ;; There's just one test, and it requires network access to access + ;; yubico.com, so skip it. + (arguments '(#:tests? #f)) + + (native-inputs `(("pkg-config" ,pkg-config) + ("help2man" ,help2man))) + (inputs `(("curl" ,curl))) + (synopsis "C library to validate one-time-password YubiKeys") + (description + "YubiKey C Client Library (libykclient) is a C library used to validate a +one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico +website for more information about Yubico and the YubiKey.") + (home-page "https://developers.yubico.com/yubico-c-client/") + (license bsd-2))) -- cgit 1.4.1 From f6d9b3ded7642260915e2217b856c376940e2aa3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 8 Dec 2014 23:28:48 +0100 Subject: gnu: Add socat. * gnu/packages/socat.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/socat.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 gnu/packages/socat.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 62fd9e54f4..e21771c669 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -239,6 +239,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/skribilo.scm \ gnu/packages/slim.scm \ gnu/packages/smalltalk.scm \ + gnu/packages/socat.scm \ gnu/packages/ssh.scm \ gnu/packages/stalonetray.scm \ gnu/packages/swig.scm \ diff --git a/gnu/packages/socat.scm b/gnu/packages/socat.scm new file mode 100644 index 0000000000..7c0bc3d964 --- /dev/null +++ b/gnu/packages/socat.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages socat) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages openssl)) + +;; XXX: Group with other networking tools like tcpdump in a module? +(define-public socat + (package + (name "socat") + (version "1.7.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.dest-unreach.org/socat/download/socat-" + version ".tar.bz2")) + (sha256 + (base32 + "028yjka2zr6j1i8pmfmvzqki8ajczdl1hnry1x31xbbg3j83jxsb")))) + (build-system gnu-build-system) + (arguments '(#:tests? #f)) ;no 'check' phase + (inputs `(("openssl" ,openssl))) + (home-page "http://www.dest-unreach.org/socat/") + (synopsis + "Open bidirectional communication channels from the command line") + (description + "socat is a relay for bidirectional data transfer between two independent +data channels---files, pipes, devices, sockets, etc. It can create +\"listening\" sockets, named pipes, and pseudo terminals. + +socat can be used, for instance, as TCP port forwarder, as a shell interface +to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial +line, to logically connect serial lines on different computers, or to +establish a relatively secure environment (su and chroot) for running client +or server shell scripts with network connections. ") + (license license:gpl2))) -- cgit 1.4.1 From 6005bd0700544df27331c6aad9c7642dce9a91c8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 9 Dec 2014 11:44:21 +0100 Subject: build: Make sure the installed 'config.go' is newer than 'config.scm'. Fixes . Reported by rekado . * gnu-system.am (install-data-hook): Rename to... (set-bootstrap-executable-permissions): ... this. * Makefile.am (install-data-hook): New target. --- Makefile.am | 7 +++++++ gnu-system.am | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'gnu-system.am') diff --git a/Makefile.am b/Makefile.am index 25ff2224cc..bc0b95232e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -282,6 +282,13 @@ SUFFIXES = .go guix_install_go_files = install-nobase_nodist_guilemoduleDATA $(guix_install_go_files): install-nobase_dist_guilemoduleDATA +# The above trick doesn't work for 'config.go' because both 'config.scm' and +# 'config.go' are listed in $(nobase_nodist_guilemodule_DATA). Thus, give it +# special treatment. +install-data-hook: set-bootstrap-executable-permissions + touch "$(DESTDIR)$(guilemoduledir)/guix/config.go" + + SUBDIRS = po/guix po/packages BUILT_SOURCES = diff --git a/gnu-system.am b/gnu-system.am index e21771c669..ab62510159 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -484,7 +484,7 @@ nodist_bootstrap_mips64el_linux_DATA = \ # Those files must remain executable, so they remain executable once # imported into the store. -install-data-hook: +set-bootstrap-executable-permissions: chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz} DISTCLEANFILES = \ -- cgit 1.4.1 From 8d809faf8cdd4f06ebfbce7d466d67d00ad12869 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 26 Nov 2014 13:22:00 -0600 Subject: gnu: Add delta. * gnu/packages/debug.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/debug.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 gnu/packages/debug.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index ab62510159..1ff234550d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -72,6 +72,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/databases.scm \ gnu/packages/datamash.scm \ gnu/packages/dc.scm \ + gnu/packages/debug.scm \ gnu/packages/dejagnu.scm \ gnu/packages/dictionaries.scm \ gnu/packages/disk.scm \ diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm new file mode 100644 index 0000000000..37697cc2c6 --- /dev/null +++ b/gnu/packages/debug.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (gnu packages debug) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages perl)) + +(define-public delta + (package + (name "delta") + (version "2006.08.03") + (source + (origin + (method url-fetch) + (uri (list + (string-append "http://ftp.de.debian.org/debian/pool/main/d/delta/" + "delta_" version ".orig.tar.gz") + ;; This uri seems to send guix download into an infinite loop + (string-append "http://delta.tigris.org/files/documents/3103/" + "33566/delta-" version ".tar.gz"))) + (sha256 + (base32 + "184wh35pf2ddx97319s6sgkzpz48xxkbwzcjpycv009bm53lh61q")))) + (build-system gnu-build-system) + (inputs ;Installed programs are perl scripts + `(("perl" ,perl))) + (arguments + `(#:phases + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Makefile contains no install target + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/delta-" ,version))) + (begin + (mkdir-p bin) + (mkdir-p doc) + (for-each (lambda (h) + (copy-file h (string-append doc "/" (basename h)))) + `("License.txt" ,@(find-files "www" ".*\\.html"))) + (for-each (lambda (b) + (copy-file b (string-append bin "/" b))) + `("delta" "multidelta" "topformflat"))))) + (alist-delete 'configure %standard-phases)))) + (home-page "http://delta.tigris.org/") + (synopsis "Heuristical file minimizer") + (description + "Delta assists you in minimizing \"interesting\" files subject to a test +of their interestingness. A common such situation is when attempting to +isolate a small failure-inducing substring of a large input that causes your +program to exhibit a bug.") + ;; See License.txt, which is a bsd-3 license, despite the project's + ;; home-page pointing to a bsd-2 license. + (license bsd-3))) -- cgit 1.4.1 From 3e4249ce10ff45054916bfebe7a4620092e674db Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 7 Dec 2014 15:19:35 -0600 Subject: gnu: Add llvm and clang. * gnu/packages/llvm.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/llvm.scm | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 gnu/packages/llvm.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 1ff234550d..4da3f5b4cd 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -161,6 +161,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/links.scm \ gnu/packages/linux.scm \ gnu/packages/lisp.scm \ + gnu/packages/llvm.scm \ gnu/packages/lout.scm \ gnu/packages/lsh.scm \ gnu/packages/lsof.scm \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm new file mode 100644 index 0000000000..5b70124655 --- /dev/null +++ b/gnu/packages/llvm.scm @@ -0,0 +1,107 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier +;;; +;;; 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 . + +(define-module (gnu packages llvm) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages xml)) + +(define-public llvm + (package + (name "llvm") + (version "3.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "00swb43mzlvda8306arlg2jw7g6k3acwfccgf1k4c2pgd3rrkq98")))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python-wrapper) + ("perl" ,perl))) + (arguments + `(#:phases (alist-cons-before + 'build 'link-lib-for-build-exec + (lambda* (#:key outputs #:allow-other-keys) + ;; This is a hacky fix that will allow binaries to run + ;; before being installed. -DCMAKE_SKIP_BUILD_RPATH=FALSE + ;; seems to not help. Nixpkgs does the same. + (let* ((out (assoc-ref outputs "out")) + (out-lib (string-append out "/lib")) + (build-lib (string-append (getcwd) "/lib"))) + (mkdir-p out) + (symlink build-lib out-lib))) + (alist-cons-after + 'build 'cleanup-out + (lambda* (#:key outputs #:allow-other-keys) + ;; Cleanup the symlink that was created previously. Let + ;; the install phase repopulate out. + (delete-file-recursively (assoc-ref outputs "out"))) + %standard-phases)))) + (home-page "http://www.llvm.org") + (synopsis "Optimizing compiler infrastructure") + (description + "LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, +and idle-time optimization of programs from arbitrary programming languages. +It currently supports compilation of C and C++ programs, using front-ends +derived from GCC 4.0.1. A new front-end for the C family of languages is in +development. The compiler infrastructure includes mirror sets of programming +tools as well as libraries with equivalent functionality.") + (license ncsa))) + +(define-public clang + (package + (name "clang") + (version (package-version llvm)) + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/cfe-" version ".src.tar.xz")) + (sha256 + (base32 + "12yv3jwdjcbkrx7zjm8wh4jrvb59v8fdw4mnmz3zc1jb00p9k07w")))) + ;; Using cmake allows us to treat llvm as an external library. There + ;; doesn't seem to be any way to do this with clang's autotools-based + ;; build system. + (build-system cmake-build-system) + (native-inputs (package-native-inputs llvm)) + (inputs + `(("libxml2" ,libxml2) + ,@(package-inputs llvm))) + (propagated-inputs + `(("llvm" ,llvm))) + (arguments `(#:configure-flags '("-DCLANG_INCLUDE_TESTS=True"))) + (home-page "http://clang.llvm.org") + (synopsis "C language family frontend for LLVM") + (description + "Clang is a compiler front end for the C, C++, Objective-C and +Objective-C++ programming languages. It uses LLVM as its back end. The Clang +project includes the Clang front end, the Clang static analyzer, and several +code analysis tools.") + (license ncsa))) -- cgit 1.4.1 From 2e88e089da7cb0d1937e020ce1f7efdf72739a74 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 5 Dec 2014 00:22:04 +0300 Subject: gnu: Add wmctrl. * gnu/packages/xdisorg.scm (wmctrl): New variable. * gnu/packages/patches/wmctrl-64-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/patches/wmctrl-64-fix.patch | 32 ++++++++++++++++++++++++++++ gnu/packages/xdisorg.scm | 36 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 gnu/packages/patches/wmctrl-64-fix.patch (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 4da3f5b4cd..99225b2a18 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -448,6 +448,7 @@ dist_patch_DATA = \ gnu/packages/patches/util-linux-perl.patch \ gnu/packages/patches/vpnc-script.patch \ gnu/packages/patches/w3m-fix-compile.patch \ + gnu/packages/patches/wmctrl-64-fix.patch \ gnu/packages/patches/xf86-input-synaptics-glibc-2.20.patch \ gnu/packages/patches/xf86-video-openchrome-includes.patch \ gnu/packages/patches/xmodmap-asprintf.patch diff --git a/gnu/packages/patches/wmctrl-64-fix.patch b/gnu/packages/patches/wmctrl-64-fix.patch new file mode 100644 index 0000000000..3ec1c913ff --- /dev/null +++ b/gnu/packages/patches/wmctrl-64-fix.patch @@ -0,0 +1,32 @@ +Description: Correct 64 Architecture implementation of 32 bit data +Author: Chris Donoghue +Bug-Debian: http://bugs.debian.org/362068 + +--- wmctrl-1.07.orig/main.c ++++ wmctrl-1.07/main.c +@@ -1425,6 +1425,16 @@ static gchar *get_property (Display *dis + * + * long_length = Specifies the length in 32-bit multiples of the + * data to be retrieved. ++ * ++ * NOTE: see ++ * http://mail.gnome.org/archives/wm-spec-list/2003-March/msg00067.html ++ * In particular: ++ * ++ * When the X window system was ported to 64-bit architectures, a ++ * rather peculiar design decision was made. 32-bit quantities such ++ * as Window IDs, atoms, etc, were kept as longs in the client side ++ * APIs, even when long was changed to 64 bits. ++ * + */ + if (XGetWindowProperty(disp, win, xa_prop_name, 0, MAX_PROPERTY_VALUE_LEN / 4, False, + xa_prop_type, &xa_ret_type, &ret_format, +@@ -1441,6 +1451,8 @@ static gchar *get_property (Display *dis + + /* null terminate the result to make string handling easier */ + tmp_size = (ret_format / 8) * ret_nitems; ++ /* Correct 64 Architecture implementation of 32 bit data */ ++ if(ret_format==32) tmp_size *= sizeof(long)/4; + ret = g_malloc(tmp_size + 1); + memcpy(ret, ret_prop, tmp_size); + ret[tmp_size] = '\0'; diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a118fd745e..a46b8f8fac 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) #:use-module (gnu packages xorg)) ;; packages outside the x.org system proper @@ -215,3 +217,37 @@ notification protocol. The reference implementation is mostly under an X Window System style license, and has no special dependencies.") ;; Most of the code is provided under x11 license. (license license:lgpl2.0+))) + +(define-public wmctrl + (package + (name "wmctrl") + (version "1.07") + (source (origin + (method url-fetch) + (uri (string-append + "http://tomas.styblo.name/wmctrl/dist/wmctrl-" + version ".tar.gz")) + (sha256 + (base32 + "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np")) + (patches (list (search-patch "wmctrl-64-fix.patch"))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--mandir=" + (assoc-ref %outputs "out") + "/share/man")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libx11" ,libx11) + ("libxmu" ,libxmu) + ("glib" ,glib))) + (home-page "http://tomas.styblo.name/wmctrl/") + (synopsis "Command-line tool to control X window managers") + (description + "Wmctrl allows to interact with an X window manager that is compatible +with the EWMH/NetWM specification. It can query the window manager for +information, and request for certain window management actions (resize and +move windows, switch between desktops, etc.)") + (license license:gpl2+))) -- cgit 1.4.1 From 1410f342f78ced60de4b507743a62a1fd2b8ad4b Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 9 Dec 2014 21:23:46 +0300 Subject: gnu: Move scrot to (gnu packages xdisorg). * gnu/packages/scrot.scm: Remove. (scrot) Move to... * gnu/packages/xdisorg.scm (scrot): ... here. New variable. * gnu-system.am (GNU_SYSTEM_MODULES): Remove scrot file name. --- gnu-system.am | 1 - gnu/packages/scrot.scm | 68 ------------------------------------------------ gnu/packages/xdisorg.scm | 43 ++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 69 deletions(-) delete mode 100644 gnu/packages/scrot.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 99225b2a18..21ee7a85f3 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -233,7 +233,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/scanner.scm \ gnu/packages/scheme.scm \ gnu/packages/screen.scm \ - gnu/packages/scrot.scm \ gnu/packages/sdl.scm \ gnu/packages/search.scm \ gnu/packages/serveez.scm \ diff --git a/gnu/packages/scrot.scm b/gnu/packages/scrot.scm deleted file mode 100644 index b842c2dcf0..0000000000 --- a/gnu/packages/scrot.scm +++ /dev/null @@ -1,68 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 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 GNU Guix. If not, see . - -(define-module (gnu packages scrot) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (gnu packages xorg) - #:use-module (gnu packages image)) - -(define-public scrot - (package - (name "scrot") - (version "0.8") - (source (origin - (method url-fetch) - (uri (string-append - "http://linuxbrit.co.uk/downloads/scrot-" - version ".tar.gz")) - (sha256 - (base32 - "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1")))) - (build-system gnu-build-system) - (arguments - ;; By default, man and doc are put in PREFIX/{man,doc} instead of - ;; PREFIX/share/{man,doc}. - '(#:configure-flags - (list (string-append "--mandir=" - (assoc-ref %outputs "out") - "/share/man")) - #:phases (alist-replace - 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/scrot"))) - (mkdir-p doc) - (zero? - (system* "make" "install" - (string-append "docsdir=" doc))))) - %standard-phases))) - (inputs - `(("libx11" ,libx11) - ("giblib" ,giblib))) - (home-page "http://linuxbrit.co.uk/software/") - (synopsis "Command-line screen capture utility for X Window System") - (description - "Scrot allows to save a screenshot of a full screen, a window or a part -of the screen selected by mouse.") - ;; This license removes a clause about X Consortium from the original - ;; X11 license. - (license (x11-style "file://COPYING" - "See 'COPYING' in the distribution.")))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a46b8f8fac..fccdeb5159 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -251,3 +251,46 @@ with the EWMH/NetWM specification. It can query the window manager for information, and request for certain window management actions (resize and move windows, switch between desktops, etc.)") (license license:gpl2+))) + +(define-public scrot + (package + (name "scrot") + (version "0.8") + (source (origin + (method url-fetch) + (uri (string-append + "http://linuxbrit.co.uk/downloads/scrot-" + version ".tar.gz")) + (sha256 + (base32 + "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1")))) + (build-system gnu-build-system) + (arguments + ;; By default, man and doc are put in PREFIX/{man,doc} instead of + ;; PREFIX/share/{man,doc}. + '(#:configure-flags + (list (string-append "--mandir=" + (assoc-ref %outputs "out") + "/share/man")) + #:phases (alist-replace + 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/scrot"))) + (mkdir-p doc) + (zero? + (system* "make" "install" + (string-append "docsdir=" doc))))) + %standard-phases))) + (inputs + `(("libx11" ,libx11) + ("giblib" ,giblib))) + (home-page "http://linuxbrit.co.uk/software/") + (synopsis "Command-line screen capture utility for X Window System") + (description + "Scrot allows to save a screenshot of a full screen, a window or a part +of the screen selected by mouse.") + ;; This license removes a clause about X Consortium from the original + ;; X11 license. + (license (license:x11-style "file://COPYING" + "See 'COPYING' in the distribution.")))) -- cgit 1.4.1 From 4a01b30b33ace18e1479b7137f413ea5bda41392 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 9 Dec 2014 21:42:56 +0300 Subject: gnu: Move unclutter to (gnu packages xdisorg). * gnu/packages/unclutter.scm: Remove. (unclutter) Move to... * gnu/packages/xdisorg.scm (unclutter): ... here. New variable. * gnu-system.am (GNU_SYSTEM_MODULES): Remove unclutter file name. --- gnu-system.am | 1 - gnu/packages/unclutter.scm | 69 ---------------------------------------------- gnu/packages/xdisorg.scm | 45 ++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 70 deletions(-) delete mode 100644 gnu/packages/unclutter.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 21ee7a85f3..e923340539 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -254,7 +254,6 @@ GNU_SYSTEM_MODULES = \ gnu/packages/tmux.scm \ gnu/packages/tor.scm \ gnu/packages/tre.scm \ - gnu/packages/unclutter.scm \ gnu/packages/unrtf.scm \ gnu/packages/upnp.scm \ gnu/packages/uucp.scm \ diff --git a/gnu/packages/unclutter.scm b/gnu/packages/unclutter.scm deleted file mode 100644 index ca1f7ede77..0000000000 --- a/gnu/packages/unclutter.scm +++ /dev/null @@ -1,69 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 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 GNU Guix. If not, see . - -(define-module (gnu packages unclutter) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix licenses) - #:use-module (gnu packages xorg)) - -(define-public unclutter - (package - (name "unclutter") - (version "8") - (source (origin - (method url-fetch) - (uri (string-append - "http://ftp.x.org/contrib/utilities/unclutter-" - version ".tar.Z")) - (sha256 - (base32 - "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no check target - #:phases (alist-delete - 'configure - (alist-replace - 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (man1 (string-append out "/share/man/man1"))) - (mkdir-p bin) - (mkdir-p man1) - (zero? - (system* "make" "install" "install.man" - (string-append "BINDIR=" bin) - (string-append "MANDIR=" man1))))) - %standard-phases)))) - (inputs `(("libx11" ,libx11))) - (home-page "http://ftp.x.org/contrib/utilities/") - (synopsis "Hide idle mouse cursor") - (description - "Unclutter is a program which runs permanently in the background of an -X11 session. It checks on the X11 pointer (cursor) position every few -seconds, and when it finds it has not moved (and no buttons are pressed -on the mouse, and the cursor is not in the root window) it creates a -small sub-window as a child of the window the cursor is in. The new -window installs a cursor of size 1x1 but a mask of all 0, i.e. an -invisible cursor. This allows you to see all the text in an xterm or -xedit, for example. The human factors crowd would agree it should make -things less distracting.") - (license public-domain))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index fccdeb5159..6820d018e3 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -294,3 +294,48 @@ of the screen selected by mouse.") ;; X11 license. (license (license:x11-style "file://COPYING" "See 'COPYING' in the distribution.")))) + +(define-public unclutter + (package + (name "unclutter") + (version "8") + (source (origin + (method url-fetch) + (uri (string-append + "http://ftp.x.org/contrib/utilities/unclutter-" + version ".tar.Z")) + (sha256 + (base32 + "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:phases (alist-delete + 'configure + (alist-replace + 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man1 (string-append out "/share/man/man1"))) + (mkdir-p bin) + (mkdir-p man1) + (zero? + (system* "make" "install" "install.man" + (string-append "BINDIR=" bin) + (string-append "MANDIR=" man1))))) + %standard-phases)))) + (inputs `(("libx11" ,libx11))) + (home-page "http://ftp.x.org/contrib/utilities/") + (synopsis "Hide idle mouse cursor") + (description + "Unclutter is a program which runs permanently in the background of an +X11 session. It checks on the X11 pointer (cursor) position every few +seconds, and when it finds it has not moved (and no buttons are pressed +on the mouse, and the cursor is not in the root window) it creates a +small sub-window as a child of the window the cursor is in. The new +window installs a cursor of size 1x1 but a mask of all 0, i.e. an +invisible cursor. This allows you to see all the text in an xterm or +xedit, for example. The human factors crowd would agree it should make +things less distracting.") + (license license:public-domain))) -- cgit 1.4.1 From 62ac2ed9f42e3dc543e2cb2386666ebac4e41922 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 10 Dec 2014 19:08:36 +0800 Subject: gnu: Add gtk-xfce-engine. * gnu/packages/xfce.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/xfce.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 gnu/packages/xfce.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index e923340539..2854fb511d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -279,6 +279,7 @@ GNU_SYSTEM_MODULES = \ 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 \ diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm new file mode 100644 index 0000000000..696fffe8ea --- /dev/null +++ b/gnu/packages/xfce.scm @@ -0,0 +1,48 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Sou Bunnbu +;;; +;;; 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 . + +(define-module (gnu packages xfce) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk)) + +(define-public gtk-xfce-engine + (package + (name "gtk-xfce-engine") + (version "3.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.xfce.org/xfce/4.10/src/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "13c3ajfqkdr6jlqjyhcp4nls0ddanypr83q9qib2ciffik78zq4h")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (inputs `(("gtk+" ,gtk+-2))) + (home-page "http://www.xfce.org/") + (synopsis "GTK+ theme engine for Xfce") + (description + "Default GTK+ engine and themes for Xfce Desktop Environment.") + (license gpl2+))) -- cgit 1.4.1 From 4e10a22168248bbbb78cd8603bb9b8a3a26b90c7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 11 Dec 2014 15:48:22 +0100 Subject: gnu: Add samtools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/bioinformatics.scm: New file * gnu-system.am (GNU_SYSTEM_MODULES): Add it Signed-off-by: Ludovic Courtès --- gnu-system.am | 1 + gnu/packages/bioinformatics.scm | 84 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 gnu/packages/bioinformatics.scm (limited to 'gnu-system.am') diff --git a/gnu-system.am b/gnu-system.am index 2854fb511d..e828c01d7c 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -45,6 +45,7 @@ GNU_SYSTEM_MODULES = \ 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 \ diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm new file mode 100644 index 0000000000..6f6178a3ff --- /dev/null +++ b/gnu/packages/bioinformatics.scm @@ -0,0 +1,84 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Ricardo Wurmus +;;; +;;; 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 . + +(define-module (gnu packages bioinformatics) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python)) + +(define-public samtools + (package + (name "samtools") + (version "1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/samtools/" + version "/samtools-" version ".tar.bz2")) + (sha256 + (base32 + "1y5p2hs4gif891b4ik20275a8xf3qrr1zh9wpysp4g8m0g1jckf2")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (alist-cons-after + 'unpack + 'patch-makefile-curses + (lambda _ + (substitute* "Makefile" + (("-lcurses") "-lncurses"))) + (alist-cons-after + 'unpack + 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "test/test.pl" + ;; The test script calls out to /bin/bash + (("/bin/bash") + (string-append bash "/bin/bash")) + ;; There are two failing tests upstream relating to the "stats" + ;; subcommand in test_usage_subcommand ("did not have Usage" + ;; and "usage did not mention samtools stats"), so we disable + ;; them. + (("(test_usage_subcommand\\(.*\\);)" cmd) + (string-append "unless ($subcommand eq 'stats') {" cmd "};"))))) + (alist-delete + 'configure + %standard-phases))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("ncurses" ,ncurses) + ("perl" ,perl) + ("python" ,python) + ("zlib" ,zlib))) + (home-page "http://samtools.sourceforge.net") + (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments") + (description + "Samtools implements various utilities for post-processing nucleotide +sequence alignments in the SAM, BAM, and CRAM formats, including indexing, +variant calling (in conjunction with bcftools), and a simple alignment +viewer.") + (license license:expat))) -- cgit 1.4.1