me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
Ludovic Courtès 2016-09-02 15:39:50 +02:00
commit 072e10615f
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
50 changed files with 2512 additions and 767 deletions

View File

@ -107,6 +107,7 @@ MODULES = \
guix/build/emacs-utils.scm \ guix/build/emacs-utils.scm \
guix/build/graft.scm \ guix/build/graft.scm \
guix/build/bournish.scm \ guix/build/bournish.scm \
guix/build/qt-utils.scm \
guix/search-paths.scm \ guix/search-paths.scm \
guix/packages.scm \ guix/packages.scm \
guix/import/utils.scm \ guix/import/utils.scm \

12
TODO
View File

@ -9,13 +9,6 @@ Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
are permitted in any medium without royalty provided the copyright are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. notice and this notice are preserved.
* Add `guix publish' to publish the store using Guile's web server
Generate narinfos and nars on the fly, upon HTTP GET requests.
Ideally, extend .nix-cache-info to include the server's public key, and also
reply to requests for .narinfo.sig.
Optionally, use Guile-Avahi to publish the service.
* MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]] * MAYBE Add a substituter that uses the GNUnet DHT or [[http://libswift.org][libswift]]
Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or Would be neat if binaries could be pushed to and pulled from the GNUnet DHT or
@ -74,11 +67,6 @@ per-package priorities, etc.
Tests that need to download stuff or otherwise take a long time would only be Tests that need to download stuff or otherwise take a long time would only be
run when that is defined. run when that is defined.
* add "guix challenge"
Would download a substitute, and compare its contents against a (hopefully
locally-built) copy.
* guix build utils * guix build utils
** MAYBE Change ld-wrapper to add RPATH for libs passed by file name ** MAYBE Change ld-wrapper to add RPATH for libs passed by file name

View File

@ -1718,9 +1718,9 @@ version: 3.3.5
You may also specify the full name of a package to only get details about a You may also specify the full name of a package to only get details about a
specific version of it: specific version of it:
@example @example
$ guix package --show=python-3.3.5 | recsel -p name,version $ guix package --show=python@@3.4 | recsel -p name,version
name: python name: python
version: 3.3.5 version: 3.4.3
@end example @end example
@ -2574,6 +2574,45 @@ and operating system, such as @code{"mips64el-linux-gnu"}
Configure and Build System}). Configure and Build System}).
@end deffn @end deffn
@cindex package transformations
@cindex input rewriting
@cindex dependency tree rewriting
Packages can be manipulated in arbitrary ways. An example of a useful
transformation is @dfn{input rewriting}, whereby the dependency tree of
a package is rewritten by replacing specific inputs by others:
@deffn {Scheme Procedure} package-input-rewriting @var{replacements} @
[@var{rewrite-name}]
Return a procedure that, when passed a package, replaces its direct and
indirect dependencies (but not its implicit inputs) according to
@var{replacements}. @var{replacements} is a list of package pairs; the
first element of each pair is the package to replace, and the second one
is the replacement.
Optionally, @var{rewrite-name} is a one-argument procedure that takes
the name of a package and returns its new name after rewrite.
@end deffn
@noindent
Consider this example:
@example
(define libressl-instead-of-openssl
;; This is a procedure to replace OPENSSL by LIBRESSL,
;; recursively.
(package-input-rewriting `((,openssl . ,libressl))))
(define git-with-libressl
(libressl-instead-of-openssl git))
@end example
@noindent
Here we first define a rewriting procedure that replaces @var{openssl}
with @var{libressl}. Then we use it to define a @dfn{variant} of the
@var{git} package that uses @var{libressl} instead of @var{openssl}.
This is exactly what the @option{--with-input} command-line option does
(@pxref{Package Transformation Options, @option{--with-input}}).
@menu @menu
* package Reference :: The package data type. * package Reference :: The package data type.
* origin Reference:: The origin data type. * origin Reference:: The origin data type.
@ -4362,7 +4401,8 @@ This is a recursive, deep replacement. So in this example, both
@code{guix} and its dependency @code{guile-json} (which also depends on @code{guix} and its dependency @code{guile-json} (which also depends on
@code{guile}) get rebuilt against @code{guile-next}. @code{guile}) get rebuilt against @code{guile-next}.
However, implicit inputs are left unchanged. This is implemented using the @code{package-input-rewriting} Scheme
procedure (@pxref{Defining Packages, @code{package-input-rewriting}}).
@end table @end table
@node Additional Build Options @node Additional Build Options
@ -7952,7 +7992,7 @@ configure networking."
@end deffn @end deffn
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
[#:name-service @var{%ntp-servers}] [#:servers @var{%ntp-servers}]
Return a service that runs the daemon from @var{ntp}, the Return a service that runs the daemon from @var{ntp}, the
@uref{http://www.ntp.org, Network Time Protocol package}. The daemon will @uref{http://www.ntp.org, Network Time Protocol package}. The daemon will
keep the system clock synchronized with that of @var{servers}. keep the system clock synchronized with that of @var{servers}.

View File

@ -42,6 +42,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/apr.scm \ %D%/packages/apr.scm \
%D%/packages/aspell.scm \ %D%/packages/aspell.scm \
%D%/packages/assembly.scm \ %D%/packages/assembly.scm \
%D%/packages/astronomy.scm \
%D%/packages/attr.scm \ %D%/packages/attr.scm \
%D%/packages/audacity.scm \ %D%/packages/audacity.scm \
%D%/packages/audio.scm \ %D%/packages/audio.scm \
@ -95,6 +96,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/dictionaries.scm \ %D%/packages/dictionaries.scm \
%D%/packages/dillo.scm \ %D%/packages/dillo.scm \
%D%/packages/disk.scm \ %D%/packages/disk.scm \
%D%/packages/display-managers.scm \
%D%/packages/djvu.scm \ %D%/packages/djvu.scm \
%D%/packages/dns.scm \ %D%/packages/dns.scm \
%D%/packages/docbook.scm \ %D%/packages/docbook.scm \
@ -319,7 +321,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/skarnet.scm \ %D%/packages/skarnet.scm \
%D%/packages/skribilo.scm \ %D%/packages/skribilo.scm \
%D%/packages/slang.scm \ %D%/packages/slang.scm \
%D%/packages/slim.scm \
%D%/packages/smalltalk.scm \ %D%/packages/smalltalk.scm \
%D%/packages/speech.scm \ %D%/packages/speech.scm \
%D%/packages/spice.scm \ %D%/packages/spice.scm \
@ -347,6 +348,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/unrtf.scm \ %D%/packages/unrtf.scm \
%D%/packages/upnp.scm \ %D%/packages/upnp.scm \
%D%/packages/uucp.scm \ %D%/packages/uucp.scm \
%D%/packages/u-boot.scm \
%D%/packages/valgrind.scm \ %D%/packages/valgrind.scm \
%D%/packages/version-control.scm \ %D%/packages/version-control.scm \
%D%/packages/video.scm \ %D%/packages/video.scm \
@ -481,6 +483,7 @@ dist_patch_DATA = \
%D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/doxygen-test.patch \
%D%/packages/patches/dtc-add-missing-symbols-to-lds.patch \
%D%/packages/patches/duplicity-piped-password.patch \ %D%/packages/patches/duplicity-piped-password.patch \
%D%/packages/patches/duplicity-test_selection-tmp.patch \ %D%/packages/patches/duplicity-test_selection-tmp.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \
@ -510,7 +513,6 @@ dist_patch_DATA = \
%D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \
%D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \
%D%/packages/patches/fontforge-svg-modtime.patch \ %D%/packages/patches/fontforge-svg-modtime.patch \
%D%/packages/patches/fossil-test-fixes.patch \
%D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \
%D%/packages/patches/gawk-shell.patch \ %D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \ %D%/packages/patches/gcc-arm-link-spec-fix.patch \
@ -575,7 +577,6 @@ dist_patch_DATA = \
%D%/packages/patches/icecat-CVE-2016-2824.patch \ %D%/packages/patches/icecat-CVE-2016-2824.patch \
%D%/packages/patches/icecat-CVE-2016-2828.patch \ %D%/packages/patches/icecat-CVE-2016-2828.patch \
%D%/packages/patches/icecat-CVE-2016-2831.patch \ %D%/packages/patches/icecat-CVE-2016-2831.patch \
%D%/packages/patches/icedtea-remove-overrides.patch \
%D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \
%D%/packages/patches/icu4c-CVE-2015-1270.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \
%D%/packages/patches/icu4c-CVE-2015-4760.patch \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \

View File

@ -1415,7 +1415,7 @@ limits.")
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (zero?
(system* "python" "tests/autojump_utils_test.py")))) (system* "python" "tests/unit/autojump_utils_test.py"))))
(replace 'install (replace 'install
;; The install.py script doesn't allow system installation ;; The install.py script doesn't allow system installation
;; into an arbitrary prefix, so do our own install. ;; into an arbitrary prefix, so do our own install.

View File

@ -30,14 +30,14 @@
(define-public apl (define-public apl
(package (package
(name "apl") (name "apl")
(version "1.5") (version "1.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz")) (uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0h4diq3wfbdwxp5nm0z4b0p1zq13lwip0y7v28r9v0mbbk8xsfh1")))) "057zwzvvgcrrwsl52a27w86hgy31jqq6avqq629xj7yq90qah3ay"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.gnu.org/software/apl/") (home-page "http://www.gnu.org/software/apl/")
(inputs (inputs

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright ©2016 John Darrington <jmd@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -97,6 +98,13 @@ dictionaries, including personal ones.")
(home-page "http://aspell.net/"))) (home-page "http://aspell.net/")))
(define-public aspell-dict-de
(aspell-dictionary "de" "German"
#:version "20030222-1"
#:sha256
(base32
"01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s")))
(define-public aspell-dict-en (define-public aspell-dict-en
(aspell-dictionary "en" "English" (aspell-dictionary "en" "English"
#:version "2016.01.19-0" #:version "2016.01.19-0"

View File

@ -0,0 +1,106 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;;
;;; 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 <http://www.gnu.org/licenses/>.
(define-module (gnu packages astronomy)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (gnu packages image)
#:use-module (gnu packages maths)
#:use-module (guix build-system gnu))
(define-public cfitsio
(package
(name "cfitsio")
(version "3390")
(source
(origin
(method url-fetch)
(uri (string-append
"http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" name version
".tar.gz"))
(sha256
(base32 "02gllydm63irwbqqisa3mrskw1fphm5rlplglz3mq9whi3rxilv2"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda _
(substitute* "Makefile.in" (("/bin/") "")))))))
(home-page "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html")
(synopsis "Library for reading and writing FITS files")
(description "CFITSIO provides simple high-level routines for reading and
writing FITS (Flexible Image Transport System) files that insulate the
programmer from the internal complexities of the FITS format. CFITSIO also
provides many advanced features for manipulating and filtering the information
in FITS files.")
(license (license:non-copyleft "file://License.txt"
"See License.txt in the distribution."))))
(define-public wcslib
(package
(name "wcslib")
(version "5.15")
(source
(origin
(method url-fetch)
(uri (string-append
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/" name "-" version ".tar.bz2"))
(sha256
(base32 "1s2nig327g4bimd9xshlk11ww09a7mrjmsbpdcd8smsmn2kl1glb"))))
(inputs
`(("cfitsio" ,cfitsio)))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh
(lambda _
(substitute* "makedefs.in"
(("/bin/sh") "sh")))))))
(home-page "http://www.atnf.csiro.au/people/mcalabre/WCS")
(synopsis "Library which implements the FITS WCS standard")
(description "The FITS \"World Coordinate System\" (WCS) standard defines
keywords and usage that provide for the description of astronomical coordinate
systems in a FITS image header.")
(license license:lgpl3+)))
(define-public gnuastro
(package
(name "gnuastro")
(version "0.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnuastro/gnuastro-"
version ".tar.gz"))
(sha256
(base32
"105s007kw8l3jwwhvh8k9lgbpfbf7sqh2wpxmvpv3qdr6nh9lnjg"))))
(inputs
`(("cfitsio" ,cfitsio)
("gsl" ,gsl)
("libjpeg" ,libjpeg-8)
("wcslib" ,wcslib)))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/gnuastro")
(synopsis "Astronomical data manipulation programs")
(description "The GNU Astronomy Utilities (Gnuastro) is a suite of
programs for the manipulation and analysis of astronomical data.")
(license license:gpl3+)))

View File

@ -93,7 +93,7 @@
(define-public aragorn (define-public aragorn
(package (package
(name "aragorn") (name "aragorn")
(version "1.2.36") (version "1.2.37")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -101,7 +101,7 @@
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 (base32
"1dg7jlz1qpqy88igjxd6ncs11ccsirb36qv1z01a0np4i4jh61mb")))) "1c7zxk0h8wsjbix82fmmfyywcq6zn3q9h5y67kcl5y3qal2bv2xr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests
@ -4692,14 +4692,14 @@ sequences.")
(define-public subread (define-public subread
(package (package
(name "subread") (name "subread")
(version "1.4.6-p2") (version "1.5.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/subread/subread-" (uri (string-append "mirror://sourceforge/subread/subread-"
version "/subread-" version "-source.tar.gz")) version "/subread-" version "-source.tar.gz"))
(sha256 (sha256
(base32 (base32
"06sv9mpcsdj6p68y15d6gi70lca3lxmzk0dn61hg0kfsa7rxmsr3")))) "0gn5zhbvllks0mmdg3qlmsbg91p2mpdc2wixwfqpi85yzfrh8hcy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ;no "check" target `(#:tests? #f ;no "check" target

View File

@ -18,7 +18,7 @@
;;; You should have received a copy of the GNU General Public License ;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages slim) (define-module (gnu packages display-managers)
#:use-module ((guix licenses) #:prefix l:) #:use-module ((guix licenses) #:prefix l:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)

View File

@ -2977,7 +2977,7 @@ passive voice.")
(sha256 (sha256
(base32 (base32
"0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s")) "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
(file-name (string-append name "-" version)))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(synopsis "Folder tree view for Emacs") (synopsis "Folder tree view for Emacs")
(description "This Emacs package provides a folder tree view.") (description "This Emacs package provides a folder tree view.")
@ -3002,3 +3002,74 @@ lists, and project planning with a fast and effective plain-text system. It
also is an authoring system with unique support for literate programming and also is an authoring system with unique support for literate programming and
reproducible research.") reproducible research.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-flx
(package
(name "emacs-flx")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lewang/"
"flx/archive/v" version ".tar.gz"))
(sha256
(base32
"0bkcpnf1j4i2fcc2rllwbz62l00sw2mcia6rm5amgwvlkqavmkv6"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system)
(home-page "https://github.com/lewang/flx")
(synopsis "Fuzzy matching for Emacs")
(description
"Flx provides fuzzy matching for emacs a la sublime text.
The sorting algorithm is a balance between word beginnings (abbreviation)
and contiguous matches (substring). The longer the substring match,
the higher it scores. This maps well to how we think about matching.
Flx has support for ido (interactively do things) through flx-ido.")
(license license:gpl3+)))
(define-public emacs-cyberpunk-theme
(package
(name "emacs-cyberpunk-theme")
(version "1.17")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/n3mo/cyberpunk-theme.el/"
"archive/" version ".tar.gz"))
(sha256
(base32
"068jcn4g1bvwgpcvyfqygzw6ahill51c1sqzyyvj2paxckbd7h51"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system)
(home-page "https://github.com/n3mo/cyberpunk-theme.el")
(synopsis "Cyberpunk theme for emacs built-in color theme support")
(description
"Cyberpunk color theme for the emacs 24+ built-in color theme support
known loosely as deftheme. Many mode-specific customizations are included.")
(license license:gpl3+)))
(define-public emacs-auto-complete
(package
(name "emacs-auto-complete")
(version "1.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/auto-complete/"
"auto-complete/archive/v" version ".tar.gz"))
(sha256
(base32
"1jvq4lj00hwml75lpmlciazy8f3bbg13gffsfnl835p4qd8l7yqv"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-popup" ,emacs-popup)))
(home-page "https://github.com/auto-complete/auto-complete")
(synopsis "Intelligent auto-completion extension for Emacs")
(description
"Auto-Complete is an intelligent auto-completion extension for Emacs.
It extends the standard Emacs completion interface and provides an environment
that allows users to concentrate more on their own work. Its features are:
a visual interface, reduce overhead of completion by using statistic method,
extensibility.")
(license license:gpl3+)))

View File

@ -26,14 +26,14 @@
(define-public entr (define-public entr
(package (package
(name "entr") (name "entr")
(version "3.5") (version "3.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://entrproject.org/code/entr-" (uri (string-append "http://entrproject.org/code/entr-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"05k4jyjna0pr2dalwc1l1dhrcyk6pw7hbss7jl4ykwfadcs5br73")))) "1sy81np6kgmq04kfn2ckf4fp7jcf5d1963shgmapx3al3kc4c9x4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"

View File

@ -6,6 +6,7 @@
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -618,6 +619,65 @@ received by the Telepathy framework. It features pluggable backends to log
different sorts of messages in different formats.") different sorts of messages in different formats.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public telepathy-idle
(package
(name "telepathy-idle")
(version "0.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://telepathy.freedesktop.org/releases/"
name "/" name "-" version ".tar.bz2"))
(sha256
(base32
"1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("xsltproc" ,libxslt)
("python" ,python-2)
("python-dbus" ,python2-dbus)))
(propagated-inputs
`(("telepathy-glib" ,telepathy-glib)))
(home-page "http://telepathy.freedesktop.org/")
(synopsis "Telepathy IRC connection manager")
(description
"Idle is an IRC connection manager for the Telepathy framework. This
package enables usage of IRC channels and private messages in Telepathy instant
messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
(license (list license:lgpl2.1 license:lgpl2.1+))))
(define-public telepathy-mission-control
(package
(name "telepathy-mission-control")
(version "5.16.3")
(source (origin
(method url-fetch)
(uri (string-append "https://telepathy.freedesktop.org/releases/"
name "/" name "-" version ".tar.bz2"))
(sha256
(base32
"0zcbx69k0d3p2pjh3g7sa3q2zkd5xchxkqsmlfn3fwxaz0pmsmvi"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
("pkg-config" ,pkg-config)))
(inputs
`(("dconf" ,dconf)
("gtk-doc" ,gtk-doc)
("libgnome-keyring" ,libgnome-keyring)
("python" ,python-2)
("xsltproc" ,libxslt)))
(propagated-inputs
`(("telepathy-glib" ,telepathy-glib)))
(home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
(synopsis "Telepathy real-time communication framework management daemon")
(description
"Telepathy Mission Control 5 is an account manager and channel dispatcher
for the Telepathy framework, allowing user interfaces and other clients to
share connections to real-time communication services without conflicting.")
(license license:lgpl2.1)))
(define-public colord-gtk (define-public colord-gtk
(package (package
(name "colord-gtk") (name "colord-gtk")

View File

@ -21,7 +21,7 @@
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org> ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il" ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -103,6 +103,7 @@
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system haskell) #:use-module (guix build-system haskell)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)) #:use-module (guix build-system trivial))
@ -2773,3 +2774,47 @@ Your robot ant can be programmed in many languages: OCaml, Python, C, C++,
Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Experienced Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Experienced
programmers may also add their own favorite language.") programmers may also add their own favorite language.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public bambam
(package
(name "bambam")
(version "0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/porridge/bambam/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"10w110mjdwbvddzihh9rganvvjr5jfiz8cs9n7w12zndwwcc3ria"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'build)
(add-before 'install 'patch-data-dir-location
(lambda _
(substitute* "bambam.py"
(("'data'") "'../share/bambam/data'"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(share (string-append out "/share")))
(mkdir-p bin)
(copy-file "bambam.py" (string-append bin "/bambam"))
(install-file "bambam.6" (string-append share "/man/man6"))
(copy-recursively "data" (string-append share "/bambam/data")))
#t)))))
(inputs
`(("python-pygame" ,python-pygame)))
(home-page "https://github.com/porridge/bambam")
(synopsis "Keyboard mashing and doodling game for babies")
(description "Bambam is a simple baby keyboard (and gamepad) masher
application that locks the keyboard and mouse and instead displays bright
colors, pictures, and sounds.")
(license license:gpl3+)))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2013 Joshua Grant <tadni@riseup.net> ;;; Copyright © 2013 Joshua Grant <tadni@riseup.net>
;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -443,7 +444,7 @@ extension functionality is exposed in a single header file.")
(dynamic-link-substitute "glu/runtime.scm" "GLU" "glu") (dynamic-link-substitute "glu/runtime.scm" "GLU" "glu")
(dynamic-link-substitute "glut/runtime.scm" "glut" (dynamic-link-substitute "glut/runtime.scm" "glut"
"freeglut")))))) "freeglut"))))))
(home-page "http://gnu.org/s/guile-opengl") (home-page "https://gnu.org/s/guile-opengl")
(synopsis "Guile binding for the OpenGL graphics API") (synopsis "Guile binding for the OpenGL graphics API")
(description (description
"Guile-OpenGL is a library for Guile that provides bindings to the "Guile-OpenGL is a library for Guile that provides bindings to the

View File

@ -3732,7 +3732,7 @@ to format Docbook and Mallard documents.")
(define-public yelp (define-public yelp
(package (package
(name "yelp") (name "yelp")
(version "3.20.1") (version "3.21.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -3740,7 +3740,7 @@ to format Docbook and Mallard documents.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1hh8yqbv0scn9nksk9mq94cb4sdczlzxplclv2wqr41jmm8v186x")))) "1x8la7qn0l796p4nhprvkwb6sk6yc39xhq3gabvzrhdlb6mjgmrs"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.

View File

@ -306,7 +306,7 @@ kinds of basic applications for the foundation of a GNU internet.")
"This package provides Guile bindings to the client libraries of various "This package provides Guile bindings to the client libraries of various
GNUnet services, including the @dfn{identity} and @dfn{file sharing} GNUnet services, including the @dfn{identity} and @dfn{file sharing}
services.") services.")
(home-page "http://gnu.org/software/guix") (home-page "https://gnu.org/software/guix")
(license license:gpl3+)))) (license license:gpl3+))))
;; FIXME: "gnunet-setup" segfaults under certain conditions and "gnunet-gtk" ;; FIXME: "gnunet-setup" segfaults under certain conditions and "gnunet-gtk"

View File

@ -129,7 +129,7 @@
("parted" ,parted) ("parted" ,parted)
("qemu" ,qemu-for-tests) ("qemu" ,qemu-for-tests)
("xorriso" ,xorriso))) ("xorriso" ,xorriso)))
(home-page "http://www.gnu.org/software/grub/") (home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader") (synopsis "GRand Unified Boot loader")
(description (description
"GRUB is a multiboot bootloader. It is used for initially loading the "GRUB is a multiboot bootloader. It is used for initially loading the

View File

@ -337,16 +337,15 @@ build process and its dependencies, whereas Make uses Makefile format.")
(define-public icedtea-6 (define-public icedtea-6
(package (package
(name "icedtea") (name "icedtea")
(version "1.13.11") (version "1.13.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://icedtea.wildebeest.org/download/source/icedtea6-" "http://icedtea.wildebeest.org/download/source/icedtea6-"
version ".tar.xz")) version ".tar.xz"))
(patches (search-patches "icedtea-remove-overrides.patch"))
(sha256 (sha256
(base32 (base32
"1grki39a4rf8n74zc0iglcggxxbpniyfh1gk1lb10p63zvvcsvjj")) "1q5iqm3dzqj8w3dwj6qqhczkkrslrfhmn3110klfwq9kyi2nimj8"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile.in" '(substitute* "Makefile.in"
@ -441,13 +440,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
(substitute* '("patches/jtreg-jrunscript.patch" (substitute* '("patches/jtreg-jrunscript.patch"
"patches/hotspot/hs23/drop_unlicensed_test.patch") "patches/hotspot/hs23/drop_unlicensed_test.patch")
(("#!/bin/sh") (string-append "#!" (which "sh")))) (("#!/bin/sh") (string-append "#!" (which "sh"))))
#t))
;; fix path to alsa header in patch
(substitute* "patches/openjdk/6799141-split_out_versions.patch"
(("ALSA_INCLUDE=/usr/include/alsa/version.h")
(string-append "ALSA_INCLUDE="
(assoc-ref %build-inputs "alsa-lib")
"/include/alsa/version.h")))))
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths
(lambda _ (lambda _
;; buildtree.make generates shell scripts, so we need to replace ;; buildtree.make generates shell scripts, so we need to replace
@ -475,6 +468,13 @@ build process and its dependencies, whereas Make uses Makefile format.")
(("DEF_OBJCOPY *=.*objcopy") (("DEF_OBJCOPY *=.*objcopy")
(string-append "DEF_OBJCOPY = " (which "objcopy")))) (string-append "DEF_OBJCOPY = " (which "objcopy"))))
;; fix path to alsa header
(substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk"
(("ALSA_INCLUDE=/usr/include/alsa/version.h")
(string-append "ALSA_INCLUDE="
(assoc-ref %build-inputs "alsa-lib")
"/include/alsa/version.h")))
;; fix hard-coded utility paths ;; fix hard-coded utility paths
(substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk"
"openjdk.src/corba/make/common/shared/Defs-utils.gmk") "openjdk.src/corba/make/common/shared/Defs-utils.gmk")
@ -764,10 +764,10 @@ build process and its dependencies, whereas Make uses Makefile format.")
("openjdk6-src" ("openjdk6-src"
,(origin ,(origin
(method url-fetch) (method url-fetch)
(uri "https://java.net/downloads/openjdk6/openjdk-6-src-b39-03_may_2016.tar.gz") (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b40-22_aug_2016.tar.gz")
(sha256 (sha256
(base32 (base32
"1brxbsgwcj4js26y5lk6capc3pvghgjidvv9cavw6z8n7c7aw8af")))) "01v4q7g9pa6w7m6yxply5yrin08jgv12fck665xnmp09bpxy8sa5"))))
("lcms" ,lcms) ("lcms" ,lcms)
("zlib" ,zlib) ("zlib" ,zlib)
("gtk" ,gtk+-2) ("gtk" ,gtk+-2)

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -198,6 +199,30 @@
`insmod', `lsmod', and more.") `insmod', `lsmod', and more.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public libnfsidmap
(package
(name "libnfsidmap")
(version "0.25")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.citi.umich.edu/projects/nfsv4/linux/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32
"1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5"))))
(build-system gnu-build-system)
(home-page
"http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
(synopsis
"NFSv4 support library for name/ID mapping")
(description "Libnfsidmap is a library holding mulitiple methods of
mapping names to ids and visa versa, mainly for NFSv4. It provides an
extensible array of mapping functions, currently consisting of two choices:
the default @code{nsswitch} and the experimental @code{umich_ldap}.")
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
(define %boot-logo-patch (define %boot-logo-patch
;; Linux-Libre boot logo featuring Freedo and a gnu. ;; Linux-Libre boot logo featuring Freedo and a gnu.
(origin (origin
@ -855,14 +880,14 @@ MIDI functionality to the Linux-based operating system.")
(define-public alsa-utils (define-public alsa-utils
(package (package
(name "alsa-utils") (name "alsa-utils")
(version "1.1.0") (version "1.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/"
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1wa88wvqcfhak9x3y65wzzwxmmyxb5bv2gyj7lnm653fnwsk271v")))) "0wcha78c2sm8qqk5r3w83cvm8fp6fb1zpd35kmcm24kxhz007xks"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; XXX: Disable man page creation until we have DocBook. ;; XXX: Disable man page creation until we have DocBook.
@ -873,14 +898,15 @@ MIDI functionality to the Linux-based operating system.")
(string-append "--with-udev-rules-dir=" (string-append "--with-udev-rules-dir="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib/udev/rules.d")) "/lib/udev/rules.d"))
#:phases (alist-cons-before #:phases
'install 'pre-install (modify-phases %standard-phases
(lambda _ (add-before
;; Don't try to mkdir /var/lib/alsa. 'install 'pre-install
(substitute* "Makefile" (lambda _
(("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*") ;; Don't try to mkdir /var/lib/alsa.
"true\n"))) (substitute* "Makefile"
%standard-phases))) (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*")
"true\n")))))))
(inputs (inputs
`(("libsamplerate" ,libsamplerate) `(("libsamplerate" ,libsamplerate)
("ncurses" ,ncurses) ("ncurses" ,ncurses)

View File

@ -9,7 +9,7 @@
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Coypright © 2016 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,6 +21,8 @@
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (gnu packages mit-krb5)
#:use-module (gnu packages pkg-config)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public libtirpc (define-public libtirpc
@ -36,16 +39,14 @@
"18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5")))) "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(;; Doesn't work with GNU GSS. `(#:phases
#:configure-flags '("--disable-gssapi") (modify-phases %standard-phases
(add-after 'unpack 'remote-dangling-symlink
#:phases (alist-cons-after (lambda _
'unpack 'remote-dangling-symlink ;; Remove the dangling symlinks since it breaks the
(lambda _ ;; 'patch-source-shebangs' file tree traversal.
;; Remote the dangling symlinks since it breaks the (delete-file "INSTALL"))))))
;; 'patch-source-shebangs' file tree traversal. (inputs `(("mit-krb5" ,mit-krb5)))
(delete-file "INSTALL"))
%standard-phases)))
(home-page "http://sourceforge.net/projects/libtirpc/") (home-page "http://sourceforge.net/projects/libtirpc/")
(synopsis "Transport-independent Sun/ONC RPC implementation") (synopsis "Transport-independent Sun/ONC RPC implementation")
(description (description
@ -53,3 +54,32 @@
procedure calls) protocol in a transport-independent manner. It supports both procedure calls) protocol in a transport-independent manner. It supports both
IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).")
(license bsd-3))) (license bsd-3)))
(define-public rpcbind
(package
(name "rpcbind")
(version "0.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
version "/"
name "-" version ".tar.bz2"))
(sha256
(base32
"0yyjzv4161rqxrgjcijkrawnk55rb96ha0pav48s03l2klx855wq"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
`("--with-systemdsystemunitdir=no")))
(inputs
`(("libtirpc" ,libtirpc)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://rpcbind.sourceforge.net/")
(synopsis "Server to convert RPC program numbers into universal addresses")
(description
"@command{Rpcbind} is a server that converts RPC program numbers into
universal addresses.")
(license bsd-3)))

View File

@ -237,31 +237,42 @@ tested on Python version 3.2, 2.7 and 2.6.")
(define-public python-requests-mock (define-public python-requests-mock
(package (package
(name "python-requests-mock") (name "python-requests-mock")
(version "0.7.0") (version "1.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "requests-mock" version)) (uri (pypi-uri "requests-mock" version))
(sha256 (sha256
(base32 (base32
"0s6mrpiv2w0km39qvl1pq2d56xblnm57p369qdp5j1a55ncica7f")))) "0gcjjwsckhqixyffflc54i59x41jnbb37bli077vabii1bjmkin6"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-requests" ,python-requests) `(("python-requests" ,python-requests)
("python-six" ,python-six))) ("python-six" ,python-six)))
(inputs (inputs
`(("python-mock" ,python-mock) `(("python-pbr" ,python-pbr)))
("python-pbr" ,python-pbr) (native-inputs
("python-setuptools" ,python-setuptools))) `(("python-discover" ,python-discover)
("python-fixtures" ,python-fixtures)
("python-mock" ,python-mock)
("python-sphinx" ,python-sphinx)
("python-testrepository" ,python-testrepository)
("python-testtools" ,python-testtools)))
(home-page "https://requests-mock.readthedocs.org/") (home-page "https://requests-mock.readthedocs.org/")
(synopsis "Mock out responses from the requests package") (synopsis "Mock out responses from the requests package")
(description (description
"This module provides a building block to stub out the HTTP requests "This module provides a building block to stub out the HTTP requests
portions of your testing code.") portions of your testing code.")
(license asl2.0))) (license asl2.0)
(properties `((python2-variant . ,(delay python2-requests-mock))))))
(define-public python2-requests-mock (define-public python2-requests-mock
(package-with-python2 python-requests-mock)) (let ((base (package-with-python2
(strip-python2-variant python-requests-mock))))
(package (inherit base)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public python-stevedore (define-public python-stevedore
(package (package

View File

@ -0,0 +1,59 @@
From a4b093f7366fdb429ca1781144d3985fa50d0fbb Mon Sep 17 00:00:00 2001
From: Julien Grall <julien.grall@linaro.org>
Date: Tue, 17 Mar 2015 16:00:34 +0000
Subject: [PATCH] libfdt: Add missing functions to shared library
The commit 4e76ec7 "libfdt: Add fdt_next_subnode() to permit easy
subnode iteration" adds new functions (fdt_{first,next}_subnode) but
forgot to mark them as 'global' in the shared library.
Signed-off-by: Julien Grall <julien.grall@linaro.org>
---
libfdt/version.lds | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libfdt/version.lds b/libfdt/version.lds
index 80b322b..941208e 100644
--- a/libfdt/version.lds
+++ b/libfdt/version.lds
@@ -54,6 +54,8 @@ LIBFDT_1.2 {
fdt_get_property_by_offset;
fdt_getprop_by_offset;
fdt_next_property_offset;
+ fdt_first_subnode;
+ fdt_next_subnode;
local:
*;
From f58799be130e27cc729cb2d45566daa0bb3b8605 Mon Sep 17 00:00:00 2001
From: David Gibson <david@gibson.dropbear.id.au>
Date: Tue, 1 Dec 2015 12:55:21 +1100
Subject: [PATCH] libfdt: Add some missing symbols to version.lds
Several functions in the header file were missing from the version.lds
script, meaning that they couldn't be used from a libfdt shared library.
Reported by Ken Aaker, via github issue tracker.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
libfdt/version.lds | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libfdt/version.lds b/libfdt/version.lds
index f19f157..1f4e1ea 100644
--- a/libfdt/version.lds
+++ b/libfdt/version.lds
@@ -57,6 +57,10 @@ LIBFDT_1.2 {
fdt_next_property_offset;
fdt_first_subnode;
fdt_next_subnode;
+ fdt_address_cells;
+ fdt_size_cells;
+ fdt_stringlist_contains;
+ fdt_resize;
local:
*;
--
2.8.1

View File

@ -1,189 +0,0 @@
From upstream commit https://www.fossil-scm.org/fossil/info/19c216391a0ad79e
--- fossil-src-1.34/test/file1.test
+++ fossil-src-1.34/test/file1.test
@@ -15,10 +15,12 @@
#
############################################################################
#
# File utilities
#
+
+repo_init
proc simplify-name {testname args} {
set i 1
foreach {path result} $args {
fossil test-simplify-name $path
@@ -65,10 +67,13 @@
if {$::tcl_platform(os)=="Windows NT"} {
simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {}
simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {}
}
+
+# This is needed because we are now running outside of the Fossil checkout.
+file mkdir file1; cd file1
# Those directories are only needed for the testcase being able to "--chdir" to it.
file mkdir test1
file mkdir test1/test2
From upstream commit https://www.fossil-scm.org/fossil/info/ad6de6383391bd4d
--- fossil-src-1.34/test/utf.test
+++ fossil-src-1.34/test/utf.test
@@ -39,26 +39,29 @@
test utf-check-$testname.$i {$::RESULT eq $result}
incr i
}
}
+unset -nocomplain enc
array set enc [list \
0 binary \
1 binary \
2 unicode \
3 unicode-reverse \
]
+unset -nocomplain bom
array set bom [list \
0 "" \
1 \xEF\xBB\xBF \
2 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \
"\xFF\xFE" : "\xFE\xFF"}] \
3 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \
"\xFE\xFF" : "\xFF\xFE"}] \
]
+unset -nocomplain data
array set data [list \
0 "" \
1 \r \
2 \n \
3 \r\n \
@@ -239,10 +242,11 @@
178 \xF4\x90\x80\x80\r \
179 \xF4\x90\x80\x80\n \
180 \xF4\x90\x80\x80\r\n \
]
+unset -nocomplain extraData
array set extraData [list \
0 "" \
1 Z \
]
Backport from upstream https://www.fossil-scm.org/fossil/info/60285f5876512817
with additional non-zero exit in case of failures.
--- fossil-src-1.34/test/merge6.test
+++ fossil-src-1.34/test/merge6.test
@@ -62,6 +62,6 @@
fossil ls
test merge_multi-4 {[normalize_result] eq {f1
f2
f3
-f4}}
+f4}} knownBug
--- fossil-src-1.34/test/merge_renames.test
+++ fossil-src-1.34/test/merge_renames.test
@@ -156,13 +156,13 @@
}
if {$deletes!=0} {
# failed
protOut "Error, the merge should not delete any file"
- test merge_renames-2 0
+ test merge_renames-3 0
} else {
- test merge_renames-2 1
+ test merge_renames-3 1
}
######################################
# Test 4 #
# Reported: Ticket [67176c3aa4] #
@@ -198,14 +198,14 @@
fossil ls
test merge_renames-5 {[normalize_result] eq {f1
f2
-f3}}
+f3}} knownBug
######################################
#
# Tests for troubles not specifically linked with renames but that I'd like to
# write:
# [c26c63eb1b] - 'merge --backout' does not handle conflicts properly
# [953031915f] - Lack of warning when overwriting extra files
# [4df5f38f1e] - Troubles merging a file delete with a file change
--- fossil-src-1.34/test/tester.tcl
+++ fossil-src-1.34/test/tester.tcl
@@ -58,10 +58,18 @@
set VERBOSE 1
set argv [lreplace $argv $i $i]
} else {
set VERBOSE 0
}
+
+set i [lsearch $argv -strict]
+if {$i>=0} {
+ set STRICT 1
+ set argv [lreplace $argv $i $i]
+} else {
+ set STRICT 0
+}
if {[llength $argv]==0} {
foreach f [lsort [glob $testdir/*.test]] {
set base [file root [file tail $f]]
lappend argv $base
@@ -327,20 +335,30 @@
}
# Perform a test
#
set test_count 0
-proc test {name expr} {
+proc test {name expr {constraints ""}} {
global bad_test test_count
incr test_count
+ set knownBug [expr {"knownBug" in $constraints}]
set r [uplevel 1 [list expr $expr]]
if {$r} {
- protOut "test $name OK"
+ if {$knownBug && !$::STRICT} {
+ protOut "test $name OK (knownBug)?"
+ } else {
+ protOut "test $name OK"
+ }
} else {
- protOut "test $name FAILED!"
- lappend bad_test $name
- if {$::HALT} exit
+ if {$knownBug && !$::STRICT} {
+ protOut "test $name FAILED (knownBug)!"
+ } else {
+ protOut "test $name FAILED!"
+ if {$::VERBOSE} {protOut "RESULT: $RESULT"}
+ lappend bad_test $name
+ if {$::HALT} exit
+ }
}
}
set bad_test {}
# Return a random string N characters long.
@@ -445,4 +455,5 @@
protOut "***** Final result: $nErr errors out of $test_count tests"
if {$nErr>0} {
protOut "***** Failures: $bad_test"
+ exit 1
}

View File

@ -1,291 +0,0 @@
Upstream patch:
http://icedtea.classpath.org/hg/icedtea6/rev/60be25a84f2d
Fixes build failure:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2954
Changes to the files 'NEWS' and 'ChangeLog' are omitted here.
# HG changeset patch
# User Andrew John Hughes <gnu.andrew@redhat.com>
# Date 1463144538 -3600
# Node ID 60be25a84f2dd2bce8ff277cc3854cca1b3f7931
# Parent c23ceebb80a19a33316f1e743eb93bdf79aac220
PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java
2016-05-13 Andrew John Hughes <gnu.andrew@redhat.com>
PR2954: ecj/override.patch is missing new
@Overrides in RMIJRMPServerImpl.java
* patches/ecj/override.patch:
Add cases in RMIJRMPServerImpl and others
which show up when source/target 5 is
used in the rt-class-files pre-build.
* patches/openjdk/8014205-blank_swing_dialogs_windows.patch:
Remove addition of @Override.
diff -r c23ceebb80a1 -r 60be25a84f2d patches/ecj/override.patch
--- a/patches/ecj/override.patch Sun May 08 21:28:21 2016 +0100
+++ b/patches/ecj/override.patch Fri May 13 14:02:18 2016 +0100
@@ -362,3 +362,240 @@
public Class<?> run() {
try {
ReflectUtil.checkPackageAccess(className);
+diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java
+--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Thu May 12 01:30:54 2016 +0100
+@@ -1870,7 +1870,6 @@
+
+ private ModifiableClassLoaderRepository getInstantiatorCLR() {
+ return AccessController.doPrivileged(new PrivilegedAction<ModifiableClassLoaderRepository>() {
+- @Override
+ public ModifiableClassLoaderRepository run() {
+ return instantiator != null ? instantiator.getClassLoaderRepository() : null;
+ }
+diff -r 545db1dd8c2a src/share/classes/com/sun/media/sound/Platform.java
+--- openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/com/sun/media/sound/Platform.java Thu May 12 01:30:54 2016 +0100
+@@ -160,7 +160,6 @@
+ try {
+ // load the main library
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+- @Override
+ public Void run() {
+ System.loadLibrary(libNameMain);
+ return null;
+@@ -182,7 +181,6 @@
+ final String lib = st.nextToken();
+ try {
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+- @Override
+ public Void run() {
+ System.loadLibrary(lib);
+ return null;
+diff -r 545db1dd8c2a src/share/classes/java/awt/EventQueue.java
+--- openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/java/awt/EventQueue.java Thu May 12 01:30:54 2016 +0100
+@@ -190,7 +190,6 @@
+ EventQueue.invokeAndWait(source, r);
+ }
+
+- @Override
+ public long getMostRecentEventTime(EventQueue eventQueue) {
+ return eventQueue.getMostRecentEventTimeImpl();
+ }
+diff -r 545db1dd8c2a src/share/classes/java/io/ObjectInputStream.java
+--- openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/java/io/ObjectInputStream.java Thu May 12 01:30:54 2016 +0100
+@@ -3571,7 +3571,6 @@
+ }
+ static {
+ SharedSecrets.setJavaObjectInputStreamAccess(new JavaObjectInputStreamAccess() {
+- @Override
+ public void setValidator(ObjectInputStream ois, ObjectStreamClassValidator validator) {
+ ObjectInputStream.setValidator(ois, validator);
+ }
+diff -r 545db1dd8c2a src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java
+--- openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Thu May 12 01:30:54 2016 +0100
+@@ -64,7 +64,6 @@
+ final String propName = "sun.rmi.server.invocationhandler.allowFinalizeInvocation";
+ String allowProp = java.security.AccessController.doPrivileged(
+ new PrivilegedAction<String>() {
+- @Override
+ public String run() {
+ return System.getProperty(propName);
+ }
+diff -r 545db1dd8c2a src/share/classes/sun/awt/image/SunVolatileImage.java
+--- openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/sun/awt/image/SunVolatileImage.java Thu May 12 01:30:54 2016 +0100
+@@ -262,7 +262,6 @@
+ *
+ * @see sun.java2d.DestSurfaceProvider#getDestSurface
+ */
+- @Override
+ public Surface getDestSurface() {
+ return volSurfaceManager.getPrimarySurfaceData();
+ }
+diff -r 545db1dd8c2a src/share/classes/sun/java2d/SunGraphics2D.java
+--- openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/sun/java2d/SunGraphics2D.java Thu May 12 01:30:54 2016 +0100
+@@ -3294,7 +3294,6 @@
+ *
+ * @see sun.java2d.DestSurfaceProvider#getDestSurface
+ */
+- @Override
+ public Surface getDestSurface() {
+ return surfaceData;
+ }
+diff -r 545db1dd8c2a src/share/classes/sun/rmi/server/UnicastServerRef.java
+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java Thu May 12 01:30:54 2016 +0100
+@@ -630,12 +630,10 @@
+ this.callID = callID;
+ }
+
+- @Override
+ public void validateDescriptor(ObjectStreamClass descriptor) {
+ descriptorCheck.check(method, descriptor, parameterIndex, callID);
+ }
+
+- @Override
+ public void checkProxyInterfaceNames(String[] ifaces) {
+ descriptorCheck.checkProxyClass(method, ifaces, parameterIndex, callID);
+ }
+diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/Transport.java
+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/Transport.java Thu May 12 01:30:54 2016 +0100
+@@ -133,7 +133,6 @@
+ */
+ private static void setContextClassLoader(final ClassLoader ccl) {
+ AccessController.doPrivileged(new PrivilegedAction<Void> () {
+- @Override
+ public Void run() {
+ Thread.currentThread().setContextClassLoader(ccl);
+ return null;
+diff -r 545db1dd8c2a src/share/classes/sun/rmi/transport/tcp/TCPTransport.java
+--- openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java Thu May 12 01:30:54 2016 +0100
+@@ -676,7 +676,6 @@
+ connectionCount.incrementAndGet() +
+ ")-" + remoteHost);
+ AccessController.doPrivileged(new PrivilegedAction<Void>() {
+- @Override
+ public Void run() {
+ run0();
+ return null;
+diff -r 545db1dd8c2a src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java
+--- openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java Thu May 12 01:30:54 2016 +0100
+@@ -92,7 +92,6 @@
+ return this;
+ }
+
+- @Override
+ public SurfaceData createManagedSurface(int w, int h, int transparency) {
+ return GLXSurfaceData.createData(this, w, h,
+ getColorModel(transparency),
+@@ -165,12 +164,10 @@
+ * Returns true if the provided capability bit is present for this config.
+ * See OGLContext.java for a list of supported capabilities.
+ */
+- @Override
+ public final boolean isCapPresent(int cap) {
+ return ((oglCaps.getCaps() & cap) != 0);
+ }
+
+- @Override
+ public final long getNativeConfigInfo() {
+ return pConfigInfo;
+ }
+@@ -180,7 +177,6 @@
+ *
+ * @see sun.java2d.pipe.hw.BufferedContextProvider#getContext
+ */
+- @Override
+ public final OGLContext getContext() {
+ return context;
+ }
+@@ -394,7 +390,6 @@
+ *
+ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#createCompatibleVolatileImage
+ */
+- @Override
+ public VolatileImage
+ createCompatibleVolatileImage(int width, int height,
+ int transparency, int type)
+@@ -434,17 +429,14 @@
+ *
+ * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities
+ */
+- @Override
+ public ContextCapabilities getContextCapabilities() {
+ return oglCaps;
+ }
+
+- @Override
+ public void addDeviceEventListener(AccelDeviceEventListener l) {
+ AccelDeviceEventNotifier.addListener(l, screen.getScreen());
+ }
+
+- @Override
+ public void removeDeviceEventListener(AccelDeviceEventListener l) {
+ AccelDeviceEventNotifier.removeListener(l);
+ }
+diff -r 545db1dd8c2a src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java
+--- openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Wed May 04 23:23:55 2016 +0100
++++ openjdk-ecj/jdk/src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java Thu May 12 01:51:42 2016 +0100
+@@ -236,7 +236,6 @@
+ final MBeanInstantiator fInstantiator = instantiator;
+ this.secureClr = new
+ SecureClassLoaderRepository(AccessController.doPrivileged(new PrivilegedAction<ClassLoaderRepository>() {
+- @Override
+ public ClassLoaderRepository run() {
+ return fInstantiator.getClassLoaderRepository();
+ }
+@@ -1257,7 +1256,6 @@
+ ClassLoader myLoader = outerShell.getClass().getClassLoader();
+ final ModifiableClassLoaderRepository loaders = AccessController.doPrivileged(new PrivilegedAction<ModifiableClassLoaderRepository>() {
+
+- @Override
+ public ModifiableClassLoaderRepository run() {
+ return instantiator.getClassLoaderRepository();
+ }
+diff -r b72e7b89dda9 src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java
+--- openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu Sep 08 11:00:33 2011 -0700
++++ openjdk-ecj/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java Thu May 12 16:39:37 2016 +0100
+@@ -227,17 +227,14 @@
+ allowedTypes = credentialsTypes;
+ }
+
+- @Override
+ public String getVersion() throws RemoteException {
+ return impl.getVersion();
+ }
+
+- @Override
+ public RMIConnection newClient(Object credentials) throws IOException {
+ return impl.newClient(credentials);
+ }
+
+- @Override
+ public void check(Method method, ObjectStreamClass descriptor,
+ int paramIndex, int callID) {
+
+@@ -247,7 +244,6 @@
+ }
+ }
+
+- @Override
+ public void checkProxyClass(Method method, String[] ifaces,
+ int paramIndex, int callID) {
+ if (ifaces != null && ifaces.length > 0) {
+@@ -259,7 +255,6 @@
+ }
+ }
+
+- @Override
+ public void end(int callID) {
+ /* Do nothing */
+ }
diff -r c23ceebb80a1 -r 60be25a84f2d patches/openjdk/8014205-blank_swing_dialogs_windows.patch
--- a/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Sun May 08 21:28:21 2016 +0100
+++ b/patches/openjdk/8014205-blank_swing_dialogs_windows.patch Fri May 13 14:02:18 2016 +0100
@@ -116,7 +116,7 @@
{
if (numBands == 3 && !ccm.hasAlpha()) {
imageType = TYPE_3BYTE_BGR;
-@@ -804,6 +801,27 @@
+@@ -804,6 +801,26 @@
} // else if ((raster instanceof ByteComponentRaster) &&
}
@@ -129,7 +129,6 @@
+ new PrivilegedAction<Boolean>()
+ {
+
-+ @Override
+ public Boolean run() {
+ final ClassLoader std = System.class.getClassLoader();
+

View File

@ -2861,6 +2861,7 @@ and is very extensible.")
(uri (string-append (uri (string-append
"https://github.com/scikit-learn/scikit-learn/archive/" "https://github.com/scikit-learn/scikit-learn/archive/"
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih")))) "140skabifgc7lvvj873pnzlwx0ni6q8qkrsyad2ccjb3h8rxzkih"))))
@ -2893,18 +2894,11 @@ and is very extensible.")
(description (description
"Scikit-learn provides simple and efficient tools for data "Scikit-learn provides simple and efficient tools for data
mining and data analysis.") mining and data analysis.")
(license license:bsd-3))) (license license:bsd-3)
(properties `((python2-variant . ,(delay python2-scikit-learn))))))
(define-public python2-scikit-learn (define-public python2-scikit-learn
(let ((scikit (package-with-python2 python-scikit-learn))) (package-with-python2 (strip-python2-variant python-scikit-learn)))
(package (inherit scikit)
(propagated-inputs
`(("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy)
,@(alist-delete
"python-numpy"
(alist-delete
"python-scipy" (package-propagated-inputs scikit))))))))
(define-public python-scikit-image (define-public python-scikit-image
(package (package
@ -2933,21 +2927,19 @@ mining and data analysis.")
(synopsis "Image processing in Python") (synopsis "Image processing in Python")
(description (description
"Scikit-image is a collection of algorithms for image processing.") "Scikit-image is a collection of algorithms for image processing.")
(license license:bsd-3))) (license license:bsd-3)
(properties `((python2-variant . ,(delay python2-scikit-image))))))
(define-public python2-scikit-image (define-public python2-scikit-image
(let ((scikit-image (package-with-python2 python-scikit-image))) (let ((scikit-image (package-with-python2
(strip-python2-variant python-scikit-image))))
(package (inherit scikit-image) (package (inherit scikit-image)
(native-inputs (native-inputs
`(("python2-mock" ,python2-mock) `(("python2-mock" ,python2-mock)
,@(package-native-inputs scikit-image))) ,@(package-native-inputs scikit-image)))
(propagated-inputs (propagated-inputs
`(("python2-pytz" ,python2-pytz) `(("python2-pytz" ,python2-pytz)
("python2-matplotlib" ,python2-matplotlib) ,@(package-propagated-inputs scikit-image))))))
("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy)
,@(fold alist-delete (package-propagated-inputs scikit-image)
'("python-matplotlib" "python-numpy" "python-scipy")))))))
(define-public python-redis (define-public python-redis
(package (package
@ -3319,17 +3311,11 @@ doing the same calculation in Python. In addition, its multi-threaded
capabilities can make use of all your cores, which may accelerate capabilities can make use of all your cores, which may accelerate
computations, most specially if they are not memory-bounded (e.g. those using computations, most specially if they are not memory-bounded (e.g. those using
transcendental functions).") transcendental functions).")
(license license:expat))) (license license:expat)
(properties `((python2-variant . ,(delay python2-numexpr))))))
(define-public python2-numexpr (define-public python2-numexpr
(let ((numexpr (package-with-python2 python-numexpr))) (package-with-python2 (strip-python2-variant python-numexpr)))
(package (inherit numexpr)
;; Make sure to use special packages for Python 2 instead
;; of those automatically rewritten by package-with-python2.
(propagated-inputs
`(("python2-numpy" ,python2-numpy)
,@(alist-delete "python-numpy"
(package-propagated-inputs numexpr)))))))
(define-public python-matplotlib (define-public python-matplotlib
(package (package
@ -4409,29 +4395,20 @@ without using the configuration machinery.")
Powerful interactive shells, a browser-based notebook, support for interactive Powerful interactive shells, a browser-based notebook, support for interactive
data visualization, embeddable interpreters and tools for parallel data visualization, embeddable interpreters and tools for parallel
computing.") computing.")
(license license:bsd-3))) (license license:bsd-3)
(properties `((python2-variant . ,(delay python2-ipython))))))
(define-public python2-ipython (define-public python2-ipython
(let ((ipython (package-with-python2 python-ipython))) (let ((ipython (package-with-python2 (strip-python2-variant python-ipython))))
(package (package
(inherit ipython) (inherit ipython)
;; FIXME: some tests are failing ;; FIXME: some tests are failing
(arguments (arguments
`(#:tests? #f ,@(package-arguments ipython))) `(#:tests? #f ,@(package-arguments ipython)))
;; Make sure we use custom python2-NAME packages.
;; FIXME: add pyreadline once available. ;; FIXME: add pyreadline once available.
(propagated-inputs
`(("python2-terminado" ,python2-terminado)
,@(alist-delete "python-terminado"
(package-propagated-inputs ipython))))
(inputs (inputs
`(("python2-jsonschema" ,python2-jsonschema) `(("python2-mock" ,python2-mock)
("python2-mock" ,python2-mock) ,@(package-inputs ipython))))))
("python2-matplotlib" ,python2-matplotlib)
("python2-numpy" ,python2-numpy)
("python2-requests" ,python2-requests)
,@(fold alist-delete (package-inputs ipython)
'("python-jsonschema" "python-matplotlib" "python-numpy" "python-requests")))))))
(define-public python-isodate (define-public python-isodate
(package (package

View File

@ -20,7 +20,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages qt) (define-module (gnu packages qt)
#:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 lgpl2.1+ lgpl3 x11-style)) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build utils) #:use-module (guix build utils)
@ -206,7 +206,7 @@
(synopsis "Cross-platform GUI library") (synopsis "Cross-platform GUI library")
(description "Qt is a cross-platform application and UI framework for (description "Qt is a cross-platform application and UI framework for
developers using C++ or QML, a CSS & JavaScript like language.") developers using C++ or QML, a CSS & JavaScript like language.")
(license lgpl2.1) (license license:lgpl2.1)
;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS; ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
;; see <http://hydra.gnu.org/build/112828>. ;; see <http://hydra.gnu.org/build/112828>.
@ -474,12 +474,24 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "QMAKEPATH") (variable "QMAKEPATH")
(files '(""))))) (files '("")))
(search-path-specification
(variable "QML2_IMPORT_PATH")
(files '("qml")))
(search-path-specification
(variable "QT_PLUGIN_PATH")
(files '("plugins")))
(search-path-specification
(variable "XDG_DATA_DIRS")
(files '("share")))
(search-path-specification
(variable "XDG_CONFIG_DIRS")
(files '("etc/xdg")))))
(home-page "https://www.qt.io/") (home-page "https://www.qt.io/")
(synopsis "Cross-platform GUI library") (synopsis "Cross-platform GUI library")
(description "Qt is a cross-platform application and UI framework for (description "Qt is a cross-platform application and UI framework for
developers using C++ or QML, a CSS & JavaScript like language.") developers using C++ or QML, a CSS & JavaScript like language.")
(license (list lgpl2.1 lgpl3)))) (license (list license:lgpl2.1 license:lgpl3))))
(define-public qtsvg (define-public qtsvg
(package (inherit qtbase) (package (inherit qtbase)
@ -908,7 +920,7 @@ is then compiled to create the bindings extension module. The SIP Python
module provides support functions to the automatically generated code.") module provides support functions to the automatically generated code.")
;; There is a choice between a python like license, gpl2 and gpl3. ;; There is a choice between a python like license, gpl2 and gpl3.
;; For compatibility with pyqt, we need gpl3. ;; For compatibility with pyqt, we need gpl3.
(license gpl3))) (license license:gpl3)))
(define-public python2-sip (define-public python2-sip
(package (inherit python-sip) (package (inherit python-sip)
@ -973,7 +985,7 @@ module provides support functions to the automatically generated code.")
"PyQt is a set of Python v2 and v3 bindings for the Qt application "PyQt is a set of Python v2 and v3 bindings for the Qt application
framework. The bindings are implemented as a set of Python modules and framework. The bindings are implemented as a set of Python modules and
contain over 620 classes.") contain over 620 classes.")
(license gpl3))) (license license:gpl3)))
(define-public python2-pyqt (define-public python2-pyqt
(package (inherit python-pyqt) (package (inherit python-pyqt)
@ -1055,7 +1067,7 @@ contain over 620 classes.")
"--destdir" lib "--destdir" lib
"--sipdir" sip)))) "--sipdir" sip))))
%standard-phases))) %standard-phases)))
(license (list gpl2 gpl3)))) ; choice of either license (license (list license:gpl2 license:gpl3)))) ; choice of either license
(define-public qtkeychain (define-public qtkeychain
(package (package
@ -1089,4 +1101,4 @@ contain over 620 classes.")
(description (description
"QtKeychain is a Qt library to store passwords and other secret data "QtKeychain is a Qt library to store passwords and other secret data
securely. It will not store any data unencrypted unless explicitly requested.") securely. It will not store any data unencrypted unless explicitly requested.")
(license bsd-3))) (license license:bsd-3)))

View File

@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -18,14 +20,23 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages smalltalk) (define-module (gnu packages smalltalk)
#:use-module (guix licenses) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
#:use-module (gnu packages libsigsegv) #:use-module (gnu packages libsigsegv)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip)) #:use-module (gnu packages zip))
(define-public smalltalk (define-public smalltalk
@ -63,4 +74,76 @@
"GNU Smalltalk is a free implementation of the Smalltalk language. It "GNU Smalltalk is a free implementation of the Smalltalk language. It
implements the ANSI standard for the language and also includes extra classes implements the ANSI standard for the language and also includes extra classes
such as ones for networking and GUI programming.") such as ones for networking and GUI programming.")
(license gpl2+))) (license license:gpl2+)))
(define-public squeak-vm
(package
(name "squeak-vm")
(version "4.10.2.2614")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.squeakvm.org/unix/release/"
"Squeak-" version "-src.tar.gz"))
(sha256
(base32
"0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix"))
(modules '((guix build utils)))
(snippet
;; Make builds bit-reproducible.
'(begin
(substitute* "unix/cmake/verstamp"
(("vm_date=.*")
"vm_date = \"1970-01-01\";\n")
(("ux_version=.*")
"ux_version = \"GNU\";\n"))
(substitute* "unix/vm/config.cmake"
(("\\(VM_BUILD_STRING.*")
"(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))))))
(inputs
`(("alsa-lib" ,alsa-lib)
("dbus" ,dbus)
("freetype" ,freetype)
("libffi" ,libffi)
("libxrender" ,libxrender)
("mesa" ,mesa)
("pulseaudio" ,pulseaudio)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no check target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-hardcoded-PATH
(lambda _
;; Remove hard-coded FHS PATH entries.
(substitute* '("unix/cmake/squeak.in"
"unix/cmake/squeak.sh.in")
(("^PATH=.*") ""))
#t))
(add-after 'unpack 'create-build-dir
(lambda _
(mkdir "bld")
#t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion "bld"
(zero?
(system* "../unix/cmake/configure"
(string-append "--prefix=" out)
"--without-quartz"))))))
(replace 'build
(lambda _
(with-directory-excursion "bld"
(zero? (system* "make"))))))))
(synopsis "Smalltalk programming language and environment")
(description "Squeak is a full-featured implementation of the Smalltalk
programming language and environment based on (and largely compatible with)
the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D
graphics, sound, video, MIDI, animation and other multimedia capabilities. It
also includes a customisable framework for creating dynamic HTTP servers and
interactively extensible Web sites.")
(home-page "http://www.squeakvm.org")
(license license:x11)))

View File

@ -0,0 +1,139 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;;
;;; 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 <http://www.gnu.org/licenses/>.
(define-module (gnu packages u-boot)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module ((gnu packages algebra) #:select (bc))
#:use-module (gnu packages bison)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages flex)
#:use-module (gnu packages python))
(define-public dtc
(package
(name "dtc")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.kernel.org/pub/software/utils/dtc/"
"dtc-" version ".tar.xz"))
(sha256
(base32
"155v52palf5fwfcnq696s41whjk0a5dqx98b7maqzdn7xbc2m6bp"))
(patches
(search-patches "dtc-add-missing-symbols-to-lds.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
("flex" ,flex)))
(arguments
`(#:make-flags
(list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda _
(substitute* "Makefile"
(("/usr/bin/install") "install"))
(substitute* "Makefile"
(("PREFIX = \\$\\(HOME\\)") ""))))
(delete 'configure))))
(home-page "https://www.devicetree.org")
(synopsis "Compiles device tree source files")
(description "@command{dtc} compiles device tree source files to device
tree binary files. These are board description files used by Linux and BSD.")
(license license:gpl2+)))
(define u-boot
(package
(name "u-boot")
(version "2016.07")
(source (origin
(method url-fetch)
(uri (string-append
"ftp://ftp.denx.de/pub/u-boot/"
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp"))))
(native-inputs
`(("bc" ,bc)
("dtc" ,dtc)
("python-2" ,python-2)))
(build-system gnu-build-system)
(home-page "http://www.denx.de/wiki/U-Boot/")
(synopsis "ARM bootloader")
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc).")
(license license:gpl2+)))
(define (make-u-boot-package board triplet)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(package
(inherit u-boot)
(name (string-append "u-boot-" (string-downcase board)))
(native-inputs
`(("cross-gcc" ,(cross-gcc triplet))
("cross-binutils" ,(cross-binutils triplet))
,@(package-native-inputs u-boot)))
(arguments
`(#:test-target "test"
#:make-flags
(list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let ((config-name (string-append ,board "_defconfig")))
(if (file-exists? (string-append "configs/" config-name))
(zero? (apply system* "make" `(,@make-flags ,config-name)))
(begin
(display "Invalid board name. Valid board names are:")
(let ((dir (opendir "configs"))
(suffix-length (string-length "_defconfig")))
(do ((file-name (readdir dir) (readdir dir)))
((eof-object? file-name))
(when (string-suffix? "_defconfig" file-name)
(format #t "- ~A\n"
(string-drop-right file-name suffix-length))))
(closedir dir))
#f)))))
(replace 'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec"))
(uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
(mkdir-p libexec)
(for-each
(lambda (file)
(let ((target-file (string-append libexec "/" file)))
(mkdir-p (dirname target-file))
(copy-file file target-file)))
uboot-files)))))))))
(define-public u-boot-vexpress_ca9x4
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))

View File

@ -10,6 +10,7 @@
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,10 +28,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages version-control) (define-module (gnu packages version-control)
#:use-module ((guix licenses) #:use-module ((guix licenses) #:prefix license:)
#:select (asl2.0 bsd-2 bsd-3
gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
public-domain x11-style))
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
@ -108,7 +106,7 @@
"GNU Bazaar is a version control system that allows you to record "GNU Bazaar is a version control system that allows you to record
changes to project files over time. It supports both a distributed workflow changes to project files over time. It supports both a distributed workflow
as well as the classic centralized workflow.") as well as the classic centralized workflow.")
(license gpl2+))) (license license:gpl2+)))
(define-public git (define-public git
(package (package
@ -292,7 +290,7 @@ as well as the classic centralized workflow.")
(description (description
"Git is a free distributed version control system designed to handle "Git is a free distributed version control system designed to handle
everything from small to very large projects with speed and efficiency.") everything from small to very large projects with speed and efficiency.")
(license gpl2) (license license:gpl2)
(home-page "http://git-scm.com/"))) (home-page "http://git-scm.com/")))
(define-public libgit2 (define-public libgit2
@ -336,7 +334,7 @@ everything from small to very large projects with speed and efficiency.")
provided as a re-entrant linkable library with a solid API, allowing you to provided as a re-entrant linkable library with a solid API, allowing you to
write native speed custom Git applications in any language with bindings.") write native speed custom Git applications in any language with bindings.")
;; GPLv2 with linking exception ;; GPLv2 with linking exception
(license gpl2))) (license license:gpl2)))
(define-public cgit (define-public cgit
(package (package
@ -397,7 +395,7 @@ write native speed custom Git applications in any language with bindings.")
(description (description
"CGit is an attempt to create a fast web interface for the Git SCM, using "CGit is an attempt to create a fast web interface for the Git SCM, using
a built-in cache to decrease server I/O pressure.") a built-in cache to decrease server I/O pressure.")
(license gpl2))) (license license:gpl2)))
(define-public shflags (define-public shflags
(package (package
@ -441,7 +439,7 @@ different versions of getopt on various OSes make writing portable shell
scripts difficult. shFlags instead provides an API that doesn't change across scripts difficult. shFlags instead provides an API that doesn't change across
shell and OS versions so the script writer can be confident that the script shell and OS versions so the script writer can be confident that the script
will work.") will work.")
(license lgpl2.1))) (license license:lgpl2.1)))
(define-public git-flow (define-public git-flow
(package (package
@ -484,7 +482,7 @@ management strategy that helps developers keep track of features, hotfixes,
and releases in bigger software projects. The git-flow library of git and releases in bigger software projects. The git-flow library of git
subcommands helps automate some parts of the flow to make working with it a subcommands helps automate some parts of the flow to make working with it a
lot easier.") lot easier.")
(license bsd-2))) (license license:bsd-2)))
(define-public git-test-sequence (define-public git-test-sequence
(let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76")) (let ((commit "48e5a2f5a13a5f30452647237e23362b459b9c76"))
@ -519,7 +517,7 @@ lot easier.")
"git-test-sequence is similar to an automated git bisect except its "git-test-sequence is similar to an automated git bisect except its
linear. It will test every change between two points in the DAG. It will linear. It will test every change between two points in the DAG. It will
also walk each side of a merge and test those changes individually.") also walk each side of a merge and test those changes individually.")
(license (x11-style "file://LICENSE"))))) (license (license:x11-style "file://LICENSE")))))
(define-public gitolite (define-public gitolite
(package (package
@ -575,7 +573,7 @@ also walk each side of a merge and test those changes individually.")
(description (description
"Gitolite is an access control layer on top of Git, providing fine access "Gitolite is an access control layer on top of Git, providing fine access
control to Git repositories.") control to Git repositories.")
(license gpl2))) (license license:gpl2)))
(define-public mercurial (define-public mercurial
(package (package
@ -602,7 +600,7 @@ control to Git repositories.")
"Mercurial is a free, distributed source control management tool. "Mercurial is a free, distributed source control management tool.
It efficiently handles projects of any size It efficiently handles projects of any size
and offers an easy and intuitive interface.") and offers an easy and intuitive interface.")
(license gpl2+))) (license license:gpl2+)))
(define-public neon (define-public neon
(package (package
@ -650,7 +648,7 @@ abstract interface to parsing XML using libxml2 or expat, and wrappers for
simplifying handling XML HTTP response bodies; simplifying handling XML HTTP response bodies;
WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify
property manipulation.") property manipulation.")
(license gpl2+))) ; for documentation and tests; source under lgpl2.0+ (license license:gpl2+))) ; for documentation and tests; source under lgpl2.0+
(define-public subversion (define-public subversion
(package (package
@ -717,7 +715,7 @@ centralized version control system characterized by its
reliability as a safe haven for valuable data; the simplicity of its model and reliability as a safe haven for valuable data; the simplicity of its model and
usage; and its ability to support the needs of a wide variety of users and usage; and its ability to support the needs of a wide variety of users and
projects, from individuals to large-scale enterprise operations.") projects, from individuals to large-scale enterprise operations.")
(license asl2.0))) (license license:asl2.0)))
(define-public rcs (define-public rcs
(package (package
@ -740,7 +738,7 @@ file-by-file basis, in contrast to subsequent version control systems such as
CVS, Subversion, and Git. This can make it suitable for system CVS, Subversion, and Git. This can make it suitable for system
administration files, for example, which are often inherently local to one administration files, for example, which are often inherently local to one
machine.") machine.")
(license gpl3+))) (license license:gpl3+)))
(define-public cvs (define-public cvs
(package (package
@ -768,7 +766,7 @@ machine.")
Configuration Management (SCM). Using it, you can record the history of Configuration Management (SCM). Using it, you can record the history of
sources files, and documents. It fills a similar role to the free software sources files, and documents. It fills a similar role to the free software
RCS, PRCS, and Aegis packages.") RCS, PRCS, and Aegis packages.")
(license gpl1+))) (license license:gpl1+)))
(define-public cvs-fast-export (define-public cvs-fast-export
(package (package
@ -807,7 +805,7 @@ The program can also produce a visualization of the resulting commit directed
acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org, acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,
Graphviz}. The package also includes @command{cvssync}, a tool for mirroring Graphviz}. The package also includes @command{cvssync}, a tool for mirroring
masters from remote CVS hosts.") masters from remote CVS hosts.")
(license gpl2+))) (license license:gpl2+)))
(define-public vc-dwim (define-public vc-dwim
(package (package
@ -833,7 +831,7 @@ using version control at the same time, for example by printing a reminder
when a file change has been described in the ChangeLog but the file has not when a file change has been described in the ChangeLog but the file has not
been added to the VC. vc-chlog scans changed files and generates been added to the VC. vc-chlog scans changed files and generates
standards-compliant ChangeLog entries based on the changes that it detects.") standards-compliant ChangeLog entries based on the changes that it detects.")
(license gpl3+))) (license license:gpl3+)))
(define-public diffstat (define-public diffstat
(package (package
@ -854,7 +852,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
"Diffstat reads the output of 'diff' and displays a histogram of the "Diffstat reads the output of 'diff' and displays a histogram of the
insertions, deletions, and modifications per-file. It is useful for reviewing insertions, deletions, and modifications per-file. It is useful for reviewing
large, complex patch files.") large, complex patch files.")
(license (x11-style "file://COPYING")))) (license (license:x11-style "file://COPYING"))))
(define-public cssc (define-public cssc
(package (package
@ -896,7 +894,7 @@ large, complex patch files.")
(description "GNU CSSC provides a replacement for the legacy Unix source (description "GNU CSSC provides a replacement for the legacy Unix source
code control system SCCS. This allows old code still under that system to be code control system SCCS. This allows old code still under that system to be
accessed and migrated on modern systems.") accessed and migrated on modern systems.")
(license gpl3+))) (license license:gpl3+)))
;; This package can unfortunately work only in -TEST mode, since Aegis ;; This package can unfortunately work only in -TEST mode, since Aegis
;; requires that it is installed setuid root. ;; requires that it is installed setuid root.
@ -980,7 +978,7 @@ changes to a program independently, and Aegis coordinates integrating these
changes back into the master source of the program, with as little disruption changes back into the master source of the program, with as little disruption
as possible. Resolution of contention for source files, a major headache for as possible. Resolution of contention for source files, a major headache for
any project with more than one developer, is one of Aegis's major functions.") any project with more than one developer, is one of Aegis's major functions.")
(license gpl3+))) (license license:gpl3+)))
(define-public reposurgeon (define-public reposurgeon
(package (package
@ -1032,7 +1030,7 @@ and can thus be used to script production of very high-quality conversions
from Subversion to any supported Distributed Version Control System (DVCS).") from Subversion to any supported Distributed Version Control System (DVCS).")
;; Most files are distributed under bsd-2, except 'repocutter' which is ;; Most files are distributed under bsd-2, except 'repocutter' which is
;; under bsd-3. ;; under bsd-3.
(license (list bsd-2 bsd-3)))) (license (list license:bsd-2 license:bsd-3))))
(define-public tig (define-public tig
(package (package
@ -1058,7 +1056,7 @@ from Subversion to any supported Distributed Version Control System (DVCS).")
"Tig is an ncurses text user interface for Git, primarily intended as "Tig is an ncurses text user interface for Git, primarily intended as
a history browser. It can also stage hunks for commit, or colorize the a history browser. It can also stage hunks for commit, or colorize the
output of the 'git' command.") output of the 'git' command.")
(license gpl2+))) (license license:gpl2+)))
(define-public findnewest (define-public findnewest
(package (package
@ -1085,7 +1083,7 @@ output of the 'git' command.")
(description (description
"Recursively find the newest file in a file tree and print its "Recursively find the newest file in a file tree and print its
modification time.") modification time.")
(license bsd-2))) (license license:bsd-2)))
(define-public myrepos (define-public myrepos
(package (package
@ -1114,7 +1112,7 @@ modification time.")
fetching updates) over a collection of version control repositories. It fetching updates) over a collection of version control repositories. It
supports a large number of version control systems: Git, Subversion, supports a large number of version control systems: Git, Subversion,
Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(license gpl2+))) (license license:gpl2+)))
(define-public git-annex-remote-hubic (define-public git-annex-remote-hubic
(package (package
@ -1145,42 +1143,21 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(description (description
"This package allows you to use your hubic account as a \"special "This package allows you to use your hubic account as a \"special
repository\" with git-annex.") repository\" with git-annex.")
(license gpl3+))) (license license:gpl3+)))
(define-public fossil (define-public fossil
(package (package
(name "fossil") (name "fossil")
(version "1.34") (version "1.35")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
;; Upstream source affected by
;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20962
(uri (string-append (uri (string-append
"https://web.archive.org/web/20160402202958/" "https://www.fossil-scm.org/index.html/uv/download/"
"https://www.fossil-scm.org/download/fossil-src-" "fossil-src-" version ".tar.gz"))
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17x4vgjcfihwmq195qg32irp50panvjqfpvhqydfvv4ghwzbi9jk")) "07ds6rhq69bhydpm9a01mgdhxf88p9b6y5hdnhn8gjc7ba92zyf1"))))
(modules '((guix build utils)))
(snippet
'(begin
;; Commit 0a2ebe57 on 2015-08-03 18:35:53 changed output formatting
;; for some commands, but affected tests were not updated. Use
;; substitute here, which is more concise than patching.
(substitute* "test/clean.test"
(("NEW ") "NEW "))
(substitute* '("test/revert.test" "test/mv-rm.test")
(("REVERTED:") "REVERT ")
(("DELETE:") "DELETE ")
(("UNMANAGE:") "UNMANAGE "))
;; Fix use of __DATE__ and __TIME__
(substitute* "src/main.c"
(("Compiled on %s %s") "Compiled")
(("__DATE__, __TIME__, ") ""))
#t))
(patches (list (search-patch "fossil-test-fixes.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("tcl" ,tcl) ;for configuration only `(("tcl" ,tcl) ;for configuration only
@ -1219,5 +1196,32 @@ repository\" with git-annex.")
"Fossil is a distributed source control management system which supports "Fossil is a distributed source control management system which supports
access and administration over HTTP CGI or via a built-in HTTP server. It has access and administration over HTTP CGI or via a built-in HTTP server. It has
a built-in wiki, built-in file browsing, built-in tickets system, etc.") a built-in wiki, built-in file browsing, built-in tickets system, etc.")
(license (list public-domain ;src/miniz.c, src/shell.c (license (list license:public-domain ;src/miniz.c, src/shell.c
bsd-2)))) license:bsd-2))))
(define-public stagit
(package
(name "stagit")
(version "0.4")
(source (origin
(method url-fetch)
(uri (string-append "http://dl.2f30.org/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"0z5r06wqrfnsz24ci4hjqbd62svclvhkgzaq9npsyjcp6jnf7izc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No tests
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; No configure script
(inputs
`(("libgit2" ,libgit2)))
(home-page "http://2f30.org")
(synopsis "Static git page generator")
(description "Stagit creates static pages for git repositories, the results can
be served with a HTTP file server of your choice.")
(license license:expat)))

View File

@ -14,6 +14,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -49,6 +50,7 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages m4)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -938,7 +940,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(define-public rofi (define-public rofi
(package (package
(name "rofi") (name "rofi")
(version "1.1.0") (version "1.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/DaveDavenport/rofi/" (uri (string-append "https://github.com/DaveDavenport/rofi/"
@ -946,17 +948,17 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
version "/rofi-" version ".tar.xz")) version "/rofi-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1l8vl0mh7i0b1ycifqpg6392f5i4qxlv003m126skfk6fnlfq8hn")))) "0xxx0xpxhrhlhi2axq9867zqrhwqavc1qrr833k1xr0pvm5m0aqc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libx11" ,libx11) `(("pango" ,pango)
("pango" ,pango)
("cairo" ,cairo) ("cairo" ,cairo)
("glib" ,glib) ("glib" ,glib)
("startup-notification" ,startup-notification) ("startup-notification" ,startup-notification)
("libxkbcommon" ,libxkbcommon) ("libxkbcommon" ,libxkbcommon)
("libxcb" ,libxcb) ("libxcb" ,libxcb)
("xcb-util" ,xcb-util) ("xcb-util" ,xcb-util)
("xcb-util-xrm" ,xcb-util-xrm)
("xcb-util-wm" ,xcb-util-wm))) ("xcb-util-wm" ,xcb-util-wm)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -1021,3 +1023,42 @@ The taskbar includes transparency and color settings for the font, icons,
border, and background. It also supports multihead setups, customized mouse border, and background. It also supports multihead setups, customized mouse
actions, a built-in clock, a battery monitor and a system tray.") actions, a built-in clock, a battery monitor and a system tray.")
(license license:gpl2))) (license license:gpl2)))
(define-public xcb-util-xrm
(package
(name "xcb-util-xrm")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/Airblader/xcb-util-xrm/releases"
"/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
(sha256
(base32
"1h5vxwpd37dqfw9yj1l4zd9c5dj30r3g0szgysr6kd7xrqgaq04l"))
(modules '((guix build utils)))
(snippet
;; Drop bundled m4.
'(delete-file-recursively "m4"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("m4" ,m4)
("libx11" ,libx11))) ; for tests
(inputs
`(("libxcb" ,libxcb)
("xcb-util" ,xcb-util)))
(home-page "https://github.com/Airblader/xcb-util-xrm")
(synopsis "XCB utility functions for the X resource manager")
(description
"The XCB util module provides a number of libraries which sit on
top of libxcb, the core X protocol library, and some of the extension
libraries. These experimental libraries provide convenience functions
and interfaces which make the raw X protocol more usable. Some of the
libraries also provide client-side code which is not strictly part of
the X protocol but which has traditionally been provided by Xlib.
XCB util-xrm module provides the following libraries:
- xrm: utility functions for the X resource manager.")
(license license:x11)))

View File

@ -27,6 +27,8 @@
#:use-module (gnu services avahi) #:use-module (gnu services avahi)
#:use-module (gnu services xorg) #:use-module (gnu services xorg)
#:use-module (gnu services networking) #:use-module (gnu services networking)
#:use-module ((gnu system file-systems)
#:select (%elogind-file-systems))
#:use-module (gnu system shadow) #:use-module (gnu system shadow)
#:use-module (gnu system pam) #:use-module (gnu system pam)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
@ -760,7 +762,11 @@ seats.)"
;; Extend PAM with pam_elogind.so. ;; Extend PAM with pam_elogind.so.
(service-extension pam-root-service-type (service-extension pam-root-service-type
pam-extension-procedure))))) pam-extension-procedure)
;; We need /run/user, /run/systemd, etc.
(service-extension file-system-service-type
(const %elogind-file-systems))))))
(define* (elogind-service #:key (config (elogind-configuration))) (define* (elogind-service #:key (config (elogind-configuration)))
"Return a service that runs the @command{elogind} login and seat management "Return a service that runs the @command{elogind} login and seat management
@ -823,7 +829,7 @@ and extends polkit with the actions from @code{gnome-settings-daemon}."
(define* (xfce-desktop-service #:key (config (xfce-desktop-configuration))) (define* (xfce-desktop-service #:key (config (xfce-desktop-configuration)))
"Return a service that adds the @code{xfce} package to the system profile, "Return a service that adds the @code{xfce} package to the system profile,
and extends polkit with the abilit for @code{thunar} to manipulate the file and extends polkit with the ability for @code{thunar} to manipulate the file
system as root from within a user session, after the user has authenticated system as root from within a user session, after the user has authenticated
with the administrator's password." with the administrator's password."
(service xfce-desktop-service-type config)) (service xfce-desktop-service-type config))

View File

@ -17,8 +17,8 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services herd) (define-module (gnu services herd)
#:use-module (guix combinators)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
@ -37,6 +37,11 @@
unknown-shepherd-error? unknown-shepherd-error?
unknown-shepherd-error-sexp unknown-shepherd-error-sexp
live-service?
live-service-provision
live-service-requirement
live-service-running
current-services current-services
unload-services unload-services
unload-service unload-service
@ -165,25 +170,27 @@ of pairs."
(let ((key (and=> (assoc-ref alist 'key) car)) ...) (let ((key (and=> (assoc-ref alist 'key) car)) ...)
exp ...)))) exp ...))))
;; Information about live Shepherd services.
(define-record-type <live-service>
(live-service provision requirement running)
live-service?
(provision live-service-provision) ;list of symbols
(requirement live-service-requirement) ;list of symbols
(running live-service-running)) ;#f | object
(define (current-services) (define (current-services)
"Return two lists: the list of currently running services, and the list of "Return the list of currently defined Shepherd services, represented as
currently stopped services. Return #f and #f if the list of services could <live-service> objects. Return #f if the list of services could not be
not be obtained." obtained."
(with-shepherd-action 'root ('status) services (with-shepherd-action 'root ('status) services
(match services (match services
((('service ('version 0 _ ...) _ ...) ...) ((('service ('version 0 _ ...) _ ...) ...)
(fold2 (lambda (service running-services stopped-services) (map (lambda (service)
(alist-let* service (provides running) (alist-let* service (provides requires running)
(if running (live-service provides requires running)))
(values (cons (first provides) running-services) services))
stopped-services)
(values running-services
(cons (first provides) stopped-services)))))
'()
'()
services))
(x (x
(values #f #f))))) #f))))
(define (unload-service service) (define (unload-service service)
"Unload SERVICE, a symbol name; return #t on success." "Unload SERVICE, a symbol name; return #t on success."

View File

@ -25,6 +25,7 @@
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix derivations) ;imported-modules, etc. #:use-module (guix derivations) ;imported-modules, etc.
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services herd)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
@ -52,7 +53,9 @@
shepherd-service-file shepherd-service-file
shepherd-service-back-edges)) shepherd-service-lookup-procedure
shepherd-service-back-edges
shepherd-service-upgrade))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -249,20 +252,35 @@ stored."
(gexp->file "shepherd.conf" config))) (gexp->file "shepherd.conf" config)))
(define (shepherd-service-back-edges services) (define* (shepherd-service-lookup-procedure services
#:optional
(provision
shepherd-service-provision))
"Return a procedure that, when passed a symbol, return the item among
SERVICES that provides this symbol. PROVISION must be a one-argument
procedure that takes a service and returns the list of symbols it provides."
(let ((services (fold (lambda (service result)
(fold (cut vhash-consq <> service <>)
result
(provision service)))
vlist-null
services)))
(lambda (name)
(match (vhash-assq name services)
((_ . service) service)
(#f #f)))))
(define* (shepherd-service-back-edges services
#:key
(provision shepherd-service-provision)
(requirement shepherd-service-requirement))
"Return a procedure that, when given a <shepherd-service> from SERVICES, "Return a procedure that, when given a <shepherd-service> from SERVICES,
returns the list of <shepherd-service> that depend on it." returns the list of <shepherd-service> that depend on it.
Use PROVISION and REQUIREMENT as one-argument procedures that return the
symbols provided/required by a service."
(define provision->service (define provision->service
(let ((services (fold (lambda (service result) (shepherd-service-lookup-procedure services provision))
(fold (cut vhash-consq <> service <>)
result
(shepherd-service-provision service)))
vlist-null
services)))
(lambda (name)
(match (vhash-assq name services)
((_ . service) service)
(#f #f)))))
(define edges (define edges
(fold (lambda (service edges) (fold (lambda (service edges)
@ -270,11 +288,59 @@ returns the list of <shepherd-service> that depend on it."
(vhash-consq (provision->service requirement) service (vhash-consq (provision->service requirement) service
edges)) edges))
edges edges
(shepherd-service-requirement service))) (requirement service)))
vlist-null vlist-null
services)) services))
(lambda (service) (lambda (service)
(vhash-foldq* cons '() service edges))) (vhash-foldq* cons '() service edges)))
(define (shepherd-service-upgrade live target)
"Return two values: the subset of LIVE (a list of <live-service>) that needs
to be unloaded, and the subset of TARGET (a list of <shepherd-service>) that
needs to be loaded."
(define (essential? service)
(memq (first (live-service-provision service))
'(root shepherd)))
(define lookup-target
(shepherd-service-lookup-procedure target
shepherd-service-provision))
(define lookup-live
(shepherd-service-lookup-procedure live
live-service-provision))
(define (running? service)
(and=> (lookup-live (shepherd-service-canonical-name service))
live-service-running))
(define (stopped service)
(match (lookup-live (shepherd-service-canonical-name service))
(#f #f)
(service (and (not (live-service-running service))
service))))
(define live-service-dependents
(shepherd-service-back-edges live
#:provision live-service-provision
#:requirement live-service-requirement))
(define (obsolete? service)
(match (lookup-target (first (live-service-provision service)))
(#f (every obsolete? (live-service-dependents service)))
(_ #f)))
(define to-load
;; Only load services that are either new or currently stopped.
(remove running? target))
(define to-unload
;; Unload services that are (1) no longer required, or (2) are in TO-LOAD.
(remove essential?
(append (filter obsolete? live)
(filter-map stopped to-load))))
(values to-unload to-load))
;;; shepherd.scm ends here ;;; shepherd.scm ends here

View File

@ -26,7 +26,7 @@
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages slim) #:use-module (gnu packages display-managers)
#:use-module (gnu packages gnustep) #:use-module (gnu packages gnustep)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)

View File

@ -257,7 +257,6 @@ TARGET in the other system."
(append (list %pseudo-terminal-file-system (append (list %pseudo-terminal-file-system
%shared-memory-file-system %shared-memory-file-system
%immutable-store) %immutable-store)
%elogind-file-systems
%control-groups)) %control-groups))
;; File systems for Linux containers differ from %base-file-systems in that ;; File systems for Linux containers differ from %base-file-systems in that

View File

@ -122,11 +122,13 @@ info --version")
(operating-system-user-accounts os)))))) (operating-system-user-accounts os))))))
(test-assert "shepherd services" (test-assert "shepherd services"
(let ((services (marionette-eval '(begin (let ((services (marionette-eval
(use-modules (gnu services herd)) '(begin
(call-with-values current-services (use-modules (gnu services herd))
append))
marionette))) (map (compose car live-service-provision)
(current-services)))
marionette)))
(lset= eq? (lset= eq?
(pk 'services services) (pk 'services services)
'(root #$@(operating-system-shepherd-service-names os))))) '(root #$@(operating-system-shepherd-service-names os)))))

View File

@ -0,0 +1,40 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 David Craven <david@craven.ch>
;;;
;;; 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 <http://www.gnu.org/licenses/>.
(define-module (guix build qt-utils)
#:use-module (guix build utils)
#:export (wrap-qt-program))
(define (wrap-qt-program out program)
(define (suffix env-var path)
(let ((env-val (getenv env-var)))
(if env-val (string-append env-val ":" path) path)))
(let ((qml-path (suffix "QML2_IMPORT_PATH"
(string-append out "/qml")))
(plugin-path (suffix "QT_PLUGIN_PATH"
(string-append out "/plugins")))
(xdg-data-path (suffix "XDG_DATA_DIRS"
(string-append out "/share")))
(xdg-config-path (suffix "XDG_CONFIG_DIRS"
(string-append out "/etc/xdg"))))
(wrap-program (string-append out "/bin/" program)
`("QML2_IMPORT_PATH" = (,qml-path))
`("QT_PLUGIN_PATH" = (,plugin-path))
`("XDG_DATA_DIRS" = (,xdg-data-path))
`("XDG_CONFIG_DIRS" = (,xdg-config-path)))))

View File

@ -83,7 +83,7 @@
"Return the base distribution module for a given module. E.g. the 'ok' "Return the base distribution module for a given module. E.g. the 'ok'
module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would
return \"Test-Simple\"" return \"Test-Simple\""
(assoc-ref (json-fetch (string-append "http://api.metacpan.org/module/" (assoc-ref (json-fetch (string-append "https://api.metacpan.org/module/"
module)) module))
"distribution")) "distribution"))
@ -91,7 +91,7 @@ return \"Test-Simple\""
"Return an alist representation of the CPAN metadata for the perl module MODULE, "Return an alist representation of the CPAN metadata for the perl module MODULE,
or #f on failure. MODULE should be e.g. \"Test::Script\"" or #f on failure. MODULE should be e.g. \"Test::Script\""
;; This API always returns the latest release of the module. ;; This API always returns the latest release of the module.
(json-fetch (string-append "http://api.metacpan.org/release/" (json-fetch (string-append "https://api.metacpan.org/release/"
;; XXX: The 'release' api requires the "release" ;; XXX: The 'release' api requires the "release"
;; name of the package. This substitution seems ;; name of the package. This substitution seems
;; reasonably consistent across packages. ;; reasonably consistent across packages.

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -74,7 +75,7 @@
(define (hackage-source-url name version) (define (hackage-source-url name version)
"Given a Hackage package NAME and VERSION, return a url to the source "Given a Hackage package NAME and VERSION, return a url to the source
tarball." tarball."
(string-append "http://hackage.haskell.org/package/" name (string-append "https://hackage.haskell.org/package/" name
"/" name "-" version ".tar.gz")) "/" name "-" version ".tar.gz"))
(define* (hackage-cabal-url name #:optional version) (define* (hackage-cabal-url name #:optional version)
@ -82,9 +83,9 @@ tarball."
.cabal file on Hackage. If VERSION is #f or missing, the url for the latest .cabal file on Hackage. If VERSION is #f or missing, the url for the latest
version is returned." version is returned."
(if version (if version
(string-append "http://hackage.haskell.org/package/" (string-append "https://hackage.haskell.org/package/"
name "-" version "/" name ".cabal") name "-" version "/" name ".cabal")
(string-append "http://hackage.haskell.org/package/" (string-append "https://hackage.haskell.org/package/"
name "/" name ".cabal"))) name "/" name ".cabal")))
(define (hackage-name->package-name name) (define (hackage-name->package-name name)

View File

@ -95,6 +95,7 @@
package-transitive-propagated-inputs package-transitive-propagated-inputs
package-transitive-native-search-paths package-transitive-native-search-paths
package-transitive-supported-systems package-transitive-supported-systems
package-input-rewriting
package-source-derivation package-source-derivation
package-derivation package-derivation
package-cross-derivation package-cross-derivation
@ -735,6 +736,35 @@ dependencies are known to build on SYSTEM."
"Return the \"target inputs\" of BAG, recursively." "Return the \"target inputs\" of BAG, recursively."
(transitive-inputs (bag-target-inputs bag))) (transitive-inputs (bag-target-inputs bag)))
(define* (package-input-rewriting replacements
#:optional (rewrite-name identity))
"Return a procedure that, when passed a package, replaces its direct and
indirect dependencies (but not its implicit inputs) according to REPLACEMENTS.
REPLACEMENTS is a list of package pairs; the first element of each pair is the
package to replace, and the second one is the replacement.
Optionally, REWRITE-NAME is a one-argument procedure that takes the name of a
package and returns its new name after rewrite."
(define (rewrite input)
(match input
((label (? package? package) outputs ...)
(match (assq-ref replacements package)
(#f (cons* label (replace package) outputs))
(new (cons* label new outputs))))
(_
input)))
(define-memoized/v (replace p)
"Return a variant of P with its inputs rewritten."
(package
(inherit p)
(name (rewrite-name (package-name p)))
(inputs (map rewrite (package-inputs p)))
(native-inputs (map rewrite (package-native-inputs p)))
(propagated-inputs (map rewrite (package-propagated-inputs p)))))
replace)
;;; ;;;
;;; Package derivations. ;;; Package derivations.

View File

@ -193,33 +193,17 @@ of \"guile\"."
(map (lambda (spec) (map (lambda (spec)
(match (string-tokenize spec not-equal) (match (string-tokenize spec not-equal)
((old new) ((old new)
(cons old (specification->package new))) (cons (specification->package old)
(specification->package new)))
(_ (_
(leave (_ "invalid replacement specification: ~s~%") spec)))) (leave (_ "invalid replacement specification: ~s~%") spec))))
replacement-specs)) replacement-specs))
(define (rewrite input) (let ((rewrite (package-input-rewriting replacements)))
(match input (lambda (store obj)
((label (? package? package) outputs ...) (if (package? obj)
(match (assoc-ref replacements (package-name package)) (rewrite obj)
(#f (cons* label (replace package) outputs)) obj))))
(new (cons* label new outputs))))
(_
input)))
(define replace
(memoize ;XXX: use eq?
(lambda (p)
(package
(inherit p)
(inputs (map rewrite (package-inputs p)))
(native-inputs (map rewrite (package-native-inputs p)))
(propagated-inputs (map rewrite (package-propagated-inputs p)))))))
(lambda (store obj)
(if (package? obj)
(replace obj)
obj)))
(define %transformations (define %transformations
;; Transformations that can be applied to things to build. The car is the ;; Transformations that can be applied to things to build. The car is the

View File

@ -276,36 +276,17 @@ on service '~a':~%")
"Call MPROC, a monadic procedure in %STORE-MONAD, passing it the list of "Call MPROC, a monadic procedure in %STORE-MONAD, passing it the list of
names of services to load (upgrade), and the list of names of services to names of services to load (upgrade), and the list of names of services to
unload." unload."
(define (essential? service) (match (current-services)
(memq service '(root shepherd))) ((services ...)
(let-values (((to-unload to-load)
(define new-service-names (shepherd-service-upgrade services new-services)))
(map (compose first shepherd-service-provision) (mproc to-load
new-services)) (map (compose first live-service-provision)
to-unload))))
(let-values (((running stopped) (current-services))) (#f
(if (and running stopped) (with-monad %store-monad
(let* ((to-load (warning (_ "failed to obtain list of shepherd services~%"))
;; Only load services that are either new or currently stopped. (return #f)))))
(remove (lambda (service)
(memq (first (shepherd-service-provision service))
running))
new-services))
(to-unload
;; Unload services that are (1) no longer required, or (2) are
;; in TO-LOAD.
(remove essential?
(append (remove (lambda (service)
(memq service new-service-names))
(append running stopped))
(filter (lambda (service)
(memq service stopped))
(map shepherd-service-canonical-name
to-load))))))
(mproc to-load to-unload))
(with-monad %store-monad
(warning (_ "failed to obtain list of shepherd services~%"))
(return #f)))))
(define (upgrade-shepherd-services os) (define (upgrade-shepherd-services os)
"Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new "Upgrade the Shepherd (PID 1) by unloading obsolete services and loading new

View File

@ -66,9 +66,9 @@
(lambda () (lambda ()
(display (display
(match url (match url
("http://api.metacpan.org/release/Foo-Bar" ("https://api.metacpan.org/release/Foo-Bar"
test-json) test-json)
("http://api.metacpan.org/module/Test::Script" ("https://api.metacpan.org/module/Test::Script"
"{ \"distribution\" : \"Test-Script\" }") "{ \"distribution\" : \"Test-Script\" }")
("http://example.com/Foo-Bar-0.1.tar.gz" ("http://example.com/Foo-Bar-0.1.tar.gz"
test-source) test-source)

View File

@ -110,7 +110,7 @@ library
('origin ('origin
('method 'url-fetch) ('method 'url-fetch)
('uri ('string-append ('uri ('string-append
"http://hackage.haskell.org/package/foo/foo-" "https://hackage.haskell.org/package/foo/foo-"
'version 'version
".tar.gz")) ".tar.gz"))
('sha256 ('sha256

View File

@ -742,6 +742,31 @@
(and (build-derivations %store (list drv)) (and (build-derivations %store (list drv))
(file-exists? (string-append out "/bin/make"))))))) (file-exists? (string-append out "/bin/make")))))))
(test-assert "package-input-rewriting"
(let* ((dep (dummy-package "chbouib"
(native-inputs `(("x" ,grep)))))
(p0 (dummy-package "example"
(inputs `(("foo" ,coreutils)
("bar" ,grep)
("baz" ,dep)))))
(rewrite (package-input-rewriting `((,coreutils . ,sed)
(,grep . ,findutils))
(cut string-append "r-" <>)))
(p1 (rewrite p0))
(p2 (rewrite p0)))
(and (not (eq? p1 p0))
(eq? p1 p2) ;memoization
(string=? "r-example" (package-name p1))
(match (package-inputs p1)
((("foo" dep1) ("bar" dep2) ("baz" dep3))
(and (eq? dep1 sed)
(eq? dep2 findutils)
(string=? (package-name dep3) "r-chbouib")
(eq? dep3 (rewrite dep)) ;memoization
(match (package-native-inputs dep3)
((("x" dep))
(eq? dep findutils)))))))))
(test-eq "fold-packages" hello (test-eq "fold-packages" hello
(fold-packages (lambda (p r) (fold-packages (lambda (p r)
(if (string=? (package-name p) "hello") (if (string=? (package-name p) "hello")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -18,12 +18,17 @@
(define-module (test-services) (define-module (test-services)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services herd)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-64)) #:use-module (srfi srfi-64))
(define live-service
(@@ (gnu services herd) live-service))
(test-begin "services") (test-begin "services")
(test-assert "service-back-edges" (test-assert "service-back-edges"
@ -105,6 +110,15 @@
(fold-services (list s) #:target-type t1) (fold-services (list s) #:target-type t1)
#f))) #f)))
(test-assert "shepherd-service-lookup-procedure"
(let* ((s1 (shepherd-service (provision '(s1 s1b)) (start #f)))
(s2 (shepherd-service (provision '(s2 s2b)) (start #f)))
(s3 (shepherd-service (provision '(s3 s3b s3c)) (start #f)))
(lookup (shepherd-service-lookup-procedure (list s1 s2 s3))))
(and (eq? (lookup 's1) (lookup 's1b) s1)
(eq? (lookup 's2) (lookup 's2b) s2)
(eq? (lookup 's3) (lookup 's3b) s3))))
(test-assert "shepherd-service-back-edges" (test-assert "shepherd-service-back-edges"
(let* ((s1 (shepherd-service (provision '(s1)) (start #f))) (let* ((s1 (shepherd-service (provision '(s1)) (start #f)))
(s2 (shepherd-service (provision '(s2)) (s2 (shepherd-service (provision '(s2))
@ -118,4 +132,67 @@
(lset= eq? (e s2) (list s3)) (lset= eq? (e s2) (list s3))
(null? (e s3))))) (null? (e s3)))))
(test-equal "shepherd-service-upgrade: nothing to do"
'(() ())
(call-with-values
(lambda ()
(shepherd-service-upgrade '() '()))
list))
(test-equal "shepherd-service-upgrade: one unchanged, one upgraded, one new"
'(((bar)) ;unload
((bar) (baz))) ;load
(call-with-values
(lambda ()
;; Here 'foo' is not upgraded because it is still running, whereas
;; 'bar' is upgraded because it is not currently running. 'baz' is
;; loaded because it's a new service.
(shepherd-service-upgrade
(list (live-service '(foo) '() #t)
(live-service '(bar) '() #f)
(live-service '(root) '() #t)) ;essential!
(list (shepherd-service (provision '(foo))
(start #t))
(shepherd-service (provision '(bar))
(start #t))
(shepherd-service (provision '(baz))
(start #t)))))
(lambda (unload load)
(list (map live-service-provision unload)
(map shepherd-service-provision load)))))
(test-equal "shepherd-service-upgrade: service depended on is not unloaded"
'(((baz)) ;unload
()) ;load
(call-with-values
(lambda ()
;; Service 'bar' is not among the target services; yet, it must not be
;; unloaded because 'foo' depends on it.
(shepherd-service-upgrade
(list (live-service '(foo) '(bar) #t)
(live-service '(bar) '() #t) ;still used!
(live-service '(baz) '() #t))
(list (shepherd-service (provision '(foo))
(start #t)))))
(lambda (unload load)
(list (map live-service-provision unload)
(map shepherd-service-provision load)))))
(test-equal "shepherd-service-upgrade: obsolete services that depend on each other"
'(((foo) (bar) (baz)) ;unload
((qux))) ;load
(call-with-values
(lambda ()
;; 'foo', 'bar', and 'baz' depend on each other, but all of them are
;; obsolete, and thus should be unloaded.
(shepherd-service-upgrade
(list (live-service '(foo) '(bar) #t) ;obsolete
(live-service '(bar) '(baz) #t) ;obsolete
(live-service '(baz) '() #t)) ;obsolete
(list (shepherd-service (provision '(qux))
(start #t)))))
(lambda (unload load)
(list (map live-service-provision unload)
(map shepherd-service-provision load)))))
(test-end) (test-end)

View File

@ -59,7 +59,7 @@
%base-file-systems)) %base-file-systems))
(users %base-user-accounts))) (users %base-user-accounts)))
(test-begin "system") (test-begin "system")
(test-assert "operating-system-store-file-system" (test-assert "operating-system-store-file-system"