Merge branch 'master' into core-updates

This commit is contained in:
Ludovic Courtès 2016-04-06 12:00:29 +02:00
commit 933d2fe4cf
155 changed files with 6518 additions and 3461 deletions

1
.gitignore vendored
View File

@ -123,3 +123,4 @@ Makefile.in
config.cache config.cache
stamp-h[0-9] stamp-h[0-9]
tmp tmp
/doc/os-config-lightweight-desktop.texi

View File

@ -1,14 +1,20 @@
# This list is used to avoid multiple name/email instances of the same # This list is used to avoid multiple name/email instances of the same
# contributors reported by "git log" and "git shortlog" commands. # contributors reported by "git log" and "git shortlog" commands.
Al McElrath <hello@yrns.org> <hello@atonesir.com>
Alexander I. Grafov <grafov@gmail.com> Alexander I. Grafov <grafov@gmail.com>
Alírio Eyng <alirioeyng@gmail.com>
Amirouche Boubekki <amirouche@hypermove.net> Amirouche Boubekki <amirouche@hypermove.net>
Andreas Enge <andreas@enge.fr> <andreas.enge@inria.fr>
Andreas Enge <andreas@enge.fr> <privat@xobs-novena>
Andy Wingo <wingo@igalia.com> <wingo@pobox.com> Andy Wingo <wingo@igalia.com> <wingo@pobox.com>
Ben Woodcroft <b.woodcroft@uq.edu.au> <donttrustben@gmail.com> Ben Woodcroft <donttrustben@gmail.com> <b.woodcroft@uq.edu.au>
Ben Woodcroft <donttrustben@gmail.com> <donttrustben near gmail.com>
Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com> Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com> Cyprien Nicolas <cyprien@nicolas.tf> <c.nicolas+gitorious@gmail.com>
David Thompson <davet@gnu.org> <dthompson2@worcester.edu> David Thompson <davet@gnu.org> <dthompson2@worcester.edu>
David Thompson <davet@gnu.org> <dthompson@member.fsf.org> David Thompson <davet@gnu.org> <dthompson@member.fsf.org>
David Thompson <davet@gnu.org> <dthompson@vistahigherlearning.com>
Deck Pickard <deck.r.pickard@gmail.com> <nebu@kipple> Deck Pickard <deck.r.pickard@gmail.com> <nebu@kipple>
Eric Bavier <bavier@member.fsf.org> <ericbavier@gmail.com> Eric Bavier <bavier@member.fsf.org> <ericbavier@gmail.com>
Eric Dvorsak <eric@dvorsak.fr> <yenda1@gmail.com> Eric Dvorsak <eric@dvorsak.fr> <yenda1@gmail.com>
@ -17,11 +23,15 @@ Joshua Grant <tadni@riseup.net> <gzg@riseup.net>
Joshua Grant <tadni@riseup.net> <jgrant@parenthetical.io> Joshua Grant <tadni@riseup.net> <jgrant@parenthetical.io>
Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com> Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net> Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr> Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Mathieu Lirzin <mthl@openmailbox.org> <mathieu.lirzin@openmailbox.org> Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com> Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
Nils Gillmann <niasterisk@grrlz.net> <ng@niasterisk.space>
Pjotr Prins <pjotr.public01@thebird.nl> Pjotr Prins <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.public01@thebird.nl> <pjotr.public12@thebird.nl> Pjotr Prins <pjotr.public01@thebird.nl> <pjotr.public12@thebird.nl>
Raimon Grau <raimonster@gmail.com> <raimon@3scale.net>
Ricardo Wurmus <rekado@elephly.net> Ricardo Wurmus <rekado@elephly.net>
Ricardo Wurmus <rekado@elephly.net> <ricardo.wurmus@mdc-berlin.de> Ricardo Wurmus <rekado@elephly.net> <ricardo.wurmus@mdc-berlin.de>
Sou Bunnbu (宋文武) <iyzsong@gmail.com> Sou Bunnbu (宋文武) <iyzsong@gmail.com>

View File

@ -1,5 +1,8 @@
Contributor Code of Conduct Contributor Code of Conduct
Note: In the sequel, "project" refers to GNU Guix, and "project
maintainer(s)" refers to maintainer(s) of GNU Guix.
As contributors and maintainers of this project, and in the interest of As contributors and maintainers of this project, and in the interest of
fostering an open and welcoming community, we pledge to respect all fostering an open and welcoming community, we pledge to respect all
people who contribute through reporting issues, posting feature people who contribute through reporting issues, posting feature

View File

@ -183,7 +183,8 @@ KCONFIGS = \
# Templates, examples. # Templates, examples.
EXAMPLES = \ EXAMPLES = \
gnu/system/examples/bare-bones.tmpl \ gnu/system/examples/bare-bones.tmpl \
gnu/system/examples/desktop.tmpl gnu/system/examples/desktop.tmpl \
gnu/system/examples/lightweight-desktop.tmpl
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go guix/tests.go GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go guix/tests.go
@ -292,10 +293,11 @@ endif BUILD_DAEMON
TESTS = $(SCM_TESTS) $(SH_TESTS) TESTS = $(SCM_TESTS) $(SH_TESTS)
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0
SCM_LOG_COMPILER = $(top_builddir)/test-env $(GUILE) SCM_LOG_DRIVER = $(top_builddir)/test-env $(GUILE) --no-auto-compile \
AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)" -e main $(top_srcdir)/build-aux/test-driver.scm
AM_SCM_LOG_DRIVER_FLAGS = --brief=yes
SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL) SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL)
AM_SH_LOG_FLAGS = -x -e AM_SH_LOG_FLAGS = -x -e
@ -345,6 +347,7 @@ EXTRA_DIST = \
build-aux/download.scm \ build-aux/download.scm \
build-aux/make-binary-tarball.scm \ build-aux/make-binary-tarball.scm \
build-aux/generate-authors.scm \ build-aux/generate-authors.scm \
build-aux/test-driver.scm \
srfi/srfi-37.scm.in \ srfi/srfi-37.scm.in \
srfi/srfi-64.scm \ srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \ srfi/srfi-64.upstream.scm \

407
NEWS
View File

@ -2,7 +2,7 @@
#+TITLE: Guix NEWS history of user-visible changes #+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars #+STARTUP: content hidestars
Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
Copying and distribution of this file, with or without modification, Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright are permitted in any medium without royalty provided the copyright
@ -10,11 +10,16 @@ Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
Please send Guix bug reports to bug-guix@gnu.org. Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 0.9.1 (since 0.9.0) * Changes in 0.10.0 (since 0.9.0)
** Community
GNU Guix adopted a contributor code of conduct, see CODE-OF-CONDUCT in the
source tree.
** Package management ** Package management
*** New syntax for separating package names and version numbers *** New command-line syntax for separating package names and version numbers
Use @ instead of - as a separator, as in gnupg@2.0. This new separator Use @ instead of - as a separator, as in gnupg@2.0. This new separator
is a reserved character which is not allowed both in package names and version is a reserved character which is not allowed both in package names and version
@ -23,9 +28,31 @@ numbers.
The old syntax to specify a packages version—e.g., as “gnupg-2.0”—is obsolete The old syntax to specify a packages version—e.g., as “gnupg-2.0”—is obsolete
and support for it will be removed in the future. and support for it will be removed in the future.
*** Emacs interface for licenses *** “Grafts” apply recursively, based on run-time dependencies
*** Emacs interface for system generations
*** Emacs interface for hydra.gnu.org “Grafts” is the mechanism by which we can apply security updates of core
packages without rebuilding or re-downloading the entire set of dependent
packages. See “Security Updates” in the manual, as well as
<https://savannah.gnu.org/forum/forum.php?forum_id=8470> and
<http://bugs.gnu.org/22139> for more info.
*** Substitutes are fetched over HTTPS by default
*** Substitutes are cached for the duration reported in Cache-Control headers
*** Default substitute URL list includes a faster mirror, mirror.hydra.gnu.org
*** New --with-input and --with-source for guix package and guix build
See “Package Transformation Options” in the manual.
*** guix package --search-paths -p X -p Y combines search paths for X and Y
*** guix package can be passed several --search options
*** New --rounds and --check for guix build, for bit-reproducibility
*** New --rounds option for guix-daemon
*** New --quiet option for guix build
*** guix package -u no longer checks for upstream GNU releases
*** guix-daemon always uses /tmp in chroots, regardless of $TMPDIR
*** New Emacs interface to browse licenses: M-x guix-licenses
*** New Emacs interface to list system generations: M-x guix-system-generations
*** New Emacs interface for hydra.gnu.org: M-x guix-hydra-…
*** Changes in Emacs interface variables and faces *** Changes in Emacs interface variables and faces
In the following names, BUFFER-TYPE means "info" or "list"; In the following names, BUFFER-TYPE means "info" or "list";
@ -57,9 +84,375 @@ ENTRY-TYPE means "package", "output" or "generation".
guix-ENTRY-TYPE-list-describe-warning-count guix-ENTRY-TYPE-list-describe-warning-count
- guix-package-info-fill-heading -> guix-info-fill - guix-package-info-fill-heading -> guix-info-fill
*** New cve linter: guix lint -c cve reports pending vulnerabilities
*** New gnome, xorg, and github updaters for guix refresh
*** guix lint times out after 3 seconds when probing URLs
*** guix graph -t bag-with-origins includes origins in the graph
*** guix import cran can import packages from bioconductor.org
** Distribution
*** GuixSD upgraded to GNU Shepherd 0.3.1 and GNU Linux-libre 4.5.0
See <http://git.savannah.gnu.org/cgit/shepherd.git/tree/NEWS?id=v0.3.1> for
information on the changes between GNU dmd 0.2 and the GNU Shepherd 0.3.1.
*** “System Installation” section of the manual has been expounded
*** Installation image runs GPM and includes more programs
*** GNOME and Xfce desktops are available via services; see "Desktop Services"
*** New tor-hidden-service procedure, to declare Tor hidden services
*** New Dovecot service
*** New fstab-service-type, to populate /etc/fstab
*** New mount? field for file-system forms
*** Most global environment variables are now set in /etc/environment (pam_env)
*** guix system reconfigure now loads/starts new services, stops old ones
(see <http://bugs.gnu.org/22039>)
*** local-file resolves file names relative to the current source file
*** Many reproducibility issues fixed: glibc, perl, bison, emacs-*, python-*, …
*** Initial RAM disk supports modprobe.blacklist on the kernel command line
*** New “Running GuixSD in a VM” section in the manual
*** dmd changed to shepherd in guix system sub-commands
*** A Bourne-like shell is spawned upon fsck failure
(see <http://bugs.gnu.org/22588>)
*** 639 new packages
aide, allegro, amb-plugins, aria2, armadillo, armadillo, artanis, aseprite,
aspell-dict-it, aspell-dict-nl, assword, asymptote, audit, augeas, autojump,
awscli, baobab, beets, bioawk, blender, bless, borg, bristol, btrfs-progs,
bwa-pssm, byzanz, c-ares, caribou, cd-hit, cereal, cmocka, codingquarry,
colord-gtk, cppcheck, cpulimit, cracklib, crossguid, cuetools, cufflinks,
dcadec, dconf-editor, desmume, devil, dialog, docker-compose, drumstick,
einstein, emacs-async, emacs-constants, emacs-god-mode, emacs-mit-scheme-doc,
emacs-popup, emacs-scheme-complete, emacs-slime, emacs-undo-tree,
emacs-with-editor, emulation-station, etl, evolution-data-server, eyed3, fdm,
fil-plugins, findnewest, fluxbox, font-abattis-cantarell, font-google-noto,
font-un, fraggenescan, freefall, fritzing, fxtract, g-wrap, g2reverb,
gdk-pixbuf+svg, gdm, gdsl, gedit, ghc-aeson-qq, ghc-asn1-encoding,
ghc-asn1-parse, ghc-asn1-types, ghc-byteable, ghc-chasingbottoms, ghc-cmark,
ghc-conduit, ghc-connection, ghc-cryptonite, ghc-deepseq-generics, ghc-diff,
ghc-enclosed-exceptions, ghc-executable-path, ghc-filemanip,
ghc-haskell-src-meta, ghc-highlighting-kate, ghc-hostname, ghc-hourglass,
ghc-hslua, ghc-hspec-contrib, ghc-http-client, ghc-http-client-tls,
ghc-juicypixels, ghc-libxml, ghc-logging-facade, ghc-memory, ghc-mime-types,
ghc-mmap, ghc-mockery, ghc-packedstring, ghc-pandoc, ghc-pandoc-types,
ghc-pem, ghc-regex-pcre-builtin, ghc-sha, ghc-socks, ghc-tasty-kat,
ghc-test-framework, ghc-test-framework-hunit, ghc-test-framework-quickcheck2,
ghc-texmath, ghc-th-expand-syns, ghc-th-lift, ghc-th-orphans,
ghc-th-reify-many, ghc-tls, ghc-x509, ghc-x509-store, ghc-x509-system,
ghc-x509-validation, ghc-yaml, git-annex-remote-hubic, gjs, gnome,
gnome-backgrounds, gnome-bluetooth, gnome-control-center,
gnome-online-accounts, gnome-screenshot, gnome-session, gnome-shell,
gnunet-gtk, gpm, graphicsmagick, gst-plugins-bad, gtk-engines, gtk-vnc,
gtklick, guile-config, guile-gnunet, guile-irregex, guile-sly, gumbo-parser,
icedtea, icedtea, idle3-tools, iftop, info-reader, inklingreader, jasper,
jellyfish, jpegoptim, khal, khard, kodi, kyotocabinet, lcov, ldb, ldc, ledger,
letsencrypt, libbigwig, libcanberra-gtk2, libconfig, libgit2, libgtop,
liblangtag, libmateweather, libmbim, libotf, libpwquality, libqmi, libvdpau,
libxml++, lispf4, love, mate-desktop, mate-icon-theme, mate-menus,
mate-themes, mcp-plugins, microscheme, mlt, modem-manager, munge,
mupen64plus-audio-sdl, mupen64plus-core, mupen64plus-input-sdl,
mupen64plus-rsp-hle, mupen64plus-rsp-z64, mupen64plus-ui-console,
mupen64plus-video-arachnoid, mupen64plus-video-glide64,
mupen64plus-video-glide64mk2, mupen64plus-video-rice, mupen64plus-video-z64,
murrine, mutter, myrepos, nagios, nautilus, network-manager,
network-manager-applet, nload, notmuch-addrlookup-c, nqc, obs, ocaml-findlib,
owncloud-client, password-store, pepr, perl-cgi, perl-dbd-mysql,
perl-file-slurp-tiny, perl-html-template, perl-log-report,
perl-log-report-optional, perl-mime-charset, perl-module-pluggable,
perl-shell-command, perl-string-print, perl-text-neattemplate,
perl-unicode-linebreak, perl-xml-compile, perl-xml-compile-cache,
perl-xml-compile-soap, perl-xml-compile-tester, perl-xml-compile-wsdl11,
perl-xml-libxml-simple, pfff, pianobar, pinball, pioneers, pixz, powwow, ppp,
procmail, pyicoteo, python-acme, python-alembic, python-amqp, python-anyjson,
python-apipkg, python-args, python-astor, python-atomicwrites,
python-backports-abc, python-beautifulsoup4, python-billiard, python-botocore,
python-celery, python-click-log, python-click-threading, python-clint,
python-colorama, python-configargparse, python-configobj, python-contextlib2,
python-cookies, python-docker-py, python-dockerpty, python-docopt,
python-editor, python-efl, python-execnet, python-flask, python-futures,
python-gst, python-hy, python-hypothesis, python-icalendar, python-jellyfish,
python-jmespath, python-keystoneclient, python-kombu, python-mako,
python-markdown, python-minimal-wrapper, python-mpd2, python-munkres,
python-musicbrainzngs, python-mutagen, python-ndg-httpsclient, python-paste,
python-pastedeploy, python-pastescript, python-pathlib, python-pluggy,
python-psycopg2, python-pyasn1-modules, python-pybigwig, python-pyechonest,
python-pygpgme, python-pyicu, python-pylast, python-pyliblo, python-pyquery,
python-pyrfc3339, python-pystache, python-pytest-cache, python-pytest-cov,
python-pytest-localserver, python-pytest-subtesthack, python-pytest-xdist,
python-pytest-xprocess, python-rarfile, python-rauth,
python-requests-toolbelt, python-responses, python-rply, python-rsa,
python-sphinx-repoze-autointerface, python-sphinxcontrib-newsfeed,
python-sphinxcontrib-programoutput, python-swiftclient, python-texttable,
python-tox, python-translitcodec, python-urllib3, python-vcversioner,
python-vobject, python-waitress, python-websocket-client, python-webtest,
python-werkzeug, python-wheel, python-wsgi-intercept, python-wsgiproxy2,
python-wtforms, python-zope-component, python-zope-configuration,
python-zope-event, python-zope-exceptions, python-zope-i18nmessageid,
python-zope-interface, python-zope-location, python-zope-proxy,
python-zope-schema, python-zope-security, python-zope-testing,
python-zope-testrunner, python2-acme, python2-alembic, python2-amqp,
python2-anyjson, python2-apipkg, python2-args, python2-astor,
python2-atomicwrites, python2-backports-abc, python2-beautifulsoup4,
python2-billiard, python2-botocore, python2-celery, python2-clint,
python2-colorama, python2-configargparse, python2-configobj,
python2-contextlib2, python2-cookies, python2-docopt, python2-editor,
python2-efl, python2-enum34, python2-execnet, python2-flask,
python2-functools32, python2-futures, python2-gst, python2-hy,
python2-hypothesis, python2-jellyfish, python2-jmespath,
python2-keystoneclient, python2-kombu, python2-mako, python2-markdown,
python2-mpd2, python2-munkres, python2-musicbrainzngs, python2-mutagen,
python2-ndg-httpsclient, python2-parsedatetime, python2-paste,
python2-pastedeploy, python2-pastescript, python2-pathlib, python2-pluggy,
python2-psycopg2, python2-pyasn1-modules, python2-pybigwig,
python2-pyechonest, python2-pygpgme, python2-pylast, python2-pyliblo,
python2-pyquery, python2-pyrfc3339, python2-pystache, python2-pytest-cov,
python2-pytest-subtesthack, python2-pytest-xdist, python2-pythondialog,
python2-rarfile, python2-rauth, python2-responses, python2-rply, python2-rsa,
python2-sphinx-repoze-autointerface, python2-sphinxcontrib-programoutput,
python2-swiftclient, python2-texttable, python2-tox, python2-translitcodec,
python2-unicodecsv, python2-urllib3, python2-vcversioner, python2-vobject,
python2-waitress, python2-websocket-client, python2-webtest, python2-werkzeug,
python2-wheel, python2-wsgiproxy2, python2-wtforms, python2-xdo,
python2-zope-component, python2-zope-configuration, python2-zope-event,
python2-zope-exceptions, python2-zope-i18nmessageid, python2-zope-interface,
python2-zope-location, python2-zope-proxy, python2-zope-schema,
python2-zope-security, python2-zope-testing, python2-zope-testrunner, qca,
qemu-minimal, qtkeychain, qtractor, quassel, r-acsnminer, r-adaptivesparsity,
r-annotationdbi, r-base64enc, r-biobase, r-biocgenerics, r-biocparallel,
r-biomart, r-biostrings, r-bitops, r-brew, r-bsgenome, r-catools, r-curl,
r-data-table, r-devtools, r-dnacopy, r-doparallel, r-dt, r-foreach,
r-futile-logger, r-futile-options, r-genomation, r-genomeinfodb,
r-genomicalignments, r-genomicfeatures, r-genomicranges, r-git2r, r-go-db,
r-graph, r-gridbase, r-gridextra, r-httr, r-impute, r-iranges, r-iterators,
r-lambda-r, r-lattice, r-matrixstats, r-org-ce-eg-db, r-org-dm-eg-db,
r-org-hs-eg-db, r-org-mm-eg-db, r-plotly, r-plotrix, r-r-cache, r-r-methodss3,
r-r-oo, r-r-rsp, r-r-utils, r-rcpparmadillo, r-rcurl, r-readr, r-rmarkdown,
r-roxygen2, r-rsamtools, r-rsqlite, r-rstudioapi, r-rtracklayer, r-rversions,
r-s4vectors, r-seqpattern, r-snow, r-sparsem, r-summarizedexperiment, r-topgo,
r-viridis, r-whisker, r-xml, r-xml2, r-xvector, radicale, ragel, rakarrack,
rdmd, redshift, rev-plugins, ruby-ae, ruby-afm, ruby-ansi, ruby-ascii85,
ruby-atoulme-saikuro, ruby-bio-commandeer, ruby-blankslate, ruby-brass,
ruby-ci-reporter, ruby-clap, ruby-crass, ruby-cutest, ruby-domain-name,
ruby-eventmachine, ruby-fivemat, ruby-gem-hadar, ruby-gettext, ruby-guard,
ruby-hashery, ruby-http-cookie, ruby-instantiator, ruby-introspection,
ruby-json-pure, ruby-lemon, ruby-locale, ruby-metaclass, ruby-mime-types,
ruby-mime-types-data, ruby-minitest-bonus-assertions, ruby-minitest-focus,
ruby-minitest-moar, ruby-minitest-pretty-diff, ruby-minitest-rg,
ruby-minitest-tu-shim, ruby-mocha, ruby-net-ssh, ruby-netrc,
ruby-nokogiri-diff, ruby-nokogumbo, ruby-packnga, ruby-power-assert,
ruby-pry-editline, ruby-pstree, ruby-pygmentize, ruby-qed, ruby-rb-fsevent,
ruby-rc4, ruby-redcarpet, ruby-redcloth, ruby-rubytest, ruby-rubytest-cli,
ruby-saikuro-treemap, ruby-sanitize, ruby-sdoc, ruby-shoulda,
ruby-shoulda-context, ruby-shoulda-matchers, ruby-shoulda-matchers,
ruby-simplecov, ruby-sqlite3, ruby-systemu, ruby-tdiff, ruby-term-ansicolor,
ruby-test-unit, ruby-text, ruby-tins, ruby-ttfunk, ruby-turn, ruby-unf,
ruby-unf-ext, ruby-utils, scribus, sdl2-image, sdl2-mixer, sdl2-ttf, sdparm,
shepherd, shntool, slurm, smithlab-cpp, snap-aligner, snorenotify, sortmerna,
sparsehash, ste-plugins, stringtie, synfig, synfigstudio, tcllib, tclxml,
telepathy-logger, tevent, texlive-minimal, tilda, tinyxml, tlsdate, tophat,
transmission-remote-cli, ustr, v4l-utils, vco-plugins, vdirsyncer, vdpauinfo,
vmpk, wah-plugins, wcalc, xaos, xfce4-power-manager, xfce4-xkb-plugin,
xmlstarlet, yoshimi, zenity
*** 577 package updates
abcde-2.7.1, abduco-0.5, adwaita-icon-theme-3.18.0, aisleriot-3.18.2,
alsa-modular-synth-2.1.2, alsa-utils-1.1.0, american-fuzzy-lop-1.96b,
ant-1.9.6, ao-1.2.0, arb-2.8.1, ardour-4.7, aspell-dict-en-2016.01.19-0,
atkmm-2.24.2, attr-2.4.47, autogen-5.18.7, bash-4.3.42, bash-minimal-4.3.42,
bash-static-4.3.42, bazaar-2.7.0, bdftopcf-1.0.5, bedtools-2.25.0,
bind-utils-9.10.3-P4, bitcoin-core-0.11.2, bitlbee-3.4.1, bluez-5.36,
boost-1.60.0, bowtie-2.2.6, bundler-1.11.2, calibre-2.51.0, catch-1.3.5,
ccache-3.2.4, chicken-4.10.0, clang-3.6.2, claws-mail-3.13.2, clutter-1.24.2,
clutter-gst-3.0.14, clutter-gtk-1.6.6, cm-0.3, cogl-1.22.0, colordiff-1.0.16,
complexity-1.10, cppunit-1.13.2, cups-filters-1.4.0, curl-7.47.0,
datamash-1.1.0, dconf-0.24.0, ddrescue-1.21, deeptools-2.1.1, devhelp-3.18.1,
diffoscope-51, docbook-xml-4.3, docbook-xml-4.4, docbook-xml-4.5,
dovecot-2.2.19, doxygen-1.8.11, dropbear-2016.72, dvdisaster-0.79.5,
dvtm-0.15, edirect-3.50, efl-1.17.0, eigen-3.2.7, elementary-1.17.0,
elogind-219.14, emacs-dash-2.12.1, emacs-debbugs-0.9, emacs-pdf-tools-0.70,
emacs-w3m-1.4.538+0.20141022, emotion-generic-players-1.17.0,
enlightenment-0.20.6, eog-3.18.1, epiphany-3.18.2,
evas-generic-loaders-1.17.0, evince-3.18.1, exim-4.86.2,
extra-cmake-modules-5.19.0, feh-2.14.1, ffmpeg-2.8.6, file-5.25,
file-roller-3.16.4, findutils-4.6.0, flex-2.6.0,
font-adobe-source-han-sans-1.004, font-terminus-4.40, font-ubuntu-0.83,
font-util-1.3.1, fontforge-20150824, freeipmi-1.5.1, frescobaldi-2.18.2,
fribidi-0.19.7, fuse-2.9.5, gajim-0.16.5, gcc-5.3.0, gcc-toolchain-5.3.0,
gccgo-4.9.3, gcr-3.18.0, gdb-7.11, gdk-pixbuf-2.32.3, geocode-glib-3.18.0,
getmail-4.48.0, gettext-0.19.7, gfortran-5.3.0, git-2.7.3, git-manpages-2.7.3,
git-modes-1.2.1, gitolite-3.6.5, glade-3.18.3, glibc-2.22, glibmm-2.46.3,
global-6.5.2, glpk-4.59, gmime-2.6.20, gmp-6.1.0, gmsh-2.11.0, gmtp-1.3.10,
gnome-common-3.18.0, gnome-desktop-3.18.1, gnome-keyring-3.18.3,
gnome-klotski-3.18.2, gnome-mines-3.18.2, gnome-settings-daemon-3.18.2,
gnome-terminal-3.18.2, gnome-themes-standard-3.18.0, gnucash-2.6.9,
gnumeric-1.12.24, gnupg-2.0.29, gnupg-2.1.11, gnuplot-5.0.2, gnutls-3.4.7,
goffice-0.10.24, gp2c-0.0.9pl5, gpgme-1.6.0, gpsbabel-1.5.2, graphite2-1.3.6,
grep-2.22, grilo-0.2.14, grilo-plugins-0.2.16, gsl-2.1, gst-libav-1.6.3,
gst-plugins-base-1.6.3, gst-plugins-good-1.6.3, gst-plugins-ugly-1.6.3,
gstreamer-1.6.3, gtksourceview-3.18.2, guile-2.0.11, guile-2.0.11,
guile-json-0.5.0, guile-ssh-0.9.0, guitarix-0.34.0, guix-0.9.0,
guix-0.9.0-1.dd21, gvfs-1.26.2, harfbuzz-1.0.6, help2man-1.47.3, hevea-2.28,
htop-2.0.1, hwloc-1.11.1, hydrogen-0.9.6.1, iceauth-1.0.7, icecast-2.4.3,
icecat-38.6.0-gnu1, iproute2-4.4.0, irssi-0.8.18, isc-dhcp-4.3.3-P1,
isync-1.2.1, jrnl-1.9.7, julia-0.4.3, kbproto-1.0.7, keepassx-2.0.2,
kwindowsystem-5.19.0, libass-0.13.2, libassuan-2.4.2, libbluray-0.9.2,
libcddb-1.3.2, libchamplain-0.12.12, libdvdcss-1.4.0, libevent-2.0.22,
libffi-3.2.1, libfontenc-1.1.3, libfs-1.0.7, libgcrypt-1.6.5,
libgnome-keyring-3.12.0, libgpg-error-1.21, libgweather-3.18.1,
libinput-1.2.0, libjpeg-9a, libmicrohttpd-0.9.48, libotr-4.1.1,
libpeas-1.16.0, libpng-1.5.26, librecad-2.0.9, libreoffice-5.0.5.2,
libressl-2.3.3, librsvg-2.40.13, libsecret-0.18.3, libshout-2.4.1,
libsndfile-1.0.26, libssh-0.7.3, libssh2-1.7.0, libstdc++-doc-5.3.0,
libtasn1-4.7, libtiff-4.0.6, libuninameslist-0.5.20150701, libvpx-1.5.0,
libwnck-3.14.0, libx11-1.6.3, libx264-20160220-2245, libxaw-1.0.13,
libxdmcp-1.1.2, libxi-1.7.6, libxkbfile-1.0.9, libxml2-2.9.3, libxmp-4.3.10,
libxp-1.0.3, libxrandr-1.5.0, libxrender-0.9.9, libxshmfence-1.2, libxt-1.1.5,
libxvmc-1.0.9, libxxf86vm-1.1.4, libyubikey-1.13, lilypond-2.19.33,
linux-libre-4.4.6, linux-libre-4.5, lua-5.2.3, macs-2.1.0.20151222,
mafft-7.267, magit-2.5.0, man-pages-4.04, manaplus-1.6.3.12, mariadb-10.1.12,
mercurial-3.7.2, mesa-11.0.9, mesa-headers-11.0.9, mit-krb5-1.13.3,
mkfontscale-1.1.2, moe-1.8, moreutils-0.57, mozjs-24.2.0, mpd-0.19.12,
mplayer-1.2.1, mpv-0.16.0, msmtp-1.6.3, mumps-5.0.1, mumps-metis-5.0.1,
mumps-metis-openmpi-5.0.1, mumps-openmpi-5.0.1, mupdf-1.8, mysql-5.7.11,
nano-2.5.3, ncbi-vdb-2.5.7, ncmpcpp-0.7.3, neon-0.30.1, nettle-3.2,
nginx-1.8.1, ngs-java-1.2.3, ngs-sdk-1.2.3, nix-1.11.2, notmuch-0.21,
nspr-4.10.10, nss-3.21.1, nss-certs-3.21.1, ntp-4.2.8p6, numactl-2.0.11,
octave-4.0.0, offlineimap-6.7.0, openbox-3.6.1, openjpeg-2.0.1,
openjpeg-2.1.0, openmpi-1.10.1, openssh-7.2p2, openssl-1.0.2g, opus-1.1.2,
opusfile-0.7, orc-0.4.25, orfm-0.5.3, oxygen-icons-5.19.0, parallel-20160222,
paredit-24, pari-gp-2.7.5, parted-3.2, pcre-8.38, pelican-3.6.3, perf-4.5,
perl-5.22.1, perl-tk-804.033, petsc-3.6.2, petsc-complex-3.6.2,
petsc-complex-openmpi-3.6.2, petsc-openmpi-3.6.2, pidgin-otr-4.0.2,
pinentry-0.9.6, pius-2.2.2, pkg-config-0.29, postgresql-9.5.1, powertop-2.8,
preseq-2.0, privoxy-3.0.24, procps-3.3.11, prodigal-2.6.3, pspp-0.10.0,
pulseaudio-8.0, pumpa-0.9.2, python-3.4.3, python-apsw-3.9.2-r1,
python-babel-2.1.1, python-biopython-1.66, python-blinker-1.4,
python-certifi-2015.11.20.1, python-cffi-1.4.2, python-click-6.2,
python-coverage-4.0.3, python-cryptography-1.2.3,
python-cryptography-vectors-1.2.3, python-cython-0.23.4,
python-dateutil-2.4.2, python-debtcollector-1.0.0, python-decorator-4.0.9,
python-enum34-1.1.0, python-exif-read-2.1.2, python-file-5.25,
python-fixtures-1.4.0, python-flake8-2.5.4, python-gnupg-0.3.8,
python-html5lib-1.0b8, python-isodate-0.5.4, python-jinja2-2.8,
python-jsonschema-2.5.1, python-keyring-5.7.1, python-libarchive-c-2.2,
python-libxml2-2.9.3, python-llfuse-0.41.1, python-llfuse-1.0,
python-lxml-3.5.0, python-ly-0.9.3, python-matplotlib-1.4.3,
python-mccabe-0.4.0, python-mox3-0.13.0, python-msgpack-0.4.7,
python-networkx-1.11, python-nose-1.3.7, python-numpy-1.10.4,
python-oauthlib-1.0.3, python-os-client-config-1.12.0, python-os-testr-0.5.0,
python-oslo.context-1.0.0, python-oslo.i18n-3.0.0,
python-oslo.serialization-2.2.0, python-oslo.utils-3.0.0,
python-oslosphinx-4.2.0, python-pandas-0.16.2, python-parsedatetime-1.5,
python-passlib-1.6.5, python-patsy-0.4.1, python-pbr-1.8.1, python-pep8-1.7.0,
python-pillow-3.1.1, python-pip-8.0.2, python-psutil-3.3.0, python-py-1.4.31,
python-pycparser-2.14, python-pyflakes-1.0.0, python-pygments-2.0.2,
python-pyjwt-1.4.0, python-pyld-0.6.8, python-pysam-0.8.4, python-pytz-2015.7,
python-pyzmq-15.1.0, python-requests-2.9.1, python-requests-mock-0.7.0,
python-rpy2-2.7.6, python-setuptools-scm-1.9.0, python-six-1.10.0,
python-sqlalchemy-1.0.12, python-stevedore-1.10.0, python-tempest-lib-0.12.0,
python-tlsh-3.4.4, python-tornado-4.3, python-traitlets-4.1.0,
python-tzlocal-1.2, python-unidecode-0.04.18, python-virtualenv-13.1.2,
python-webob-1.5.1, python2-apsw-3.9.2-r1, python2-babel-2.1.1,
python2-backport-ssl-match-hostname-3.5.0.1, python2-biopython-1.66,
python2-blinker-1.4, python2-certifi-2015.11.20.1, python2-cffi-1.4.2,
python2-click-6.2, python2-coverage-4.0.3, python2-cryptography-1.2.3,
python2-cryptography-vectors-1.2.3, python2-cython-0.23.4,
python2-dateutil-2.4.2, python2-debtcollector-1.0.0, python2-decorator-4.0.9,
python2-exif-read-2.1.2, python2-fastlmm-0.2.21, python2-file-5.25,
python2-fixtures-1.4.0, python2-flake8-2.5.4, python2-gnupg-0.3.8,
python2-html5lib-1.0b8, python2-isodate-0.5.4, python2-jinja2-2.8,
python2-jsonschema-2.5.1, python2-keyring-5.7.1, python2-libarchive-c-2.2,
python2-libxml2-2.9.3, python2-llfuse-1.0, python2-lxml-3.5.0,
python2-matplotlib-1.4.3, python2-mccabe-0.4.0, python2-mox3-0.13.0,
python2-msgpack-0.4.7, python2-networkx-1.11, python2-nose-1.3.7,
python2-numpy-1.10.4, python2-oauthlib-1.0.3, python2-os-client-config-1.12.0,
python2-os-testr-0.5.0, python2-oslo.context-1.0.0, python2-oslo.i18n-3.0.0,
python2-oslo.serialization-2.2.0, python2-oslo.utils-3.0.0,
python2-oslosphinx-4.2.0, python2-pandas-0.16.2, python2-passlib-1.6.5,
python2-patsy-0.4.1, python2-pbr-1.8.1, python2-pep8-1.7.0,
python2-pillow-3.1.1, python2-pip-8.0.2, python2-psutil-3.3.0,
python2-py-1.4.31, python2-pycparser-2.14, python2-pyflakes-1.0.0,
python2-pygments-2.0.2, python2-pyicu-1.9.2, python2-pyjwt-1.4.0,
python2-pyld-0.6.8, python2-pysam-0.8.4, python2-pysnptools-0.3.5,
python2-pysqlite-2.8.1, python2-pytz-2015.7, python2-pyzmq-15.1.0,
python2-requests-2.9.1, python2-requests-mock-0.7.0, python2-rpy2-2.7.6,
python2-setuptools-scm-1.9.0, python2-six-1.10.0, python2-sqlalchemy-1.0.12,
python2-stevedore-1.10.0, python2-tempest-lib-0.12.0, python2-tlsh-3.4.4,
python2-tornado-4.3, python2-traitlets-4.1.0, python2-unidecode-0.04.18,
python2-virtualenv-13.1.2, python2-webob-1.5.1, qemu-2.5.0, qrencode-3.4.4,
r-3.2.3, r-ggplot2-2.0.0, r-qtl-1.38-4, randrproto-1.5.0, retroarch-1.3.1,
rsync-3.1.2, ruby-2.2.4, ruby-2.3.0, ruby-mini-portile-2.0.0,
ruby-nokogiri-1.6.7.1, samba-4.3.6, samtools-1.3, sdl2-2.0.4, seahorse-3.18.0,
sessreg-1.1.0, setxkbmap-1.3.1, shflags-1.2.0, simple-scan-3.19.91,
sipwitch-1.9.15, skribilo-0.9.3, slepc-3.6.2, slepc-complex-3.6.2,
slepc-complex-openmpi-3.6.2, slepc-openmpi-3.6.2, smproxy-1.0.6,
socat-1.7.3.1, sqlite-3.10.0, sra-tools-2.5.7, star-2.5.1b, stow-2.2.2,
subversion-1.8.15, sudo-1.8.15, sxiv-1.3.2, talloc-2.1.5, tdb-1.3.8,
texinfo-5.2, texinfo-6.0, texinfo-6.1, the-silver-searcher-0.31.0, tig-2.1.1,
tiled-0.15.1, tmux-2.1, tor-0.2.7.6, torsocks-2.0.0, totem-3.18.1,
tzdata-2015g, ucommon-7.0.0, upower-0.99.3, utf8proc-1.3.1, vapoursynth-28,
vera-1.23, vigra-1.11.0, vsearch-1.10.0, vte-0.42.3, wayland-1.10.0,
webkitgtk-2.12.0, webkitgtk-2.4.10, webkitgtk-gtk2-2.4.10, weechat-1.4,
wget-1.17.1, wine-1.9.4, x11perf-1.6.0, xcmsdb-1.0.5, xdotool-3.20150503.1,
xdpyinfo-1.3.2, xdriinfo-1.0.5, xev-1.2.2, xf86-input-evdev-2.10.1,
xf86-input-keyboard-1.8.1, xf86-input-libinput-0.16.0,
xf86-input-synaptics-1.8.3, xf86-input-void-1.4.1, xf86-video-ati-7.6.1,
xf86-video-cirrus-1.5.3, xf86-video-geode-2.11.18,
xf86-video-intel-2.99.917-1-d167280, xf86-video-mach64-6.9.5,
xf86-video-mga-1.6.4, xf86-video-neomagic-1.2.9, xf86-video-nouveau-1.0.12,
xf86-video-r128-6.10.1, xf86-video-savage-2.3.8,
xf86-video-siliconmotion-1.7.8, xf86-video-sis-0.10.8, xf86-video-tdfx-1.4.6,
xf86-video-trident-1.3.7, xf86-video-vesa-2.3.4, xf86-video-vmware-13.1.0,
xgamma-1.0.6, xhost-1.0.7, xinput-1.6.2, xkbevd-1.1.4, xkeyboard-config-2.17,
xlockmore-5.46, xlsatoms-1.1.2, xmlto-0.0.28, xmodmap-1.0.9,
xorg-server-1.18.1, xorriso-1.4.2, xproto-7.0.28, xrandr-1.5.0, xterm-322,
xvid-1.3.4, xvinfo-1.1.3, xz-5.2.2, yasm-1.3.0, yelp-3.18.1,
yelp-tools-3.18.0, yelp-xsl-3.18.1, ykclient-2.15, youtube-dl-2016.03.01,
zlib-1.2.8, znc-1.6.2, zynaddsubfx-2.5.3
** Programming interfaces
*** Build systems always set the SOURCE_DATE_EPOCH environment variable
*** New (guix graph) graph manipulation module, abstracted from guix graph
*** New (guix cve) module, to navigate the CVE database
*** build-things procedure takes a new mode parameter
*** Mass rename of dmd to shepherd in the (gnu …) modules
*** New gnome-desktop-service and xfce-desktop-service procedures
*** pam-root-service-type can be extended with cross-cutting transformations
*** package-with-python2 honors the python2-variant package property
(see <http://bugs.gnu.org/22437>)
** Noteworthy bug fixes ** Noteworthy bug fixes
*** Numbers in package names are correctly handled (http://bugs.gnu.org/19219) *** Grafts are applied recursively (<http://bugs.gnu.org/22139>)
*** Commands correctly handle numbers in package names
(http://bugs.gnu.org/19219)
*** guix-daemon deduplication code detects corrupt items
*** eudev now populates /dev/disk/by-{id,label}
*** Selected locale is automatically built (<http://bugs.gnu.org/22572>)
*** Substitutes can be downloaded over HTTPS (<http://bugs.gnu.org/22937>)
*** umask explicitly set in /etc/profile (<http://bugs.gnu.org/22650>)
*** guix system init writes GC root on the target file system
(<http://bugs.gnu.org/22802>)
*** guix system vm now works in the absence of KVM support
(<http://bugs.gnu.org/22633>)
*** GuixSD includes an Info reader by default (<http://bugs.gnu.org/22598>)
*** MacBook keyboards are now properly detected (<http://bugs.gnu.org/20433>)
*** GRUB searches root by label or UUID (<http://bugs.gnu.org/22281>)
*** guix package --search-paths honors propagated inputs
(<http://bugs.gnu.org/22073>)
*** GCC uses C_INCLUDE_PATH et al. instead of CPATH
(<http://bugs.gnu.org/22186>)
*** ld-wrapper computes library search path based on all -L flags
(<http://bugs.gnu.org/21941>)
*** guix environment --container gracefully handles abnormal exists
(<http://bugs.gnu.org/21958>)
** Native language support
*** Updated translations: da, de
*** New translation: pl (Polish)
* Changes in 0.9.0 (since 0.8.3) * Changes in 0.9.0 (since 0.8.3)

View File

@ -161,7 +161,7 @@ system.")
(set-guile-for-build (default-guile)) (set-guile-for-build (default-guile))
(system-disk-image installation-os (system-disk-image installation-os
#:disk-image-size #:disk-image-size
(* 860 MiB)))))) (* 1024 MiB))))))
'())) '()))
(define (tarball-jobs store system) (define (tarball-jobs store system)

189
build-aux/test-driver.scm Normal file
View File

@ -0,0 +1,189 @@
;;;; test-driver.scm - Guile test driver for Automake testsuite harness
(define script-version "2016-04-03.12") ;UTC
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;;
;;; This program 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.
;;;
;;; This program is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;;; Commentary:
;;;
;;; This script provides a Guile test driver using the SRFI-64 Scheme API for
;;; test suites. SRFI-64 is distributed with Guile since version 2.0.9.
;;;
;;;; Code:
(use-modules (ice-9 getopt-long)
(ice-9 pretty-print)
(srfi srfi-26)
(srfi srfi-64))
(define (show-help)
(display "Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--brief={yes|no}}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
The '--test-name', '--log-file' and '--trs-file' options are mandatory.\n"))
(define %options
'((test-name (value #t))
(log-file (value #t))
(trs-file (value #t))
(color-tests (value #t))
(expect-failure (value #t)) ;XXX: not implemented yet
(enable-hard-errors (value #t)) ;not implemented in SRFI-64
(brief (value #t))
(help (single-char #\h) (value #f))
(version (single-char #\V) (value #f))))
(define (option->boolean options key)
"Return #t if the value associated with KEY in OPTIONS is \"yes\"."
(and=> (option-ref options key #f) (cut string=? <> "yes")))
(define* (test-display field value #:optional (port (current-output-port))
#:key pretty?)
"Display \"FIELD: VALUE\\n\" on PORT."
(if pretty?
(begin
(format port "~A:~%" field)
(pretty-print value port #:per-line-prefix "+ "))
(format port "~A: ~A~%" field value)))
(define* (result->string symbol #:key colorize?)
"Return SYMBOL as an upper case string. Use colors when COLORIZE is #t."
(let ((result (string-upcase (symbol->string symbol))))
(if colorize?
(string-append (case symbol
((pass) "") ;green
((xfail) "") ;light green
((skip) "") ;blue
((fail xpass) "") ;red
((error) "")) ;magenta
result
"") ;no color
result)))
(define* (test-runner-gnu test-name #:key color? brief? out-port trs-port)
"Return an custom SRFI-64 test runner. TEST-NAME is a string specifying the
file name of the current the test. COLOR? specifies whether to use colors,
and BRIEF?, well, you know. OUT-PORT and TRS-PORT must be output ports. The
current output port is supposed to be redirected to a '.log' file."
(define (test-on-test-begin-gnu runner)
;; Procedure called at the start of an individual test case, before the
;; test expression (and expected value) are evaluated.
(let ((result (cute assq-ref (test-result-alist runner) <>)))
(test-display "test-name" (result 'test-name))
(test-display "location"
(string-append (result 'source-file) ":"
(number->string (result 'source-line))))
(test-display "source" (result 'source-form) #:pretty? #t)))
(define (test-on-test-end-gnu runner)
;; Procedure called at the end of an individual test case, when the result
;; of the test is available.
(let* ((results (test-result-alist runner))
(result? (cut assq <> results))
(result (cut assq-ref results <>)))
(unless brief?
;; Display the result of each test case on the console.
(test-display
(result->string (test-result-kind runner) #:colorize? color?)
(string-append test-name " - " (test-runner-test-name runner))
out-port))
(when (result? 'expected-value)
(test-display "expected-value" (result 'expected-value)))
(when (result? 'expected-error)
(test-display "expected-error" (result 'expected-error) #:pretty? #t))
(when (result? 'actual-value)
(test-display "actual-value" (result 'actual-value)))
(when (result? 'actual-error)
(test-display "actual-error" (result 'actual-error) #:pretty? #t))
(test-display "result" (result->string (result 'result-kind)))
(newline)
(test-display ":test-result"
(string-append (result->string (test-result-kind runner))
" " (test-runner-test-name runner))
trs-port)))
(define (test-on-group-end-gnu runner)
;; Procedure called by a 'test-end', including at the end of a test-group.
(let ((fail (or (positive? (test-runner-fail-count runner))
(positive? (test-runner-xpass-count runner))))
(skip (or (positive? (test-runner-skip-count runner))
(positive? (test-runner-xfail-count runner)))))
;; XXX: The global results need some refinements for XPASS.
(test-display ":global-test-result"
(if fail "FAIL" (if skip "SKIP" "PASS"))
trs-port)
(test-display ":recheck"
(if fail "yes" "no")
trs-port)
(test-display ":copy-in-global-log"
(if (or fail skip) "yes" "no")
trs-port)
(when brief?
;; Display the global test group result on the console.
(test-display (result->string (if fail 'fail (if skip 'skip 'pass))
#:colorize? color?)
test-name
out-port))
#f))
(let ((runner (test-runner-null)))
(test-runner-on-test-begin! runner test-on-test-begin-gnu)
(test-runner-on-test-end! runner test-on-test-end-gnu)
(test-runner-on-group-end! runner test-on-group-end-gnu)
(test-runner-on-bad-end-name! runner test-on-bad-end-name-simple)
runner))
;;;
;;; Entry point.
;;;
(define (main . args)
(let* ((opts (getopt-long (command-line) %options))
(option (cut option-ref opts <> <>)))
(cond
((option 'help #f) (show-help))
((option 'version #f) (format #t "test-driver.scm ~A" script-version))
(else
(let ((log (open-file (option 'log-file "") "w0"))
(trs (open-file (option 'trs-file "") "wl"))
(out (duplicate-port (current-output-port) "wl")))
(redirect-port log (current-output-port))
(redirect-port log (current-warning-port))
(redirect-port log (current-error-port))
(test-with-runner
(test-runner-gnu (option 'test-name #f)
#:color? (option->boolean opts 'color-tests)
#:brief? (option->boolean opts 'brief)
#:out-port out #:trs-port trs)
(load-from-path (option 'test-name #f)))
(close-port log)
(close-port trs)
(close-port out))))
(exit 0)))
;;; Local Variables:
;;; eval: (add-hook 'write-file-functions 'time-stamp)
;;; time-stamp-start: "(define script-version \""
;;; time-stamp-format: "%:y-%02m-%02d.%02H"
;;; time-stamp-time-zone: "UTC"
;;; time-stamp-end: "\") ;UTC"
;;; End:
;;;; test-driver.scm ends here.

View File

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68) AC_PREREQ(2.68)
AC_INIT([GNU Guix], [0.9.1], [bug-guix@gnu.org], [guix], AC_INIT([GNU Guix], [0.10.0], [bug-guix@gnu.org], [guix],
[http://www.gnu.org/software/guix/]) [http://www.gnu.org/software/guix/])
AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_AUX_DIR([build-aux])

3
doc.am
View File

@ -47,7 +47,8 @@ EXTRA_DIST += \
OS_CONFIG_EXAMPLES_TEXI = \ OS_CONFIG_EXAMPLES_TEXI = \
doc/os-config-bare-bones.texi \ doc/os-config-bare-bones.texi \
doc/os-config-desktop.texi doc/os-config-desktop.texi \
doc/os-config-lightweight-desktop.texi
# Bundle this file so that makeinfo finds it in out-of-source-tree builds. # Bundle this file so that makeinfo finds it in out-of-source-tree builds.
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI)

View File

@ -48,13 +48,19 @@ command (@pxref{Emacs Popup Interface}).
@end itemize @end itemize
When it is done ``guix.el'' may be configured by requiring a special When it is done, ``guix.el'' may be configured by requiring
@code{guix-init} file---i.e., by adding the following code into your @code{guix-autoloads} file. If you install Guix in your user profile,
init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}): this auto-loading is done automatically by our Emacs package
(@pxref{Application Setup}), so a universal recipe for configuring
``guix.el'' is: @command{guix package -i guix}. If you do this, there
is no need to read further.
For the manual installation, you need to add the following code into
your init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}):
@example @example
(add-to-list 'load-path "/path/to/directory-with-guix.el") (add-to-list 'load-path "/path/to/directory-with-guix.el")
(require 'guix-init nil t) (require 'guix-autoloads nil t)
@end example @end example
So the only thing you need to figure out is where the directory with So the only thing you need to figure out is where the directory with
@ -66,17 +72,19 @@ If it was installed by a package manager of your distribution or by a
usual @code{./configure && make && make install} command sequence, then usual @code{./configure && make && make install} command sequence, then
elisp files are placed in a standard directory with Emacs packages elisp files are placed in a standard directory with Emacs packages
(usually it is @file{/usr/share/emacs/site-lisp/}), which is already in (usually it is @file{/usr/share/emacs/site-lisp/}), which is already in
@code{load-path}, so there is no need to add that directory there. @code{load-path}, so there is no need to add that directory there. Note
that if you don't update this installation periodically, you may get an
outdated Emacs code which does not work with the current Guile code of
Guix.
@item @item
If you used a binary installation method (@pxref{Binary Installation}), If you used a binary installation method (@pxref{Binary Installation}),
then Guix is installed somewhere in the store, so the elisp files are then Guix is installed somewhere in the store, so the elisp files are
placed in @file{/gnu/store/@dots{}-guix-0.8.2/share/emacs/site-lisp/} or placed in @file{/gnu/store/@dots{}-guix-0.8.2/share/emacs/site-lisp/} or
alike. However it is not recommended to refer directly to a store alike. However it is not recommended to refer directly to a store
directory. Instead you can install Guix using Guix itself with directory, as it may be garbage-collected one day. So a better choice
@command{guix package -i guix} command (@pxref{Invoking guix package}) would be to install Guix using Guix itself with @command{guix package -i
and add @file{~/.guix-profile/share/emacs/site-lisp/} directory to guix}.
@code{load-path} variable.
@item @item
If you did not install Guix at all and prefer a hacking way If you did not install Guix at all and prefer a hacking way
@ -88,26 +96,10 @@ same directory, so your final configuration will look like this:
(let ((dir "/path/to/your-guix-git-tree/emacs")) (let ((dir "/path/to/your-guix-git-tree/emacs"))
(add-to-list 'load-path dir) (add-to-list 'load-path dir)
(setq guix-load-path dir)) (setq guix-load-path dir))
(require 'guix-init nil t) (require 'guix-autoloads nil t)
@end example @end example
@end itemize @end itemize
By default, along with autoloading (@pxref{Autoload,,, elisp, The GNU
Emacs Lisp Reference Manual}) the main interactive commands for
``guix.el'' (@pxref{Emacs Commands}), requiring @code{guix-init} will
also autoload commands for the Emacs packages installed in your user
profile.
To disable automatic loading of installed Emacs packages, set
@code{guix-package-enable-at-startup} variable to @code{nil} before
requiring @code{guix-init}. This variable has the same meaning for
Emacs packages installed with Guix, as @code{package-enable-at-startup}
for the built-in Emacs package system (@pxref{Package Installation,,,
emacs, The GNU Emacs Manual}).
You can activate Emacs packages installed in your profile whenever you
want using @kbd{M-x@tie{}guix-emacs-autoload-packages}.
@node Emacs Package Management @node Emacs Package Management
@section Package Management @section Package Management

View File

@ -249,20 +249,52 @@ Coding Style
@node Introduction @node Introduction
@chapter Introduction @chapter Introduction
@cindex purpose
GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks''
using the international phonetic alphabet (IPA).} is a functional using the international phonetic alphabet (IPA).} is a package
package management tool for the GNU system. Package management consists management tool for the GNU system. Guix makes it easy for unprivileged
of all activities that relate to building packages from sources, users to install, upgrade, or remove packages, to roll back to a
honoring their build-time and run-time dependencies, previous package set, to build packages from source, and generally
installing packages in user environments, upgrading installed packages assists with the creation and maintenance of software environments.
to new versions or rolling back to a previous set, removing unused
software packages, etc. @cindex user interfaces
Guix provides a command-line package management interface
(@pxref{Invoking guix package}), a set of command-line utilities
(@pxref{Utilities}), a visual user interface in Emacs (@pxref{Emacs
Interface}), as well as Scheme programming interfaces
(@pxref{Programming Interface}).
@cindex build daemon
Its @dfn{build daemon} is responsible for building packages on behalf of
users (@pxref{Setting Up the Daemon}) and for downloading pre-built
binaries from authorized sources (@pxref{Substitutes}).
@cindex extensibility of the distribution
@cindex customization of packages
Guix includes package definitions for many GNU and non-GNU packages, all
of which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the
user's computing freedom}. It is @emph{extensible}: users can write
their own package definitions (@pxref{Defining Packages}) and make them
available as independent package modules (@pxref{Package Modules}). It
is also @emph{customizable}: users can @emph{derive} specialized package
definitions from existing ones, including from the command line
(@pxref{Package Transformation Options}).
@cindex Guix System Distribution
@cindex GuixSD
You can install GNU@tie{}Guix on top of an existing GNU/Linux system
where it complements the available tools without interference
(@pxref{Installation}), or you can use it as part of the standalone
@dfn{Guix System Distribution} or GuixSD (@pxref{GNU Distribution}).
With GNU@tie{}GuixSD, you @emph{declare} all aspects of the operating
system configuration and Guix takes care of instantiating the
configuration in a transactional, reproducible, and stateless fashion
(@pxref{System Configuration}).
@cindex functional package management @cindex functional package management
The term @dfn{functional} refers to a specific package management Under the hood, Guix implements the @dfn{functional package management}
discipline pioneered by Nix (@pxref{Acknowledgments}). discipline pioneered by Nix (@pxref{Acknowledgments}).
In Guix, the package build and installation process is seen In Guix, the package build and installation process is seen
as a function, in the mathematical sense. That function takes inputs, as a @emph{function}, in the mathematical sense. That function takes inputs,
such as build scripts, a compiler, and libraries, and such as build scripts, a compiler, and libraries, and
returns an installed package. As a pure function, its result depends returns an installed package. As a pure function, its result depends
solely on its inputs---for instance, it cannot refer to software or solely on its inputs---for instance, it cannot refer to software or
@ -286,18 +318,6 @@ This approach is the foundation for the salient features of Guix: support
for transactional package upgrade and rollback, per-user installation, and for transactional package upgrade and rollback, per-user installation, and
garbage collection of packages (@pxref{Features}). garbage collection of packages (@pxref{Features}).
Guix has a command-line interface, which allows users to build, install,
upgrade, and remove packages, as well as a Scheme programming interface.
@cindex Guix System Distribution
@cindex GuixSD
Last but not least, Guix is used to build a distribution of the GNU
system, with many GNU and non-GNU free software packages. The Guix
System Distribution, or GNU@tie{}GuixSD, takes advantage of the core
properties of Guix at the system level. With GuixSD, users
@emph{declare} all aspects of the operating system configuration, and
Guix takes care of instantiating that configuration in a reproducible,
stateless fashion. @xref{GNU Distribution}.
@c ********************************************************************* @c *********************************************************************
@node Installation @node Installation
@ -576,12 +596,18 @@ It is also possible to run a subset of the tests by defining the
make check TESTS="tests/store.scm tests/cpio.scm" make check TESTS="tests/store.scm tests/cpio.scm"
@end example @end example
By default, tests results are displayed at a file level. In order to
see the details of every individual test cases, it is possible to define
the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:
@example
make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
@end example
Upon failure, please email @email{bug-guix@@gnu.org} and attach the Upon failure, please email @email{bug-guix@@gnu.org} and attach the
@file{test-suite.log} file. When @file{tests/@var{something}.scm} @file{test-suite.log} file. Please specify the Guix version being used
fails, please also attach the @file{@var{something}.log} file available as well as version numbers of the dependencies (@pxref{Requirements}) in
in the top-level build directory. Please specify the Guix version being your message.
used as well as version numbers of the dependencies
(@pxref{Requirements}) in your message.
@node Setting Up the Daemon @node Setting Up the Daemon
@section Setting Up the Daemon @section Setting Up the Daemon
@ -1214,7 +1240,8 @@ In addition, any package transaction may be @emph{rolled back}. So, if,
for example, an upgrade installs a new version of a package that turns for example, an upgrade installs a new version of a package that turns
out to have a serious bug, users may roll back to the previous instance out to have a serious bug, users may roll back to the previous instance
of their profile, which was known to work well. Similarly, the global of their profile, which was known to work well. Similarly, the global
system configuration is subject to transactional upgrades and roll-back system configuration on GuixSD is subject to
transactional upgrades and roll-back
(@pxref{Using the Configuration System}). (@pxref{Using the Configuration System}).
All packages in the package store may be @emph{garbage-collected}. All packages in the package store may be @emph{garbage-collected}.
@ -1243,7 +1270,10 @@ deployment}. When a pre-built binary for a @file{/gnu/store} item is
available from an external source---a @dfn{substitute}, Guix just available from an external source---a @dfn{substitute}, Guix just
downloads it and unpacks it; downloads it and unpacks it;
otherwise, it builds the package from source, locally otherwise, it builds the package from source, locally
(@pxref{Substitutes}). (@pxref{Substitutes}). Because build results are usually bit-for-bit
reproducible, users do not have to trust servers that provide
substitutes: they can force a local build and @emph{challenge} providers
(@pxref{Invoking guix challenge}).
Control over the build environment is a feature that is also useful for Control over the build environment is a feature that is also useful for
developers. The @command{guix environment} command allows developers of developers. The @command{guix environment} command allows developers of
@ -2830,8 +2860,11 @@ For packages that install stand-alone Python programs under @code{bin/},
it takes care of wrapping these programs so that their @code{PYTHONPATH} it takes care of wrapping these programs so that their @code{PYTHONPATH}
environment variable points to all the Python libraries they depend on. environment variable points to all the Python libraries they depend on.
Which Python package is used can be specified with the @code{#:python} Which Python package is used to perform the build can be specified with
parameter. the @code{#:python} parameter. This is a useful way to force a package
to be built for a specific version of the Python interpreter, which
might be necessary if the package is only compatible with a single
interpreter version.
@end defvr @end defvr
@defvr {Scheme Variable} perl-build-system @defvr {Scheme Variable} perl-build-system
@ -3221,7 +3254,7 @@ provides a framework for working with @dfn{monads}, and a particularly
useful monad for our uses, the @dfn{store monad}. Monads are a useful monad for our uses, the @dfn{store monad}. Monads are a
construct that allows two things: associating ``context'' with values construct that allows two things: associating ``context'' with values
(in our case, the context is the store), and building sequences of (in our case, the context is the store), and building sequences of
computations (here computations include accesses to the store.) Values computations (here computations include accesses to the store). Values
in a monad---values that carry this additional context---are called in a monad---values that carry this additional context---are called
@dfn{monadic values}; procedures that return such values are called @dfn{monadic values}; procedures that return such values are called
@dfn{monadic procedures}. @dfn{monadic procedures}.
@ -3250,7 +3283,7 @@ as a monadic function:
#$output)))) #$output))))
@end example @end example
There several things to note in the second version: the @code{store} There are several things to note in the second version: the @code{store}
parameter is now implicit and is ``threaded'' in the calls to the parameter is now implicit and is ``threaded'' in the calls to the
@code{package->derivation} and @code{gexp->derivation} monadic @code{package->derivation} and @code{gexp->derivation} monadic
procedures, and the monadic value returned by @code{package->derivation} procedures, and the monadic value returned by @code{package->derivation}
@ -3517,7 +3550,7 @@ S-expressions adapted to build expressions. G-expressions, or
@code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~}, @code{ungexp}, and @code{ungexp-splicing} (or simply: @code{#~},
@code{#$}, and @code{#$@@}), which are comparable to @code{#$}, and @code{#$@@}), which are comparable to
@code{quasiquote}, @code{unquote}, and @code{unquote-splicing}, @code{quasiquote}, @code{unquote}, and @code{unquote-splicing},
respectivel (@pxref{Expression Syntax, @code{quasiquote},, guile, respectively (@pxref{Expression Syntax, @code{quasiquote},, guile,
GNU Guile Reference Manual}). However, there are major differences: GNU Guile Reference Manual}). However, there are major differences:
@itemize @itemize
@ -3878,9 +3911,10 @@ has an associated gexp compiler, such as a @code{<package>}.
@node Utilities @node Utilities
@chapter Utilities @chapter Utilities
This section describes tools primarily targeted at developers and users This section describes Guix command-line utilities. Some of them are
who write new package definitions. They complement the Scheme primarily targeted at developers and users who write new package
programming interface of Guix in a convenient way. definitions, while others are more generally useful. They complement
the Scheme programming interface of Guix in a convenient way.
@menu @menu
* Invoking guix build:: Building packages from the command line. * Invoking guix build:: Building packages from the command line.
@ -4764,6 +4798,8 @@ the updater for @uref{https://pypi.python.org, PyPI} packages.
the updater for @uref{https://rubygems.org, RubyGems} packages. the updater for @uref{https://rubygems.org, RubyGems} packages.
@item github @item github
the updater for @uref{https://github.com, GitHub} packages. the updater for @uref{https://github.com, GitHub} packages.
@item hackage
the updater for @uref{https://hackage.haskell.org, Hackage} packages.
@end table @end table
For instance, the following command only checks for updates of Emacs For instance, the following command only checks for updates of Emacs
@ -4888,11 +4924,26 @@ just a version number or ``git-checkout'', without a declared
@code{file-name} (@pxref{origin Reference}). @code{file-name} (@pxref{origin Reference}).
@item cve @item cve
@cindex security vulnerabilities
@cindex CVE, Common Vulnerabilities and Exposures
Report known vulnerabilities found in the Common Vulnerabilities and Report known vulnerabilities found in the Common Vulnerabilities and
Exposures (CVE) database Exposures (CVE) databases of the current and past year
@uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US
NIST}. NIST}.
To view information about a particular vulnerability, visit pages such as:
@itemize
@item
@indicateurl{https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD}
@item
@indicateurl{https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD}
@end itemize
@noindent
where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
@code{CVE-2015-7554}.
@item formatting @item formatting
Warn about obvious source code formatting issues: trailing white space, Warn about obvious source code formatting issues: trailing white space,
use of tabulations, etc. use of tabulations, etc.
@ -5313,10 +5364,11 @@ Attempt to build for @var{system}---e.g., @code{i686-linux}.
@itemx -C @itemx -C
@cindex container @cindex container
Run @var{command} within an isolated container. The current working Run @var{command} within an isolated container. The current working
directory outside the container is mapped inside the directory outside the container is mapped inside the container.
container. Additionally, the spawned process runs as the current user Additionally, a dummy home directory is created that matches the current
outside the container, but has root privileges in the context of the user's home directory, and @file{/etc/passwd} is configured accordingly.
container. The spawned process runs as the current user outside the container, but
has root privileges in the context of the container.
@item --network @item --network
@itemx -N @itemx -N
@ -5685,12 +5737,17 @@ also be installed on top of a running GNU/Linux system,
@pxref{Installation}. @pxref{Installation}.
@ifinfo @ifinfo
@quotation Note
@c This paragraph is for people reading this from tty2 of the @c This paragraph is for people reading this from tty2 of the
@c installation image. @c installation image.
You are reading this documentation with an Info reader. For details on You are reading this documentation with an Info reader. For details on
how to use it, hit the @key{RET} key (``return'' or ``enter'') on the how to use it, hit the @key{RET} key (``return'' or ``enter'') on the
link that follows: @pxref{Help,,, info, Info: An Introduction}. Hit link that follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU
@kbd{l} afterwards to come back here. Info}. Hit @kbd{l} afterwards to come back here.
Alternately, run @command{info info} in another tty to keep the manual
available.
@end quotation
@end ifinfo @end ifinfo
@menu @menu
@ -5732,7 +5789,7 @@ Few system services are currently supported out-of-the-box
(@pxref{Services}). (@pxref{Services}).
@item @item
More than 3,000 packages are available, but you may More than 3,200 packages are available, but you may
occasionally find that a useful package is missing. occasionally find that a useful package is missing.
@item @item
@ -5830,10 +5887,16 @@ menu, where you can choose to boot from the USB stick.
Once you have successfully booted the image on the USB stick, you should Once you have successfully booted the image on the USB stick, you should
end up with a root prompt. Several console TTYs are configured and can end up with a root prompt. Several console TTYs are configured and can
be used to run commands as root. TTY2 shows this documentation, be used to run commands as root. TTY2 shows this documentation,
browsable using the Info reader commands (@pxref{Help,,, info, Info: An browsable using the Info reader commands (@pxref{Top,,, info-stnd,
Introduction}). The installation system runs the GPM mouse daemon, Stand-alone GNU Info}). The installation system runs the GPM mouse
which allows you to select text with the left mouse button and to paste daemon, which allows you to select text with the left mouse button and
it with the middle button. to paste it with the middle button.
@quotation Note
Installation requires access to the Internet so that any missing
dependencies of your system configuration can be downloaded. See the
``Networking'' section below.
@end quotation
@subsubsection Keyboard Layout @subsubsection Keyboard Layout
@ -5903,14 +5966,14 @@ network interface you want to use):
wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B
@end example @end example
Run @command{man wpa_supplication} for more information. Run @command{man wpa_supplicant} for more information.
@end table @end table
At this point, you need to acquire an IP address. On a network where IP At this point, you need to acquire an IP address. On a network where IP
addresses are automatically assigned @i{via} DHCP, you can run: addresses are automatically assigned @i{via} DHCP, you can run:
@example @example
dhclient @var{interface} dhclient -v @var{interface}
@end example @end example
Try to ping a server to see if networking is up and running: Try to ping a server to see if networking is up and running:
@ -5986,16 +6049,19 @@ With the target partitions ready and the target root mounted on
herd start cow-store /mnt herd start cow-store /mnt
@end example @end example
This makes @file{/gnu/store} copy-on-write, such that packages added to This makes @file{/gnu/store} copy-on-write, such that packages added to it
it during the installation phase are written to the target disk rather during the installation phase are written to the target disk on @file{/mnt}
than kept in memory. rather than kept in memory. This is necessary because the first phase of
the @command{guix system init} command (see below) entails downloads or
builds to @file{/gnu/store} which, initially, is an in-memory file system.
Next, you have to edit a file and Next, you have to edit a file and
provide the declaration of the operating system to be installed. To provide the declaration of the operating system to be installed. To
that end, the installation system comes with two text editors: GNU nano that end, the installation system comes with two text editors: GNU nano
(@pxref{Top,,, nano, GNU nano Manual}), and GNU Zile, an Emacs clone. (@pxref{Top,,, nano, GNU nano Manual}), and GNU Zile, an Emacs clone.
It is better to store that file on the target root file system, say, as We strongly recommend storing that file on the target root file system, say,
@file{/mnt/etc/config.scm}. as @file{/mnt/etc/config.scm}. Failing to do that, you will have lost your
configuration file once you have rebooted into the newly-installed system.
@xref{Using the Configuration System}, for an overview of the @xref{Using the Configuration System}, for an overview of the
configuration file. The example configurations discussed in that configuration file. The example configurations discussed in that
@ -6056,8 +6122,9 @@ good.
The installation image described above was built using the @command{guix The installation image described above was built using the @command{guix
system} command, specifically: system} command, specifically:
@c FIXME: 1G is too much; see <http://bugs.gnu.org/23077>.
@example @example
guix system disk-image --image-size=850MiB gnu/system/install.scm guix system disk-image --image-size=1G gnu/system/install.scm
@end example @end example
Have a look at @file{gnu/system/install.scm} in the source tree, Have a look at @file{gnu/system/install.scm} in the source tree,
@ -6218,13 +6285,21 @@ to create a new configuration which has the same values as the old
configuration, but with a few modifications. configuration, but with a few modifications.
The configuration for a typical ``desktop'' usage, with the X11 display The configuration for a typical ``desktop'' usage, with the X11 display
server, a desktop environment, network management, power management, and server, GNOME and Xfce (users can choose which of these desktop
more, would look like this: environments to use at the log-in screen by pressing @kbd{F1}), network
management, power management, and more, would look like this:
@lisp @lisp
@include os-config-desktop.texi @include os-config-desktop.texi
@end lisp @end lisp
A graphical environment with a choice of lightweight window managers
instead of full-blown desktop environments would look like this:
@lisp
@include os-config-lightweight-desktop.texi
@end lisp
@xref{Desktop Services}, for the exact list of services provided by @xref{Desktop Services}, for the exact list of services provided by
@var{%desktop-services}. @xref{X.509 Certificates}, for background @var{%desktop-services}. @xref{X.509 Certificates}, for background
information about the @code{nss-certs} package that is used here. information about the @code{nss-certs} package that is used here.
@ -10415,14 +10490,32 @@ the load. To check whether a package has a @code{debug} output, use
@node Security Updates @node Security Updates
@section Security Updates @section Security Updates
@cindex security updates
@cindex security vulnerabilities
Occasionally, important security vulnerabilities are discovered in software
packages and must be patched. Guix developers try hard to keep track of
known vulnerabilities and to apply fixes as soon as possible in the
@code{master} branch of Guix (we do not yet provide a ``stable'' branch
containing only security updates.) The @command{guix lint} tool helps
developers find out about vulnerable versions of software packages in the
distribution:
@smallexample
$ guix lint -c cve
gnu/packages/base.scm:652:2: glibc-2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547
gnu/packages/gcc.scm:334:2: gcc-4.9.3: probably vulnerable to CVE-2015-5276
gnu/packages/image.scm:312:2: openjpeg-2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924
@dots{}
@end smallexample
@xref{Invoking guix lint}, for more information.
@quotation Note @quotation Note
As of version @value{VERSION}, the feature described in this section is As of version @value{VERSION}, the feature described below is considered
experimental. ``beta''.
@end quotation @end quotation
@cindex security updates Guix follows a functional
Occasionally, important security vulnerabilities are discovered in core
software packages and must be patched. Guix follows a functional
package management discipline (@pxref{Introduction}), which implies package management discipline (@pxref{Introduction}), which implies
that, when a package is changed, @emph{every package that depends on it} that, when a package is changed, @emph{every package that depends on it}
must be rebuilt. This can significantly slow down the deployment of must be rebuilt. This can significantly slow down the deployment of

View File

@ -1,7 +1,7 @@
# htmlxref.cnf - reference file for free Texinfo manuals on the web. # htmlxref.cnf - reference file for free Texinfo manuals on the web.
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual. # Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
htmlxrefversion=2016-02-21.21; # UTC htmlxrefversion=2016-03-30.07; # UTC
# Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. # Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
# #
@ -324,7 +324,7 @@ gnutls mono http://gnutls.org/manual/gnutls.html
gnutls node http://gnutls.org/manual/html_node/ gnutls node http://gnutls.org/manual/html_node/
gnutls-guile mono http://gnutls.org/manual/gnutls-guile.html gnutls-guile mono http://gnutls.org/manual/gnutls-guile.html
gnutls-guile node http://gnutls.org/manual/gnutls-guile/index.html gnutls-guile node http://gnutls.org/manual/gnutls-guile/
gperf mono ${GS}/gperf/manual/gperf.html gperf mono ${GS}/gperf/manual/gperf.html
gperf node ${GS}/gperf/manual/html_node/ gperf node ${GS}/gperf/manual/html_node/

View File

@ -46,11 +46,23 @@ Return a list of strings with result values of evaluation."
(defun guix-geiser-eval-read (str &optional repl) (defun guix-geiser-eval-read (str &optional repl)
"Evaluate STR with guile expression using Geiser REPL. "Evaluate STR with guile expression using Geiser REPL.
Return elisp expression of the first result value of evaluation." Return elisp expression of the first result value of evaluation."
;; Parsing scheme code with elisp `read' is probably not the best idea. ;; The goal is to convert a string with scheme expression into elisp
;; expression.
(let ((result (car (guix-geiser-eval str repl))))
(cond
((or (string= result "#f")
(string= result "#<unspecified>"))
nil)
((string= result "#t")
t)
(t
(read (replace-regexp-in-string (read (replace-regexp-in-string
"#f\\|#<unspecified>" "nil" "[ (]\\(#f\\)" "nil"
(replace-regexp-in-string (replace-regexp-in-string
"#t" "t" (car (guix-geiser-eval str repl)))))) "[ (]\\(#t\\)" "t"
result
nil nil 1)
nil nil 1))))))
(defun guix-repl-send (cmd &optional save-history) (defun guix-repl-send (cmd &optional save-history)
"Send CMD input string to the current REPL buffer. "Send CMD input string to the current REPL buffer.

View File

@ -1,4 +1,3 @@
(require 'guix-autoloads) (require 'guix-autoloads)
(require 'guix-emacs) (message "(require 'guix-init) is obsolete, use (require 'guix-autoloads) instead.")
(provide 'guix-init) (provide 'guix-init)

View File

@ -58,9 +58,7 @@
(guix licenses) (guix licenses)
(guix utils) (guix utils)
(guix ui) (guix ui)
(guix scripts lint)
(guix scripts package) (guix scripts package)
(guix scripts pull)
(gnu packages) (gnu packages)
(gnu system)) (gnu system))
@ -105,13 +103,19 @@ return two values: name and version. For example, for SPEC
(define name+version->key cons) (define name+version->key cons)
(define key->name+version car+cdr) (define key->name+version car+cdr)
(define %packages (define %package-vhash
(delay
(fold-packages (lambda (pkg res) (fold-packages (lambda (pkg res)
(vhash-consq (object-address pkg) pkg res)) (vhash-consq (object-address pkg) pkg res))
vlist-null)) vlist-null)))
(define (package-vhash)
"Return vhash of 'package ID (address)'/'package' pairs."
(force %package-vhash))
(define %package-table (define %package-table
(let ((table (make-hash-table (vlist-length %packages)))) (delay
(let ((table (make-hash-table (vlist-length (package-vhash)))))
(vlist-for-each (vlist-for-each
(lambda (elem) (lambda (elem)
(match elem (match elem
@ -121,8 +125,12 @@ return two values: name and version. For example, for SPEC
(ref (hash-ref table key))) (ref (hash-ref table key)))
(hash-set! table key (hash-set! table key
(if ref (cons pkg ref) (list pkg))))))) (if ref (cons pkg ref) (list pkg)))))))
%packages) (package-vhash))
table)) table)))
(define (package-table)
"Return hash table of 'name+version key'/'list of packages' pairs."
(force %package-table))
(define (manifest-entry->name+version+output entry) (define (manifest-entry->name+version+output entry)
(values (values
@ -293,8 +301,10 @@ Example:
(define (package-unique? package) (define (package-unique? package)
"Return #t if PACKAGE is a single package with such name/version." "Return #t if PACKAGE is a single package with such name/version."
(null? (cdr (packages-by-name (package-name package) (match (packages-by-name (package-name package)
(package-version package))))) (package-version package))
((package) #t)
(_ #f)))
(define %package-param-alist (define %package-param-alist
`((id . ,object-address) `((id . ,object-address)
@ -330,11 +340,12 @@ Example:
;;; Finding packages. ;;; Finding packages.
(define (package-by-address address) (define (package-by-address address)
(and=> (vhash-assq address %packages) (match (vhash-assq address (package-vhash))
cdr)) ((_ . package) package)
(_ #f)))
(define (packages-by-name+version name version) (define (packages-by-name+version name version)
(or (hash-ref %package-table (or (hash-ref (package-table)
(name+version->key name version)) (name+version->key name version))
'())) '()))
@ -917,34 +928,14 @@ OUTPUTS is a list of package outputs (may be an empty list)."
manifest transaction))) manifest transaction)))
(unless (and (null? install) (null? remove)) (unless (and (null? install) (null? remove))
(with-store store (with-store store
(let* ((derivation (run-with-store store
(mbegin %store-monad
(set-guile-for-build (default-guile))
(profile-derivation new-manifest))))
(derivations (list derivation))
(new-profile (derivation->output-path derivation)))
(set-build-options store (set-build-options store
#:print-build-trace #f #:print-build-trace #f
#:use-substitutes? use-substitutes?) #:use-substitutes? use-substitutes?)
(show-manifest-transaction store manifest transaction (show-manifest-transaction store manifest transaction
#:dry-run? dry-run?) #:dry-run? dry-run?)
(show-what-to-build store derivations (build-and-use-profile store profile new-manifest
#:use-substitutes? use-substitutes? #:use-substitutes? use-substitutes?
#:dry-run? dry-run?) #:dry-run? dry-run?)))))
(unless dry-run?
(let ((name (generation-file-name
profile
(+ 1 (generation-number profile)))))
(and (build-derivations store derivations)
(let* ((entries (manifest-entries new-manifest))
(count (length entries)))
(switch-symlinks name new-profile)
(switch-symlinks profile name)
(format #t (N_ "~a package in profile~%"
"~a packages in profile~%"
count)
count)
(display-search-paths entries (list profile)))))))))))
(define (delete-generations* profile generations) (define (delete-generations* profile generations)
"Delete GENERATIONS from PROFILE. "Delete GENERATIONS from PROFILE.
@ -1040,8 +1031,9 @@ Return #t if the shell command was executed successfully."
(define (lint-checker-names) (define (lint-checker-names)
"Return a list of names of available lint checkers." "Return a list of names of available lint checkers."
(map (lambda (checker) (map (lambda (checker)
(symbol->string (lint-checker-name checker))) (symbol->string ((@ (guix scripts lint) lint-checker-name)
%checkers)) checker)))
(@ (guix scripts lint) %checkers)))
(define (package-names) (define (package-names)
"Return a list of names of available packages." "Return a list of names of available packages."

View File

@ -357,7 +357,8 @@ formatted with this string, an action button is inserted.")
(guix-buffer-get-display-entries-current (guix-buffer-get-display-entries-current
'info guix-package-info-type 'info guix-package-info-type
(list (guix-ui-current-profile) (list (guix-ui-current-profile)
'name (button-label btn)) 'name (or (button-get btn 'spec)
(button-label btn)))
'add))) 'add)))
(define-button-type 'guix-package-heading (define-button-type 'guix-package-heading
@ -374,10 +375,12 @@ formatted with this string, an action button is inserted.")
(message "Yes, this is the source URL. What did you expect?"))) (message "Yes, this is the source URL. What did you expect?")))
(defun guix-package-info-insert-heading (entry) (defun guix-package-info-insert-heading (entry)
"Insert package ENTRY heading (name specification) at point." "Insert package ENTRY heading (name and version) at point."
(guix-insert-button (guix-insert-button
(guix-package-entry->name-specification entry) (concat (guix-entry-value entry 'name) " "
'guix-package-heading)) (guix-entry-value entry 'version))
'guix-package-heading
'spec (guix-package-entry->name-specification entry)))
(defun guix-package-info-insert-systems (systems entry) (defun guix-package-info-insert-systems (systems entry)
"Insert supported package SYSTEMS at point." "Insert supported package SYSTEMS at point."

View File

@ -134,6 +134,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/gl.scm \ gnu/packages/gl.scm \
gnu/packages/glib.scm \ gnu/packages/glib.scm \
gnu/packages/gnome.scm \ gnu/packages/gnome.scm \
gnu/packages/gnu-doc.scm \
gnu/packages/gnucash.scm \ gnu/packages/gnucash.scm \
gnu/packages/gnunet.scm \ gnu/packages/gnunet.scm \
gnu/packages/gnupg.scm \ gnu/packages/gnupg.scm \
@ -222,7 +223,6 @@ GNU_SYSTEM_MODULES = \
gnu/packages/mcrypt.scm \ gnu/packages/mcrypt.scm \
gnu/packages/messaging.scm \ gnu/packages/messaging.scm \
gnu/packages/mg.scm \ gnu/packages/mg.scm \
gnu/packages/miscfiles.scm \
gnu/packages/mit-krb5.scm \ gnu/packages/mit-krb5.scm \
gnu/packages/moe.scm \ gnu/packages/moe.scm \
gnu/packages/moreutils.scm \ gnu/packages/moreutils.scm \
@ -579,6 +579,7 @@ dist_patch_DATA = \
gnu/packages/patches/libcmis-fix-test-onedrive.patch \ gnu/packages/patches/libcmis-fix-test-onedrive.patch \
gnu/packages/patches/libdrm-symbol-check.patch \ gnu/packages/patches/libdrm-symbol-check.patch \
gnu/packages/patches/libevent-dns-tests.patch \ gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libextractor-ffmpeg-3.patch \
gnu/packages/patches/libmtp-devices.patch \ gnu/packages/patches/libmtp-devices.patch \
gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
gnu/packages/patches/libotr-test-auth-fix.patch \ gnu/packages/patches/libotr-test-auth-fix.patch \
@ -622,7 +623,6 @@ dist_patch_DATA = \
gnu/packages/patches/mars-sfml-2.3.patch \ gnu/packages/patches/mars-sfml-2.3.patch \
gnu/packages/patches/matplotlib-setupext-tk.patch \ gnu/packages/patches/matplotlib-setupext-tk.patch \
gnu/packages/patches/maxima-defsystem-mkdir.patch \ gnu/packages/patches/maxima-defsystem-mkdir.patch \
gnu/packages/patches/mc-fix-ncurses-build.patch \
gnu/packages/patches/mcron-install.patch \ gnu/packages/patches/mcron-install.patch \
gnu/packages/patches/mdadm-gcc-4.9-fix.patch \ gnu/packages/patches/mdadm-gcc-4.9-fix.patch \
gnu/packages/patches/mhash-keygen-test-segfault.patch \ gnu/packages/patches/mhash-keygen-test-segfault.patch \
@ -651,7 +651,6 @@ dist_patch_DATA = \
gnu/packages/patches/openjpeg-CVE-2015-6581.patch \ gnu/packages/patches/openjpeg-CVE-2015-6581.patch \
gnu/packages/patches/openjpeg-use-after-free-fix.patch \ gnu/packages/patches/openjpeg-use-after-free-fix.patch \
gnu/packages/patches/openssl-runpath.patch \ gnu/packages/patches/openssl-runpath.patch \
gnu/packages/patches/openssl-c-rehash.patch \
gnu/packages/patches/openssl-c-rehash-in.patch \ gnu/packages/patches/openssl-c-rehash-in.patch \
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
gnu/packages/patches/ots-no-include-missing-file.patch \ gnu/packages/patches/ots-no-include-missing-file.patch \
@ -776,13 +775,12 @@ dist_patch_DATA = \
gnu/packages/patches/w3m-force-ssl_verify_server-on.patch \ gnu/packages/patches/w3m-force-ssl_verify_server-on.patch \
gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch \
gnu/packages/patches/w3m-disable-weak-ciphers.patch \ gnu/packages/patches/w3m-disable-weak-ciphers.patch \
gnu/packages/patches/webkitgtk-2.4-sql-init-string.patch \
gnu/packages/patches/weechat-python.patch \ gnu/packages/patches/weechat-python.patch \
gnu/packages/patches/weex-vacopy.patch \ gnu/packages/patches/weex-vacopy.patch \
gnu/packages/patches/wicd-bitrate-none-fix.patch \ gnu/packages/patches/wicd-bitrate-none-fix.patch \
gnu/packages/patches/wicd-get-selected-profile-fix.patch \ gnu/packages/patches/wicd-get-selected-profile-fix.patch \
gnu/packages/patches/wicd-template-instantiation.patch \
gnu/packages/patches/wicd-urwid-1.3.patch \ gnu/packages/patches/wicd-urwid-1.3.patch \
gnu/packages/patches/wicd-wpa2-ttls.patch \
gnu/packages/patches/wmctrl-64-fix.patch \ gnu/packages/patches/wmctrl-64-fix.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \

View File

@ -92,7 +92,8 @@
(for-each (lambda (file) (for-each (lambda (file)
(let ((target (string-append home "/" file))) (let ((target (string-append home "/" file)))
(copy-recursively (string-append directory "/" file) (copy-recursively (string-append directory "/" file)
target) target
#:log (%make-void-port "w"))
(make-file-writable target))) (make-file-writable target)))
files))) files)))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
@ -42,8 +42,10 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages tcl) #:use-module (gnu packages tcl)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -53,6 +55,7 @@
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages openldap) #:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
@ -66,6 +69,37 @@
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages autotools)) #:use-module (gnu packages autotools))
(define-public aide
(package
(name "aide")
(version "0.15.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/aide/aide/"
version "/aide-" version ".tar.gz"))
(sha256
(base32
"1vsrc0s62kv1i84skm6k6zy868gayjck268qwj38rpspc8c5qgih"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
("flex" ,flex)))
(inputs
`(("libgcrypt" ,libgcrypt)
("libgpg-error" ,libgpg-error)
("libmhash" ,libmhash)
("zlib" ,zlib)))
(synopsis "File and directory integrity checker")
(description
"AIDE (Advanced Intrusion Detection Environment) is a file and directory
integrity checker. It creates a database from the regular expression rules
that it finds from its configuration files. Once this database is initialized
it can be used to verify the integrity of the files. It has several message
digest algorithms that are used to check the integrity of files. All of the
usual file attributes can be checked for inconsistencies.")
(home-page "http://aide.sourceforge.net/")
(license license:gpl2+)))
(define-public dmd (define-public dmd
;; Deprecated. Kept around "just in case." ;; Deprecated. Kept around "just in case."
(let ((base-version "0.2") (let ((base-version "0.2")
@ -109,14 +143,14 @@ interface and is based on GNU Guile.")
(define-public shepherd (define-public shepherd
(package (package
(name "shepherd") (name "shepherd")
(version "0.3") (version "0.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-" (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"13mcy2131h7hggqvxbfxyrnbz46aaiaq2agng3x3f789a78n4mnn")))) "0f3yi3n4sl9myiay95yhv2a9an338qddfjrbv7da753ip66dkfz6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--localstatedir=/var"))) '(#:configure-flags '("--localstatedir=/var")))
@ -157,14 +191,14 @@ graphs and can export its output to different formats.")
(define-public htop (define-public htop
(package (package
(name "htop") (name "htop")
(version "2.0.0") (version "2.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://hisham.hm/htop/releases/" (uri (string-append "http://hisham.hm/htop/releases/"
version "/htop-" version ".tar.gz")) version "/htop-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1d944hn0ldxvxfrz9acr26lpmzlwj91m0s7x2xnivnfnmfha4p6i")))) "0rjn9ybqx5sav7z4gn18f1q6k23nmqyb6yydfgghzdznz9nn447l"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses))) `(("ncurses" ,ncurses)))
@ -1497,3 +1531,80 @@ for writing audit records to the disk. Viewing the logs is done with the
@code{ausearch} or @code{aureport} utilities. Configuring the audit rules is @code{ausearch} or @code{aureport} utilities. Configuring the audit rules is
done with the @code{auditctl} utility.") done with the @code{auditctl} utility.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public nmap
(package
(name "nmap")
(version "7.11")
(source (origin
(method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2"))
(sha256
(base32
"0jlmq1w0gjqpa7qa523kdj73ndm1xzww2wjvb94hxh6yalargyhk"))
(modules '((guix build utils)))
(snippet
'(map delete-file-recursively
;; Remove bundled lua, pcap, and pcre libraries.
;; FIXME: Remove bundled liblinear once packaged.
'("liblua"
"libpcap"
"libpcre"
;; Remove pre-compiled binares.
"mswin32")))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)
("libpcap" ,libpcap)
("pcre" ,pcre)
("lua" ,lua)
;; For 'ndiff'.
("python" ,python-2)))
;; TODO Add zenmap output.
(outputs '("out" "ndiff"))
(arguments
'(#:configure-flags '("--without-zenmap")
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(define (make out . args)
(unless (zero? (apply system* "make"
(string-append "prefix=" out)
args))
(error "make failed")))
(define (python-path dir)
(string-append dir "/lib/python2.7/site-packages"))
(let ((out (assoc-ref outputs "out"))
(ndiff (assoc-ref outputs "ndiff")))
(for-each mkdir-p (list out ndiff))
(make out
"install-nmap"
"install-nse"
"install-ncat"
"install-nping")
(make ndiff "install-ndiff")
(wrap-program (string-append ndiff "/bin/ndiff")
`("PYTHONPATH" prefix
(,(python-path ndiff)))))))
;; These are the tests that do not require network access.
(replace 'check
(lambda _ (zero? (system* "make"
"check-nse"
"check-ndiff"
"check-dns")))))
;; Nmap can't cope with out-of-source building.
#:out-of-source? #f))
(home-page "https://nmap.org/")
(synopsis "Network discovery and security auditing tool")
(description
"Nmap (\"Network Mapper\") is a network discovery and security auditing
tool. It is also useful for tasks such as network inventory, managing service
upgrade schedules, and monitoring host or service uptime. It also provides an
advanced netcat implementation (ncat), a utility for comparing scan
results (ndiff), and a packet generation and response analysis tool (nping).")
;; This package uses nmap's bundled versions of libdnet and liblinear, which
;; both use a 3-clause BSD license.
(license (list license:nmap license:bsd-3))))

View File

@ -20,6 +20,7 @@
(define-module (gnu packages algebra) (define-module (gnu packages algebra)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
@ -133,17 +134,14 @@ solve the shortest vector problem.")
("readline" ,readline))) ("readline" ,readline)))
(arguments (arguments
'(#:make-flags '("all") '(#:make-flags '("all")
;; FIXME: building the documentation requires tex; once this is
;; available, replace "gp" by "all"
#:test-target "dobench" #:test-target "dobench"
#:phases #:phases (modify-phases %standard-phases
(alist-replace (replace 'configure
'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (zero?
(system* "./Configure" (string-append "--prefix=" out))))) (system* "./Configure"
%standard-phases))) (string-append "--prefix=" out)))))))))
(synopsis "PARI/GP, a computer algebra system for number theory") (synopsis "PARI/GP, a computer algebra system for number theory")
(description (description
"PARI/GP is a widely used computer algebra system designed for fast "PARI/GP is a widely used computer algebra system designed for fast
@ -284,6 +282,46 @@ real and complex numbers, with automatic, rigorous error control.")
(license license:gpl2+) (license license:gpl2+)
(home-page "http://fredrikj.net/arb/"))) (home-page "http://fredrikj.net/arb/")))
(define-public ntl
(package
(name "ntl")
(version "9.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://shoup.net/ntl/ntl-"
version ".tar.gz"))
(sha256 (base32
"115frp5flyvw9wghz4zph1b3llmr5nbxk1skgsggckr81fh3gmxq"))))
(build-system gnu-build-system)
(native-inputs
`(("libtool" ,libtool)
("perl" ,perl))) ; for configuration
;; FIXME: Add optional input gf2x once available; then also add
;; configure flag "NTL_GF2X_LIB=on".
(inputs
`(("gmp" ,gmp)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(chdir "src")
(system* "./configure"
(string-append "PREFIX=" (assoc-ref outputs "out"))
;; Do not build especially for the build machine.
"NATIVE=off"
;; Also do not tune to the build machine.
"WIZARD=off"
"SHARED=on")
#t)))))
(synopsis "C++ library for number theory")
(description
"NTL is a C++ library providing data structures and algorithms
for manipulating signed, arbitrary length integers, and for vectors,
matrices, and polynomials over the integers and over finite fields.")
(license license:gpl2+)
(home-page "http://shoup.net/ntl/")))
(define-public bc (define-public bc
(package (package
(name "bc") (name "bc")

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -348,8 +348,16 @@ rdiff-backup is easy to use and settings have sensible defaults.")
(inputs (inputs
`(("acl" ,acl) `(("acl" ,acl)
("openssl" ,openssl) ("openssl" ,openssl)
("python-llfuse" ,python-llfuse) ("python-msgpack" ,python-msgpack)
("python-msgpack" ,python-msgpack)))
;; Attic is probably incompatible with llfuse > 0.41.
;; These links are to discussions of llfuse compatibility from
;; the borg project. Borg is a recent fork of attic, and attic
;; has not been updated since the fork, so it's likely that
;; llfuse compatibility requirements are still the same.
;; https://github.com/borgbackup/borg/issues/642
;; https://github.com/borgbackup/borg/issues/643
("python-llfuse" ,python-llfuse-0.41)))
(synopsis "Deduplicating backup program") (synopsis "Deduplicating backup program")
(description "Attic is a deduplicating backup program. The main goal of (description "Attic is a deduplicating backup program. The main goal of
Attic is to provide an efficient and secure way to backup data. The data Attic is to provide an efficient and secure way to backup data. The data
@ -398,3 +406,56 @@ compression, and more. The library itself implements storage techniques such
as content-addressable storage, content hash keys, Merkle trees, similarity as content-addressable storage, content hash keys, Merkle trees, similarity
detection, and lossless compression.") detection, and lossless compression.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public borg
(package
(name "borg")
(version "1.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32
"0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda* (#:key inputs #:allow-other-keys)
(let ((openssl (assoc-ref inputs "openssl"))
(lz4 (assoc-ref inputs "lz4")))
(setenv "BORG_OPENSSL_PREFIX" openssl)
(setenv "BORG_LZ4_PREFIX" lz4)
(setenv "PYTHON_EGG_CACHE" "/tmp")
#t)))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1")))
(and
(zero? (system* "python3" "setup.py" "build_ext" "--inplace"))
(zero? (system* "make" "-C" "docs" "man"))
(begin
(install-file "docs/_build/man/borg.1" man)
#t))))))))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)
;; For generating the documentation.
("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
(inputs
`(("acl" ,acl)
("lz4" ,lz4)
("openssl" ,openssl)
("python-llfuse" ,python-llfuse)
("python-msgpack" ,python-msgpack)))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
(description "Borg is a deduplicating backup program. Optionally, it
supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for backups
to not fully trusted targets. Borg is a fork of Attic.")
(home-page "https://borgbackup.github.io/borgbackup/")
(license license:bsd-3)))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2507,16 +2508,13 @@ interrupted by stop codons. OrfM finds and prints these ORFs.")
(define-public python2-pbcore (define-public python2-pbcore
(package (package
(name "python2-pbcore") (name "python2-pbcore")
(version "0.9.3") (version "1.2.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "pbcore" version))
"https://github.com/PacificBiosciences/pbcore/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1z46rwjac93jm87cbj2zgjg6qvsgs65140wkbbxsvxps7ai4pm09")))) "02pfn5raa3zf739672bg0dkx7z3j2c4nx7vmpfjqy5b12jrqpymk"))))
(build-system python-build-system) (build-system python-build-system)
(arguments `(#:python ,python-2)) ; pbcore requires Python 2.7 (arguments `(#:python ,python-2)) ; pbcore requires Python 2.7
(inputs (inputs
@ -2525,7 +2523,10 @@ interrupted by stop codons. OrfM finds and prints these ORFs.")
("python-pysam" ,python2-pysam) ("python-pysam" ,python2-pysam)
("python-h5py" ,python2-h5py))) ("python-h5py" ,python2-h5py)))
(native-inputs (native-inputs
`(("python-setuptools" ,python2-setuptools))) `(("python-docutils" ,python2-docutils)
("python-nose" ,python2-nose)
("python-setuptools" ,python2-setuptools)
("python-sphinx" ,python2-sphinx)))
(home-page "http://pacificbiosciences.github.io/pbcore/") (home-page "http://pacificbiosciences.github.io/pbcore/")
(synopsis "Library for reading and writing PacBio data files") (synopsis "Library for reading and writing PacBio data files")
(description (description
@ -3691,15 +3692,15 @@ Cuffdiff or Ballgown programs.")
(define-public vcftools (define-public vcftools
(package (package
(name "vcftools") (name "vcftools")
(version "0.1.12b") (version "0.1.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://sourceforge/vcftools/vcftools_" "https://github.com/vcftools/vcftools/releases/download/v"
version ".tar.gz")) version "/vcftools-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"148al9h7f8g8my2qdnpax51kdd2yjrivlx6frvakf4lz5r8j88wx")))) "10l5c07z9p4i9pr4gl54b2c9h6ndhqlbq1rashg2zcgwkbfrkmvn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:tests? #f ; no "check" target
@ -3707,18 +3708,13 @@ Cuffdiff or Ballgown programs.")
"CFLAGS=-O2" ; override "-m64" flag "CFLAGS=-O2" ; override "-m64" flag
(string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "MANDIR=" (assoc-ref %outputs "out") (string-append "MANDIR=" (assoc-ref %outputs "out")
"/share/man/man1")) "/share/man/man1"))))
#:phases (native-inputs
(alist-cons-after `(("pkg-config" ,pkg-config)))
'unpack 'patch-manpage-install
(lambda _
(substitute* "Makefile"
(("cp \\$\\{PREFIX\\}/cpp/vcftools.1") "cp ./cpp/vcftools.1")))
(alist-delete 'configure %standard-phases))))
(inputs (inputs
`(("perl" ,perl) `(("perl" ,perl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "http://vcftools.sourceforge.net/") (home-page "https://vcftools.github.io/")
(synopsis "Tools for working with VCF files") (synopsis "Tools for working with VCF files")
(description (description
"VCFtools is a program package designed for working with VCF files, such "VCFtools is a program package designed for working with VCF files, such
@ -3726,7 +3722,7 @@ as those generated by the 1000 Genomes Project. The aim of VCFtools is to
provide easily accessible methods for working with complex genetic variation provide easily accessible methods for working with complex genetic variation
data in the form of VCF files.") data in the form of VCF files.")
;; The license is declared as LGPLv3 in the README and ;; The license is declared as LGPLv3 in the README and
;; at http://vcftools.sourceforge.net/license.html ;; at https://vcftools.github.io/license.html
(license license:lgpl3))) (license license:lgpl3)))
(define-public vsearch (define-public vsearch
@ -3927,8 +3923,7 @@ barplots or heatmaps.")
(base32 (base32
"0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1")))) "0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1"))))
(properties (properties
`((upstream-name . "BiocGenerics") `((upstream-name . "BiocGenerics")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://bioconductor.org/packages/BiocGenerics") (home-page "http://bioconductor.org/packages/BiocGenerics")
(synopsis "S4 generic functions for Bioconductor") (synopsis "S4 generic functions for Bioconductor")
@ -3970,8 +3965,7 @@ abnormal copy number.")
(base32 (base32
"12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66")))) "12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66"))))
(properties (properties
`((upstream-name . "S4Vectors") `((upstream-name . "S4Vectors")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics))) `(("r-biocgenerics" ,r-biocgenerics)))
@ -3998,8 +3992,7 @@ S4Vectors package itself.")
(base32 (base32
"0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl")))) "0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl"))))
(properties (properties
`((upstream-name . "IRanges") `((upstream-name . "IRanges")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics) `(("r-biocgenerics" ,r-biocgenerics)
@ -4020,16 +4013,15 @@ possible.")
(define-public r-genomeinfodb (define-public r-genomeinfodb
(package (package
(name "r-genomeinfodb") (name "r-genomeinfodb")
(version "1.6.1") (version "1.6.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version)) (uri (bioconductor-uri "GenomeInfoDb" version))
(sha256 (sha256
(base32 (base32
"1j2n1v1mrw1fxn7cyffz112pm76wd6gy9q9qwlsfv3brbsqbvdbf")))) "1ggp005n2rlkad00ilzn95y4rd484yr1chdhnd6fwg45rbi94d63"))))
(properties (properties
`((upstream-name . "GenomeInfoDb") `((upstream-name . "GenomeInfoDb")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics) `(("r-biocgenerics" ,r-biocgenerics)
@ -4055,8 +4047,7 @@ names in their natural, rather than lexicographic, order.")
(base32 (base32
"0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a")))) "0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a"))))
(properties (properties
`((upstream-name . "XVector") `((upstream-name . "XVector")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -4084,16 +4075,15 @@ names in their natural, rather than lexicographic, order.")
(define-public r-genomicranges (define-public r-genomicranges
(package (package
(name "r-genomicranges") (name "r-genomicranges")
(version "1.22.2") (version "1.22.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicRanges" version)) (uri (bioconductor-uri "GenomicRanges" version))
(sha256 (sha256
(base32 (base32
"1jffvcs0jsi7q4l3pvjj6r73vll80csgkljvhqp0g2ixc43jjng9")))) "02df5683nrpn9d10ws8jz9b55nr9055hh882xp2i154xdddir0k0"))))
(properties (properties
`((upstream-name . "GenomicRanges") `((upstream-name . "GenomicRanges")))
(r-repository . bioconductor)))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics) `(("r-biocgenerics" ,r-biocgenerics)
@ -4215,13 +4205,13 @@ objects.")
(define-public r-biostrings (define-public r-biostrings
(package (package
(name "r-biostrings") (name "r-biostrings")
(version "2.38.2") (version "2.38.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Biostrings" version)) (uri (bioconductor-uri "Biostrings" version))
(sha256 (sha256
(base32 (base32
"1afp9szc8ci6jn0m3hrrqh6df65cpw3v1dcnl6xir3d3m3lwwmk4")))) "0cjd7i4bdwabzb02gm753aji5xaihkj5ak8nb0d32cclxbj0hp33"))))
(properties (properties
`((upstream-name . "Biostrings"))) `((upstream-name . "Biostrings")))
(build-system r-build-system) (build-system r-build-system)
@ -4285,13 +4275,13 @@ files.")
(define-public r-summarizedexperiment (define-public r-summarizedexperiment
(package (package
(name "r-summarizedexperiment") (name "r-summarizedexperiment")
(version "1.0.1") (version "1.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "SummarizedExperiment" version)) (uri (bioconductor-uri "SummarizedExperiment" version))
(sha256 (sha256
(base32 (base32
"0w1dwp99p6i7sc3cn0ir3dr8ksgxwjf16675h5i8n6gbv4rl9lz6")))) "1gpmh1mi70m5k5qnyjs1h0qn8ajrzalzic7k3762xchxsmmdvxn4"))))
(properties (properties
`((upstream-name . "SummarizedExperiment"))) `((upstream-name . "SummarizedExperiment")))
(build-system r-build-system) (build-system r-build-system)
@ -4314,13 +4304,13 @@ samples.")
(define-public r-genomicalignments (define-public r-genomicalignments
(package (package
(name "r-genomicalignments") (name "r-genomicalignments")
(version "1.6.1") (version "1.6.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicAlignments" version)) (uri (bioconductor-uri "GenomicAlignments" version))
(sha256 (sha256
(base32 (base32
"03pxzkmwcpl0d7a09ahan0nllfv7qw2i7w361w6af2s4n3xwrniz")))) "02b9j1pfd39bkvb623k5k0ziq9rpw093hifqw65vb954dwj29jhd"))))
(properties (properties
`((upstream-name . "GenomicAlignments"))) `((upstream-name . "GenomicAlignments")))
(build-system r-build-system) (build-system r-build-system)
@ -4347,13 +4337,13 @@ alignments.")
(define-public r-rtracklayer (define-public r-rtracklayer
(package (package
(name "r-rtracklayer") (name "r-rtracklayer")
(version "1.30.1") (version "1.30.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rtracklayer" version)) (uri (bioconductor-uri "rtracklayer" version))
(sha256 (sha256
(base32 (base32
"1if31hg56islx5vwydpgs5gkyas26kyvv2ljv1c7jikpm62w14qv")))) "0knjnwywh9k726mq28s3sy013zhw6d6nfa8hfw670720nq18i2p0"))))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -4392,13 +4382,13 @@ as well as query and modify the browser state, such as the current viewport.")
(define-public r-genomicfeatures (define-public r-genomicfeatures
(package (package
(name "r-genomicfeatures") (name "r-genomicfeatures")
(version "1.22.7") (version "1.22.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version)) (uri (bioconductor-uri "GenomicFeatures" version))
(sha256 (sha256
(base32 (base32
"1jb4s49ar5j9qslpd3kfdg2wrl4q7ciysd55h9a7zvspymxcngq8")))) "0n3rkj66la6wizgcsf2rmwcsyfxz9kv5zak337lmk1raqfnancz4"))))
(properties (properties
`((upstream-name . "GenomicFeatures"))) `((upstream-name . "GenomicFeatures")))
(build-system r-build-system) (build-system r-build-system)
@ -4582,13 +4572,13 @@ reference point and sorted by a user defined feature.")
(define-public r-genomation (define-public r-genomation
(package (package
(name "r-genomation") (name "r-genomation")
(version "1.2.1") (version "1.2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "genomation" version)) (uri (bioconductor-uri "genomation" version))
(sha256 (sha256
(base32 (base32
"1mzs995snwim13qk9kz4q3nczpnbsy1allwp4whfq0cflg2mndfr")))) "0kvzwc21zsh2c8d34yn935ncn38bfkpzmknycd8h7b0521x20mi9"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biostrings" ,r-biostrings) `(("r-biostrings" ,r-biostrings)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
@ -73,7 +73,12 @@
(mkdir-p (string-append gui "/bin")) (mkdir-p (string-append gui "/bin"))
(rename-file (string-append out "/bin/transmission-gtk") (rename-file (string-append out "/bin/transmission-gtk")
(string-append gui (string-append gui
"/bin/transmission-gtk")))) "/bin/transmission-gtk"))
;; Move the '.desktop' file as well.
(mkdir (string-append gui "/share"))
(rename-file (string-append out "/share/applications")
(string-append gui "/share/applications"))))
%standard-phases))) %standard-phases)))
(inputs (inputs
`(("inotify-tools" ,inotify-tools) `(("inotify-tools" ,inotify-tools)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -79,12 +79,25 @@ data units.")
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
;; Bug reported: https://github.com/geier/khal/issues/309 (add-after 'unpack 'disable-tests
(add-after 'unpack 'disable-test
(lambda _ (lambda _
;; Bug reported for test_only_update_old_event:
;; https://github.com/geier/khal/issues/309
(substitute* "tests/khalendar_test.py" (substitute* "tests/khalendar_test.py"
(("test_only_update_old_event") (("test_only_update_old_event")
"disabled_only_update_old_event")))) "disabled_only_update_old_event"))
;; Bug reported for test_dt_two_tz:
;; https://github.com/pimutils/khal/issues/382
(substitute* "tests/event_test.py"
(("test_dt_two_tz")
"disabled_dt_two_tz"))
;; Another timezone / DST issue:
;; https://github.com/pimutils/khal/issues/146
(substitute* "tests/event_test.py"
(("test_raw_dt")
"disabled_raw_dt"))))
;; Building the manpage requires khal to be installed. ;; Building the manpage requires khal to be installed.
(add-after 'install 'manpage (add-after 'install 'manpage
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -95,6 +108,7 @@ data units.")
(install-file (install-file
"doc/build/man/khal.1" "doc/build/man/khal.1"
(string-append (assoc-ref outputs "out") "/share/man/man1")))) (string-append (assoc-ref outputs "out") "/share/man/man1"))))
;; The tests require us to choose a timezone. ;; The tests require us to choose a timezone.
(replace 'check (replace 'check
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)

View File

@ -233,13 +233,14 @@ capacity is user-selectable.")
(version "1.4.0") (version "1.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/lipnitsk/libcue/archive/v" (uri (string-append "https://github.com/lipnitsk/libcue/releases/"
"download/v" version "/libcue-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb")))) "17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://libcue.sourceforge.net/") (home-page "https://github.com/lipnitsk/libcue")
(synopsis "C library to parse cue sheets") (synopsis "C library to parse cue sheets")
(description "Libcue is a C library to parse so-called @dfn{cue sheets} (description "Libcue is a C library to parse so-called @dfn{cue sheets}
which contain meta-data for CD/DVD tracks. It provides an API to manipulate which contain meta-data for CD/DVD tracks. It provides an API to manipulate

View File

@ -92,14 +92,14 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable (define-public global ; a global variable
(package (package
(name "global") (name "global")
(version "6.5.2") (version "6.5.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/global/global-" (uri (string-append "mirror://gnu/global/global-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"07qx3dbjwkbd1dn42qs7zgj77rxdj2psfrf7bx7yx9al38f87z60")))) "19hxajpwld6qx0faz4rzyh1hfs25ycjmws6bas8pavx4hskf05mg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses) (inputs `(("ncurses" ,ncurses)
("libltdl" ,libltdl) ("libltdl" ,libltdl)

View File

@ -274,15 +274,25 @@ as a drop-in replacement of MySQL.")
(define-public postgresql (define-public postgresql
(package (package
(name "postgresql") (name "postgresql")
(version "9.5.1") (version "9.5.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.postgresql.org/pub/source/v" (uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2")) version "/postgresql-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1ljvijaja5zy4i5b1450drbj8m3fcm3ly1zzaakp75x30s2rsc3b")))) "0hbwwhh0pz0a6vf8j5bskiq7gmz9rwc9ywcqyhg5asshckj35lgq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh
(lambda _
;; Refer to the actual shell.
(substitute* '("src/bin/pg_ctl/pg_ctl.c"
"src/bin/psql/command.c")
(("/bin/sh") (which "sh")))
#t)))))
(inputs (inputs
`(("readline" ,readline) `(("readline" ,readline)
("zlib" ,zlib))) ("zlib" ,zlib)))

View File

@ -370,7 +370,7 @@ on stdout instead of using a socket as the Emacsclient does.")
(define-public magit (define-public magit
(package (package
(name "magit") (name "magit")
(version "2.5.0") (version "2.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -378,7 +378,7 @@ on stdout instead of using a socket as the Emacsclient does.")
version "/" name "-" version ".tar.gz")) version "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0i6qpx5szzc4kyfcdhaic8gif0sqdqcya1niyj93lpvw66jcxsxa")))) "04km5j6118yqz7h3dyfd4ijjd6w3pb76pjlaj25wh1bchf1yilir"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo) (native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-no-x))) ("emacs" ,emacs-no-x)))

View File

@ -33,10 +33,12 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages zip) #:use-module (gnu packages fontutils)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages pkg-config)) #:use-module (gnu packages zip))
(define-public font-inconsolata (define-public font-inconsolata
(package (package
@ -260,47 +262,44 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.")
(define-public font-gnu-freefont-ttf (define-public font-gnu-freefont-ttf
(package (package
(name "font-gnu-freefont-ttf") (name "font-gnu-freefont-ttf")
(version "20100919") (version "20120503")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/freefont/freefont-ttf-" (uri (string-append "mirror://gnu/freefont/freefont-src-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1q3h5jp1mbdkinkwxy0lfd0a1q7azlbagraydlzaa2ng82836wg4")))) "0yk58blhcd4hm7nyincmqq4jrzjjk82wif2zmk1l3y2m4vif4qhd"))))
(build-system trivial-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:phases (modify-phases %standard-phases
#:builder (begin (delete 'configure)
(use-modules (guix build utils) (replace 'install
(srfi srfi-26)) (lambda _
(let ((doc-dir (string-append %output "/share/doc/"
(let ((tar (string-append (assoc-ref %build-inputs ,name "-" ,version))
"tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs
"gzip")
"/bin"))
(font-dir (string-append %output (font-dir (string-append %output
"/share/fonts/truetype")) "/share/fonts/truetype")))
(doc-dir (string-append %output "/share/doc/"
,name "-" ,version)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir) (mkdir-p doc-dir)
(chdir (string-append "freefont-" ,version)) (substitute* "Makefile"
(("\\$\\(TMPDIR\\)") doc-dir)
(("sfd/\\*.ttf") ""))
(system* "make" "ttftar")
(mkdir-p font-dir)
(for-each (lambda (file) (for-each (lambda (file)
(let ((dir (if (string-suffix? "ttf" file)
font-dir
doc-dir)))
(copy-file file (copy-file file
(string-append dir "/" file)))) (string-append font-dir "/"
(find-files "." "")))))) (basename file))))
(native-inputs `(("source" ,source) (filter
("tar" ,tar) (lambda (file) (string-suffix? "ttf" file))
("gzip" ,gzip))) (find-files "." "")))))))
#:test-target "tests"))
;; replace python 3 with python 2
;; python 3 support commits aren't yet released in 20120503
;; so freefont needs python 2 support in fontforge
(native-inputs `(("fontforge" ,(package (inherit fontforge)
(inputs `(("python-2" ,python-2)
,@(package-inputs fontforge)))))))
(home-page "http://www.gnu.org/software/freefont/") (home-page "http://www.gnu.org/software/freefont/")
(synopsis "Unicode-encoded outline fonts") (synopsis "Unicode-encoded outline fonts")
(description (description

View File

@ -208,9 +208,8 @@ applications should be.")
(define-public graphite2 (define-public graphite2
(package (package
(replacement graphite2-1.3.6)
(name "graphite2") (name "graphite2")
(version "1.3.5") (version "1.3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -219,7 +218,7 @@ applications should be.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0jrjb56zim57xg2pckfdyrw46c624mqz9zywgwza0g1bxg26940w")))) "1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("python" ,python-2) ; because of "import imap" in tests `(("python" ,python-2) ; because of "import imap" in tests
@ -235,21 +234,6 @@ and returns a sequence of positioned glyphids from the font.")
(license license:lgpl2.1+) (license license:lgpl2.1+)
(home-page "https://github.com/silnrsi/graphite"))) (home-page "https://github.com/silnrsi/graphite")))
(define graphite2-1.3.6
(package
(inherit graphite2)
(replacement #f)
(source
(let ((name "graphite2") (version "1.3.6"))
(origin
(method url-fetch)
(uri (string-append "https://github.com/silnrsi/graphite/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s")))))))
(define-public potrace (define-public potrace
(package (package
(name "potrace") (name "potrace")
@ -367,14 +351,20 @@ definitions.")
"0gfcm8yn1d30giqhdwbchnfnspcqypqdzrxlhqhwy1i18wgl0v2v")) "0gfcm8yn1d30giqhdwbchnfnspcqypqdzrxlhqhwy1i18wgl0v2v"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin
;; Make builds bit-reproducible by using fixed date strings. ;; Make builds bit-reproducible by using fixed date strings.
'(substitute* "configure" (substitute* "configure"
(("^FONTFORGE_MODTIME=.*$") (("^FONTFORGE_MODTIME=.*$")
"FONTFORGE_MODTIME=\"1458399002\"\n") "FONTFORGE_MODTIME=\"1458399002\"\n")
(("^FONTFORGE_MODTIME_STR=.*$") (("^FONTFORGE_MODTIME_STR=.*$")
"FONTFORGE_MODTIME_STR=\"15:50 CET 19-Mar-2016\"\n") "FONTFORGE_MODTIME_STR=\"15:50 CET 19-Mar-2016\"\n")
(("^FONTFORGE_VERSIONDATE=.*$") (("^FONTFORGE_VERSIONDATE=.*$")
"FONTFORGE_VERSIONDATE=\"20160319\"\n"))))) "FONTFORGE_VERSIONDATE=\"20160319\"\n"))
;; Make TTF builds bit-reproducible by clearing the timestamp
;; that goes in TTF files.
(substitute* "fontforge/tottf.c"
(("cvt_unix_to_1904\\(now") "cvt_unix_to_1904(0"))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -508,7 +508,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
(define-public modem-manager (define-public modem-manager
(package (package
(name "modem-manager") (name "modem-manager")
(version "1.4.12") (version "1.4.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -516,7 +516,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
"ModemManager-" version ".tar.xz")) "ModemManager-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1cvhpkbdch9a77sdir0wcks45m2zlvq1sna2ly2v4lx9fm9h7xby")))) "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View File

@ -64,7 +64,10 @@ Consortium standard (ICC), approved as ISO 15076-1.")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://ftp.de.debian.org/debian/pool/main/libp/libpaper/libpaper_" ;; Debian moved their libpaper-1.1.24 to archive.debian.net
;; but in the move the hash of their tarball changed.
"http://pkgs.fedoraproject.org/repo/pkgs/libpaper/libpaper_"
version ".tar.gz/5bc87d494ba470aba54f6d2d51471834/libpaper_"
version ".tar.gz")) version ".tar.gz"))
(sha256 (base32 (sha256 (base32
"0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q")))) "0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q"))))
@ -75,7 +78,7 @@ Consortium standard (ICC), approved as ISO 15076-1.")
way for applications to take actions based on a system- or user-specified way for applications to take actions based on a system- or user-specified
paper size.") paper size.")
(license license:gpl2) (license license:gpl2)
(home-page "http://packages.qa.debian.org/libp/libpaper.html"))) (home-page "https://packages.qa.debian.org/libp/libpaper.html")))
(define-public psutils (define-public psutils
(package (package

View File

@ -14,6 +14,7 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -4208,7 +4209,7 @@ users.")
(define-public network-manager (define-public network-manager
(package (package
(name "network-manager") (name "network-manager")
(version "1.0.10") (version "1.0.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/NetworkManager/" (uri (string-append "mirror://gnome/sources/NetworkManager/"
@ -4216,7 +4217,7 @@ users.")
"NetworkManager-" version ".tar.xz")) "NetworkManager-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1g4z2wg036n0njqp8fycrisj46l3yda6pl00l4rg9nfz862cxkqv")))) "17jan0g5jzp8mrpklyacwdgnnw016m1c5pc4az5im6qhc260yirs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ; 8 MiB of gtk-doc HTML "doc")) ; 8 MiB of gtk-doc HTML
@ -4928,3 +4929,31 @@ command-line interface. It can record part or all of an X display for a
specified duration and save it as a GIF encoded animated image file.") specified duration and save it as a GIF encoded animated image file.")
(home-page "https://git.gnome.org/browse/byzanz") (home-page "https://git.gnome.org/browse/byzanz")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public libzapojit
(package
(name "libzapojit")
(version "0.0.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
(build-system gnu-build-system)
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("gnome-online-accounts" ,gnome-online-accounts)
("json-glib" ,json-glib)
("rest" ,rest)))
(home-page "https://wiki.gnome.org/Projects/Zapojit")
(synopsis "Library for accessing SkyDrive and Hotmail")
(description
"Libzapojit is a GLib-based library for accessing online service APIs of
Microsoft SkyDrive and Hotmail, using their REST protocols.")
(license license:lgpl2.1+)))

101
gnu/packages/gnu-doc.scm Normal file
View File

@ -0,0 +1,101 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@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 gnu-doc)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages texinfo)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix cvs-download)
#:use-module (guix download)
#:use-module (guix licenses)
#:use-module (guix packages))
(define-public miscfiles
(package
(name "miscfiles")
(version "1.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/" name "/" name "-"
version ".tar.gz"))
(sha256
(base32
"005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/miscfiles/")
(synopsis
"Data files for airport codes, zip codes, a dictionary, and more")
(description
"GNU Miscfiles is a collection of common data files. They include, for
example, country abbreviations, names and capital cities; currency
abbreviations and names; a Best Current Practices index; a map of the ASCII
character set; a list of three-letter airport codes; and an English word
list.")
(license gpl2+)))
(define-public gnu-standards
(package
(name "gnu-standards")
(version "2016-03-25")
(source
(origin
(method cvs-fetch)
(uri (cvs-reference
(root-directory
":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards")
(module "gnustandards")
(revision "2016-03-25")))
(sha256
(base32
"0qn7mzdjqwc6h9prin22x6kj9iqipxpbzldzhmis7q4x4hpi61vj"))))
(build-system trivial-build-system)
(native-inputs `(("gzip" ,gzip)
("source" ,source)
("texinfo" ,texinfo)))
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((gzip (assoc-ref %build-inputs "gzip"))
(source (assoc-ref %build-inputs "source"))
(texinfo (assoc-ref %build-inputs "texinfo"))
(info-dir (string-append %output "/share/info")))
(setenv "PATH" (string-append gzip "/bin"
":" texinfo "/bin"))
(mkdir-p info-dir)
(system* "makeinfo" "--output" info-dir
(string-append source "/maintain.texi"))
(system* "makeinfo" "--output" info-dir
(string-append source "/standards.texi"))
(system* "gzip" (string-append info-dir "/maintain.info"))
(system* "gzip" (string-append info-dir "/standards.info"))))))
(home-page "http://www.gnu.org/prep/standards/")
(synopsis "GNU coding standards and maintainer information")
(description "The GNU Coding Standards were written by Richard Stallman
and other GNU Project volunteers. Their purpose is to make the GNU system
clean, consistent, and easy to install.
The information for maintainers of GNU software has guidelines and advice for
someone who is the maintainer of a GNU program on behalf of the GNU Project.")
(license fdl1.3+)))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -37,7 +38,7 @@
(define-public gnucash (define-public gnucash
(package (package
(name "gnucash") (name "gnucash")
(version "2.6.9") (version "2.6.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -45,7 +46,7 @@
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0iw25l1kv60cg6fd2vg11mcvzmjqnc5p9lp3rjy06ghkjfrn3and")) "0x84f07p30pwhriamv8ifljgw755cj87rc12jy1xddf47spyj7rp"))
(patches (list (search-patch "gnucash-price-quotes-perl.patch"))))) (patches (list (search-patch "gnucash-price-quotes-perl.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
@ -97,7 +98,7 @@
"gnc-fq-check" "gnc-fq-check"
"gnc-fq-helper" "gnc-fq-helper"
"gnc-fq-dump"))))))) "gnc-fq-dump")))))))
(home-page "https://gnu.org/software/gnucash") (home-page "http://www.gnucash.org/")
(synopsis "Personal and small business financial accounting software") (synopsis "Personal and small business financial accounting software")
(description (description
"GnuCash is personal and professional financial-accounting software. "GnuCash is personal and professional financial-accounting software.

View File

@ -5,6 +5,7 @@
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ni* Gillmann <ng@niasterisk.space> ;;; Copyright © 2016 Ni* Gillmann <ng@niasterisk.space>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -66,6 +67,7 @@
(sha256 (sha256
(base32 (base32
"0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6")) "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6"))
(patches (list (search-patch "libextractor-ffmpeg-3.patch")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not ;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not

View File

@ -248,14 +248,14 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gnupg-2.0 (define-public gnupg-2.0
(package (inherit gnupg) (package (inherit gnupg)
(version "2.0.29") (version "2.0.30")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1jaakn0mi6pi2b3g3imxj3qzxw2zg0ifxs30baq2b157dcw6pvb8")))) "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3"))))
(native-inputs '()) (native-inputs '())
(inputs (inputs
`(("adns" ,adns) `(("adns" ,adns)

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 Kei Yamashita <kei@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,6 +23,10 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages gnome)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages autotools)
#:use-module (gnu packages glib)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)) #:use-module (gnu packages pkg-config))
@ -83,3 +88,42 @@ interface. It is fast, feature rich, easy to configure, and easy to use.")
;; Artwork is distributed under the WTFPL. ;; Artwork is distributed under the WTFPL.
(license gpl2+))) (license gpl2+)))
(define-public wmbattery
(package
(name "wmbattery")
(version "2.50")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://debian/pool/main/w/wmbattery/wmbattery_"
version ".orig.tar.gz"))
(sha256
(base32
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autoconf
(lambda _ (zero? (system* "autoreconf" "-vfi")))))))
(inputs
`(("glib" ,glib)
("libx11" ,libx11)
("libxext" ,libxext)
("libxpm" ,libxpm)
("upower" ,upower)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(home-page "http://windowmaker.org/dockapps/?name=wmbattery")
(synopsis "Display laptop battery info")
(description
"Wmbattery displays the status of your laptop's battery in a small icon.
This includes if it is plugged in, if the battery is charging, how many minutes
of battery life remain, battery life remaining (with both a percentage and a
graph), and battery status (high - green, low - yellow, or critical - red).")
(license gpl2)))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -96,7 +97,7 @@ arrays of data.")
(define-public gstreamer (define-public gstreamer
(package (package
(name "gstreamer") (name "gstreamer")
(version "1.6.3") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -105,7 +106,7 @@ arrays of data.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"093zldafh7xh3lrlwzm7j0vvjz6k9ca83wqil40gfz5qcy6mdy92")))) "1p5y9bbrhywng0prmpxv29p6jsz6vd039d49bnc98p9b45532yll"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(arguments (arguments
@ -144,7 +145,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base (define-public gst-plugins-base
(package (package
(name "gst-plugins-base") (name "gst-plugins-base")
(version "1.6.3") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -152,7 +153,7 @@ This package provides the core library and elements.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0xbskifk95rw7jd85sqjrmqh2kys1bpi0inrxyapx1x4vf7ly5dn")))) "08hmg7fp519wim1fm04r7f2q2020ssdninawqsbrqjsvs70srh5b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(propagated-inputs (propagated-inputs
@ -186,7 +187,7 @@ This package provides the core library and elements.")
(lambda _ (lambda _
(substitute* "tests/check/libs/pbutils.c" (substitute* "tests/check/libs/pbutils.c"
(("/bin/sh") (which "sh")))))))) (("/bin/sh") (which "sh"))))))))
(home-page "http://gstreamer.freedesktop.org/") (home-page "https://gstreamer.freedesktop.org/")
(synopsis (synopsis
"Plugins for the GStreamer multimedia library") "Plugins for the GStreamer multimedia library")
(description "This package provides an essential exemplary set of plug-ins (description "This package provides an essential exemplary set of plug-ins
@ -197,7 +198,7 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good (define-public gst-plugins-good
(package (package
(name "gst-plugins-good") (name "gst-plugins-good")
(version "1.6.3") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -206,7 +207,7 @@ for the GStreamer multimedia library.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0xx16h0q63gs3pxlzdflnpyssba3vcrh1qnzplg4d0ra1fvrvc94")))) "0kczdvqxvl8kxiy2d7czv16jp73hv9k3nykh47ckihnv8x6i6362"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("aalib" ,aalib) `(("aalib" ,aalib)
@ -237,16 +238,18 @@ for the GStreamer multimedia library.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after (add-after
'unpack 'disable-failing-rtprtx-tests 'unpack 'disable-failing-tests
(lambda _ (lambda _
;; Disable rtprtx tests that frequently fail. ;; Disable tests that fail non-deterministically.
;; XXX FIXME: Try removing this for version > 1.6.3. ;; XXX FIXME: Try removing this for version > 1.8.0.
(substitute* "tests/check/elements/rtprtx.c" (substitute* "tests/check/elements/rtprtx.c"
(("tcase_add_test \\(tc_chain,\ (("tcase_add_test \\(tc_chain, test_push_forward_seq\\);" all)
(test_rtxsender_max_size_packets|test_rtxreceive_data_reconstruction)\\);" all) (string-append "/* " all " */")))
(substitute* "tests/check/elements/splitmux.c"
(("tcase_add_test \\(tc_chain, test_splitmuxsink\\);" all)
(string-append "/* " all " */"))) (string-append "/* " all " */")))
#t))))) #t)))))
(home-page "http://gstreamer.freedesktop.org/") (home-page "https://gstreamer.freedesktop.org/")
(synopsis (synopsis
"Plugins for the GStreamer multimedia library") "Plugins for the GStreamer multimedia library")
(description "GStreamer Good Plug-ins is a set of plug-ins for the (description "GStreamer Good Plug-ins is a set of plug-ins for the
@ -330,7 +333,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly (define-public gst-plugins-ugly
(package (package
(name "gst-plugins-ugly") (name "gst-plugins-ugly")
(version "1.6.3") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -338,7 +341,7 @@ par compared to the rest.")
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0r6h3ys5n90jv3c06crxzcac561z07s4h04hy5i8ybw8qyvzgv1g")))) "137b6kqykh5nwbmiv28nn1pc1d2x2rb2xxg382pc9pa9gpxpyrak"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gst-plugins-base" ,gst-plugins-base) `(("gst-plugins-base" ,gst-plugins-base)
@ -358,7 +361,7 @@ par compared to the rest.")
`(("glib:bin" ,glib "bin") `(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper))) ("python-wrapper" ,python-wrapper)))
(home-page "http://gstreamer.freedesktop.org/") (home-page "https://gstreamer.freedesktop.org/")
(synopsis "GStreamer plugins from the \"ugly\" set") (synopsis "GStreamer plugins from the \"ugly\" set")
(description "GStreamer Ugly Plug-ins. This set contains those plug-ins (description "GStreamer Ugly Plug-ins. This set contains those plug-ins
which the developers consider to have good quality code but that might pose which the developers consider to have good quality code but that might pose
@ -368,7 +371,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
(define-public gst-libav (define-public gst-libav
(package (package
(name "gst-libav") (name "gst-libav")
(version "1.6.3") (version "1.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -376,7 +379,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1aylbg1xnm68c3wc49mzx813qhsjfg23hqnjqqwdwdq31839qyw5")))) "0719njp8aarhvn038pijq6dmsnli0zlg146hyfs3rsdffs4f472s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--with-system-libav") '(#:configure-flags '("--with-system-libav")
@ -405,7 +408,7 @@ compression formats through the use of the libav library.")
(define-public python-gst (define-public python-gst
(package (package
(name "python-gst") (name "python-gst")
(version "1.6.2") (version "1.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -413,7 +416,7 @@ compression formats through the use of the libav library.")
"gst-python-" version ".tar.xz")) "gst-python-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"09ci5zvr7lms7mvgbjgsjwaxcl4nq45n1g9pdwnqmx3rf0qkwxjf")))) "1spn49x7yaj69df6mxh9wwcs0y3abswkfpk84njs71lzqlbzyiff"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; XXX: Factorize python-sitedir with python-build-system. ;; XXX: Factorize python-sitedir with python-build-system.
@ -435,7 +438,7 @@ compression formats through the use of the libav library.")
(propagated-inputs (propagated-inputs
`(("gst-plugins-base" ,gst-plugins-base) `(("gst-plugins-base" ,gst-plugins-base)
("python-pygobject" ,python-pygobject))) ("python-pygobject" ,python-pygobject)))
(home-page "http://gstreamer.freedesktop.org/") (home-page "https://gstreamer.freedesktop.org/")
(synopsis "GStreamer GObject Introspection overrides for Python") (synopsis "GStreamer GObject Introspection overrides for Python")
(description (description
"This package contains GObject Introspection overrides for Python that can "This package contains GObject Introspection overrides for Python that can

View File

@ -275,14 +275,14 @@ without requiring the source code to be rewritten.")
(define-public artanis (define-public artanis
(package (package
(name "artanis") (name "artanis")
(version "0.1.0") (version "0.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-" (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mc2zy6n9wnn4hzi3zp3jd6b5rlr0lv7fvh800xf4fyrxg0zia4g")))) "19m3ak12cqk8js9d2mdg11kh4fjsq8frfpd10qw75h0zpr5cywpp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO: Add guile-dbi and guile-dbd optional dependencies. ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
(inputs `(("guile" ,guile-2.0))) (inputs `(("guile" ,guile-2.0)))
@ -296,7 +296,8 @@ without requiring the source code to be rewritten.")
(dir (string-append out "/share/guile/site/2.0"))) (dir (string-append out "/share/guile/site/2.0")))
;; Don't use (%site-dir) for site paths. ;; Don't use (%site-dir) for site paths.
(list (string-append "MOD_PATH=" dir) (list (string-append "MOD_PATH=" dir)
(string-append "MOD_COMPILED_PATH=" dir))) (string-append "MOD_COMPILED_PATH=" dir)
(string-append "DESTDIR=" out)))
#:test-target "test" #:test-target "test"
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View File

@ -92,7 +92,7 @@ irssi, but graphical.")
(define-public irssi (define-public irssi
(package (package
(name "irssi") (name "irssi")
(version "0.8.18") (version "0.8.19")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/" (uri (string-append "https://github.com/irssi/irssi/"
@ -100,7 +100,7 @@ irssi, but graphical.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0h3q0p5rnm6h0hcv06m8vrs97kyr1l7snjdy3qbjsz3m97vpg8f0")))) "1lz57v3nkki30lb883pipp5syyfkssvjlq3xxf9yl578902h982c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,21 +29,21 @@
(define-public iso-codes (define-public iso-codes
(package (package
(name "iso-codes") (name "iso-codes")
(version "3.49") (version "3.67")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://pkg-isocodes.alioth.debian.org/downloads/iso-codes-" "https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ryk5i467p7xxrbrqynb35ci046yj9k9b4d3hfxzass962lz9q04")))) "037hmfs5pk3g36psm378vap1mbrkk86vv8wsdnv65mzbnph52gv0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gettext" ,gnu-gettext) `(("gettext" ,gnu-gettext)
("perl" ,perl) ("perl" ,perl)
("python-2" ,python-2))) ("python" ,python-wrapper)))
(home-page "http://pkg-isocodes.alioth.debian.org/") (home-page "https://pkg-isocodes.alioth.debian.org/")
(synopsis "Various ISO standards") (synopsis "Various ISO standards")
(description (description
"This package provides lists of various ISO standards (e.g. country, "This package provides lists of various ISO standards (e.g. country,

View File

@ -80,6 +80,7 @@
(uri (git-reference (uri (git-reference
(url "https://github.com/graeme-hill/crossguid.git") (url "https://github.com/graeme-hill/crossguid.git")
(commit commit))) (commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1i29y207qqddvaxbn39pk2fbh3gx8zvdprfp35wasj9rw2wjk3s9")))) "1i29y207qqddvaxbn39pk2fbh3gx8zvdprfp35wasj9rw2wjk3s9"))))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -126,14 +127,14 @@ proposed for standardization.")
(define-public gmtp (define-public gmtp
(package (package
(name "gmtp") (name "gmtp")
(version "1.3.9") (version "1.3.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/gmtp/" version (uri (string-append "mirror://sourceforge/gmtp/" version
"/gmtp-" version ".tar.gz")) "/gmtp-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0bdxvi0jf3q870a39xzsaj4qrjwc9b5bgvc95plc7xb6vf2m7zsv")))) "0fyi3pdl2g57vr0p46ip2wwzyap3l0by7iqaqygv0yxfcs79l6xj"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View File

@ -9,6 +9,7 @@
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> ;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -223,6 +224,10 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(let* ((version "4.5") (let* ((version "4.5")
(build-phase (build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args) '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
;; Apply the neat patch. ;; Apply the neat patch.
(system* "patch" "-p1" "--force" (system* "patch" "-p1" "--force"
"-i" (assoc-ref inputs "patch/freedo+gnu")) "-i" (assoc-ref inputs "patch/freedo+gnu"))
@ -348,13 +353,13 @@ It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-4.1 (define-public linux-libre-4.1
(package (package
(inherit linux-libre) (inherit linux-libre)
(version "4.1.19") (version "4.1.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (linux-libre-urls version)) (uri (linux-libre-urls version))
(sha256 (sha256
(base32 (base32
"0xkj94xmnmxr768qp6n68r1g68ix1sds95nv6zfg4x8fc7fzn8km")))) "0vwk6jh57djbwr29xvlgaf14409bq9vmwf6r6nq9jdl6dizfd110"))))
(native-inputs (native-inputs
(let ((conf (kernel-config (or (%current-target-system) (let ((conf (kernel-config (or (%current-target-system)
(%current-system)) (%current-system))
@ -1581,7 +1586,6 @@ from the module-init-tools project.")
(define-public eudev (define-public eudev
;; The post-systemd fork, maintained by Gentoo. ;; The post-systemd fork, maintained by Gentoo.
;; TODO: Merge with 'eudev-with-blkid' below at an opportune time.
(package (package
(name "eudev") (name "eudev")
(version "3.1.5") (version "3.1.5")
@ -1600,7 +1604,11 @@ from the module-init-tools project.")
("perl" ,perl) ("perl" ,perl)
("gperf" ,gperf))) ("gperf" ,gperf)))
(inputs (inputs
`(("kmod" ,kmod))) ;; When linked against libblkid, eudev can populate /dev/disk/by-label
;; and similar; it also installs the '60-persistent-storage.rules' file,
;; which contains the rules to do that.
`(("util-linux" ,util-linux) ;for blkid
("kmod" ,kmod)))
(home-page "https://wiki.gentoo.org/wiki/Project:Eudev") (home-page "https://wiki.gentoo.org/wiki/Project:Eudev")
(synopsis "Userspace device management") (synopsis "Userspace device management")
(description "Udev is a daemon which dynamically creates and removes (description "Udev is a daemon which dynamically creates and removes
@ -1608,18 +1616,6 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot
time.") time.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public eudev-with-blkid
;; TODO: Merge with 'eudev' above at an opportune time.
(package
(inherit eudev)
(name "eudev-with-blkid")
(inputs
;; When linked against libblkid, eudev can populate /dev/disk/by-label
;; and similar; it also installs the '60-persistent-storage.rules' file,
;; which contains the rules to do that.
`(("util-linux" ,util-linux) ;for blkid
,@(package-inputs eudev)))))
(define-public lvm2 (define-public lvm2
(package (package
(name "lvm2") (name "lvm2")

View File

@ -177,18 +177,19 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt (define-public mutt
(package (package
(name "mutt") (name "mutt")
(version "1.5.24") (version "1.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-" (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0012njrgxf1barjksqkx7ccid2l0xyikhna9mjs9vcfpbrvcm4m2")) "06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9"))
(patches (list (search-patch "mutt-store-references.patch"))))) (patches (list (search-patch "mutt-store-references.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("cyrus-sasl" ,cyrus-sasl) `(("cyrus-sasl" ,cyrus-sasl)
("gdbm" ,gdbm)
("gpgme" ,gpgme) ("gpgme" ,gpgme)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("openssl" ,openssl) ("openssl" ,openssl)
@ -198,6 +199,7 @@ aliasing facilities to work just as they would on normal mail.")
"--enable-imap" "--enable-imap"
"--enable-pop" "--enable-pop"
"--enable-gpgme" "--enable-gpgme"
"--enable-hcache" ; for header caching
"--with-ssl" "--with-ssl"
"--with-sasl" "--with-sasl"
;; so that mutt does not check whether the path ;; so that mutt does not check whether the path

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
@ -52,7 +52,6 @@
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages less) #:use-module (gnu packages less)
@ -177,7 +176,7 @@ numbers.")
(define-public glpk (define-public glpk
(package (package
(name "glpk") (name "glpk")
(version "4.59") (version "4.60")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -185,7 +184,7 @@ numbers.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bpbp5z0378kaj5bqmc5m2j5h9c7553p0s2j6a28badqghpbx673")))) "15z2ymzqhxwss6wgdj5f7vkyqlqdsjgrvm0x871kmlx0n0664mhk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gmp" ,gmp))) `(("gmp" ,gmp)))
@ -201,45 +200,57 @@ translator for the language. In addition to the C library, a stand-alone
LP/MIP solver is included in the package.") LP/MIP solver is included in the package.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public pspp (define-public 4ti2
(package (package
(name "pspp") (name "4ti2")
(version "0.8.5") (version "1.6.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/pspp/pspp-" (uri (string-append "http://www.4ti2.de/version_" version
version ".tar.gz")) "/4ti2-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c8326yykidi94xi7jn27j8iqxc38vc07d4wf5zyk0l8lpzx5vz7")))) "1frix3rnm9ffr93alqzw4cavxbfpf524l8rfbmcpyhwd3n1km0yl"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,(@ (gnu packages base) which)))) ; for the tests
(inputs
`(("glpk" ,glpk)
("gmp" ,gmp)))
(home-page "http://www.4ti2.de/")
(synopsis "Mathematical tool suite for problems on linear spaces")
(description
"4ti2 implements algorithms for solving algebraic, geometric and
combinatorial problems on linear spaces. Among others, it solves systems
of linear equations, computes extreme rays of polyhedral cones, solves
integer programming problems and computes Markov bases for statistics.")
(license license:gpl2+)))
(define-public cddlib
(package
(name "cddlib")
(version "0.94h")
(source
(origin
(method url-fetch)
(uri (string-append "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-"
(string-delete #\. version) ".tar.gz"))
(sha256
(base32
"1dasasscwfg793q8fwzgwf64xwj7w62yfvszpr8x8g38jka08vgy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("cairo" ,cairo) `(("gmp" ,gmp)))
("fontconfig" ,fontconfig) (home-page "https://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html")
("gettext" ,gnu-gettext) (synopsis "Library for convex hulls and extreme rays of polyhedra")
("gsl" ,gsl)
("libxml2" ,libxml2)
("pango" ,pango)
("readline" ,readline)
("gtk" ,gtk+-2)
("gtksourceview" ,gtksourceview-2)
("zlib" ,zlib)))
(native-inputs
`(("glib" ,glib "bin") ;for glib-genmarshal
("perl" ,perl)
("texinfo" ,texinfo)
("pkg-config" ,pkg-config)))
(home-page "http://www.gnu.org/software/pspp/")
(synopsis "Statistical analysis")
(description (description
"GNU PSPP is a statistical analysis program. It can perform "The C-library cddlib implements the Double Description Method of
descriptive statistics, T-tests, linear regression and non-parametric tests. Motzkin et al. for generating all vertices (i.e. extreme points) and extreme
It features both a graphical interface as well as command-line input. PSPP rays of a general convex polyhedron given by a system of linear inequalities
is designed to interoperate with Gnumeric, LibreOffice and OpenOffice. Data in arbitrary dimension. It can also be used for the converse operation of
can be imported from spreadsheets, text files and database sources and it can computing convex hulls.")
be output in text, PostScript, PDF or HTML.") (license license:gpl2+)))
(license license:gpl3+)))
(define-public arpack-ng (define-public arpack-ng
(package (package

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -33,7 +34,7 @@
(define-public mc (define-public mc
(package (package
(name "mc") (name "mc")
(version "4.8.11") (version "4.8.16")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -41,8 +42,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0flrw5pq2mg2d39bh6dllndhpcfppjza6g70p4ry2wcx9y2flxqq")) "083h5gwc0nny9b557way5dsmj71g2bzkiai4bn30y5nkjwqbxg5v"))))
(patches (list (search-patch "mc-fix-ncurses-build.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("perl" ,perl))) ("perl" ,perl)))
@ -63,4 +63,4 @@ copying and moving, Midnight Commander also supports viewing the contents of
RPM package files and other archives and managing files on other computers via RPM package files and other archives and managing files on other computers via
FTP or FISH. It also includes a powerful text editor for opening text FTP or FISH. It also includes a powerful text editor for opening text
files.") files.")
(license gpl2))) (license gpl3+)))

View File

@ -1,47 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright 2014 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 miscfiles)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public miscfiles
(package
(name "miscfiles")
(version "1.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/" name "/" name "-"
version ".tar.gz"))
(sha256
(base32
"005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/miscfiles/")
(synopsis
"Data files for airport codes, zip codes, a dictionary, and more")
(description
"GNU Miscfiles is a collection of common data files. They include, for
example, country abbreviations, names and capital cities; currency
abbreviations and names; a Best Current Practices index; a map of the ASCII
character set; a list of three-letter airport codes; and an English word
list.")
(license gpl2+)))

View File

@ -72,7 +72,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd (define-public mpd
(package (package
(name "mpd") (name "mpd")
(version "0.19.12") (version "0.19.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -81,7 +81,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz")) "/mpd-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0xg8w5vn6xd0yfw55qj6wnav7v14nmr00s3d4w5gixbjrv3ycvvv")))) "1rwr1qb9an1qylddf35xwdasyfkxghd00c29saj04l1f2c2kilig"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ao" ,ao) (inputs `(("ao" ,ao)
("alsa-lib" ,alsa-lib) ("alsa-lib" ,alsa-lib)

View File

@ -5,6 +5,7 @@
;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; 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 Kei Yamashita <kei@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -78,6 +79,7 @@
#:use-module (gnu packages rdf) #:use-module (gnu packages rdf)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages rsync) #:use-module (gnu packages rsync)
#:use-module (gnu packages sdl)
#:use-module (gnu packages tcl) #:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive) #:use-module (gnu packages texlive)
@ -312,7 +314,10 @@ interface. It is implemented as a frontend to @code{klick}.")
(add-before 'configure 'prepare-configuration (add-before 'configure 'prepare-configuration
(lambda _ (lambda _
(substitute* "configure" (substitute* "configure"
(("SHELL=/bin/sh") "SHELL=sh")) (("SHELL=/bin/sh") "SHELL=sh")
;; When checking the fontforge version do not consider the
;; version string that's part of the directory.
(("head -n") "tail -n"))
(setenv "out" "www") (setenv "out" "www")
(setenv "conf" "www") (setenv "conf" "www")
#t)) #t))
@ -1068,14 +1073,14 @@ computer's keyboard.")
(define-public qtractor (define-public qtractor
(package (package
(name "qtractor") (name "qtractor")
(version "0.7.3") (version "0.7.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://downloads.sourceforge.net/qtractor/" (uri (string-append "http://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz")) "qtractor-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1vy4297myyqk0k58nzybgvgklckhngpdcnmp98k0rq98dirclbl7")))) "0drqzp1rbqmqiwdzc9n3307y8rm882fha3awy5qlvir5ma2mwl80"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments `(#:tests? #f)) ; no "check" target (arguments `(#:tests? #f)) ; no "check" target
(inputs (inputs
@ -1198,9 +1203,8 @@ MusicBrainz database.")
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/echonest/pyechonest") (home-page "https://github.com/echonest/pyechonest")
(synopsis "Python interface to The Echo Nest APIs") (synopsis "Python interface to The Echo Nest APIs")
(description "Pyechonest is an open source Python library for the Echo Nest (description "Pyechonest is a Python library for the Echo Nest API. With
API. With Pyechonest you have Python access to the entire set of API methods Pyechonest you have Python access to the entire set of API methods including:
including:
@enumerate @enumerate
@item artist - search for artists by name, description, or attribute, and get @item artist - search for artists by name, description, or attribute, and get
@ -1272,13 +1276,16 @@ websites such as Libre.fm.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'set-HOME (add-after 'unpack 'set-HOME
(lambda _ (setenv "HOME" (string-append (getcwd) "/tmp"))))))) (lambda _ (setenv "HOME" (string-append (getcwd) "/tmp"))))
(replace 'check
(lambda _ (zero? (system* "nosetests" "-v")))))))
(native-inputs (native-inputs
`(("python2-beautifulsoup4" ,python2-beautifulsoup4) `(("python2-beautifulsoup4" ,python2-beautifulsoup4)
("python2-flask" ,python2-flask) ("python2-flask" ,python2-flask)
("python2-setuptools" ,python2-setuptools) ("python2-setuptools" ,python2-setuptools)
("python2-mock" ,python2-mock) ("python2-mock" ,python2-mock)
("python2-mpd2" ,python2-mpd2) ("python2-mpd2" ,python2-mpd2)
("python2-nose" ,python2-nose)
("python2-pathlib" ,python2-pathlib) ("python2-pathlib" ,python2-pathlib)
("python2-pyxdg" ,python2-pyxdg) ("python2-pyxdg" ,python2-pyxdg)
("python2-pyechonest" ,python2-pyechonest) ("python2-pyechonest" ,python2-pyechonest)
@ -1301,3 +1308,33 @@ once and for all. It catalogs your collection, automatically improving its
metadata as it goes using the MusicBrainz database. Then it provides a variety metadata as it goes using the MusicBrainz database. Then it provides a variety
of tools for manipulating and accessing your music.") of tools for manipulating and accessing your music.")
(license license:expat))) (license license:expat)))
(define-public milkytracker
(package
(name "milkytracker")
(version "0.90.86")
(source (origin
(method url-fetch)
(uri (string-append "http://milkytracker.org/files/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1v9vp8vi24lkagfpr92c128whvakwgrm9pq2zf6ijpl5sh7014zb"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CXXFLAGS=-lasound")))
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("sdl" ,sdl)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(synopsis "Music tracker for working with .MOD/.XM module files")
(description "MilkyTracker is a music application for creating .MOD and .XM
module files. It attempts to recreate the module replay and user experience of
the popular DOS program Fasttracker II, with special playback modes available
for improved Amiga ProTracker 2/3 compatibility.")
(home-page "http://milkytracker.org/")
;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
(license (list license:bsd-3 license:gpl3+))))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,7 +27,10 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages ncurses)) #:use-module (gnu packages ncurses)
#:use-module (gnu packages check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages compression))
(define-public miredo (define-public miredo
(package (package
@ -210,3 +214,41 @@ bandwidth usage in real time. It visualizes the in- and outgoing traffic using
two graphs and provides additional info like total amount of transfered data two graphs and provides additional info like total amount of transfered data
and min/max network usage.") and min/max network usage.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public iodine
(package
(name "iodine")
(version "0.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://code.kryo.se/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
"0gh17kcxxi37k65zm4gqsvbk3aw7yphcs3c02pn1c4s2y6n40axd"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'check 'delete-failing-tests
;; Avoid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802105
(lambda _
(substitute* "tests/common.c"
(("tcase_add_test\\(tc, \
test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
"")))))
#:make-flags (list "CC=gcc"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:test-target "test"))
(inputs `(("zlib" ,zlib)))
(native-inputs `(("check" ,check)
("pkg-config" ,pkg-config)))
(home-page "http://code.kryo.se/iodine/")
(synopsis "Tunnel IPv4 data through a DNS server")
(description "Iodine tunnels IPv4 data through a DNS server. This
can be useful in different situations where internet access is firewalled, but
DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream
and up to 1 Mbit/s downstream.")
;; src/md5.[ch] is released under the zlib license
(license (list license:isc license:zlib))))

View File

@ -20,7 +20,6 @@
(define-module (gnu packages openstack) (define-module (gnu packages openstack)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix download) #:use-module (guix download)
#:use-module ((guix licenses) #:use-module ((guix licenses)
@ -235,48 +234,6 @@ tested on Python version 3.2, 2.7 and 2.6.")
(define-public python2-os-testr (define-public python2-os-testr
(package-with-python2 python-os-testr)) (package-with-python2 python-os-testr))
(define-public python-pbr
(package
(name "python-pbr")
(version "1.8.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/p/pbr/pbr-"
version
".tar.gz"))
(sha256
(base32
"0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;; Most tests seem to use the Internet.
(propagated-inputs
`(("python-testrepository" ,python-testrepository)
("git" ,git))) ;; pbr actually uses the "git" binary.
(inputs
`(("python-fixtures" ,python-fixtures)
("python-mimeparse" ,python-mimeparse)
("python-mock" ,python-mock)
("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
("python-sphinx" ,python-sphinx)
("python-testrepository" ,python-testrepository)
("python-testresources" ,python-testresources)
("python-testscenarios" ,python-testscenarios)
("python-testtools" ,python-testtools)
("python-virtualenv" ,python-virtualenv)))
(home-page "https://launchpad.net/pbr")
(synopsis "Change the default behavior of Pythons setuptools")
(description
"Python Build Reasonableness (PBR) is a library that injects some useful
and sensible default behaviors into your setuptools run.")
(license asl2.0)))
(define-public python2-pbr
(package-with-python2 python-pbr))
(define-public python-requests-mock (define-public python-requests-mock
(package (package
(name "python-requests-mock") (name "python-requests-mock")

View File

@ -60,17 +60,17 @@
arch "-linux" arch "-linux"
"/20131110/guile-2.0.9.tar.xz"))) "/20131110/guile-2.0.9.tar.xz")))
(define-public guix-0.9.0 (define-public guix-0.10.0
(package (package
(name "guix") (name "guix")
(version "0.9.0") (version "0.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0h573z2br0bf43sxyzia9xlm03n3y43zg1snds3c2piq2m6kabrn")))) "0d4afwy7bpqi4k4bzvwc4ga4shwssis1nrvdw53qjyg9bw1a8lbn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list `(#:configure-flags (list
@ -140,9 +140,16 @@
(path (string-append (path (string-append
json "/share/guile/site/2.0:" json "/share/guile/site/2.0:"
gnutls "/share/guile/site/2.0"))) gnutls "/share/guile/site/2.0")))
;; Ignore user settings so that a bogus
;; GUILE_LOAD_COMPILED_PATH does not prevent use of
;; 'guix', notably when it contains entries pointing to
;; incompatible .go files as reported at
;; <https://lists.gnu.org/archive/html/guix-devel/2016-03/msg01261.html>.
(wrap-program (string-append out "/bin/guix") (wrap-program (string-append out "/bin/guix")
`("GUILE_LOAD_PATH" ":" prefix (,path)) `("GUILE_LOAD_PATH" ":" = (,path))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,path))) `("GUILE_LOAD_COMPILED_PATH" ":" = (,path)))
#t)))))) #t))))))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("emacs" ,emacs-no-x))) ;for guix.el ("emacs" ,emacs-no-x))) ;for guix.el
@ -193,11 +200,11 @@ the Nix package manager.")
(define guix-devel (define guix-devel
;; Development version of Guix. ;; Development version of Guix.
;; ;;
;; Note: use a short commit id; when using the long one, the limit on socket ;; Note: use a very short commit id; with a longer one, the limit on
;; file names is exceeded while running the tests. ;; hash-bang lines would be exceeded while running the tests.
(let ((commit "71e2065a38cf2641b7eb8c557b0f043f5a42a649")) (let ((commit "761139354798303c605964b896c250a01486b00a"))
(package (inherit guix-0.9.0) (package (inherit guix-0.10.0)
(version (string-append "0.9.0." (string-take commit 7))) (version (string-append "0.10.0-0." (string-take commit 4)))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -205,10 +212,10 @@ the Nix package manager.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"0wrrywfdc27yxjns55qdz5si49c8zcb9q5557g2kx48dbm7p0dzw")) "1wvy9kms3v6k7cybw6489mqk161lv8d03qgmmxbmdgiwjmjxbzbn"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix-0.9.0) (substitute-keyword-arguments (package-arguments guix-0.10.0)
((#:configure-flags flags) ((#:configure-flags flags)
;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a
;; reference to Graphviz, whose closure is pretty big (too big for ;; reference to Graphviz, whose closure is pretty big (too big for
@ -232,7 +239,7 @@ the Nix package manager.")
("texinfo" ,texinfo) ("texinfo" ,texinfo)
("graphviz" ,graphviz) ("graphviz" ,graphviz)
("help2man" ,help2man) ("help2man" ,help2man)
,@(package-native-inputs guix-0.9.0)))))) ,@(package-native-inputs guix-0.10.0))))))
(define-public guix guix-devel) (define-public guix guix-devel)
@ -389,13 +396,13 @@ transactions from C or Python.")
(define-public diffoscope (define-public diffoscope
(package (package
(name "diffoscope") (name "diffoscope")
(version "49") (version "51")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"1mf6b7j82ckn90ggz6bp6c2jydz87xj8r8jmfl4hg7jcmf7dxmim")))) "18rn6rrwh586228vnaf1nq0wayh19zbvfc0qmnbys6ln2pv2v007"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases

View File

@ -0,0 +1,360 @@
Fix build with ffmpeg-3, based on upstream revisions r35548 and r35549 by LRN
and r36975 by Christian Grothoff, and backported to libextractor-1.3 by
Mark H Weaver <mhw@netris.org>
--- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500
+++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 23:38:46.429041081 -0400
@@ -59,6 +59,12 @@
#include <ffmpeg/swscale.h>
#endif
+#ifdef PIX_FMT_RGB24
+#define PIX_OUTPUT_FORMAT PIX_FMT_RGB24
+#else
+#define PIX_OUTPUT_FORMAT AV_PIX_FMT_RGB24
+#endif
+
/**
* Set to 1 to enable debug output.
*/
@@ -153,7 +159,7 @@
static size_t
create_thumbnail (int src_width, int src_height,
int src_stride[],
- enum PixelFormat src_pixfmt,
+ enum AVPixelFormat src_pixfmt,
const uint8_t * const src_data[],
int dst_width, int dst_height,
uint8_t **output_data,
@@ -189,7 +195,8 @@
if (NULL ==
(scaler_ctx =
sws_getContext (src_width, src_height, src_pixfmt,
- dst_width, dst_height, PIX_FMT_RGB24,
+ dst_width, dst_height,
+ PIX_OUTPUT_FORMAT,
SWS_BILINEAR, NULL, NULL, NULL)))
{
#if DEBUG
@@ -199,7 +206,12 @@
return 0;
}
- if (NULL == (dst_frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ dst_frame = av_frame_alloc ();
+#else
+ dst_frame = avcodec_alloc_frame();
+#endif
+ if (NULL == dst_frame)
{
#if DEBUG
fprintf (stderr,
@@ -209,18 +221,24 @@
return 0;
}
if (NULL == (dst_buffer =
- av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height))))
+ av_malloc (avpicture_get_size (PIX_OUTPUT_FORMAT,
+ dst_width, dst_height))))
{
#if DEBUG
fprintf (stderr,
"Failed to allocate the destination image buffer\n");
#endif
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
avpicture_fill ((AVPicture *) dst_frame, dst_buffer,
- PIX_FMT_RGB24, dst_width, dst_height);
+ PIX_OUTPUT_FORMAT,
+ dst_width, dst_height);
sws_scale (scaler_ctx,
src_data,
src_stride,
@@ -236,7 +254,11 @@
"Failed to allocate the encoder output buffer\n");
#endif
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
@@ -249,13 +271,17 @@
#endif
av_free (encoder_output_buffer);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
encoder_codec_ctx->width = dst_width;
encoder_codec_ctx->height = dst_height;
- encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24;
+ encoder_codec_ctx->pix_fmt = PIX_OUTPUT_FORMAT;
opts = NULL;
if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0)
{
@@ -263,10 +289,14 @@
fprintf (stderr,
"Failed to open the encoder\n");
#endif
- av_free (encoder_codec_ctx);
+ avcodec_free_context (&encoder_codec_ctx);
av_free (encoder_output_buffer);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
@@ -295,9 +325,13 @@
cleanup:
av_dict_free (&opts);
avcodec_close (encoder_codec_ctx);
- av_free (encoder_codec_ctx);
+ avcodec_free_context (&encoder_codec_ctx);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
*output_data = encoder_output_buffer;
@@ -406,18 +440,23 @@
fprintf (stderr,
"Failed to open image codec\n");
#endif
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
av_dict_free (&opts);
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,
"Failed to allocate frame\n");
#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
@@ -441,9 +480,13 @@
fprintf (stderr,
"Failed to decode a complete frame\n");
#endif
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height,
@@ -467,9 +510,13 @@
err);
av_free (encoded_thumbnail);
}
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
}
@@ -563,7 +610,12 @@
return;
}
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,
@@ -616,7 +668,11 @@
fprintf (stderr,
"Failed to decode a complete frame\n");
#endif
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
avformat_close_input (&format_ctx);
av_free (io_ctx);
@@ -643,7 +699,11 @@
err);
av_free (encoded_thumbnail);
}
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
avformat_close_input (&format_ctx);
av_free (io_ctx);
--- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500
+++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 23:39:41.377720710 -0400
@@ -296,8 +296,13 @@
/** Initialize one audio frame for reading from the input file */
static int init_input_frame(AVFrame **frame)
{
- if (!(*frame = avcodec_alloc_frame())) {
- #if DEBUG
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ *frame = av_frame_alloc ();
+#else
+ *frame = avcodec_alloc_frame();
+#endif
+ if (NULL == *frame) {
+#if DEBUG
fprintf(stderr, "Could not allocate input frame\n");
#endif
return AVERROR(ENOMEM);
@@ -655,7 +660,11 @@
av_freep(&converted_input_samples[0]);
free(converted_input_samples);
}
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&input_frame);
+#else
avcodec_free_frame(&input_frame);
+#endif
return ret;
}
@@ -671,10 +680,15 @@
int error;
/** Create a new frame to store the audio samples. */
- if (!(*frame = avcodec_alloc_frame())) {
- #if DEBUG
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ *frame = av_frame_alloc ();
+#else
+ *frame = avcodec_alloc_frame();
+#endif
+ if (NULL == *frame) {
+#if DEBUG
fprintf(stderr, "Could not allocate output frame\n");
- #endif
+#endif
return AVERROR_EXIT;
}
@@ -699,10 +713,14 @@
* sure that the audio frame can hold as many samples as specified.
*/
if ((error = av_frame_get_buffer(*frame, 0)) < 0) {
- #if DEBUG
+#if DEBUG
fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error));
- #endif
+#endif
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (frame);
+#else
avcodec_free_frame(frame);
+#endif
return error;
}
@@ -780,20 +798,32 @@
* The samples are stored in the frame temporarily.
*/
if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) {
- #if DEBUG
+#if DEBUG
fprintf(stderr, "Could not read data from FIFO\n");
- #endif
+#endif
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return AVERROR_EXIT;
}
/** Encode one frame worth of audio samples. */
if (encode_audio_frame(output_frame, output_format_context,
output_codec_context, &data_written)) {
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return AVERROR_EXIT;
}
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return 0;
}
/** Write the trailer of the output file container. */
@@ -907,7 +937,12 @@
return;
}
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,

View File

@ -1,37 +0,0 @@
Patch cherry-picked from resolution of
http://www.midnight-commander.org/ticket/3114
--- a/lib/tty/key.c (revision 0ed4a91d7df4e50512defd2e0734ecab7c9da07f)
+++ b/lib/tty/key.c (revision d870aedad1907773f8586fe818a89e6b5178b849)
@@ -1947,4 +1947,5 @@
{
int c;
+ int flag = 0; /* Return value from select */
#ifdef HAVE_LIBGPM
static struct Gpm_Event ev; /* Mouse event */
@@ -1979,5 +1980,4 @@
{
int nfd;
- static int flag = 0; /* Return value from select */
fd_set select_set;
--- a/lib/tty/tty-ncurses.c (revision bb65b467900ea9eb1f7867c059fd26fac86c747c)
+++ b/lib/tty/tty-ncurses.c (revision d870aedad1907773f8586fe818a89e6b5178b849)
@@ -50,4 +50,5 @@
#include "tty.h"
#include "color-internal.h"
+#include "key.h"
#include "mouse.h"
#include "win.h"
@@ -531,4 +532,5 @@
{
int res;
+ unsigned char str[UTF8_CHAR_LEN + 1];
res = g_unichar_to_utf8 (c, (char *) str);
@@ -541,5 +543,4 @@
else
{
- unsigned char str[UTF8_CHAR_LEN + 1];
const char *s;

View File

@ -1,17 +0,0 @@
This patch removes the explicit reference to the 'perl' binary,
such that OpenSSL does not retain a reference to Perl.
The 'c_rehash' program is seldom used, but it is used nonetheless
to create symbolic links to certificates, for instance in the 'nss-certs'
package.
--- openssl-1.0.2d/tools/c_rehash 2015-09-09 18:36:07.313316482 +0200
+++ openssl-1.0.2d/tools/c_rehash 2015-09-09 18:36:28.965458458 +0200
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+ & eval 'exec perl -wS "$0" $argv:q'
+ if 0;
# Perl c_rehash script, scan all files in a directory
# and add symbolic links to their hash values.

View File

@ -1,17 +0,0 @@
Copied from Fedora.
https://bugzilla.redhat.com/show_bug.cgi?id=1189303
http://pkgs.fedoraproject.org/cgit/webkitgtk.git/commit/?id=e689e45d0cc2c50484e69d20371ba607af7326f3
diff -up webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp
--- webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string 2015-09-14 09:25:43.004200172 +0200
+++ webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp 2015-09-14 09:25:57.852082368 +0200
@@ -71,7 +71,7 @@ int SQLiteStatement::prepare()
// this lets SQLite avoid an extra string copy.
size_t lengthIncludingNullCharacter = query.length() + 1;
- const char* tail;
+ const char* tail = nullptr;
int error = sqlite3_prepare_v2(m_database.sqlite3Handle(), query.data(), lengthIncludingNullCharacter, &m_statement, &tail);
if (error != SQLITE_OK)

View File

@ -1,29 +0,0 @@
Wicd 1.7.3 fails to instantiate template lines that have several
variable references. For instance, the line:
wep_key$_KEY_INDEX=$_KEY
which is found in in the 'wep-hex' template, expands to these two
lines:
wep_key0=$_KEY
wep_key0=123456789ab
This patch fixes that by only emitting the fully substituted line.
Patch by Ludovic Courtès <ludo@gnu.org>.
--- a/wicd/misc.py 2012-11-17 00:07:08 +0000
+++ b/wicd/misc.py 2015-05-09 11:22:37 +0000
@@ -321,11 +321,11 @@ def ParseEncryption(network):
rep_val = '0'
if rep_val:
line = line.replace("$_%s" % cur_val, str(rep_val))
- config_file = ''.join([config_file, line])
else:
print "Ignoring template line: '%s'" % line
else:
print "Weird parsing error occurred"
+ config_file = ''.join([config_file, line])
else: # Just a regular entry.
config_file = ''.join([config_file, line])

View File

@ -0,0 +1,38 @@
Add a template for WPA2-TTLS, which is notably used by Eduroam.
--- a/encryption/templates/active
+++ b/encryption/templates/active
@@ -4,6 +4,7 @@ wpa-psk
wpa-psk-hex
wpa2-leap
wpa2-peap
+wpa2-ttls
wep-hex
wep-passphrase
wep-shared
diff --git a/encryption/templates/wpa2-ttls b/encryption/templates/wpa2-ttls
new file mode 100644
index 0000000..4f66a1e
--- /dev/null
+++ b/encryption/templates/wpa2-ttls
@@ -0,0 +1,20 @@
+name = WPA2-TTLS (used notably by Eduroam)
+author = various contributors
+version = 1
+require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
+protected password *Password
+-----
+ctrl_interface=/var/run/wpa_supplicant
+network={
+ ssid="$_ESSID"
+ scan_ssid=$_SCAN
+ proto=WPA2
+ key_mgmt=WPA-EAP
+ group=CCMP TKIP
+ eap=TTLS
+ identity="$_IDENTITY"
+ password="$_PASSWORD"
+ anonymous_identity="$_ANONYMOUS_IDENTITY"
+ ca_cert="$_CA_CERT"
+ phase2="auth=PAP"
+}

View File

@ -38,7 +38,6 @@
(define-public perl (define-public perl
;; Yeah, Perl... It is required early in the bootstrap process by Linux. ;; Yeah, Perl... It is required early in the bootstrap process by Linux.
(package (package
(replacement perl-fixed)
(name "perl") (name "perl")
(version "5.22.1") (version "5.22.1")
(source (origin (source (origin
@ -54,7 +53,8 @@
"perl-source-date-epoch.patch" "perl-source-date-epoch.patch"
"perl-deterministic-ordering.patch" "perl-deterministic-ordering.patch"
"perl-no-build-time.patch" "perl-no-build-time.patch"
"perl-CVE-2015-8607.patch"))))) "perl-CVE-2015-8607.patch"
"perl-CVE-2016-2381.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -116,28 +116,6 @@
(home-page "http://www.perl.org/") (home-page "http://www.perl.org/")
(license gpl1+))) ; or "Artistic" (license gpl1+))) ; or "Artistic"
(define perl-fixed
(package
(inherit perl)
(replacement #f)
(source
(let ((name "perl") (version "5.22.1"))
(origin
(method url-fetch)
(uri (string-append "http://www.cpan.org/src/5.0/perl-"
version ".tar.gz"))
(sha256
(base32
"09wg24w5syyafyv87l6z8pxwz4bjgcdj996bx5844k6m9445sirb"))
(patches (map search-patch
'("perl-no-sys-dirs.patch"
"perl-autosplit-default-time.patch"
"perl-source-date-epoch.patch"
"perl-deterministic-ordering.patch"
"perl-no-build-time.patch"
"perl-CVE-2015-8607.patch"
"perl-CVE-2016-2381.patch"))))))))
(define-public perl-algorithm-c3 (define-public perl-algorithm-c3
(package (package
(name "perl-algorithm-c3") (name "perl-algorithm-c3")

View File

@ -16,7 +16,7 @@
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -69,6 +69,7 @@
#:use-module (gnu packages texlive) #:use-module (gnu packages texlive)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
@ -701,7 +702,7 @@ concepts.")
(define-public python-lockfile (define-public python-lockfile
(package (package
(name "python-lockfile") (name "python-lockfile")
(version "0.9.1") (version "0.12.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -709,18 +710,25 @@ concepts.")
"lockfile-" version ".tar.gz")) "lockfile-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0iwif7i84gwpvrnpv4brshdk8j6l77smvknm8k3bg77mj6f5ini3")))) "16gpx5hm73ah5n1079ng0vy381hl802v606npkx4x8nb0gg05vba"))))
(build-system python-build-system) (build-system python-build-system)
(arguments '(#:test-target "check")) (arguments '(#:test-target "check"))
(native-inputs
`(("python-pbr" ,python-pbr)))
(home-page "http://code.google.com/p/pylockfile/") (home-page "http://code.google.com/p/pylockfile/")
(synopsis "Platform-independent file locking module") (synopsis "Platform-independent file locking module")
(description (description
"The lockfile package exports a LockFile class which provides a simple "The lockfile package exports a LockFile class which provides a simple
API for locking files.") API for locking files.")
(license license:expat))) (license license:expat)
(properties `((python2-variant . ,(delay python2-lockfile))))))
(define-public python2-lockfile (define-public python2-lockfile
(package-with-python2 python-lockfile)) (let ((base (package-with-python2 (strip-python2-variant python-lockfile))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public python-mock (define-public python-mock
(package (package
@ -967,20 +975,14 @@ datetime module, available in Python 2.3+.")
(define-public python-pandas (define-public python-pandas
(package (package
(name "python-pandas") (name "python-pandas")
(version "0.16.2") (version "0.18.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pandas" version)) (uri (pypi-uri "pandas" version))
(sha256 (sha256
(base32 "10agmrkps8bi5948vwpipfxds5kj1d076m9i0nhaxwqiw7gm6670")))) (base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9"))))
(build-system python-build-system) (build-system python-build-system)
(arguments
`(;; Three tests fail:
;; - test_read_google
;; - test_read_yahoo
;; - test_month_range_union_tz_dateutil
#:tests? #f))
(propagated-inputs (propagated-inputs
`(("python-numpy" ,python-numpy) `(("python-numpy" ,python-numpy)
("python-pytz" ,python-pytz) ("python-pytz" ,python-pytz)
@ -1519,7 +1521,7 @@ code introspection, and logging.")
(define-public python-pytest (define-public python-pytest
(package (package
(name "python-pytest") (name "python-pytest")
(version "2.6.1") (version "2.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1528,7 +1530,7 @@ code introspection, and logging.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr")) "1z4yi986f9n0p8qmzmn21m21m8j1x78hk3505f89baqm6pdw7afm"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; One of the tests involves the /usr directory, so it fails. ;; One of the tests involves the /usr directory, so it fails.
@ -1862,6 +1864,48 @@ and sensible default behaviors into your setuptools run.")
(define-public python2-pbr-0.11 (define-public python2-pbr-0.11
(package-with-python2 python-pbr-0.11)) (package-with-python2 python-pbr-0.11))
(define-public python-pbr
(package
(name "python-pbr")
(version "1.8.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/p/pbr/pbr-"
version
".tar.gz"))
(sha256
(base32
"0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;; Most tests seem to use the Internet.
(propagated-inputs
`(("python-testrepository" ,python-testrepository)
("git" ,git))) ;; pbr actually uses the "git" binary.
(inputs
`(("python-fixtures" ,python-fixtures)
("python-mimeparse" ,python-mimeparse)
("python-mock" ,python-mock)
("python-setuptools" ,python-setuptools)
("python-six" ,python-six)
("python-sphinx" ,python-sphinx)
("python-testrepository" ,python-testrepository)
("python-testresources" ,python-testresources)
("python-testscenarios" ,python-testscenarios)
("python-testtools" ,python-testtools)
("python-virtualenv" ,python-virtualenv)))
(home-page "https://launchpad.net/pbr")
(synopsis "Change the default behavior of Pythons setuptools")
(description
"Python Build Reasonableness (PBR) is a library that injects some useful
and sensible default behaviors into your setuptools run.")
(license asl2.0)))
(define-public python2-pbr
(package-with-python2 python-pbr))
(define-public python-fixtures (define-public python-fixtures
(package (package
(name "python-fixtures") (name "python-fixtures")
@ -5376,7 +5420,7 @@ should be stored on various operating systems.")
(define-public python-llfuse (define-public python-llfuse
(package (package
(name "python-llfuse") (name "python-llfuse")
(version "0.41") (version "1.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -5384,7 +5428,7 @@ should be stored on various operating systems.")
"llfuse-" version ".tar.bz2")) "llfuse-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0yzy8ixpmxk00kdq6lx5vvwbs0n6s59qnja5q0js2ahbqyxiz2hb")))) "1li7q04ljrvwharw4fblcbfhvk6s0l3lnv8yqb4c22lcgbkiqlps"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("fuse" ,fuse) `(("fuse" ,fuse)
@ -5396,34 +5440,54 @@ should be stored on various operating systems.")
(description (description
"Python-LLFUSE is a set of Python bindings for the low level FUSE API.") "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
(home-page "https://bitbucket.org/nikratio/python-llfuse/") (home-page "https://bitbucket.org/nikratio/python-llfuse/")
;; Python-LLFUSE includes underscore.js, which is MIT (expat) licensed. (license lgpl2.0+)
;; The rest of the package is licensed under LGPL2.0 or later. (properties `((python2-variant . ,(delay python2-llfuse))))))
(license (list license:expat lgpl2.0+))))
(define-public python2-llfuse (define-public python2-llfuse
(package-with-python2 python-llfuse)) (package (inherit (package-with-python2
(strip-python2-variant python-llfuse)))
(propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
;; For attic-0.16
(define-public python-llfuse-0.41
(package (inherit python-llfuse)
(version "0.41.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://bitbucket.org/nikratio/python-llfuse/downloads/"
"llfuse-" version ".tar.bz2"))
(sha256
(base32
"1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
;; licensed. The rest of the package is licensed under LGPL2.0 or later.
(license (list license:expat lgpl2.0+))))
(define-public python-msgpack (define-public python-msgpack
(package (package
(name "python-msgpack") (name "python-msgpack")
(version "0.4.6") (version "0.4.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "msgpack-python" version))
"https://pypi.python.org/packages/source/m/"
"msgpack-python/msgpack-python-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1527c76b6fn4zzkgfq5xvhh7x9a9686g7fjiz717rw5vklf5ik5z")))) "0syd7bs83qs9qmxw540jbgsildbqk4yb57fmrlns1021llli402y"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(synopsis "MessagePack (de)serializer") (synopsis "MessagePack (de)serializer")
(description "MessagePack is a fast, compact binary serialization format, (description "MessagePack is a fast, compact binary serialization format,
suitable for similar data to JSON. This package provides CPython bindings for suitable for similar data to JSON. This package provides CPython bindings for
reading and writing MessagePack data.") reading and writing MessagePack data.")
(home-page "https://pypi.python.org/pypi/msgpack-python/") (home-page "https://pypi.python.org/pypi/msgpack-python/")
(license asl2.0))) (license asl2.0)
(properties `((python2-variant . ,(delay python2-msgpack))))))
(define-public python2-msgpack
(package (inherit (package-with-python2
(strip-python2-variant python-msgpack)))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))))
(define-public python2-msgpack (define-public python2-msgpack
(package-with-python2 python-msgpack)) (package-with-python2 python-msgpack))
@ -5760,7 +5824,7 @@ responses, rather than doing any computation.")
(define-public python-cryptography-vectors (define-public python-cryptography-vectors
(package (package
(name "python-cryptography-vectors") (name "python-cryptography-vectors")
(version "1.2.3") (version "1.3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5769,7 +5833,7 @@ responses, rather than doing any computation.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0shawgpax79gvjrj0a313sll9gaqys7q1hxngn6j4k24lmz7bwki")))) "1144l3ypz3bngxd59lb4y74xa401w92lhvvjgxzglmvbh8wzkcbb"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-setuptools" ,python-setuptools))) `(("python-setuptools" ,python-setuptools)))
@ -5786,14 +5850,14 @@ responses, rather than doing any computation.")
(define-public python-cryptography (define-public python-cryptography
(package (package
(name "python-cryptography") (name "python-cryptography")
(version "1.2.3") (version "1.3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cryptography" version)) (uri (pypi-uri "cryptography" version))
(sha256 (sha256
(base32 (base32
"0kj511z4g21fhcr649pyzpl0zzkkc7hsgxxjys6z8wwfvmvirccf")))) "1qjkrpfvxcyd0kal3zpm5y7f9p3y77ixn9jw8f4dqpgrw1sn3cxl"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("openssl" ,openssl))) `(("openssl" ,openssl)))
@ -5837,7 +5901,7 @@ message digests and key derivation functions.")
(define-public python-pyopenssl (define-public python-pyopenssl
(package (package
(name "python-pyopenssl") (name "python-pyopenssl")
(version "0.15.1") (version "16.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5845,29 +5909,8 @@ message digests and key derivation functions.")
"pyOpenSSL/pyOpenSSL-" version ".tar.gz")) "pyOpenSSL/pyOpenSSL-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0wnnq15rhj7fhdcd8ycwiw6r6g3w9f9lcy6cigg8226vsrq618ph")))) "0zfijaxlq4vgi6jz0d4i5xq9ygqnyps6br7lmigjhqnh8gp10g9n"))))
(build-system python-build-system) (build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "OpenSSL/test/test_ssl.py"
(("client\\.connect\\(\\('verisign\\.com', 443\\)\\)")
"return True")
;; FIXME: disable broken test
(("test_set_tmp_ecdh") "disabled__set_tmp_ecdh"))
(substitute* "OpenSSL/test/test_crypto.py"
(("command = b\"openssl \"")
(string-append "command = b\""
(assoc-ref inputs "openssl")
"/bin/openssl" " \""))
;; FIXME: disable four broken tests
(("test_der") "disabled__der")
(("test_digest") "disabled__digest")
(("test_get_extension") "disabled__get_extension")
(("test_extension_count") "disabled__extension_count"))
#t)))))
(propagated-inputs (propagated-inputs
`(("python-cryptography" ,python-cryptography) `(("python-cryptography" ,python-cryptography)
("python-six" ,python-six))) ("python-six" ,python-six)))
@ -6025,7 +6068,10 @@ Python's @code{ctypes} foreign function interface (FFI).")
#t)))))) #t))))))
(inputs `(("file" ,file))) (inputs `(("file" ,file)))
(self-native-input? #f) (self-native-input? #f)
(synopsis "Python bindings to the libmagic file type guesser"))) (synopsis "Python bindings to the libmagic file type guesser. Note that
this module and the python-magic module both provide a \"magic.py\" file;
these two modules, which are different and were developed separately, both
serve the same purpose: provide Python bindings for libmagic.")))
(define-public python2-file (define-public python2-file
(package-with-python2 python-file)) (package-with-python2 python-file))
@ -6736,13 +6782,13 @@ WebSocket usage in Python programs.")
(define-public python-atomicwrites (define-public python-atomicwrites
(package (package
(name "python-atomicwrites") (name "python-atomicwrites")
(version "0.1.9") (version "1.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "atomicwrites" version)) (uri (pypi-uri "atomicwrites" version))
(sha256 (sha256
(base32 (base32
"08s05h211r07vs66r4din3swrbzb344vli041fihpg34q3lcxpvw")))) "019fa4771q7fb1167yfbh6msdzcqini6v7i59rmf72mzdjd7x5qv"))))
(build-system python-build-system) (build-system python-build-system)
(synopsis "Atomic file writes in Python") (synopsis "Atomic file writes in Python")
(description "Library for atomic file writes using platform dependent tools (description "Library for atomic file writes using platform dependent tools
@ -7200,9 +7246,9 @@ authenticated session objects providing things like keep-alive.")
3.2.3 for use with older versions of Python and PyPy.") 3.2.3 for use with older versions of Python and PyPy.")
(license license:expat))) (license license:expat)))
(define-public python-futures (define-public python2-futures
(package (package
(name "python-futures") (name "python2-futures")
(version "3.0.3") (version "3.0.3")
(source (source
(origin (origin
@ -7212,8 +7258,9 @@ authenticated session objects providing things like keep-alive.")
(base32 (base32
"1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig")))) "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig"))))
(build-system python-build-system) (build-system python-build-system)
(arguments `(#:python ,python-2))
(native-inputs (native-inputs
`(("python-setuptools" ,python-setuptools))) `(("python2-setuptools" ,python2-setuptools)))
(home-page "https://github.com/agronholm/pythonfutures") (home-page "https://github.com/agronholm/pythonfutures")
(synopsis (synopsis
"Backport of the concurrent.futures package from Python 3.2") "Backport of the concurrent.futures package from Python 3.2")
@ -7223,9 +7270,6 @@ asynchronously executing callables. This package backports the
concurrent.futures package from Python 3.2") concurrent.futures package from Python 3.2")
(license bsd-3))) (license bsd-3)))
(define-public python2-futures
(package-with-python2 python-futures))
(define-public python-urllib3 (define-public python-urllib3
(package (package
(name "python-urllib3") (name "python-urllib3")
@ -8459,3 +8503,103 @@ is made as zipfile like as possible.")
(define-public python2-rarfile (define-public python2-rarfile
(package-with-python2 python-rarfile)) (package-with-python2 python-rarfile))
(define-public python-magic
(package
(name "python-magic")
(version "0.4.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ahupp/python-magic/archive/"
version ".tar.gz"))
(sha256
(base32
"17bgy92i7sb021f2s4mw1dcvpm6p1mi9jihridwy1pyn8mzvpjgk"))
(file-name (string-append name "-" version "-checkout"))))
(build-system python-build-system)
(arguments
;; The tests are unreliable, so don't run them. The tests fail
;; under Python3 because they were written for Python2 and
;; contain import statements that do not work in Python3. One of
;; the tests fails under Python2 because its assertions are
;; overly stringent; it relies on comparing output strings which
;; are brittle and can change depending on the version of
;; libmagic being used and the system on which the test is
;; running. In my case, under GuixSD 0.10.0, only one test
;; failed, and it seems to have failed only because the version
;; of libmagic that is packaged in Guix outputs a slightly
;; different (but not wrong) string than the one that the test
;; expected.
'(#:tests? #f
#:phases (modify-phases %standard-phases
;; Replace a specific method call with a hard-coded
;; path to the necessary libmagic.so file in the
;; store. If we don't do this, then the method call
;; will fail to find the libmagic.so file, which in
;; turn will cause any application using
;; python-magic to fail.
(add-before 'build 'hard-code-path-to-libmagic
(lambda* (#:key inputs #:allow-other-keys)
(let ((file (assoc-ref inputs "file")))
(substitute* "magic.py"
(("ctypes.util.find_library\\('magic'\\)")
(string-append "'" file "/lib/libmagic.so'")))
#t))))))
(native-inputs
`(("python-setuptools" ,python-setuptools)))
(inputs
;; python-magic needs to be able to find libmagic.so.
`(("file" ,file)))
(home-page "https://github.com/ahupp/python-magic")
(synopsis "File type identification using libmagic")
(description
"This module uses ctypes to access the libmagic file type
identification library. It makes use of the local magic database and
supports both textual and MIME-type output. Note that this module and
the python-file module both provide a \"magic.py\" file; these two
modules, which are different and were developed separately, both serve
the same purpose: to provide Python bindings for libmagic.")
(license license:expat)))
(define-public python2-magic
(package-with-python2 python-magic))
(define-public python2-s3cmd
(package
(name "python2-s3cmd")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/s3tools/"
"s3cmd-" version ".tar.gz"))
(sha256
(base32
"0ki1rzhm5icvi9ry5jswi4b22yqwyj0d2wsqsgilwx6qhi7pjxa6"))))
(build-system python-build-system)
(arguments
;; s3cmd is written for python2 only and contains no tests.
`(#:python ,python-2
#:tests? #f))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(inputs
`(("python2-dateutil" ,python2-dateutil)
;; The python-file package also provides a magic.py module.
;; This is an unfortunate state of affairs; however, s3cmd
;; fails to install if it cannot find specifically the
;; python-magic package. Thus we include it, instead of using
;; python-file. Ironically, s3cmd sometimes works better
;; without libmagic bindings at all:
;; https://github.com/s3tools/s3cmd/issues/198
("python2-magic" ,python2-magic)))
(home-page "http://s3tools.org/s3cmd")
(synopsis "Command line tool for S3-compatible storage services")
(description
"S3cmd is a command line tool for uploading, retrieving and managing data
in storage services that are compatible with the Amazon Simple Storage
Service (S3) protocol, including S3 itself. It supports rsync-like backup,
GnuPG encryption, and more. It also supports management of Amazon's
CloudFront content delivery network.")
(license gpl2+)))

View File

@ -121,7 +121,7 @@ a focus on simplicity and productivity.")
(define-public ruby-2.1 (define-public ruby-2.1
(package (inherit ruby) (package (inherit ruby)
(version "2.1.8") (version "2.1.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -130,7 +130,7 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.bz2")) "/ruby-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"11rkbfc90cg9p9mzg32475alf3ddcn9q8a3ar3fwm5xskic0n395")))) "1wglbd599mlwxfcb2xgqcxi2shr363pjn5dpbv11m04si9bpaim7"))))
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:parallel-tests? #f #:parallel-tests? #f

View File

@ -2,6 +2,8 @@
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -35,6 +37,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages avahi) #:use-module (gnu packages avahi)
#:use-module (gnu packages libphidget) #:use-module (gnu packages libphidget)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
@ -309,14 +312,14 @@ mashups, office (web agendas, mail clients, ...), etc.")
(define-public chicken (define-public chicken
(package (package
(name "chicken") (name "chicken")
(version "4.9.0.1") (version "4.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://code.call-cc.org/releases/4.9.0/chicken-" (uri (string-append "http://code.call-cc.org/releases/"
version ".tar.gz")) version "/chicken-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0598mar1qswfd8hva9nqs88zjn02lzkqd8fzdd21dz1nki1prpq4")))) "16w96jrhb6qf62fgznk53f55yhfv81damghdjn31k5hirnmza1qf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
@ -325,11 +328,19 @@ mashups, office (web agendas, mail clients, ...), etc.")
;; No `configure' script; run "make check" after "make install" as ;; No `configure' script; run "make check" after "make install" as
;; prescribed by README. ;; prescribed by README.
#:phases (alist-cons-after #:phases
'install 'check (modify-phases %standard-phases
(assoc-ref %standard-phases 'check) (delete 'configure)
(fold alist-delete %standard-phases (delete 'check)
'(configure check))) (add-after 'install 'check
(assoc-ref %standard-phases 'check))
(add-after 'unpack 'disable-broken-tests
(lambda _
;; The port tests fail with this error:
;; Error: (line 294) invalid escape-sequence '\x o'
(substitute* "tests/runtests.sh"
(("\\$interpret -s port-tests\\.scm") ""))
#t)))
#:make-flags (let ((out (assoc-ref %outputs "out"))) #:make-flags (let ((out (assoc-ref %outputs "out")))
(list "PLATFORM=linux" (list "PLATFORM=linux"
@ -338,6 +349,12 @@ mashups, office (web agendas, mail clients, ...), etc.")
;; Parallel builds are not supported, as noted in README. ;; Parallel builds are not supported, as noted in README.
#:parallel-build? #f)) #:parallel-build? #f))
;; One of the tests ("testing direct invocation can detect calls of too
;; many arguments...") times out when building with a more recent GCC.
;; The problem was reported here:
;; https://lists.gnu.org/archive/html/chicken-hackers/2015-04/msg00059.html
(native-inputs
`(("gcc" ,gcc-4.8)))
(home-page "http://www.call-cc.org/") (home-page "http://www.call-cc.org/")
(synopsis "R5RS Scheme implementation that compiles native code via C") (synopsis "R5RS Scheme implementation that compiles native code via C")
(description (description
@ -349,14 +366,14 @@ language standard, and includes many enhancements and extensions.")
(define-public scheme48 (define-public scheme48
(package (package
(name "scheme48") (name "scheme48")
(version "1.9") (version "1.9.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://s48.org/" version (uri (string-append "http://s48.org/" version
"/scheme48-" version ".tgz")) "/scheme48-" version ".tgz"))
(sha256 (sha256
(base32 (base32
"0rw2lz5xgld0klvld292ds6hvfk5l12vskzgf1hhwjdpa38r3fnw")) "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw"))
(patches (list (search-patch "scheme48-tests.patch"))))) (patches (list (search-patch "scheme48-tests.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://s48.org/") (home-page "http://s48.org/")

View File

@ -27,6 +27,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages audio)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages image) #:use-module (gnu packages image)
@ -94,7 +95,7 @@ joystick, and graphics hardware.")
(define sdl2 (define sdl2
(package (inherit sdl) (package (inherit sdl)
(name "sdl2") (name "sdl2")
(version "2.0.3") (version "2.0.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -102,7 +103,7 @@ joystick, and graphics hardware.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0369ngvb46x6c26h8zva4x22ywgy6mvn0wx87xqwxg40pxm9m9m5")))) "0jqp46mxxbh9lhpx1ih6sp93k752j2smhpc0ad0q4cb3px0famfs"))))
(license bsd-3))) (license bsd-3)))
(define libmikmod (define libmikmod
@ -216,7 +217,8 @@ WEBP, XCF, XPM, and XV.")
(inputs `(("libvorbis" ,libvorbis) (inputs `(("libvorbis" ,libvorbis)
("libflac" ,flac) ("libflac" ,flac)
("libmad" ,libmad) ("libmad" ,libmad)
("libmikmod" ,libmikmod))) ("libmikmod" ,libmikmod)
("libmodplug" ,libmodplug)))
;; FIXME: Add libfluidsynth ;; FIXME: Add libfluidsynth
(propagated-inputs `(("sdl" ,sdl))) (propagated-inputs `(("sdl" ,sdl)))
(synopsis "SDL multi-channel audio mixer library") (synopsis "SDL multi-channel audio mixer library")
@ -310,7 +312,7 @@ directory.")
(define-public sdl2-image (define-public sdl2-image
(package (inherit sdl-image) (package (inherit sdl-image)
(name "sdl2-image") (name "sdl2-image")
(version "2.0.0") (version "2.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -318,37 +320,45 @@ directory.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0d3jlhkmr0j5a2dd5h6y29jfcsj7mkl16wghm6n3nqqp7g3ib65j")))) "0r3z1l7fdn76qkpy7snpkcjqz8dkv2zp6lsqpq25q4m5xsyaygis"))))
(propagated-inputs (propagated-inputs
(propagated-inputs-with-sdl2 sdl-image)))) (propagated-inputs-with-sdl2 sdl-image))))
(define-public sdl2-mixer (define-public sdl2-mixer
(package (inherit sdl-mixer) (package (inherit sdl-mixer)
(name "sdl2-mixer") (name "sdl2-mixer")
(version "2.0.0") (version "2.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-" (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-"
version ".tar.gz")) version ".tar.gz"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
'(delete-file-recursively "external"))
(sha256 (sha256
(base32 (base32
"0nvjdxjchrajrn0jag877hdx9zb788hsd315zzg1lyck2wb0xkm8")))) "0pv9jzjpcjlbiaybvwrb4avmv46qk7iqxlnqrd2dfj82c4mgc92s"))))
(propagated-inputs (propagated-inputs
(propagated-inputs-with-sdl2 sdl-mixer)))) (propagated-inputs-with-sdl2 sdl-mixer))))
(define-public sdl2-ttf (define-public sdl2-ttf
(package (inherit sdl-ttf) (package (inherit sdl-ttf)
(name "sdl2-ttf") (name "sdl2-ttf")
(version "2.0.12") (version "2.0.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-" (string-append "http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-"
version ".tar.gz")) version ".tar.gz"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
'(delete-file-recursively "external"))
(sha256 (sha256
(base32 (base32
"0vkg6lyj278mdpd52map3rfi65fbq16w67ahmmfcl77a8da60a47")))) "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl"))))
(propagated-inputs (propagated-inputs
(propagated-inputs-with-sdl2 sdl-ttf)))) (propagated-inputs-with-sdl2 sdl-ttf))))

View File

@ -33,6 +33,8 @@
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages haskell) #:use-module (gnu packages haskell)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image) #:use-module (gnu packages image)
@ -53,6 +55,45 @@
#:use-module (gnu packages zip) #:use-module (gnu packages zip)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public pspp
(package
(name "pspp")
(version "0.10.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/pspp/pspp-"
version ".tar.gz"))
(sha256
(base32
"0xw61kq0hxh7f6a4yjhnqbhc0fj9r3wb3qnpq05qhdp79n30ik24"))))
(build-system gnu-build-system)
(inputs
`(("cairo" ,cairo)
("gettext" ,gnu-gettext)
("gsl" ,gsl)
("libxml2" ,libxml2)
("pango" ,pango)
("readline" ,readline)
("gtk" ,gtk+)
("gtksourceview" ,gtksourceview)
("zlib" ,zlib)))
(native-inputs
`(("glib" ,glib "bin") ;for glib-genmarshal
("perl" ,perl)
("pkg-config" ,pkg-config)))
(home-page "http://www.gnu.org/software/pspp/")
(synopsis "Statistical analysis")
(description
"GNU PSPP is a statistical analysis program. It can perform
descriptive statistics, T-tests, linear regression and non-parametric tests.
It features both a graphical interface as well as command-line input. PSPP
is designed to interoperate with Gnumeric, LibreOffice and OpenOffice. Data
can be imported from spreadsheets, text files and database sources and it can
be output in text, PostScript, PDF or HTML.")
(license license:gpl3+)))
(define-public r (define-public r
(package (package
(name "r") (name "r")
@ -1234,13 +1275,13 @@ informative error messages when it's not available.")
(define-public r-devtools (define-public r-devtools
(package (package
(name "r-devtools") (name "r-devtools")
(version "1.9.1") (version "1.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "devtools" version)) (uri (cran-uri "devtools" version))
(sha256 (sha256
(base32 (base32
"10ycx3kkiz5x8nmgw31d9wa5hhlx2fhda2nqzxfrczqpz1jik6ci")))) "11x51bqhjwypbxv5sfnrnxx06b92k8kzmmx7zrwk3537r072b6pa"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-curl" ,r-curl) `(("r-curl" ,r-curl)
@ -1253,13 +1294,33 @@ informative error messages when it's not available.")
("r-roxygen2" ,r-roxygen2) ("r-roxygen2" ,r-roxygen2)
("r-rstudioapi" ,r-rstudioapi) ("r-rstudioapi" ,r-rstudioapi)
("r-rversions" ,r-rversions) ("r-rversions" ,r-rversions)
("r-whisker" ,r-whisker))) ("r-whisker" ,r-whisker)
("r-withr" ,r-withr)))
(home-page "https://github.com/hadley/devtools") (home-page "https://github.com/hadley/devtools")
(synopsis "Tools to make developing R packages easier") (synopsis "Tools to make developing R packages easier")
(description "The devtools package is a collection of package development (description "The devtools package is a collection of package development
tools to simplify the devolpment of R packages.") tools to simplify the devolpment of R packages.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public r-withr
(package
(name "r-withr")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (cran-uri "withr" version))
(sha256
(base32
"0zbj3rd7dc0ycknmay7y7rm1qvnh9n05jw93gjggz46j2zfmy93y"))))
(build-system r-build-system)
(home-page "https://github.com/jimhester/withr")
(synopsis "Run code with temporarily modified global state")
(description
"This package provides a set of functions to run R code in an environment
in which global state has been temporarily modified. Many of these functions
were originally a part of the r-devtools package.")
(license license:gpl2+)))
(define-public r-readr (define-public r-readr
(package (package
(name "r-readr") (name "r-readr")
@ -2026,3 +2087,24 @@ directly from R. Once uploaded to a plotly account, plotly graphs (and the
data behind them) can be viewed and modified in a web browser.") data behind them) can be viewed and modified in a web browser.")
(license license:x11))) (license license:x11)))
(define-public r-ztable
(package
(name "r-ztable")
(version "0.1.5")
(source (origin
(method url-fetch)
(uri (cran-uri "ztable" version))
(sha256
(base32
"1jfqnqy9544gfvz3bsb48v4177nwp4b4n9l2743asq8sbq305b5r"))))
(build-system r-build-system)
(home-page "http://cran.r-project.org/web/packages/ztable")
(synopsis "Zebra-striped tables in LaTeX and HTML formats for R")
(description
"This package provides functions to make zebra-striped tables (tables
with alternating row colors) in LaTeX and HTML formats easily from
@code{data.frame}, @code{matrix}, @code{lm}, @code{aov}, @code{anova},
@code{glm}, @code{coxph}, @code{nls}, @code{fitdistr}, @code{mytable} and
@code{cbind.mytable} objects.")
(license license:gpl2+)))

View File

@ -191,14 +191,14 @@ internet.")
(define-public libsrtp (define-public libsrtp
(package (package
(name "libsrtp") (name "libsrtp")
(version "1.5.2") (version "1.5.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/cisco/libsrtp/archive/v" (uri (string-append "https://github.com/cisco/libsrtp/archive/v"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1njf62f6sazz2q7qc4j495v1pga385whkmxxyr8hfz1ragiyzqc6")))) "1w2g623qkd7gdyydglx2hr4s2y237lg0nszjmy7z8d2iq8hvb9sn"))))
(native-inputs (native-inputs
`(("procps" ,procps))) `(("procps" ,procps)))
(build-system gnu-build-system) (build-system gnu-build-system)

View File

@ -89,6 +89,41 @@ is on expressing the content semantically, avoiding physical markup commands.")
(native-inputs '()) (native-inputs '())
(inputs `(("ncurses" ,ncurses) ("xz" ,xz))))) (inputs `(("ncurses" ,ncurses) ("xz" ,xz)))))
(define-public info-reader
;; The idea of this package is to have the standalone Info reader without
;; the dependency on Perl that 'makeinfo' drags.
(package
(inherit texinfo-6.1)
(name "info-reader")
(arguments
`(#:disallowed-references ,(assoc-ref (package-inputs texinfo-6.1)
"perl")
#:modules ((ice-9 ftw) (srfi srfi-1)
,@%gnu-build-system-modules)
#:phases (modify-phases %standard-phases
(add-after 'install 'keep-only-info-reader
(lambda* (#:key outputs #:allow-other-keys)
;; Remove everything but 'bin/info' and associated
;; files.
(define (files)
(scandir "." (lambda (file)
(not (member file '("." ".."))))))
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion out
(for-each delete-file-recursively
(fold delete (files) '("bin" "share"))))
(with-directory-excursion (string-append out "/bin")
(for-each delete-file (delete "info" (files))))
(with-directory-excursion (string-append out "/share")
(for-each delete-file-recursively
(fold delete (files)
'("info" "locale"))))
#t))))))
(synopsis "Standalone Info documentation reader")))
(define-public texi2html (define-public texi2html
(package (package
(name "texi2html") (name "texi2html")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015 Roel Janssen <roel@gnu.org> ;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -271,3 +272,23 @@ Consequently, the computation has a flat performance characteristic,
correlated with data variation rather than file size. pfff can be as reliable correlated with data variation rather than file size. pfff can be as reliable
as existing hashing techniques, with provably negligible risk of collisions.") as existing hashing techniques, with provably negligible risk of collisions.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public oniguruma
(package
(name "oniguruma")
(version "5.9.6")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/kkos/"
"oniguruma/releases/download/v" version
"/onig-" version ".tar.gz"))
(sha256
(base32
"19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m"))))
(build-system gnu-build-system)
(home-page "https://github.com/kkos/oniguruma")
(synopsis "Regular expression library")
(description "Oniguruma is a regular expressions library. The special
characteristic of this library is that different character encoding for every
regular expression object can be specified.")
(license license:bsd-2)))

View File

@ -6,6 +6,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -179,9 +180,8 @@ required structures.")
(define-public openssl (define-public openssl
(package (package
(replacement openssl-1.0.2g)
(name "openssl") (name "openssl")
(version "1.0.2f") (version "1.0.2g")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "ftp://ftp.openssl.org/source/" (uri (list (string-append "ftp://ftp.openssl.org/source/"
@ -191,10 +191,10 @@ required structures.")
"/" name "-" version ".tar.gz"))) "/" name "-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"171fkdg9v6j29d962nh6kb79kfm8kkhy7n9makw39d7jvvj4wawk")) "0cxajjayi859czi545ddafi24m9nwsnjsw4q82zrmqvwj2rv315p"))
(patches (map search-patch (patches (map search-patch
'("openssl-runpath.patch" '("openssl-runpath.patch"
"openssl-c-rehash.patch"))))) "openssl-c-rehash-in.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
(arguments (arguments
@ -287,64 +287,10 @@ required structures.")
(license license:openssl) (license license:openssl)
(home-page "http://www.openssl.org/"))) (home-page "http://www.openssl.org/")))
(define openssl-1.0.2g
(package
(inherit openssl)
(replacement #f)
(source
(let ((name "openssl") (version "1.0.2g"))
(origin
(method url-fetch)
(uri (list (string-append "ftp://ftp.openssl.org/source/"
name "-" version ".tar.gz")
(string-append "ftp://ftp.openssl.org/source/old/"
(string-trim-right version char-set:letter)
"/" name "-" version ".tar.gz")))
(sha256
(base32
"0cxajjayi859czi545ddafi24m9nwsnjsw4q82zrmqvwj2rv315p"))
(patches (map search-patch
'("openssl-runpath.patch"
"openssl-c-rehash-in.patch"))))))
(arguments
(substitute-keyword-arguments (package-arguments openssl)
((#:phases phases)
`(modify-phases ,phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero?
(system*
"./config"
;; XXX TEMPORARY, FOR GRAFTING ONLY
;; Enable ssl2 code to preserve
;; ABI compatibility with 1.0.2f
"enable-ssl2"
"shared" ;build shared libraries
"--libdir=lib"
;; The default for this catch-all directory is
;; PREFIX/ssl. Change that to something more
;; conventional.
(string-append "--openssldir=" out
"/share/openssl-" ,(package-version openssl))
(string-append "--prefix=" out)
;; XXX FIXME: Work around a code generation bug in GCC
;; 4.9.3 on ARM when compiled with -mfpu=neon. See:
;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917>
,@(if (and (not (%current-target-system))
(string-prefix? "armhf" (%current-system)))
'("-mfpu=vfpv3")
'()))))))))))))
(define-public libressl (define-public libressl
(package (package
(name "libressl") (name "libressl")
(version "2.2.6") (version "2.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -352,7 +298,7 @@ required structures.")
"http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-" "http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (base32 (sha256 (base32
"0kynb15l5gq1qgp3p4ncn20sc65sbl8lk89vyr07s17xrya9kq8y")))) "1a8anm8nsfyxds03csk738m2cmzjbsb867my1rz5ij3w31k32wvn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-search-paths (native-search-paths
;; FIXME: These two variables must designate a single file or directory ;; FIXME: These two variables must designate a single file or directory

View File

@ -364,6 +364,67 @@ write native speed custom Git applications in any language with bindings.")
;; GPLv2 with linking exception ;; GPLv2 with linking exception
(license gpl2))) (license gpl2)))
(define-public cgit
(package
(name "cgit")
(version "0.12")
(source (origin
(method url-fetch)
(uri (string-append
"https://git.zx2c4.com/cgit/snapshot/cgit-"
version ".tar.xz"))
(sha256
(base32
"1dx54hgfyabmg9nm5qp6d01f54nlbqbbdwhwl0llb9imjf237qif"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; XXX: fail to build the in-source git.
#:test-target "test"
#:make-flags '("CC=gcc" "SHELL_PATH=sh")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-git
(lambda* (#:key inputs #:allow-other-keys)
;; Unpack the source of git into the 'git' directory.
(zero? (system*
"tar" "--strip-components=1" "-C" "git" "-xf"
(assoc-ref inputs "git:src")))))
(delete 'configure) ; no configure script
(add-after 'build 'build-man
(lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* `("make" ,@make-flags "doc-man")))))
(replace 'install
(lambda* (#:key make-flags outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(and (zero? (apply system*
`("make" ,@make-flags
,(string-append "prefix=" out)
,(string-append
"CGIT_SCRIPT_PATH=" out "/share/cgit")
"install" "install-man")))
;; Move the platform-dependent 'cgit.cgi' into lib
;; to get it stripped.
(rename-file (string-append out "/share/cgit/cgit.cgi")
(string-append out "/lib/cgit/cgit.cgi"))
#t)))))))
(native-inputs
;; For building manpage.
`(("asciidoc" ,asciidoc)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("xmllint" ,libxml2)
("xsltprot" ,libxslt)))
(inputs
`(("git:src" ,(package-source git))
("openssl" ,openssl)
("zlib" ,zlib)))
(home-page "https://git.zx2c4.com/cgit/")
(synopsis "Web frontend for git repositories")
(description
"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.")
(license gpl2)))
(define-public shflags (define-public shflags
(package (package
(name "shflags") (name "shflags")
@ -545,14 +606,14 @@ control to Git repositories.")
(define-public mercurial (define-public mercurial
(package (package
(name "mercurial") (name "mercurial")
(version "3.7.2") (version "3.7.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/" (uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz")) "release/mercurial-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ykdvj7k4yxiwbfk0gnrq2flmdlf2cracsvqn3vr7nxhda6l7aav")))) "0c2vkad9piqkggyk8y310rf619qgdfcwswnk3nv21mg2fhnw96f0"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(;; Restrict to Python 2, as Python 3 would require `(;; Restrict to Python 2, as Python 3 would require
@ -1048,15 +1109,16 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
(base32 (base32
"196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r")))) "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
(build-system python-build-system) (build-system python-build-system)
(arguments `(#:python ,python-2))
(native-inputs (native-inputs
`(("python-setuptools" ,python-setuptools) `(("python2-setuptools" ,python2-setuptools)
;; for the tests ;; for the tests
("python-six" ,python-six))) ("python2-six" ,python2-six)))
(propagated-inputs (propagated-inputs
`(("python-dateutil" ,python-dateutil-2) `(("python2-dateutil" ,python2-dateutil-2)
("python-futures" ,python-futures) ("python2-futures" ,python2-futures)
("python-rauth" ,python-rauth) ("python2-rauth" ,python2-rauth)
("python-swiftclient" ,python-swiftclient))) ("python2-swiftclient" ,python2-swiftclient)))
(home-page "https://github.com/Schnouki/git-annex-remote-hubic/") (home-page "https://github.com/Schnouki/git-annex-remote-hubic/")
(synopsis "Use hubic as a git-annex remote") (synopsis "Use hubic as a git-annex remote")
(description (description

View File

@ -372,14 +372,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg (define-public ffmpeg
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "2.8.6") (version "3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1yh7dvm7zwdlsspdaq524s5qaggma5md9h95qc4kvb5dmyyyvg15")))) "0w74b165l4ry4y72f4xmgd357pvbc7yr61y313v3ai6787p2rwqj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("fontconfig" ,fontconfig) `(("fontconfig" ,fontconfig)
@ -392,7 +392,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
("libbluray" ,libbluray) ("libbluray" ,libbluray)
("libcaca" ,libcaca) ("libcaca" ,libcaca)
("libcdio-paranoia" ,libcdio-paranoia) ("libcdio-paranoia" ,libcdio-paranoia)
("libquvi" ,libquvi)
("libtheora" ,libtheora) ("libtheora" ,libtheora)
("libvdpau" ,libvdpau) ("libvdpau" ,libvdpau)
("libvorbis" ,libvorbis) ("libvorbis" ,libvorbis)
@ -480,7 +479,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
"--enable-libmp3lame" "--enable-libmp3lame"
"--enable-libopus" "--enable-libopus"
"--enable-libpulse" "--enable-libpulse"
"--enable-libquvi"
"--enable-libsoxr" "--enable-libsoxr"
"--enable-libspeex" "--enable-libspeex"
"--enable-libtheora" "--enable-libtheora"
@ -498,7 +496,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
;; Runtime cpu detection is not implemented on ;; Runtime cpu detection is not implemented on
;; MIPS, so we disable some features. ;; MIPS, so we disable some features.
"--disable-mips32r2" "--disable-mips32r2"
"--disable-mipsdspr1" "--disable-mipsdsp"
"--disable-mipsdspr2" "--disable-mipsdspr2"
"--disable-mipsfpu") "--disable-mipsfpu")
#:phases #:phases
@ -604,7 +602,7 @@ treaming protocols.")
(define-public mplayer (define-public mplayer
(package (package
(name "mplayer") (name "mplayer")
(version "1.2.1") (version "1.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -612,7 +610,7 @@ treaming protocols.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0prbqnsl6s7fbpp6nc6babx7gzwdrhrhzf0cmp6xz6w9gl4sy6w3")))) "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; FIXME: Add additional inputs once available. ;; FIXME: Add additional inputs once available.
(native-inputs (native-inputs

View File

@ -44,14 +44,13 @@
`(#:test-target "test" `(#:test-target "test"
#:parallel-tests? #f #:parallel-tests? #f
#:phases #:phases
(alist-cons-after (modify-phases %standard-phases
'configure 'patch-config-files (add-after 'configure 'patch-config-files
(lambda _ (lambda _
(substitute* "runtime/tools/mve.awk" (substitute* "runtime/tools/mve.awk"
(("/usr/bin/nawk") (which "gawk"))) (("/usr/bin/nawk") (which "gawk")))
(substitute* "src/testdir/Makefile" (substitute* "src/testdir/Makefile"
(("/bin/sh") (which "sh")))) (("/bin/sh") (which "sh"))))))))
%standard-phases)))
(inputs (inputs
`(("gawk" ,gawk) `(("gawk" ,gawk)
("inetutils" ,inetutils) ("inetutils" ,inetutils)

View File

@ -7,6 +7,9 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -52,10 +55,12 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages statistics)) #:use-module (gnu packages statistics))
@ -351,29 +356,19 @@ for efficient socket-like bidirectional reliable communication channels.")
(define-public libpsl (define-public libpsl
(package (package
(name "libpsl") (name "libpsl")
(version "0.7.1") (version "0.13.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/rockdaboot/libpsl/" (uri (string-append "https://github.com/rockdaboot/libpsl/"
"archive/libpsl-" version ".tar.gz")) "releases/download/libpsl-" version
"/libpsl-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1k0klj668c9v0r4993vfs3kq773mzdz61vsigqw6v1mjcwnf1si3")))) "0afn2c4s2m65xifa5sfdll0s2gyqbh2q9k9nq4nsmx1b6c2i3i7x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("icu4c" ,icu4c))) (inputs
;; The release tarball lacks the generated files. `(("icu4c" ,icu4c)
(native-inputs `(("autoconf" ,autoconf) ("python-2" ,python-2)))
("automake" ,automake)
("gettext" ,gnu-gettext)
("which" ,which)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(arguments
`(#:phases (alist-cons-after
'unpack 'bootstrap
(lambda _
(zero? (system* "sh" "autogen.sh")))
%standard-phases)))
(home-page "https://github.com/rockdaboot/libpsl") (home-page "https://github.com/rockdaboot/libpsl")
(synopsis "C library for the Publix Suffix List") (synopsis "C library for the Publix Suffix List")
(description (description
@ -3109,3 +3104,107 @@ callback or connection interfaces.")
"Gumbo is an implementation of the HTML5 parsing algorithm implemented as "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
a pure C99 library.") a pure C99 library.")
(license l:asl2.0))) (license l:asl2.0)))
(define-public uwsgi
(package
(name "uwsgi")
(version "2.0.12")
(source (origin
(method url-fetch)
(uri (string-append "http://projects.unbit.it/downloads/uwsgi-"
version ".tar.gz"))
(sha256
(base32
"02g46dnw5j1iw8fsq392bxbk8d21b9pdgb3ypcinv3b4jzdm2srh"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(arguments
'(;; XXX: The 'check' target runs cppcheck to do static code analysis.
;; But there is no obvious way to run the real tests.
#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
;; Configuration is done by writing an ini file.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bindir (string-append out "/bin"))
(plugindir (string-append out "/lib/uwsgi")))
;; The build phase outputs files to these directories directly.
(mkdir-p bindir)
(mkdir-p plugindir)
;; XXX: Enable other plugins.
(call-with-output-file "buildconf/guix.ini"
(lambda (port)
(format port "[uwsgi]
yaml = libyaml
bin_name = ~a/uwsgi
plugin_dir = ~a
inherit = base
plugins = cgi,python
embedded_plugins =
" bindir plugindir))))
(setenv "PROFILE" "guix")
#t))
(replace 'install
;; Move plugins into their own output.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(plugindir (string-append out "/lib/uwsgi"))
(python-plugin (string-append
plugindir "/python_plugin.so")))
(install-file python-plugin
(string-append
(assoc-ref outputs "python") "/lib/uwsgi"))
(delete-file python-plugin)
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
`(("jansson" ,jansson)
("libxml2" ,libxml2)
("libyaml" ,libyaml)
("openssl" ,openssl)
("pcre" ,pcre)
("zlib" ,zlib)
;; For plugins.
("python" ,python)))
(home-page "https://uwsgi-docs.readthedocs.org/")
(synopsis "Application container server")
(description
"uWSGI presents a complete stack for networked/clustered web applications,
implementing message/object passing, caching, RPC and process management.
It uses the uwsgi protocol for all the networking/interprocess communications.")
(license l:gpl2+))) ; with linking exception
(define-public jq
(package
(name "jq")
(version "1.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/stedolan/" name
"/releases/download/" name "-" version
"/" name "-" version ".tar.gz"))
(sha256
(base32
"0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))))
(inputs
`(("oniguruma" ,oniguruma)))
(native-inputs
`(;; TODO fix gems to generate documentation
;;("ruby" ,ruby)
;;("bundler" ,bundler)
("valgrind" ,valgrind)))
(build-system gnu-build-system)
(home-page "http://stedolan.github.io/jq/")
(synopsis "Command-line JSON processor")
(description "jq is like sed for JSON data you can use it to slice and
filter and map and transform structured data with the same ease that sed, awk,
grep and friends let you play with text. It is written in portable C. jq can
mangle the data format that you have into the one that you want with very
little effort, and the program to do so is often shorter and simpler than
you'd expect.")
(license (list l:expat l:cc-by3.0))))

View File

@ -53,14 +53,14 @@
(define-public webkitgtk (define-public webkitgtk
(package (package
(name "webkitgtk") (name "webkitgtk")
(version "2.10.8") (version "2.12.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.webkitgtk.org/releases/" (uri (string-append "http://www.webkitgtk.org/releases/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1a98z7fa8vxk7y2hlbnkl767908anyyxbwkyiar5gi037yr84dii")))) "19jyvyw8ss4bacq3f7ybdb0r16r84q12j2bpciyj9jqvzpw091m6"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no tests '(#:tests? #f ; no tests
@ -136,16 +136,14 @@ HTML/CSS applications to full-fledged web browsers.")
(define-public webkitgtk-2.4 (define-public webkitgtk-2.4
(package (inherit webkitgtk) (package (inherit webkitgtk)
(name "webkitgtk") (name "webkitgtk")
(version "2.4.9") (version "2.4.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.webkitgtk.org/releases/" (uri (string-append "http://www.webkitgtk.org/releases/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0r651ar3p0f8zwl7764kyimxk5hy88cwy116pv8cl5l8hbkjkpxg")) "0566yx5lxi40g0wpvmwbc8y76akd7zph7flrjdp2vv3z1nra9z9k"))))
(patches
(list (search-patch "webkitgtk-2.4-sql-init-string.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no tests '(#:tests? #f ; no tests

View File

@ -2,6 +2,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu> ;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -36,7 +37,7 @@
(define-public wicd (define-public wicd
(package (package
(name "wicd") (name "wicd")
(version "1.7.3") (version "1.7.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -44,12 +45,12 @@
(version-major+minor version) "/" version (version-major+minor version) "/" version
"/+download/wicd-" version ".tar.gz")) "/+download/wicd-" version ".tar.gz"))
(sha256 (sha256
(base32 "00c4rq753bhg64rv1v9yl834ssq7igyy7cz3swp287b5n5bqiqwi")) (base32 "0qpbwwsrqdp40mm3a8djpn2d055rxxspdhwijwsdnws700a9d637"))
(patches (map search-patch (patches (map search-patch
'("wicd-bitrate-none-fix.patch" '("wicd-bitrate-none-fix.patch"
"wicd-get-selected-profile-fix.patch" "wicd-get-selected-profile-fix.patch"
"wicd-urwid-1.3.patch" "wicd-urwid-1.3.patch"
"wicd-template-instantiation.patch"))))) "wicd-wpa2-ttls.patch")))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs `(("gettext" ,gnu-gettext))) (native-inputs `(("gettext" ,gnu-gettext)))
(inputs `(("dbus-glib" ,dbus-glib) (inputs `(("dbus-glib" ,dbus-glib)

View File

@ -5,6 +5,7 @@
;;; Copyright © 2015 xd1le <elisp.vim@gmail.com> ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -144,14 +145,14 @@ commands would.")
(define-public i3-wm (define-public i3-wm
(package (package
(name "i3-wm") (name "i3-wm")
(version "4.10.3") (version "4.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://i3wm.org/downloads/i3-" (uri (string-append "http://i3wm.org/downloads/i3-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1lq7h4w7m0hi31iva8g7yf1sc11ispnknxjdaj9agld4smxqb44j")))) "1d3q3lgpjbkmcwzjhp0dfr0jq847silcfg087slcnj95ikh1r7p1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))

View File

@ -378,7 +378,7 @@ windows systems.")
(define-public icecast (define-public icecast
(package (package
(name "icecast") (name "icecast")
(version "2.4.1") (version "2.4.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -386,7 +386,7 @@ windows systems.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0js5lylrgklhvvaksx46zc8lc975qb1bns8h1ms545nv071rxy23")))) "14n5vm2xnyn8y7kl46lnnlgv6v5fjykhc57ffdsh0qaxfs6a8p68"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -29,7 +29,7 @@
#:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module ((gnu packages linux) #:use-module ((gnu packages linux)
#:select (eudev-with-blkid kbd e2fsprogs lvm2 fuse alsa-utils crda gpm)) #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda gpm))
#:use-module ((gnu packages base) #:use-module ((gnu packages base)
#:select (canonical-package glibc)) #:select (canonical-package glibc))
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
@ -733,9 +733,7 @@ the tty to run, among other things."
(string-append dir "/lib")) (string-append dir "/lib"))
(list #$@name-services)) (list #$@name-services))
":"))))) ":")))))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))))))
(respawn? #f)))))
(define nscd-activation (define nscd-activation
;; Actions to take before starting nscd. ;; Actions to take before starting nscd.
@ -1170,7 +1168,7 @@ item of @var{packages}."
(udev udev) (udev udev)
(rules (append initial-rules rules))))))))) (rules (append initial-rules rules)))))))))
(define* (udev-service #:key (udev eudev-with-blkid) (rules '())) (define* (udev-service #:key (udev eudev) (rules '()))
"Run @var{udev}, which populates the @file{/dev} directory dynamically. Get "Run @var{udev}, which populates the @file{/dev} directory dynamically. Get
extra rules from the packages listed in @var{rules}." extra rules from the packages listed in @var{rules}."
(service udev-service-type (service udev-service-type

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -56,6 +56,7 @@ host all all ::1/128 trust"))
(define %default-postgres-config (define %default-postgres-config
(mixed-text-file "postgresql.conf" (mixed-text-file "postgresql.conf"
"log_destination = 'syslog'\n"
"hba_file = '" %default-postgres-hba "'\n" "hba_file = '" %default-postgres-hba "'\n"
"ident_file = '" %default-postgres-ident "'\n")) "ident_file = '" %default-postgres-ident "'\n"))
@ -116,7 +117,7 @@ host all all ::1/128 trust"))
(list (shepherd-service (list (shepherd-service
(provision '(postgres)) (provision '(postgres))
(documentation "Run the PostgreSQL daemon.") (documentation "Run the PostgreSQL daemon.")
(requirement '(user-processes loopback)) (requirement '(user-processes loopback syslogd))
(start #~(make-forkexec-constructor #$start-script)) (start #~(make-forkexec-constructor #$start-script))
(stop #~(make-kill-destructor)))))))) (stop #~(make-kill-destructor))))))))

View File

@ -1,5 +1,5 @@
;;; 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, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.

View File

@ -250,7 +250,7 @@ which should be passed to this script as the first argument. If not, the
((_ x ..1) x)))) ((_ x ..1) x))))
(if (file-exists? xsession-file) (if (file-exists? xsession-file)
;; Run ~/.xsession when it exists. ;; Run ~/.xsession when it exists.
(exec-from-login-shell xsession-file session) (apply exec-from-login-shell xsession-file session)
;; Otherwise, start the specified session. ;; Otherwise, start the specified session.
(apply exec-from-login-shell session))))) (apply exec-from-login-shell session)))))

View File

@ -365,7 +365,7 @@ explicitly appear in OS."
iproute iproute
net-tools ; XXX: remove when Inetutils suffices net-tools ; XXX: remove when Inetutils suffices
man-db man-db
texinfo ;for the standalone Info reader info-reader ;the standalone Info reader (no Perl)
;; The 'sudo' command is already in %SETUID-PROGRAMS, but we also ;; The 'sudo' command is already in %SETUID-PROGRAMS, but we also
;; want the other commands and the man pages (notably because ;; want the other commands and the man pages (notably because
@ -374,7 +374,7 @@ explicitly appear in OS."
;; Get 'insmod' & co. from kmod, not module-init-tools, since udev ;; Get 'insmod' & co. from kmod, not module-init-tools, since udev
;; already depends on it anyway. ;; already depends on it anyway.
kmod eudev-with-blkid kmod eudev
e2fsprogs kbd e2fsprogs kbd
@ -400,37 +400,11 @@ This is the GNU system. Welcome.\n")
"Return the default /etc/hosts file." "Return the default /etc/hosts file."
(plain-file "hosts" (local-host-aliases host-name))) (plain-file "hosts" (local-host-aliases host-name)))
(define (emacs-site-file)
"Return the Emacs 'site-start.el' file. That file contains the necessary
settings for 'guix.el' to work out-of-the-box."
(scheme-file "site-start.el"
#~(progn
;; Add the "normal" elisp directory to the search path;
;; guix.el may be there.
(add-to-list
'load-path
"/run/current-system/profile/share/emacs/site-lisp")
;; Attempt to load guix.el.
(require 'guix-init nil t)
;; Attempt to load geiser.
(require 'geiser-install nil t))))
(define (emacs-site-directory)
"Return the Emacs site directory, aka. /etc/emacs."
(computed-file "emacs"
#~(begin
(mkdir #$output)
(chdir #$output)
(symlink #$(emacs-site-file) "site-start.el"))))
(define* (operating-system-etc-service os) (define* (operating-system-etc-service os)
"Return a <service> that builds containing the static part of the /etc "Return a <service> that builds containing the static part of the /etc
directory." directory."
(let ((login.defs (plain-file "login.defs" "# Empty for now.\n")) (let ((login.defs (plain-file "login.defs" "# Empty for now.\n"))
(emacs (emacs-site-directory))
(issue (plain-file "issue" (operating-system-issue os))) (issue (plain-file "issue" (operating-system-issue os)))
(nsswitch (plain-file "nsswitch.conf" (nsswitch (plain-file "nsswitch.conf"
(name-service-switch->string (name-service-switch->string
@ -507,7 +481,6 @@ fi\n")))
`(("services" ,#~(string-append #$net-base "/etc/services")) `(("services" ,#~(string-append #$net-base "/etc/services"))
("protocols" ,#~(string-append #$net-base "/etc/protocols")) ("protocols" ,#~(string-append #$net-base "/etc/protocols"))
("rpc" ,#~(string-append #$net-base "/etc/rpc")) ("rpc" ,#~(string-append #$net-base "/etc/rpc"))
("emacs" ,#~#$emacs)
("login.defs" ,#~#$login.defs) ("login.defs" ,#~#$login.defs)
("issue" ,#~#$issue) ("issue" ,#~#$issue)
("nsswitch.conf" ,#~#$nsswitch) ("nsswitch.conf" ,#~#$nsswitch)
@ -587,10 +560,11 @@ use 'plain-file' instead~%")
("SSL_CERT_DIR" . "/etc/ssl/certs") ("SSL_CERT_DIR" . "/etc/ssl/certs")
("SSL_CERT_FILE" . "/etc/ssl/certs/ca-certificates.crt") ("SSL_CERT_FILE" . "/etc/ssl/certs/ca-certificates.crt")
("GIT_SSL_CAINFO" . "/etc/ssl/certs/ca-certificates.crt") ("GIT_SSL_CAINFO" . "/etc/ssl/certs/ca-certificates.crt")
;; Prepend the directory of 'site-start.el' to the search path, so
;; that it has higher precedence than the 'site-start.el' file our ;; 'GTK_DATA_PREFIX' must name one directory where GTK+ themes are
;; Emacs package provides. ;; searched for.
("EMACSLOADPATH" . "/etc/emacs:") ("GTK_DATA_PREFIX" . "/run/current-system/profile")
;; By default, applications that use D-Bus, such as Emacs, abort at startup ;; By default, applications that use D-Bus, such as Emacs, abort at startup
;; when /etc/machine-id is missing. Make sure these warnings are non-fatal. ;; when /etc/machine-id is missing. Make sure these warnings are non-fatal.
("DBUS_FATAL_WARNINGS" . "0"))) ("DBUS_FATAL_WARNINGS" . "0")))

View File

@ -1,9 +1,9 @@
;; This is an operating system configuration template ;; This is an operating system configuration template
;; for a "desktop" setup with X11. ;; for a "desktop" setup with GNOME and Xfce.
(use-modules (gnu) (gnu system nss)) (use-modules (gnu) (gnu system nss))
(use-service-modules desktop) (use-service-modules desktop)
(use-package-modules xfce ratpoison certs) (use-package-modules certs)
(operating-system (operating-system
(host-name "antelope") (host-name "antelope")
@ -29,15 +29,17 @@
(home-directory "/home/bob")) (home-directory "/home/bob"))
%base-user-accounts)) %base-user-accounts))
;; Add Xfce and Ratpoison; that allows us to choose ;; This is where we specify system-wide packages.
;; sessions using either of these at the log-in screen. (packages (cons* nss-certs ;for HTTPS access
(packages (cons* xfce ratpoison ;desktop environments
nss-certs ;for HTTPS access
%base-packages)) %base-packages))
;; Use the "desktop" services, which include the X11 ;; Add GNOME and/or Xfce---we can choose at the log-in
;; log-in service, networking with Wicd, and more. ;; screen with F1. Use the "desktop" services, which
(services %desktop-services) ;; include the X11 log-in service, networking with Wicd,
;; and more.
(services (cons* (gnome-desktop-service)
(xfce-desktop-service)
%desktop-services))
;; Allow resolution of '.local' host names with mDNS. ;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss)) (name-service-switch %mdns-host-lookup-nss))

View File

@ -0,0 +1,45 @@
;; This is an operating system configuration template
;; for a "desktop" setup without full-blown desktop
;; environments.
(use-modules (gnu) (gnu system nss))
(use-service-modules desktop)
(use-package-modules wm ratpoison certs)
(operating-system
(host-name "antelope")
(timezone "Europe/Paris")
(locale "en_US.UTF-8")
;; Assuming /dev/sdX is the target hard disk, and "my-root"
;; is the label of the target root file system.
(bootloader (grub-configuration (device "/dev/sdX")))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(mount-point "/")
(type "ext4"))
%base-file-systems))
(users (cons (user-account
(name "alice")
(comment "Bob's brother")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video"))
(home-directory "/home/alice"))
%base-user-accounts))
;; Add a bunch of window managers; we can choose one at
;; the log-in screen with F1.
(packages (cons* ratpoison i3-wm xmonad ;window managers
nss-certs ;for HTTPS access
%base-packages))
;; Use the "desktop" services, which include the X11
;; log-in service, networking with Wicd, and more.
(services %desktop-services)
;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))

View File

@ -111,7 +111,7 @@ manual."
;; 'gunzip' is needed to decompress the doc. ;; 'gunzip' is needed to decompress the doc.
(setenv "PATH" (string-append #$gzip "/bin")) (setenv "PATH" (string-append #$gzip "/bin"))
(execl (string-append #$texinfo-4 "/bin/info") "info" (execl (string-append #$info-reader "/bin/info") "info"
"-d" "/run/current-system/profile/share/info" "-d" "/run/current-system/profile/share/info"
"-f" (string-append #$guix "/share/info/guix.info") "-f" (string-append #$guix "/share/info/guix.info")
"-n" "System Installation")))) "-n" "System Installation"))))
@ -215,9 +215,11 @@ the user's target storage device rather than on the RAM disk."
(string-append #$output "/" (string-append #$output "/"
target))) target)))
'(#$(file "bare-bones.tmpl") '(#$(file "bare-bones.tmpl")
#$(file "desktop.tmpl")) #$(file "desktop.tmpl")
#$(file "lightweight-desktop.tmpl"))
'("bare-bones.scm" '("bare-bones.scm"
"desktop.scm")) "desktop.scm"
"lightweight-desktop.scm"))
#t) #t)
#:modules '((guix build utils)))) #:modules '((guix build utils))))
@ -338,12 +340,28 @@ Use Alt-F2 for documentation.
(file-systems (file-systems
;; Note: the disk image build code overrides this root file system with ;; Note: the disk image build code overrides this root file system with
;; the appropriate one. ;; the appropriate one.
(cons (file-system (cons* (file-system
(mount-point "/") (mount-point "/")
(device "gnu-disk-image") (device "gnu-disk-image")
(title 'label) (title 'label)
(type "ext4")) (type "ext4"))
%base-file-systems))
;; Make /tmp a tmpfs instead of keeping the unionfs. This is
;; because FUSE creates '.fuse_hiddenXYZ' files for each open file,
;; and this confuses Guix's test suite, for instance. See
;; <http://bugs.gnu.org/23056>.
(file-system
(mount-point "/tmp")
(device "none")
(title 'device)
(type "tmpfs")
(check? #f))
;; XXX: This should be %BASE-FILE-SYSTEMS but we don't need
;; elogind's cgroup file systems.
(list %pseudo-terminal-file-system
%shared-memory-file-system
%immutable-store)))
(users (list (user-account (users (list (user-account
(name "guest") (name "guest")
@ -366,7 +384,6 @@ Use Alt-F2 for documentation.
(base-pam-services #:allow-empty-passwords? #t)) (base-pam-services #:allow-empty-passwords? #t))
(packages (cons* (canonical-package glibc) ;for 'tzselect' & co. (packages (cons* (canonical-package glibc) ;for 'tzselect' & co.
texinfo-4 ;for the standalone Info reader
parted ddrescue parted ddrescue
grub ;mostly so xrefs to its manual work grub ;mostly so xrefs to its manual work
cryptsetup cryptsetup

View File

@ -54,15 +54,22 @@
(let ((jdk-mod (resolve-interface '(gnu packages java)))) (let ((jdk-mod (resolve-interface '(gnu packages java))))
(module-ref jdk-mod 'ant))) (module-ref jdk-mod 'ant)))
(define (default-zip)
"Return the default ZIP package."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((zip-mod (resolve-interface '(gnu packages zip))))
(module-ref zip-mod 'zip)))
(define* (lower name (define* (lower name
#:key source inputs native-inputs outputs system target #:key source inputs native-inputs outputs system target
(jdk (default-jdk)) (jdk (default-jdk))
(ant (default-ant)) (ant (default-ant))
(zip (default-zip))
#:allow-other-keys #:allow-other-keys
#:rest arguments) #:rest arguments)
"Return a bag for NAME." "Return a bag for NAME."
(define private-keywords (define private-keywords
'(#:source #:target #:jdk #:ant #:inputs #:native-inputs)) '(#:source #:target #:jdk #:ant #:zip #:inputs #:native-inputs))
(and (not target) ;XXX: no cross-compilation (and (not target) ;XXX: no cross-compilation
(bag (bag
@ -77,6 +84,7 @@
,@(standard-packages))) ,@(standard-packages)))
(build-inputs `(("jdk" ,jdk "jdk") (build-inputs `(("jdk" ,jdk "jdk")
("ant" ,ant) ("ant" ,ant)
("zip" ,zip)
,@native-inputs)) ,@native-inputs))
(outputs outputs) (outputs outputs)
(build ant-build) (build ant-build)

View File

@ -101,6 +101,7 @@ release corresponding to NAME and VERSION."
(search-paths '()) (search-paths '())
(system (%current-system)) (system (%current-system))
(guile #f) (guile #f)
(substitutable? #t)
(imported-modules %r-build-system-modules) (imported-modules %r-build-system-modules)
(modules '((guix build r-build-system) (modules '((guix build r-build-system)
(guix build utils)))) (guix build utils))))
@ -140,7 +141,8 @@ release corresponding to NAME and VERSION."
#:system system #:system system
#:modules imported-modules #:modules imported-modules
#:outputs outputs #:outputs outputs
#:guile-for-build guile-for-build)) #:guile-for-build guile-for-build
#:substitutable? substitutable?))
(define r-build-system (define r-build-system
(build-system (build-system

View File

@ -65,13 +65,8 @@
(target (@ (name "jar") (target (@ (name "jar")
(depends "compile")) (depends "compile"))
(mkdir (@ (dir "${jar.dir}"))) (mkdir (@ (dir "${jar.dir}")))
;; We cannot use the simpler "jar" task here, because
;; there is no way to disable generation of a
;; manifest. We do not include a generated manifest
;; to ensure determinism, because we cannot easily
;; reset the ctime/mtime before creating the archive.
(exec (@ (executable "jar")) (exec (@ (executable "jar"))
(arg (@ (line ,(string-append "-Mcf ${jar.dir}/" jar-name (arg (@ (line ,(string-append "-cf ${jar.dir}/" jar-name
" -C ${classes.dir} .")))))) " -C ${classes.dir} ."))))))
(target (@ (name "install")) (target (@ (name "install"))
@ -110,11 +105,10 @@ INPUTS."
repack them. This is necessary to ensure that archives are reproducible." repack them. This is necessary to ensure that archives are reproducible."
(define (repack-archive jar) (define (repack-archive jar)
(format #t "repacking ~a\n" jar) (format #t "repacking ~a\n" jar)
(let ((dir (mkdtemp! "jar-contents.XXXXXX"))) (let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFEST.MF")))
(and (with-directory-excursion dir (and (with-directory-excursion dir
(zero? (system* "jar" "xf" jar))) (zero? (system* "jar" "xf" jar)))
;; The manifest file contains timestamps
(for-each delete-file (find-files dir "MANIFEST.MF"))
(delete-file jar) (delete-file jar)
;; XXX: copied from (gnu build install) ;; XXX: copied from (gnu build install)
(for-each (lambda (file) (for-each (lambda (file)
@ -122,8 +116,19 @@ repack them. This is necessary to ensure that archives are reproducible."
(unless (eq? (stat:type s) 'symlink) (unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0)))) (utime file 0 0 0 0))))
(find-files dir #:directories? #t)) (find-files dir #:directories? #t))
(unless (zero? (system* "jar" "-Mcf" jar "-C" dir "."))
(error "'jar' failed")) ;; The jar tool will always set the timestamp on the manifest file
;; and the containing directory to the current time, even when we
;; reuse an existing manifest file. To avoid this we use "zip"
;; instead of "jar". It is important that the manifest appears
;; first.
(with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t))
(command (if (file-exists? manifest)
`("zip" "-X" ,jar ,manifest ,@files)
`("zip" "-X" ,jar ,@files))))
(unless (zero? (apply system* command))
(error "'zip' failed"))))
(utime jar 0 0) (utime jar 0 0)
#t))) #t)))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -51,14 +52,20 @@
"Fetch REVISION from MODULE of CVS-ROOT-DIRECTORY into DIRECTORY. REVISION "Fetch REVISION from MODULE of CVS-ROOT-DIRECTORY into DIRECTORY. REVISION
must either be a date in ISO-8601 format (e.g. \"2012-12-21\") or a CVS tag. must either be a date in ISO-8601 format (e.g. \"2012-12-21\") or a CVS tag.
Return #t on success, #f otherwise." Return #t on success, #f otherwise."
(and (zero? (system* cvs-command "-z3" ;; Use "-z0" because enabling compression leads to hangs during checkout on
;; certain repositories, such as
;; ":pserver:anonymous@cvs.savannah.gnu.org:/sources/gnustandards".
(and (zero? (system* cvs-command "-z0"
"-d" cvs-root-directory "-d" cvs-root-directory
"checkout" "checkout"
(if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision) (if (string-match "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" revision)
"-D" "-r") "-D" "-r")
revision revision
module)) module))
(rename-file module directory) ;; Copy rather than rename in case MODULE and DIRECTORY are on
;; different devices.
(copy-recursively module directory)
(with-directory-excursion directory (with-directory-excursion directory
(for-each delete-file-recursively (find-cvs-directories))) (for-each delete-file-recursively (find-cvs-directories)))
#t)) #t))

View File

@ -767,10 +767,14 @@ the same type as that returned by 'make-socket-address'."
(format port "#<interface ~s " name) (format port "#<interface ~s " name)
(unless (zero? (logand IFF_UP flags)) (unless (zero? (logand IFF_UP flags))
(display "up " port)) (display "up " port))
;; Check whether ADDRESS really is a sockaddr.
(when address
(if (member (sockaddr:fam address) (list AF_INET AF_INET6)) (if (member (sockaddr:fam address) (list AF_INET AF_INET6))
(format port "~a " (inet-ntop (sockaddr:fam address) (format port "~a " (inet-ntop (sockaddr:fam address)
(sockaddr:addr address))) (sockaddr:addr address)))
(format port "family:~a " (sockaddr:fam address))) (format port "family:~a " (sockaddr:fam address))))
(format port "~a>" (number->string (object-address interface) 16))))) (format port "~a>" (number->string (object-address interface) 16)))))
(set-record-type-printer! <interface> write-interface) (set-record-type-printer! <interface> write-interface)

View File

@ -90,7 +90,12 @@
build-derivations build-derivations
built-derivations built-derivations
file-search-error?
file-search-error-file-name
file-search-error-search-path
search-path*
module->source-file-name
build-expression->derivation) build-expression->derivation)
;; Re-export it from here for backward compatibility. ;; Re-export it from here for backward compatibility.
@ -1035,10 +1040,28 @@ system, imported, and appears under FINAL-PATH in the resulting store path."
#:guile-for-build guile #:guile-for-build guile
#:local-build? #t))) #:local-build? #t)))
;; The "file not found" error condition.
(define-condition-type &file-search-error &error
file-search-error?
(file file-search-error-file-name)
(path file-search-error-search-path))
(define search-path* (define search-path*
;; A memoizing version of 'search-path' so 'imported-modules' does not end ;; A memoizing version of 'search-path' so 'imported-modules' does not end
;; up looking for the same files over and over again. ;; up looking for the same files over and over again.
(memoize search-path)) (memoize (lambda (path file)
"Search for FILE in PATH and memoize the result. Raise a
'&file-search-error' condition if it could not be found."
(or (search-path path file)
(raise (condition
(&file-search-error (file file)
(path path))))))))
(define (module->source-file-name module)
"Return the file name corresponding to MODULE, a Guile module name (a list
of symbols.)"
(string-append (string-join (map symbol->string module) "/")
".scm"))
(define* (%imported-modules store modules ;deprecated (define* (%imported-modules store modules ;deprecated
#:key (name "module-import") #:key (name "module-import")
@ -1051,9 +1074,7 @@ search path."
;; TODO: Determine the closure of MODULES, build the `.go' files, ;; TODO: Determine the closure of MODULES, build the `.go' files,
;; canonicalize the source files through read/write, etc. ;; canonicalize the source files through read/write, etc.
(let ((files (map (lambda (m) (let ((files (map (lambda (m)
(let ((f (string-append (let ((f (module->source-file-name m)))
(string-join (map symbol->string m) "/")
".scm")))
(cons f (search-path* module-path f)))) (cons f (search-path* module-path f))))
modules))) modules)))
(imported-files store files #:name name #:system system (imported-files store files #:name name #:system system

View File

@ -902,11 +902,6 @@ system, imported, and appears under FINAL-PATH in the resulting store path."
#:guile-for-build guile #:guile-for-build guile
#:local-build? #t))) #:local-build? #t)))
(define search-path*
;; A memoizing version of 'search-path' so 'imported-modules' does not end
;; up looking for the same files over and over again.
(memoize search-path))
(define* (imported-modules modules (define* (imported-modules modules
#:key (name "module-import") #:key (name "module-import")
(system (%current-system)) (system (%current-system))
@ -918,9 +913,7 @@ search path."
;; TODO: Determine the closure of MODULES, build the `.go' files, ;; TODO: Determine the closure of MODULES, build the `.go' files,
;; canonicalize the source files through read/write, etc. ;; canonicalize the source files through read/write, etc.
(let ((files (map (lambda (m) (let ((files (map (lambda (m)
(let ((f (string-append (let ((f (module->source-file-name m)))
(string-join (map symbol->string m) "/")
".scm")))
(cons f (search-path* module-path f)))) (cons f (search-path* module-path f))))
modules))) modules)))
(imported-files files #:name name #:system system (imported-files files #:name name #:system system

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.
;;; ;;;
@ -131,6 +131,16 @@ typically returned by 'node-edges' or 'node-back-edges'."
(node graph-backend-node) (node graph-backend-node)
(edge graph-backend-edge)) (edge graph-backend-edge))
(define %colors
;; See colortbl.h in Graphviz.
#("red" "magenta" "blue" "cyan3" "darkseagreen"
"peachpuff4" "darkviolet" "dimgrey" "darkgoldenrod"))
(define (pop-color hint)
"Return a Graphviz color based on HINT, an arbitrary object."
(let ((index (hash hint (vector-length %colors))))
(vector-ref %colors index)))
(define (emit-prologue name port) (define (emit-prologue name port)
(format port "digraph \"Guix ~a\" {\n" (format port "digraph \"Guix ~a\" {\n"
name)) name))
@ -140,8 +150,8 @@ typically returned by 'node-edges' or 'node-back-edges'."
(format port " \"~a\" [label = \"~a\", shape = box, fontname = Helvetica];~%" (format port " \"~a\" [label = \"~a\", shape = box, fontname = Helvetica];~%"
id label)) id label))
(define (emit-edge id1 id2 port) (define (emit-edge id1 id2 port)
(format port " \"~a\" -> \"~a\" [color = red];~%" (format port " \"~a\" -> \"~a\" [color = ~a];~%"
id1 id2)) id1 id2 (pop-color id1)))
(define %graphviz-backend (define %graphviz-backend
(graph-backend emit-prologue emit-epilogue (graph-backend emit-prologue emit-epilogue

View File

@ -227,7 +227,7 @@ s-expression corresponding to that package, or #f on failure."
(match (package-source package) (match (package-source package)
((? origin? origin) ((? origin? origin)
(match (origin-uri origin) (match (origin-uri origin)
((url rest ...) ((or (? string? url) (url _ ...))
(let ((end (string-rindex url #\_)) (let ((end (string-rindex url #\_))
(start (string-rindex url #\/))) (start (string-rindex url #\/)))
;; The URL ends on ;; The URL ends on

View File

@ -1,5 +1,6 @@
;;; 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>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -18,19 +19,25 @@
(define-module (guix import hackage) (define-module (guix import hackage)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module ((guix download) #:select (download-to-store)) #:use-module (gnu packages)
#:use-module ((guix download) #:select (download-to-store url-fetch))
#:use-module ((guix utils) #:select (package-name->name+version #:use-module ((guix utils) #:select (package-name->name+version
canonical-newline-port)) canonical-newline-port))
#:use-module (guix import utils) #:use-module (guix http-client)
#:use-module ((guix import utils) #:select (factorize-uri))
#:use-module (guix import cabal) #:use-module (guix import cabal)
#:use-module (guix store) #:use-module (guix store)
#:use-module (guix hash) #:use-module (guix hash)
#:use-module (guix base32) #:use-module (guix base32)
#:use-module (guix upstream)
#:use-module (guix packages)
#:use-module ((guix utils) #:select (call-with-temporary-output-file)) #:use-module ((guix utils) #:select (call-with-temporary-output-file))
#:export (hackage->guix-package)) #:export (hackage->guix-package
%hackage-updater))
(define ghc-standard-libraries (define ghc-standard-libraries
;; List of libraries distributed with ghc (7.10.2). We include GHC itself as ;; List of libraries distributed with ghc (7.10.2). We include GHC itself as
@ -65,28 +72,49 @@
(define package-name-prefix "ghc-") (define package-name-prefix "ghc-")
(define (hackage-source-url name version)
"Given a Hackage package NAME and VERSION, return a url to the source
tarball."
(string-append "http://hackage.haskell.org/package/" name
"/" name "-" version ".tar.gz"))
(define* (hackage-cabal-url name #:optional version)
"Given a Hackage package NAME and VERSION, return a url to the corresponding
.cabal file on Hackage. If VERSION is #f or missing, the url for the latest
version is returned."
(if version
(string-append "http://hackage.haskell.org/package/"
name "-" version "/" name ".cabal")
(string-append "http://hackage.haskell.org/package/"
name "/" name ".cabal")))
(define (hackage-name->package-name name) (define (hackage-name->package-name name)
"Given the NAME of a Cabal package, return the corresponding Guix name." "Given the NAME of a Cabal package, return the corresponding Guix name."
(if (string-prefix? package-name-prefix name) (if (string-prefix? package-name-prefix name)
(string-downcase name) (string-downcase name)
(string-append package-name-prefix (string-downcase name)))) (string-append package-name-prefix (string-downcase name))))
(define guix-package->hackage-name
(let ((uri-rx (make-regexp "https?://hackage.haskell.org/package/([^/]+)/.*"))
(name-rx (make-regexp "(.*)-[0-9\\.]+")))
(lambda (package)
"Given a Guix package name, return the corresponding Hackage name."
(let* ((source-url (and=> (package-source package) origin-uri))
(name (match:substring (regexp-exec uri-rx source-url) 1)))
(match (regexp-exec name-rx name)
(#f name)
(m (match:substring m 1)))))))
(define (hackage-fetch name-version) (define (hackage-fetch name-version)
"Return the Cabal file for the package NAME-VERSION, or #f on failure. If "Return the Cabal file for the package NAME-VERSION, or #f on failure. If
the version part is omitted from the package name, then return the latest the version part is omitted from the package name, then return the latest
version." version."
(let*-values (((name version) (package-name->name+version name-version)) (let-values (((name version) (package-name->name+version name-version)))
((url) (let* ((url (hackage-cabal-url name version))
(if version (port (http-fetch url))
(string-append "http://hackage.haskell.org/package/" (result (read-cabal (canonical-newline-port port))))
name "-" version "/" name ".cabal") (close-port port)
(string-append "http://hackage.haskell.org/package/" result)))
name "/" name ".cabal"))))
(call-with-temporary-output-file
(lambda (temp port)
(and (url-fetch url temp)
(call-with-input-file temp
(compose read-cabal canonical-newline-port)))))))
(define string->license (define string->license
;; List of valid values from ;; List of valid values from
@ -154,8 +182,7 @@ representation of a Cabal file as produced by 'read-cabal'."
(cabal-package-version cabal)) (cabal-package-version cabal))
(define source-url (define source-url
(string-append "http://hackage.haskell.org/package/" name (hackage-source-url name version))
"/" name "-" version ".tar.gz"))
(define dependencies (define dependencies
(let ((names (let ((names
@ -225,4 +252,46 @@ respectively."
include-test-dependencies?) include-test-dependencies?)
(cut eval-cabal <> cabal-environment))))) (cut eval-cabal <> cabal-environment)))))
(define (hackage-package? package)
"Return #t if PACKAGE is a Haskell package from Hackage."
(define haskell-url?
(let ((hackage-rx (make-regexp "https?://hackage.haskell.org")))
(lambda (url)
(regexp-exec hackage-rx url))))
(let ((source-url (and=> (package-source package) origin-uri))
(fetch-method (and=> (package-source package) origin-method)))
(and (eq? fetch-method url-fetch)
(match source-url
((? string?)
(haskell-url? source-url))
((source-url ...)
(any haskell-url? source-url))))))
(define (latest-release guix-package)
"Return an <upstream-source> for the latest release of GUIX-PACKAGE."
(let* ((hackage-name (guix-package->hackage-name
(specification->package guix-package)))
(cabal-meta (hackage-fetch hackage-name)))
(match cabal-meta
(#f
(format (current-error-port)
"warning: failed to parse ~a~%"
(hackage-cabal-url hackage-name))
#f)
((_ *** ("version" (version)))
(let ((url (hackage-source-url hackage-name version)))
(upstream-source
(package guix-package)
(version version)
(urls (list url))))))))
(define %hackage-updater
(upstream-updater
(name 'hackage)
(description "Updater for Hackage packages")
(pred hackage-package?)
(latest latest-release)))
;;; cabal.scm ends here ;;; cabal.scm ends here

View File

@ -57,6 +57,7 @@
mpl1.0 mpl1.1 mpl2.0 mpl1.0 mpl1.1 mpl2.0
ms-pl ms-pl
ncsa ncsa
nmap
openldap2.8 openssl openldap2.8 openssl
psfl public-domain psfl public-domain
qpl qpl
@ -360,6 +361,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://directory.fsf.org/wiki/License:IllinoisNCSA" "http://directory.fsf.org/wiki/License:IllinoisNCSA"
"https://www.gnu.org/licenses/license-list#NCSA")) "https://www.gnu.org/licenses/license-list#NCSA"))
(define nmap
(license "Nmap license"
"https://svn.nmap.org/nmap/COPYING"
"https://fedoraproject.org/wiki/Licensing/Nmap"))
(define openssl (define openssl
(license "OpenSSL" (license "OpenSSL"
"http://directory.fsf.org/wiki/License:OpenSSL" "http://directory.fsf.org/wiki/License:OpenSSL"

View File

@ -21,7 +21,9 @@
;;; 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 (guix profiles) (define-module (guix profiles)
#:use-module (guix utils) #:use-module ((guix utils) #:hide (package-name->name+version))
#:use-module ((guix build utils)
#:select (package-name->name+version))
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix derivations) #:use-module (guix derivations)

View File

@ -24,7 +24,11 @@
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix grafts) #:use-module (guix grafts)
#:use-module (guix utils)
;; Use the procedure that destructures "NAME-VERSION" forms.
#:use-module ((guix utils) #:hide (package-name->name+version))
#:use-module ((guix build utils) #:select (package-name->name+version))
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix gexp) #:use-module (guix gexp)
#:autoload (guix http-client) (http-fetch http-get-error?) #:autoload (guix http-client) (http-fetch http-get-error?)

View File

@ -358,8 +358,22 @@ and suitable for 'exit'."
"Run COMMAND in a new environment containing INPUTS, using the native search "Run COMMAND in a new environment containing INPUTS, using the native search
paths defined by the list PATHS. When PURE?, pre-existing environment paths defined by the list PATHS. When PURE?, pre-existing environment
variables are cleared before setting the new ones." variables are cleared before setting the new ones."
;; Properly handle SIGINT, so pressing C-c in an interactive terminal
;; application works.
(sigaction SIGINT SIG_DFL)
(create-environment inputs paths pure?) (create-environment inputs paths pure?)
(apply system* command)) (match command
((program . args)
(apply execlp program program args))))
(define (launch-environment/fork command inputs paths pure?)
"Run COMMAND in a new process with an environment containing INPUTS, using
the native search paths defined by the list PATHS. When PURE?, pre-existing
environment variables are cleared before setting the new ones."
(match (primitive-fork)
(0 (launch-environment command inputs paths pure?))
(pid (match (waitpid pid)
((_ . status) status)))))
(define* (launch-environment/container #:key command bash user-mappings (define* (launch-environment/container #:key command bash user-mappings
profile paths network?) profile paths network?)
@ -373,6 +387,7 @@ host file systems to mount inside the container."
(list (direct-store-path bash) profile)))) (list (direct-store-path bash) profile))))
(return (return
(let* ((cwd (getcwd)) (let* ((cwd (getcwd))
(passwd (getpwuid (getuid)))
;; Bind-mount all requisite store items, user-specified mappings, ;; Bind-mount all requisite store items, user-specified mappings,
;; /bin/sh, the current working directory, and possibly networking ;; /bin/sh, the current working directory, and possibly networking
;; configuration files within the container. ;; configuration files within the container.
@ -410,6 +425,9 @@ host file systems to mount inside the container."
(mkdir-p "/bin") (mkdir-p "/bin")
(symlink bash "/bin/sh") (symlink bash "/bin/sh")
;; Set a reasonable default PS1.
(setenv "PS1" "\\u@\\h \\w [env]\\$ ")
;; Setup directory for temporary files. ;; Setup directory for temporary files.
(mkdir-p "/tmp") (mkdir-p "/tmp")
(for-each (lambda (var) (for-each (lambda (var)
@ -417,16 +435,26 @@ host file systems to mount inside the container."
;; The same variables as in Nix's 'build.cc'. ;; The same variables as in Nix's 'build.cc'.
'("TMPDIR" "TEMPDIR" "TMP" "TEMP")) '("TMPDIR" "TEMPDIR" "TMP" "TEMP"))
;; From Nix build.cc: ;; Create a dummy home directory under the same name as on the
;; ;; host.
;; Set HOME to a non-existing path to prevent certain (mkdir-p (passwd:dir passwd))
;; programs from using /etc/passwd (or NIS, or whatever) (setenv "HOME" (passwd:dir passwd))
;; to locate the home directory (for example, wget looks
;; for ~/.wgetrc). I.e., these tools use /etc/passwd if ;; Create a dummy /etc/passwd to satisfy applications that demand
;; HOME is not set, but they will just assume that the ;; to read it, such as 'git clone' over SSH, a valid use-case when
;; settings file they are looking for does not exist if ;; sharing the host's network namespace.
;; HOME is set but points to some non-existing path. (mkdir-p "/etc")
(setenv "HOME" "/homeless-shelter") (call-with-output-file "/etc/passwd"
(lambda (port)
(display (string-join (list (passwd:name passwd)
"x" ; but there is no shadow
"0" "0" ; user is now root
(passwd:gecos passwd)
(passwd:dir passwd)
bash)
":")
port)
(newline port)))
;; For convenience, start in the user's current working ;; For convenience, start in the user's current working
;; directory rather than the root directory. ;; directory rather than the root directory.
@ -571,4 +599,5 @@ message if any test fails."
(else (else
(return (return
(exit/status (exit/status
(launch-environment command profile paths pure?))))))))))))) (launch-environment/fork command profile
paths pure?)))))))))))))

Some files were not shown because too many files have changed in this diff Show More