Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2015-06-10 17:50:27 -04:00
commit 1492801655
246 changed files with 13204 additions and 3944 deletions

View file

@ -13,7 +13,9 @@
.
((indent-tabs-mode . nil)
(eval . (put 'eval-when 'scheme-indent-function 1))
(eval . (put 'call-with-prompt 'scheme-indent-function 1))
(eval . (put 'test-assert 'scheme-indent-function 1))
(eval . (put 'test-assertm 'scheme-indent-function 1))
(eval . (put 'test-equal 'scheme-indent-function 1))
(eval . (put 'test-eq 'scheme-indent-function 1))
(eval . (put 'call-with-input-string 'scheme-indent-function 1))
@ -44,7 +46,7 @@
(eval . (put 'emacs-substitute-sexps 'scheme-indent-function 1))
(eval . (put 'emacs-substitute-variables 'scheme-indent-function 1))
(eval . (put 'with-derivation-narinfo 'scheme-indent-function 1))
(eval . (put 'with-derivation-substitute 'scheme-indent-function 1))
(eval . (put 'with-derivation-substitute 'scheme-indent-function 2))
(eval . (put 'syntax-parameterize 'scheme-indent-function 1))
(eval . (put 'with-monad 'scheme-indent-function 1))

4
.gitignore vendored
View file

@ -62,6 +62,7 @@ config.cache
/pre-inst-env
/doc/.dirstamp
/doc/guix.info
/doc/guix.info-[0-9]
/doc/guix.pdf
/doc/stamp-vti
/doc/version.texi
@ -112,3 +113,6 @@ GTAGS
/emacs/guix-helper.scm
/emacs/guix-init.el
/emacs/guix-profiles.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1

15
HACKING
View file

@ -2,7 +2,7 @@
#+TITLE: Hacking GNU Guix and Its Incredible Distro
Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
Copyright © 2014 Pierre-Antoine Rault <par@rigelk.eu>
@ -20,6 +20,7 @@ addition to those mentioned in the installation instructions:
- [[http://www.gnu.org/software/automake/][GNU Automake]]
- [[http://www.gnu.org/software/gettext/][GNU Gettext]]
- [[http://www.graphviz.org/][Graphviz]]
- [[http://www.gnu.org/software/help2man/][GNU Help2man]] (optional)
Run ./bootstrap to download the Nix daemon source code and to generate the
build system infrastructure using autoconf. It reports an error if an
@ -46,17 +47,7 @@ take a look at “info '(guix) Installation'” or send a message to
* Running Guix before it is installed
Command-line tools can be used even if you have not run "make install".
To do that, prefix each command with ./pre-inst-env, as in:
./pre-inst-env guix build --help
Similarly, for a Guile session using the Guix modules:
./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
The pre-inst-env script sets up all the environment variables
necessary to support this.
See the same-named section in the manual.
* The Perfect Setup

View file

@ -79,6 +79,7 @@ MODULES = \
guix/build/store-copy.scm \
guix/build/utils.scm \
guix/build/union.scm \
guix/build/profiles.scm \
guix/build/pull.scm \
guix/build/rpath.scm \
guix/build/cvs.scm \
@ -87,10 +88,13 @@ MODULES = \
guix/build/gremlin.scm \
guix/build/emacs-utils.scm \
guix/build/graft.scm \
guix/search-paths.scm \
guix/packages.scm \
guix/import/utils.scm \
guix/import/gnu.scm \
guix/import/snix.scm \
guix/import/cabal.scm \
guix/import/hackage.scm \
guix/scripts/download.scm \
guix/scripts/build.scm \
guix/scripts/archive.scm \
@ -106,6 +110,7 @@ MODULES = \
guix/scripts/lint.scm \
guix/scripts/import/gnu.scm \
guix/scripts/import/nix.scm \
guix/scripts/import/hackage.scm \
guix/scripts/environment.scm \
guix/scripts/publish.scm \
guix.scm \
@ -133,7 +138,8 @@ KCONFIGS = \
# Templates, examples.
EXAMPLES = \
gnu/system/os-config.tmpl
gnu/system/examples/bare-bones.tmpl \
gnu/system/examples/desktop.tmpl
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go guix/tests.go
@ -175,6 +181,7 @@ SCM_TESTS = \
tests/build-utils.scm \
tests/packages.scm \
tests/snix.scm \
tests/hackage.scm \
tests/store.scm \
tests/monads.scm \
tests/gexp.scm \

372
NEWS
View file

@ -10,6 +10,378 @@ Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 0.8.2 (since 0.8.1)
** Package management
*** New “binary tarball” installation method is available
See “Binary Installation” in the manual.
*** New guix publish command, to publish ones store
See “Invoking guix publish” in the manual.
*** guix package runs “profile creation hooks” as needed
It creates X.509 certificate bundles in the profiles etc/ssl directory, if
needed, generates a package database cache for GHC if the profile includes GHC
(the Haskell compiler), and generates an Info dir file (this part was
already done before.)
*** guix package creates an etc/profile file in the profile
See “Invoking guix package” in the manual.
*** Commands understand version prefixes, such as gcc-5 for gcc-5.1.0
*** guix package --search now sorts packages by name and version
*** Substitute information is now fetched using HTTP pipelining
Before that the “substituter” used threads. Using HTTP pipelining means that
resource consumption is reduced on both the client and server sides. As a
side effect, a progress report is displayed as substitute info is downloaded.
*** guix package warns when a $GUIX_PACKAGE_PATH module cannot be loaded
*** New --sources option to guix build
*** New Bash completion file, installed in $sysconfdir/bash_completion.d
*** New guix import hackage command
See “Invoking guix import” in the manual.
*** guix lint supports FTP for the source and home-page checkers
*** guix lint has a new derivation checker
*** guix import cpan better handles dependencies and licenses
*** Packages are now build in an environment with a UTF-8 locale
** Distribution
*** C library's name service switch (NSS) is now fully configurable
See “Name Service Switch” in the manual.
*** New services: wicd, lirc, colord, upower, console-keymap, postgresql
*** Xorg service supports new drivers, such as Nouveau
*** lsh service has new options, initializes its seed by default
*** /etc/ssl symlink is created, for X.509 certificates
See “X.509 Certificates” in the manual.
*** guix system reports duplicate service identifiers
*** New /etc/bashrc file that loads Bash completion when available
*** SLiM service uses sessions from /run/current-system/profile/share/xsessions
See “X Window” in the manual.
*** The Linux “YAMA” restricting policy on PTRACE_ATTACH is now disabled
*** /etc/shells now lists all the user accounts shells
*** /gnu/store is now remounted read-only, to avoid accidental modification
*** /etc/profile is sources each profiles etc/profile file
*** 718 new packages
aalib, aarddict, acpid, agg, aisleriot, alsa-modular-synth, ant, ardour,
ardour, argtable, arpack-ng, aspell-dict-ru, aubio, audacity, avidemux,
avidemux, azr3, bamtools, bash-completion, bedops, bind-utils, bluez, bool,
brdf-explorer, bwa, calf, calibre, catch, ccl, chibi-scheme, chmlib,
clalsadrv, clipper, clisp, clustal-omega, colord, colordiff, cpufrequtils,
crossmap, csound, ctl, cunit, cutadapt, desktop-file-utils, djvulibre,
dnsmasq, dosfstools, double-conversion, dovecot, ecl, efl, elementary,
elogind, emacs-no-x, emotion-generic-players, enca, enlightenment,
evas-generic-loaders, exim, express, extremetuxracer, faad2, fastx-toolkit,
fcitx, fdupes, flexbar, fluidsynth, font-adobe-source-han-sans,
font-wqy-zenhei, freepats, gambit-c, ganv, geda-gaf, geoclue, geocode-glib,
ghc, ghc-case-insensitive, ghc-containers, ghc-fgl, ghc-hashable, ghc-http,
ghc-hunit, ghc-mtl, ghc-network, ghc-network-uri, ghc-parallel, ghc-parsec,
ghc-paths, ghc-primitive, ghc-quickcheck, ghc-random, ghc-split, ghc-stm,
ghc-syb, ghc-text, ghc-tf-random, ghc-unordered-containers, ghc-vector,
ghc-zlib, girara, gitolite, glib-networking, glibc-locales,
glibc-utf8-locales, glibc-utf8-locales, glm, gnome-mines,
gnome-settings-daemon, gnome-terminal, gnucash, gnugo, grit, gst-libav,
guile-minikanren, guile-reader, hdparm, hisat, htseq, htsjdk, hunspell,
hyphen, i2c-tools, ibus, icecast, icedtea6, icedtea7, ilmbase, ir, isync,
ixion, jack2, jalv, jansson, jemalloc, julia, key-mon, ladspa, lash,
leptonica, liba52, libabw, libaio, libass, libavc1394, libbluray, libbs2b,
libcaca, libcap-ng, libcdio-paranoia, libcdr, libdca, libdv, libdvdcss,
libe-book, libedit, libepoxy, libetonyek, libexttextcat, libffcall,
libfreehand, libgnomecanvasmm, libgtextutils, libgweather, libical,
libiec61883, libinput, liblo, libmodplug, libmspack, libmspub, libmtp,
libmwaw, libodfgen, libpagemaker, libqtxdg, libquvi, libquvi-scripts,
libraw1394, librecad, librep, librevenge, libsbsms, libsecret, libshout,
libsoup, libsrtp, libtocc, libungif, libva, libvisio, libwacom, libwebp,
libwpd, libwpg, libwps, libxklavier, libxmp, libyaml, lilv, lilypond, lirc,
livestreamer, ltrace, lv2, lv2-mda-epiano, lv2-mda-piano, lvtk, macs, mariadb,
markdown, mdadm, mdds, mesa-headers, mesa-utils, miredo, miso, moreutils,
mpd-mpc, mpdscribble, mplayer2, mpv, muparser, mythes, ncbi-vdb, ngircd,
ngs-java, ngs-sdk, npth, nss-certs, openblas, openexr, openlibm, openntpd,
openspecfun, openvpn, orc, orcus, p11-kit, patchage, pbtranscript-tofu, pcb,
perl-algorithm-c3, perl-algorithm-diff, perl-aliased,
perl-apache-logformat-compiler, perl-appconfig, perl-b-hooks-endofscope,
perl-base, perl-bit-vector, perl-boolean, perl-cache-cache,
perl-cache-fastmmap, perl-capture-tiny, perl-carp-assert,
perl-carp-assert-more, perl-carp-clan, perl-catalyst-action-renderview,
perl-catalyst-action-rest, perl-catalyst-component-instancepercontext,
perl-catalyst-devel, perl-catalyst-dispatchtype-regex,
perl-catalyst-model-dbic-schema, perl-catalyst-plugin-accesslog,
perl-catalyst-plugin-authentication, perl-catalyst-plugin-captcha,
perl-catalyst-plugin-configloader, perl-catalyst-plugin-session,
perl-catalyst-plugin-session-state-cookie,
perl-catalyst-plugin-session-store-fastmmap, perl-catalyst-plugin-stacktrace,
perl-catalyst-plugin-static-simple, perl-catalyst-runtime,
perl-catalyst-traitfor-request-proxybase, perl-catalyst-view-download,
perl-catalyst-view-json, perl-catalyst-view-tt,
perl-catalystx-component-traits, perl-catalystx-roleapplicator,
perl-catalystx-script-server-starman, perl-cgi-simple, perl-cgi-struct,
perl-class-accessor, perl-class-accessor-chained, perl-class-accessor-grouped,
perl-class-c3, perl-class-c3-adopt-next, perl-class-c3-componentised,
perl-class-data-inheritable, perl-class-date, perl-class-factory-util,
perl-class-inspector, perl-class-load, perl-class-load-xs,
perl-class-method-modifiers, perl-class-methodmaker, perl-class-singleton,
perl-class-tiny, perl-class-unload, perl-class-xsaccessor, perl-common-sense,
perl-compress-raw-bzip2, perl-compress-raw-zlib, perl-config-any,
perl-config-autoconf, perl-config-general, perl-context-preserve,
perl-cpan-meta, perl-cpan-meta-check, perl-cpan-meta-requirements,
perl-cpan-meta-yaml, perl-cpanel-json-xs, perl-crypt-randpasswd,
perl-data-dump, perl-data-dumper-concise, perl-data-optlist, perl-data-page,
perl-data-stream-bulk, perl-data-tumbler, perl-data-visitor, perl-date-calc,
perl-date-calc-xs, perl-datetime, perl-datetime-event-ical,
perl-datetime-event-recurrence, perl-datetime-format-builder,
perl-datetime-format-flexible, perl-datetime-format-http,
perl-datetime-format-ical, perl-datetime-format-natural,
perl-datetime-format-strptime, perl-datetime-locale, perl-datetime-set,
perl-datetime-timezone, perl-datetimex-easy, perl-dbd-pg, perl-dbix-class,
perl-dbix-class-cursor-cached, perl-dbix-class-introspectablem2m,
perl-dbix-class-schema-loader, perl-devel-caller, perl-devel-checkbin,
perl-devel-globaldestruction, perl-devel-lexalias, perl-devel-overloadinfo,
perl-devel-partialdump, perl-devel-stacktrace, perl-devel-stacktrace-ashtml,
perl-devel-symdump, perl-digest-hmac, perl-digest-md5-file,
perl-dist-checkconflicts, perl-email-abstract, perl-email-address,
perl-email-date-format, perl-email-messageid, perl-email-mime,
perl-email-mime-contenttype, perl-email-mime-encodings, perl-email-sender,
perl-email-simple, perl-error, perl-eval-closure, perl-exception-class,
perl-exporter-tiny, perl-extutils-config, perl-extutils-helpers,
perl-extutils-installpaths, perl-file-changenotify, perl-file-copy-recursive,
perl-file-find-rule, perl-file-find-rule-perl, perl-file-homedir,
perl-file-remove, perl-file-sharedir, perl-file-sharedir-install,
perl-file-slurp, perl-file-temp, perl-gd, perl-gd-securityimage,
perl-getopt-long-descriptive, perl-hash-merge, perl-hash-multivalue,
perl-html-form, perl-html-lint, perl-html-tree, perl-http-body,
perl-http-cookiejar, perl-http-parser, perl-http-parser-xs,
perl-http-request-ascgi, perl-http-server-simple, perl-http-tiny,
perl-image-magick, perl-import-into, perl-inc-latest, perl-io-compress,
perl-io-interactive, perl-io-socket-ip, perl-io-stringy, perl-ipc-run,
perl-ipc-sharelite, perl-json, perl-json-any, perl-json-maybexs, perl-json-xs,
perl-lingua-en-findnumber, perl-lingua-en-inflect,
perl-lingua-en-inflect-number, perl-lingua-en-inflect-phrase,
perl-lingua-en-number-isordinal, perl-lingua-en-tagger,
perl-lingua-en-words2nums, perl-lingua-pt-stemmer, perl-lingua-stem,
perl-lingua-stem-fr, perl-lingua-stem-it, perl-lingua-stem-ru,
perl-lingua-stem-snowball-da, perl-list-allutils, perl-list-moreutils,
perl-lwp-protocol-https, perl-lwp-useragent-determined,
perl-memoize-expirelru, perl-mime-types, perl-module-build,
perl-module-build-tiny, perl-module-find, perl-module-implementation,
perl-module-install, perl-module-runtime, perl-module-runtime-conflicts,
perl-module-scandeps, perl-module-util, perl-moo, perl-moose,
perl-moosex-emulate-class-accessor-fast, perl-moosex-getopt,
perl-moosex-markasmethods, perl-moosex-methodattributes, perl-moosex-nonmoose,
perl-moosex-params-validate, perl-moosex-relatedclassroles,
perl-moosex-role-parameterized, perl-moosex-role-withoverloading,
perl-moosex-semiaffordanceaccessor, perl-moosex-strictconstructor,
perl-moosex-traits-pluggable, perl-moosex-types, perl-moosex-types-datetime,
perl-moosex-types-datetime-morecoercions, perl-moosex-types-loadableclass,
perl-moox-types-mooselike, perl-mro-compat, perl-namespace-autoclean,
perl-namespace-clean, perl-net-amazon-s3, perl-net-server,
perl-number-compare, perl-object-signature, perl-package-anon,
perl-package-deprecationmanager, perl-package-stash, perl-package-stash-xs,
perl-padwalker, perl-par-dist, perl-params-util, perl-params-validate,
perl-parent, perl-parse-cpan-meta, perl-path-class, perl-plack,
perl-plack-middleware-fixmissingbodyinredirect,
perl-plack-middleware-methodoverride,
perl-plack-middleware-removeredundantbody, perl-plack-middleware-reverseproxy,
perl-plack-test-externalserver, perl-pod-coverage,
perl-posix-strftime-compiler, perl-readonly, perl-role-tiny, perl-safe-isa,
perl-scalar-list-utils, perl-scope-guard, perl-set-infinite, perl-set-scalar,
perl-snowball-norwegian, perl-snowball-swedish, perl-spiffy,
perl-sql-abstract, perl-sql-splitstatement, perl-sql-tokenizer,
perl-stream-buffered, perl-strictures, perl-string-camelcase,
perl-string-rewriteprefix, perl-string-toidentifier-en, perl-sub-exporter,
perl-sub-exporter-progressive, perl-sub-identify, perl-sub-install,
perl-sub-name, perl-sub-uplevel, perl-svg, perl-sys-hostname-long,
perl-task-weaken, perl-template-timer, perl-template-toolkit,
perl-term-encoding, perl-term-progressbar, perl-term-progressbar-quiet,
perl-term-progressbar-simple, perl-term-readkey, perl-test-base,
perl-test-cleannamespaces, perl-test-differences, perl-test-directory,
perl-test-exception, perl-test-fatal, perl-test-harness, perl-test-leaktrace,
perl-test-longstring, perl-test-mockobject, perl-test-mocktime,
perl-test-most, perl-test-output, perl-test-pod, perl-test-pod-coverage,
perl-test-requires, perl-test-sharedfork, perl-test-tcp, perl-test-trap,
perl-test-utf8, perl-test-warn, perl-test-warnings, perl-test-without-module,
perl-test-writevariants, perl-test-www-mechanize,
perl-test-www-mechanize-catalyst, perl-test-www-mechanize-psgi,
perl-test-yaml, perl-text-aligner, perl-text-balanced, perl-text-csv,
perl-text-diff, perl-text-german, perl-text-glob, perl-text-simpletable,
perl-text-table, perl-text-unidecode, perl-throwable, perl-tie-ixhash,
perl-tie-toobject, perl-time-duration, perl-time-duration-parse,
perl-time-local, perl-time-mock, perl-timedate, perl-tree-simple,
perl-tree-simple-visitorfactory, perl-try-tiny, perl-types-serialiser,
perl-universal-can, perl-universal-isa, perl-uri-find, perl-uri-ws,
perl-variable-magic, perl-www-mechanize, perl-xml-libxml,
perl-xml-namespacesupport, perl-xml-sax, perl-xml-sax-base, perl-yaml,
perl-yaml-tiny, ploticus, polipo, portaudio, pumpa, python-apsw,
python-biopython, python-cssselect, python-dbus, python-decorator,
python-drmaa, python-h5py, python-lxml, python-netifaces, python-networkx,
python-pyxdg, python-pyyaml, python-requests, python-scikit-learn,
python-singledispatch, python-sphinx-rtd-theme, python-sympy, python-testlib,
python-tornado, python-urwid, python-waf, python2-apsw,
python2-backport-ssl-match-hostname, python2-biopython, python2-bx-python,
python2-cssselect, python2-cssutils, python2-dbus, python2-decorator,
python2-drmaa, python2-h5py, python2-lxml, python2-netifaces,
python2-networkx, python2-pbcore, python2-pil, python2-pybedtools,
python2-pycairo, python2-pyxdg, python2-pyyaml, python2-rdflib, python2-rsvg,
python2-scikit-learn, python2-singledispatch, python2-six,
python2-sphinx-rtd-theme, python2-sympy, python2-testlib, python2-tornado,
python2-urwid, python2-waf, python2-xlib, quvi, r, rdesktop, recode, rep-gtk,
rseqc, rsound, rubberband, ruby-hoe, rxvt-unicode, s2tc, sawfish, sbcl, seqan,
serd, serf, sfml, shogun, sloccount, smartmontools, snakemake, soil, solfege,
sord, soundtouch, soxr, sra-tools, sratom, srt2vtt, star, starman, stow,
subread, suil, suitesparse, swt, sysfsutils, sysfsutils, taskwarrior, tbb,
terminology, tesseract-ocr, texlive-bin, texlive-texmf, the-silver-searcher,
tidy, tig, timidity++, tocc, totem-pl-parser, tree, tuxguitar, tvtime,
twolame, txt2man, unqlite, upower, utf8proc, vamp, vapoursynth, vcftools,
vigra, wavpack, webkitgtk, webkitgtk, weex, wicd, wpa-supplicant-light,
wxwidgets, wxwidgets, xbindkeys, xcape, xdg-utils, xf86-input-libinput,
xf86-input-wacom, xf86-video-nouveau, xfce, xmp, xosd, xournal, xvid, zathura,
zathura-cb, zathura-djvu, zathura-pdf-poppler, zathura-ps, zeromq,
zita-alsa-pcmi, zita-convolver
*** 189 package updates
acpica-20150410, apl-1.5, apr-1.5.2, arb-2.3.0, at-spi2-atk-2.16.0,
at-spi2-core-2.16.0, atk-2.16.0, autogen-5.18.5, bison-3.0.4, boost-1.57.0,
cairo-1.14.2, ccrtp-2.1.2, check-0.9.14, clang-3.6.0, cmake-3.2.2,
complexity-1.2, cups-filters-1.0.68, curl-7.42.1, dbus-1.8.16,
dbus-glib-0.104, dejagnu-1.5.3, docbook-xml-4.4, docbook-xml-4.5,
e2fsck-static-1.42.12, e2fsprogs-1.42.12, ed-1.11, eigen-3.2.4,
elfutils-0.161, emacs-24.5, emacs-no-x-toolkit-24.5, exo-0.10.3, ffmpeg-2.6.2,
fish-2.1.2, flac-1.3.1, flint-2.4.5, fltk-1.3.3, freetype-2.5.5, garcon-0.4.0,
gcc-5.1.0, gcc-toolchain-5.1.0, gdb-7.9, geiser-0.7, glib-2.44.0, glibc-2.21,
glibc-2.21, glibc-stripped-tarball-2.21, glibmm-2.44.0, global-6.4,
gnome-desktop-3.16.0, gnome-icon-theme-3.12.0, gnome-themes-standard-3.16.0,
gnu-pw-mgr-1.3, gnubik-2.4.2, gnumach-headers-1.5, gnunet-0.10.1,
gnupg-1.4.19, gnupg-2.0.27, gnupg-2.1.4, gnutls-3.4.0,
gobject-introspection-1.44.0, gpgme-1.5.4, gsettings-desktop-schemas-3.16.0,
gst-plugins-base-1.4.5, gst-plugins-good-1.4.5, gstreamer-1.4.5, gtk+-3.16.2,
gtkmm-2.24.4, gtkmm-3.16.0, guile-ssh-0.7.2, guix-0.8.1, guix-0.8.1.fc34dee,
help2man-1.46.6, httpd-2.4.12, hurd-headers-0.6, icecat-31.6.0-gnu1,
icu4c-55.1, imagemagick-6.9.0-4, imlib2-1.4.7, inetutils-1.9.3, inkscape-0.91,
isc-dhcp-4.3.1, itstool-2.0.2, kbd-2.0.2, libgcrypt-1.6.3, libgpg-error-1.18,
libidn-1.30, libltdl-2.4.6, libmicrohttpd-0.9.40, libmikmod-3.3.7,
libotr-4.1.0, libsigc++-2.4.1, libtasn1-4.5, libtool-2.4.6,
libunistring-0.9.5, libuv-1.4.2, libvorbis-1.3.5, libxfce4ui-4.12.0,
libxfce4util-4.12.1, libxfont-1.5.1, lightning-2.1.0, linux-libre-4.0.2,
linux-libre-headers-3.14.37, llvm-3.6.0, lua-5.2.3, man-pages-3.82,
mesa-10.5.4, mig-1.5, minetest-0.4.12, moe-1.7, mpc-1.0.3, mpd-0.19.9,
mu-0.9.12, nano-2.4.1, ncmpcpp-0.6.2, nettle-3.1, nginx-1.8.0, node-0.12.2,
notmuch-0.19, nspr-4.10.8, nss-3.18, ntp-4.2.8p2, ocrad-0.25, octave-3.8.2,
openconnect-7.05, openjpeg-2.0.1, openjpeg-2.1.0, openldap-2.4.40,
openssh-6.8p1, openssl-1.0.2a, pangomm-2.36.0, parallel-20150422,
pari-gp-2.7.3, patch-2.7.5, perf-4.0.2, perl-libwww-6.13, perl-net-http-6.07,
perl-net-ssleay-1.68, perl-test-simple-1.001014, perl-uri-1.67,
pinentry-0.9.0, pius-2.0.11, podofo-0.9.3, poppler-0.32.0, postgresql-9.3.6,
pulseaudio-6.0, python-3.4.3, python-pillow-2.7.0, python-pygobject-3.16.1,
python-setuptools-12.1, python-wrapper-3.4.3, python2-dateutil-2.2,
python2-pillow-2.7.0, python2-pygobject-3.16.1, python2-setuptools-12.1,
qt-5.4.1, ruby-2.2.2, samba-3.6.25, scons-2.3.4, sdl2-2.0.3, sharutils-4.15.1,
sipwitch-1.9.7, slock-1.2, source-highlight-3.1.8, sqlite-3.8.9,
subversion-1.8.13, texinfo-5.2, thunar-1.6.6, thunar-volman-0.8.1,
tor-0.2.5.12, tumbler-0.1.31, tzdata-2015c, ucommon-6.3.1, vala-0.28.0,
valgrind-3.10.1, vlc-2.2.0, vte-0.40.0, wget-1.16.3, wine-1.7.40,
wpa-supplicant-2.4, xboard-4.8.0, xfce4-appfinder-4.12.0, xfce4-panel-4.12.0,
xfce4-session-4.12.0, xfce4-settings-4.12.0, xfconf-4.12.0, xfdesktop-4.12.0,
xfwm4-4.12.0, xorg-server-1.16.4, xterm-317
** Programming interfaces
*** New (guix build gremlin) to parse and validate ELF dynamic link info
*** (guix build-system gnu) has a new validate-runpath phase
This phase reads the dynamic entries of ELF files and reports libraries listed
as NEEDED that are not found in the RUNPATH.
*** New (gnu services desktop) module and %desktop-services variable
*** New (guix cvs-download) module, for CVS checkouts
*** New (guix build-system waf) module, for the Waf build system
*** New (guix build-system haskell) module, to build Haskell packages
*** (guix build-system gnu) now supports zip archives
*** New convenience syntax modify-phases added in (guix build utils)
*** The ld wrapper more finely determines whether to use -rpath
*** (guix gexp) exports gexp-input to describe input unambiguously
*** The define-gexp-compiler form allows (guix gexp) to be extended
*** New local-file constructor exported by (guix gexp)
** Noteworthy bug fixes
*** Profiles created with guix package -p as indirect GC roots
Before that they were made permanent GC rootsi.e., uncollectable.
*** guix package distinguishes downgrades from upgrades
*** Handle HTTP redirects to relative URI references
(<http://bugs.gnu.org/19840>)
*** Downloads now honor the http_proxy environment variable
(<http://bugs.gnu.org/20402>)
*** --no-* options are now always correctly handled
(<http://lists.gnu.org/archive/html/guix-devel/2015-02/msg00702.html>)
*** SLiM no longer leaks open file descriptors
*** Don't compare <pam-service> objects with 'equal?'
(<http://bugs.gnu.org/20037>)
*** x86_64 and i686 bootstrap binaries updated (<http://bugs.gnu.org/19780>)
*** find-files no longer follows symlinks (<http://bugs.gnu.org/20081>)
*** libc message catalog (libc.mo) is now installed
*** libstdc++ has appropriate RUNPATH (<http://bugs.gnu.org/20358>)
*** dhcp-client-service now correctly tracks dhclients PID
** Native language support
*** New translations: da (Danish)
*** Updated translations: eo
* Changes in 0.8.1 (since 0.8)
** Package management

16
README
View file

@ -20,8 +20,9 @@ Guix is based on the [[http://nixos.org/nix/][Nix]] package manager.
GNU Guix currently depends on the following packages:
- [[http://gnu.org/software/guile/][GNU Guile 2.0.x]], version 2.0.5 or later
- [[http://gnu.org/software/guile/][GNU Guile 2.0.x]], version 2.0.7 or later
- [[http://gnupg.org/][GNU libgcrypt]]
- [[http://www.gnu.org/software/make/][GNU Make]]
- optionally [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command
- optionally [[http://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support
in the 'guix download' command. Note that 'guix import pypi' requires
@ -53,18 +54,9 @@ file.
You can re-build and re-install Guix using a system that already runs Guix.
To do so:
- Install the dependencies (see 'Requirements' above) and build tools using
Guix:
- Start a shell with the development environment for Guix:
guix package --install autoconf automake bzip2 gcc-toolchain gettext \
guile libgcrypt pkg-config sqlite
- Set the environment variables that Guix recommends you to set during the
package installation process:
ACLOCAL_PATH, CPATH, LIBRARY_PATH, PKG_CONFIG_PATH
- Set the PATH environment variable to refer to the profile:
PATH=$HOME/.guix-profile/bin:$PATH
guix environment guix
- Re-run the 'configure' script passing it the option
'--with-libgcrypt-prefix=$HOME/.guix-profile/', as well as

1
THANKS
View file

@ -35,6 +35,7 @@ infrastructure help:
Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
Cyrill Schenkel <cyrill.schenkel@gmail.com>
Benno Schulenberg <coordinator@translationproject.org>
Thomas Schwinge <thomas@codesourcery.com>
Alen Skondro <askondro@gmail.com>
Matthias Wachs <wachs@net.in.tum.de>
Andy Wingo <wingo@pobox.com>

View file

@ -77,5 +77,5 @@ (define (test-final-inputs store system)
(set-build-options store #:use-substitutes? #t)
(for-each (cut test-final-inputs store <>)
%supported-systems)))
%hydra-supported-systems)))

View file

@ -78,10 +78,8 @@ (define* (package->alist store package system
(license . ,(package-license package))
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))
;; Work around versions of 'hydra-eval-guile-jobs' before Hydra commit
;; 61448ca (27 Feb. 2014) which used a default timeout of 2h.
(timeout . 72000)))
(timeout . ,(or (assoc-ref (package-properties package) 'timeout)
72000)))) ; 20 hours by default
(define (package-job store job-name package system)
"Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
@ -159,7 +157,7 @@ (define MiB
(set-guile-for-build (default-guile))
(system-disk-image installation-os
#:disk-image-size
(* 850 MiB))))))
(* 860 MiB))))))
'()))
(define (tarball-jobs store system)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -68,25 +68,10 @@ (define* (package->alist store package system
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))))
(define (tarball-package checkout nix-checkout)
(define (tarball-package checkout)
"Return a package that does `make distcheck' from CHECKOUT, a directory
containing a Git checkout of Guix."
(let ((dist (dist-package guix checkout)))
(package (inherit dist)
(location (source-properties->location (current-source-location)))
(arguments (substitute-keyword-arguments (package-arguments dist)
((#:phases p)
`(alist-cons-before
'autoreconf 'set-nix-submodule
(lambda _
;; Tell Git to use the Nix checkout that Hydra gave us.
(zero?
(system* "git" "config" "submodule.nix-upstream.url"
,nix-checkout)))
,p))))
(native-inputs `(("git" ,git)
("graphviz" ,graphviz)
,@(package-native-inputs dist))))))
(dist-package guix checkout))
(define (hydra-jobs store arguments)
"Return Hydra jobs."
@ -104,13 +89,9 @@ (define systems
(define guix-checkout
(assq-ref arguments 'guix))
(define nix-checkout
(assq-ref arguments 'nix))
(format (current-error-port) "using checkout ~s (Nix: ~s)~%"
guix-checkout nix-checkout)
(let ((guix (assq-ref guix-checkout 'file-name))
(nix (assq-ref nix-checkout 'file-name)))
(let ((guix (assq-ref guix-checkout 'file-name)))
(format (current-error-port) "using checkout ~s (~s)~%"
guix-checkout guix)
`((tarball . ,(cute package->alist store
(tarball-package guix nix)
(tarball-package guix)
(%current-system))))))

View file

@ -27,9 +27,6 @@
(gnu system install)
(ice-9 match))
(define show-what-to-build*
(store-lift show-what-to-build))
(define copy-file*
(lift2 copy-file %store-monad))

View file

@ -5,9 +5,12 @@ AC_MSG_RESULT([$guix_build_daemon])
dnl C++ environment. This macro must be used unconditionnaly.
AC_PROG_CXX
AC_LANG([C++])
if test "x$guix_build_daemon" = "xyes"; then
GUIX_ASSERT_CXX11
AC_PROG_RANLIB
AC_CONFIG_HEADER([nix/config.h])
@ -73,7 +76,7 @@ if test "x$guix_build_daemon" = "xyes"; then
dnl Chroot support.
AC_CHECK_FUNCS([chroot unshare])
AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h tr1/unordered_set])
AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h sys/syscall.h])
if test "x$ac_cv_func_chroot" != "xyes"; then
AC_MSG_ERROR(['chroot' function missing, bailing out])

View file

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68)
AC_INIT([GNU Guix], [0.8.2], [bug-guix@gnu.org], [guix],
AC_INIT([GNU Guix], [0.8.3], [bug-guix@gnu.org], [guix],
[http://www.gnu.org/software/guix/])
AC_CONFIG_AUX_DIR([build-aux])
@ -67,7 +67,7 @@ dnl Make sure they are available.
m4_pattern_forbid([PKG_CHECK_MODULES])
m4_pattern_forbid([GUILE_MODULE_AVAILABLE])
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.5])
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.7])
AC_PATH_PROG([GUILE], [guile])
AC_PATH_PROG([GUILD], [guild])
if test "x$GUILD" = "x"; then
@ -182,6 +182,9 @@ dnl `dot' (from the Graphviz package) is only needed for maintainers.
dnl See `HACKING' for more info.
AM_MISSING_PROG([DOT], [dot])
dnl Manual pages.
AM_MISSING_PROG([HELP2MAN], [help2man])
AC_CONFIG_FILES([Makefile
po/guix/Makefile.in
po/packages/Makefile.in

View file

@ -25,8 +25,8 @@ CLEANFILES += $(BUILT_SOURCES)
noinst_LIBRARIES = libformat.a libutil.a libstore.a
# Use '-std=c++0x' for 'std::shared_ptr'.
AM_CXXFLAGS = -Wall -std=c++0x
# Use '-std=c++11' for 'std::shared_ptr', 'auto', lambdas, and more.
AM_CXXFLAGS = -Wall -std=c++11
libformat_a_SOURCES = \
nix/boost/format/free_funcs.cc \
@ -112,7 +112,8 @@ libstore_a_CPPFLAGS = \
-DNIX_CONF_DIR=\"$(sysconfdir)/guix\" \
-DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
-DNIX_BIN_DIR=\"$(bindir)\" \
-DOPENSSL_PATH="\"guix-authenticate\""
-DOPENSSL_PATH="\"guix-authenticate\"" \
-DDEFAULT_CHROOT_DIRS="\"\""
libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
@ -125,6 +126,7 @@ guix_daemon_SOURCES = \
nix/nix-daemon/guix-daemon.cc
guix_daemon_CPPFLAGS = \
-DLOCALEDIR=\"$(localedir)\" \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore

58
doc.am
View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
#
# This file is part of GNU Guix.
@ -25,12 +25,16 @@ EXTRA_DIST += \
doc/images/bootstrap-graph.eps \
doc/images/bootstrap-graph.pdf
# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
BUILT_SOURCES += doc/os-config.texi
EXTRA_DIST += doc/os-config.texi
MAINTAINERCLEANFILES = doc/os-config.texi
OS_CONFIG_EXAMPLES_TEXI = \
doc/os-config-bare-bones.texi \
doc/os-config-desktop.texi
doc/os-config.texi: gnu/system/os-config.tmpl
# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI)
EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI)
MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI)
doc/os-config-%.texi: gnu/system/examples/%.tmpl
$(MKDIR_P) "`dirname "$@"`"
cp "$<" "$@"
@ -61,3 +65,45 @@ DOT_OPTIONS = \
pdf-local: $(top_srcdir)/doc/images/bootstrap-graph.pdf
info-local: $(top_srcdir)/doc/images/bootstrap-graph.png
ps-local: $(top_srcdir)/doc/images/bootstrap-graph.eps
# Manual pages.
doc/guix.1: scripts/guix
-LANGUAGE= $(top_builddir)/pre-inst-env \
$(HELP2MAN) --output="$@" guix
doc/guix-daemon.1: guix-daemon
-LANGUAGE= $(top_builddir)/pre-inst-env \
$(HELP2MAN) --output="$@" guix-daemon
define subcommand-manual-target
doc/guix-$(1).1: scripts/guix guix/scripts/$(1).go
-LANGUAGE= $(top_builddir)/pre-inst-env \
$(HELP2MAN) --output="$$@" "guix $(1)"
endef
SUBCOMMANDS := \
archive \
build \
download \
environment \
gc \
hash \
import \
lint \
package \
publish \
pull \
refresh \
system
$(eval $(foreach subcommand,$(SUBCOMMANDS), \
$(call subcommand-manual-target,$(subcommand))))
dist_man1_MANS = \
doc/guix.1 \
doc/guix-daemon.1 \
$(SUBCOMMANDS:%=doc/guix-%.1)

View file

@ -19,6 +19,7 @@ guix package}). Specifically, ``guix.el'' makes it easy to:
* Usage: Emacs Usage. Using the interface.
* Configuration: Emacs Configuration. Configuring the interface.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Completions: Emacs Completions. Completing @command{guix} shell command.
@end menu
@node Emacs Initial Setup
@ -29,7 +30,7 @@ is ready to use, provided Guix is installed system-wide, which is the
case by default. So if that is what you're using, you can happily skip
this section and read about the fun stuff.
If you're not yet a happy user of GSD, a little bit of setup is needed.
If you're not yet a happy user of GuixSD, a little bit of setup is needed.
To be able to use ``guix.el'', you need to install the following
packages:
@ -44,24 +45,50 @@ used for interacting with the Guile process.
@end itemize
When it is done, add the following into your init file (@pxref{Init
File,,, emacs, The GNU Emacs Manual}):
@example
(require 'guix-init nil t)
@end example
However there is a chance that @code{load-path} of your Emacs does not
contain a directory with ``guix.el'' (usually it is
@file{/usr/share/emacs/site-lisp/}). In that case you need to add it
before requiring (@pxref{Lisp Libraries,,, emacs, The GNU Emacs
Manual}):
When it is done ``guix.el'' may be configured by requiring a special
@code{guix-init} file---i.e., by adding the following code into your
init file (@pxref{Init File,,, emacs, The GNU Emacs Manual}):
@example
(add-to-list 'load-path "/path/to/directory-with-guix.el")
(require 'guix-init)
(require 'guix-init nil t)
@end example
So the only thing you need to figure out is where the directory with
elisp files for Guix is placed. It depends on how you installed Guix:
@itemize
@item
If it was installed by a package manager of your distribution or by a
usual @code{./configure && make && make install} command sequence, then
elisp files are placed in a standard directory with Emacs packages
(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.
@item
If you used a binary installation method (@pxref{Binary Installation}),
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
alike. However it is not recommended to refer directly to a store
directory. Instead you can install Guix using Guix itself with
@command{guix package -i guix} command (@pxref{Invoking guix package})
and add @file{~/.guix-profile/share/emacs/site-lisp/} directory to
@code{load-path} variable.
@item
If you did not install Guix at all and prefer a hacking way
(@pxref{Running Guix Before It Is Installed}), along with augmenting
@code{load-path} you need to set @code{guix-load-path} variable to the
same directory, so your final configuration will look like this:
@example
(let ((dir "/path/to/your-guix-git-tree/emacs"))
(add-to-list 'load-path dir)
(setq guix-load-path dir))
(require 'guix-init nil t)
@end example
@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
@ -183,6 +210,11 @@ packages/generations and redisplay it.
@item R
Redisplay current buffer (without updating information).
@item M
Apply manifest to the current profile or to a specified profile, if
prefix argument is used. This has the same meaning as @code{--manifest}
option (@pxref{Invoking guix package}).
@item C-c C-z
Go to the Guix REPL (@pxref{The REPL,,, geiser, Geiser User Manual}).
@ -213,9 +245,7 @@ Default key bindings available for both ``package-list'' and
@table @kbd
@item m
Mark the current entry.
@item M
Mark all entries.
Mark the current entry (with prefix, mark all entries).
@item u
Unmark the current entry (with prefix, unmark all entries).
@item @key{DEL}
@ -486,3 +516,34 @@ mode hooks (@pxref{Hooks,,, emacs, The GNU Emacs Manual}), for example:
(add-hook 'shell-mode-hook 'guix-prettify-mode)
(add-hook 'dired-mode-hook 'guix-prettify-mode)
@end example
@node Emacs Completions
@subsection Shell Completions
Another feature that becomes available after configuring Emacs interface
(@pxref{Emacs Initial Setup}) is completing of @command{guix}
subcommands, options, packages and other things in @code{shell}
(@pxref{Interactive Shell,,, emacs, The GNU Emacs Manual}) and
@code{eshell} (@pxref{Top,,, eshell, Eshell: The Emacs Shell}).
It works the same way as other completions do. Just press @key{TAB}
when your intuition tells you.
And here are some examples, where pressing @key{TAB} may complete
something:
@itemize @w{}
@item @code{guix pa}@key{TAB}
@item @code{guix package -}@key{TAB}
@item @code{guix package --}@key{TAB}
@item @code{guix package -i gei}@key{TAB}
@item @code{guix build -L/tm}@key{TAB}
@item @code{guix build --sy}@key{TAB}
@item @code{guix build --system=i}@key{TAB}
@item @code{guix system rec}@key{TAB}
@item @code{guix lint --checkers=sy}@key{TAB}
@item @code{guix lint --checkers=synopsis,des}@key{TAB}
@end itemize

File diff suppressed because it is too large Load diff

View file

@ -26,6 +26,7 @@ ELFILES = \
emacs/guix-info.el \
emacs/guix-list.el \
emacs/guix-messages.el \
emacs/guix-pcomplete.el \
emacs/guix-prettify.el \
emacs/guix-utils.el \
emacs/guix.el

View file

@ -439,6 +439,7 @@ following keywords are available:
(define-key map (kbd "r") 'guix-history-forward)
(define-key map (kbd "g") 'revert-buffer)
(define-key map (kbd "R") 'guix-redisplay-buffer)
(define-key map (kbd "M") 'guix-apply-manifest)
(define-key map (kbd "C-c C-z") 'guix-switch-to-repl)))))
(put 'guix-define-buffer-type 'lisp-indent-function 'defun)
@ -1022,6 +1023,32 @@ Ask a user with PROMPT for continuing an operation."
:dry-run? (or guix-dry-run 'f))
nil 'source-download)))
;;;###autoload
(defun guix-apply-manifest (profile file &optional operation-buffer)
"Apply manifest from FILE to PROFILE.
This function has the same meaning as 'guix package --manifest' command.
See Info node `(guix) Invoking guix package' for details.
Interactively, use the current profile and prompt for manifest
FILE. With a prefix argument, also prompt for PROFILE."
(interactive
(let* ((default-profile (or guix-profile guix-current-profile))
(profile (if current-prefix-arg
(guix-profile-prompt)
default-profile))
(file (read-file-name "File with manifest: "))
(buffer (and guix-profile (current-buffer))))
(list profile file buffer)))
(when (or (not guix-operation-confirm)
(y-or-n-p (format "Apply manifest from '%s' to profile '%s'? "
file profile)))
(guix-eval-in-repl
(guix-make-guile-expression
'guix-package
(concat "--profile=" profile)
(concat "--manifest=" file))
operation-buffer)))
;;; Pull

View file

@ -292,13 +292,11 @@ See `guix-list-marked' for the meaning of ARGS."
See `guix-list-get-marked' for details."
(mapcar #'car (apply #'guix-list-get-marked mark-names)))
(defun guix-list-mark (mark-name &optional advance &rest args)
(defun guix-list--mark (mark-name &optional advance &rest args)
"Put a mark on the current line.
Also add the current entry to `guix-list-marked' using its ID and ARGS.
MARK-NAME is a symbol from `guix-list-mark-alist'.
If ADVANCE is non-nil, move forward by one line after marking.
Interactively, put a general mark and move to the next line."
(interactive '(general t))
If ADVANCE is non-nil, move forward by one line after marking."
(let ((id (guix-list-current-id)))
(if (eq mark-name 'empty)
(setq guix-list-marked (assq-delete-all id guix-list-marked))
@ -310,12 +308,21 @@ Interactively, put a general mark and move to the next line."
(tabulated-list-put-tag (guix-list-get-mark-string mark-name)
advance))
(defun guix-list-mark-all (mark-name)
(defun guix-list-mark (&optional arg)
"Mark the current line and move to the next line.
With ARG, mark all lines."
(interactive "P")
(if arg
(guix-list-mark-all)
(guix-list--mark 'general t)))
(defun guix-list-mark-all (&optional mark-name)
"Mark all lines with MARK-NAME mark.
MARK-NAME is a symbol from `guix-list-mark-alist'.
Interactively, put a general mark on all lines."
(interactive '(general))
(guix-list-for-each-line #'guix-list-mark mark-name))
(interactive)
(or mark-name (setq mark-name 'general))
(guix-list-for-each-line #'guix-list--mark mark-name))
(defun guix-list-unmark (&optional arg)
"Unmark the current line and move to the next line.
@ -323,13 +330,13 @@ With ARG, unmark all lines."
(interactive "P")
(if arg
(guix-list-unmark-all)
(guix-list-mark 'empty t)))
(guix-list--mark 'empty t)))
(defun guix-list-unmark-backward ()
"Move up one line and unmark it."
(interactive)
(forward-line -1)
(guix-list-mark 'empty))
(guix-list--mark 'empty))
(defun guix-list-unmark-all ()
"Unmark all lines."
@ -360,7 +367,6 @@ Same as `tabulated-list-sort', but also restore marks after sorting."
(define-key map (kbd "RET") 'guix-list-describe)
(define-key map (kbd "m") 'guix-list-mark)
(define-key map (kbd "*") 'guix-list-mark)
(define-key map (kbd "M") 'guix-list-mark-all)
(define-key map (kbd "u") 'guix-list-unmark)
(define-key map (kbd "DEL") 'guix-list-unmark-backward)
(define-key map [remap tabulated-list-sort] 'guix-list-sort)
@ -417,7 +423,7 @@ This macro defines the following functions:
,(concat "Put '" mark-name-str "' mark and move to the next line.\n"
"Also add the current entry to `guix-list-marked'.")
(interactive)
(guix-list-mark ',mark-name t))))
(guix-list--mark ',mark-name t))))
marks-val)
(defun ,init-fun ()
@ -531,7 +537,7 @@ AVAILABLE list, otherwise mark all DEFAULT outputs."
(guix-completing-read-multiple
prompt available nil t)
default)))
(apply #'guix-list-mark mark t outputs)))
(apply #'guix-list--mark mark t outputs)))
(defun guix-package-list-mark-install (&optional arg)
"Mark the current package for installation and move to the next line.
@ -606,7 +612,7 @@ accept an entry as argument."
(interactive)
(guix-list-mark-package-upgrades
(lambda (entry)
(apply #'guix-list-mark
(apply #'guix-list--mark
'upgrade nil
(guix-get-installed-outputs entry)))))
@ -661,7 +667,7 @@ The specification is suitable for `guix-process-package-actions'."
(installed (guix-get-key-val entry 'installed)))
(if installed
(user-error "This output is already installed")
(guix-list-mark 'install t))))
(guix-list--mark 'install t))))
(defun guix-output-list-mark-delete ()
"Mark the current output for deletion and move to the next line."
@ -670,7 +676,7 @@ The specification is suitable for `guix-process-package-actions'."
(let* ((entry (guix-list-current-entry))
(installed (guix-get-key-val entry 'installed)))
(if installed
(guix-list-mark 'delete t)
(guix-list--mark 'delete t)
(user-error "This output is not installed"))))
(defun guix-output-list-mark-upgrade ()
@ -683,13 +689,13 @@ The specification is suitable for `guix-process-package-actions'."
(user-error "This output is not installed"))
(when (or (guix-get-key-val entry 'obsolete)
(y-or-n-p "This output is not obsolete. Try to upgrade it anyway? "))
(guix-list-mark 'upgrade t))))
(guix-list--mark 'upgrade t))))
(defun guix-output-list-mark-upgrades ()
"Mark all obsolete package outputs for upgrading."
(interactive)
(guix-list-mark-package-upgrades
(lambda (_) (guix-list-mark 'upgrade))))
(lambda (_) (guix-list--mark 'upgrade))))
(defun guix-output-list-execute ()
"Perform actions on the marked outputs."
@ -850,7 +856,7 @@ With ARG, mark all generations for deletion."
(interactive "P")
(if arg
(guix-list-mark-all 'delete)
(guix-list-mark 'delete t)))
(guix-list--mark 'delete t)))
(defun guix-generation-list-execute ()
"Delete marked generations."

View file

@ -878,7 +878,8 @@ (define* (process-package-actions
(format #t (N_ "~a package in profile~%"
"~a packages in profile~%"
count)
count))))))))))
count)
(display-search-paths entries profile))))))))))
(define (delete-generations* profile generations)
"Delete GENERATIONS from PROFILE.

392
emacs/guix-pcomplete.el Normal file
View file

@ -0,0 +1,392 @@
;;; guix-pcomplete.el --- Functions for completing guix commands -*- lexical-binding: t -*-
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
;; GNU Guix is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Guix is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This file provides completions for "guix" command that may be used in
;; `shell', `eshell' and wherever `pcomplete' works.
;;; Code:
(require 'pcomplete)
(require 'pcmpl-unix)
(require 'cl-lib)
(require 'guix-utils)
;;; Regexps for parsing various "guix ..." outputs
(defvar guix-pcomplete-parse-package-regexp
(rx bol (group (one-or-more (not blank))))
"Regexp used to find names of the packages.")
(defvar guix-pcomplete-parse-command-regexp
(rx bol " "
(group wordchar (one-or-more (or wordchar "-"))))
"Regexp used to find guix commands.
'Command' means any option not prefixed with '-'. For example,
guix subcommand, system action, importer, etc.")
(defvar guix-pcomplete-parse-long-option-regexp
(rx (or " " ", ")
(group "--" (one-or-more (or wordchar "-"))
(zero-or-one "=")))
"Regexp used to find long options.")
(defvar guix-pcomplete-parse-short-option-regexp
(rx bol (one-or-more blank)
"-" (group (not (any "- "))))
"Regexp used to find short options.")
(defvar guix-pcomplete-parse-linter-regexp
(rx bol "- " (group (one-or-more (or wordchar "-"))))
"Regexp used to find 'lint' checkers.")
(defvar guix-pcomplete-parse-regexp-group 1
"Parenthesized expression of regexps used to find commands and
options.")
;;; Non-receivable completions
(defvar guix-pcomplete-systems
'("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
"List of supported systems.")
(defvar guix-pcomplete-hash-formats
'("nix-base32" "base32" "base16" "hex" "hexadecimal")
"List of supported hash formats.")
(defvar guix-pcomplete-refresh-subsets
'("core" "non-core")
"List of supported 'refresh' subsets.")
(defvar guix-pcomplete-key-policies
'("interactive" "always" "never")
"List of supported key download policies.")
;;; Interacting with guix
(defcustom guix-pcomplete-guix-program (executable-find "guix")
"Name of the 'guix' program.
It is used to find guix commands, options, packages, etc."
:type 'file
:group 'pcomplete
:group 'guix)
(defun guix-pcomplete-run-guix (&rest args)
"Run `guix-pcomplete-guix-program' with ARGS.
Insert the output to the current buffer."
(apply #'call-process
guix-pcomplete-guix-program nil t nil args))
(defun guix-pcomplete-run-guix-and-search (regexp &optional group
&rest args)
"Run `guix-pcomplete-guix-program' with ARGS and search for matches.
Return a list of strings matching REGEXP.
GROUP specifies a parenthesized expression used in REGEXP."
(with-temp-buffer
(apply #'guix-pcomplete-run-guix args)
(goto-char (point-min))
(let (result)
(while (re-search-forward regexp nil t)
(push (match-string-no-properties group) result))
(nreverse result))))
(defmacro guix-pcomplete-define-options-finder (name docstring regexp
&optional filter)
"Define function NAME to receive guix options and commands.
The defined function takes an optional COMMAND argument. This
function will run 'guix COMMAND --help' (or 'guix --help' if
COMMAND is nil) using `guix-pcomplete-run-guix-and-search' and
return its result.
If FILTER is specified, it should be a function. The result is
passed to this FILTER as argument and the result value of this
function call is returned."
(declare (doc-string 2) (indent 1))
`(guix-memoized-defun ,name (&optional command)
,docstring
(let* ((args '("--help"))
(args (if command (cons command args) args))
(res (apply #'guix-pcomplete-run-guix-and-search
,regexp guix-pcomplete-parse-regexp-group args)))
,(if filter
`(funcall ,filter res)
'res))))
(guix-pcomplete-define-options-finder guix-pcomplete-commands
"If COMMAND is nil, return a list of available guix commands.
If COMMAND is non-nil (it should be a string), return available
subcommands, actions, etc. for this guix COMMAND."
guix-pcomplete-parse-command-regexp)
(guix-pcomplete-define-options-finder guix-pcomplete-long-options
"Return a list of available long options for guix COMMAND."
guix-pcomplete-parse-long-option-regexp)
(guix-pcomplete-define-options-finder guix-pcomplete-short-options
"Return a string with available short options for guix COMMAND."
guix-pcomplete-parse-short-option-regexp
(lambda (list)
(mapconcat #'identity list "")))
(guix-memoized-defun guix-pcomplete-all-packages ()
"Return a list of all available Guix packages."
(guix-pcomplete-run-guix-and-search
guix-pcomplete-parse-package-regexp
guix-pcomplete-parse-regexp-group
"package" "--list-available"))
(guix-memoized-defun guix-pcomplete-installed-packages (&optional profile)
"Return a list of Guix packages installed in PROFILE."
(let* ((args (and profile
(list (concat "--profile=" profile))))
(args (append '("package" "--list-installed") args)))
(apply #'guix-pcomplete-run-guix-and-search
guix-pcomplete-parse-package-regexp
guix-pcomplete-parse-regexp-group
args)))
(guix-memoized-defun guix-pcomplete-lint-checkers ()
"Return a list of all available lint checkers."
(guix-pcomplete-run-guix-and-search
guix-pcomplete-parse-linter-regexp
guix-pcomplete-parse-regexp-group
"lint" "--list-checkers"))
;;; Completing
(defvar guix-pcomplete-option-regexp (rx string-start "-")
"Regexp to match an option.")
(defvar guix-pcomplete-long-option-regexp (rx string-start "--")
"Regexp to match a long option.")
(defvar guix-pcomplete-long-option-with-arg-regexp
(rx string-start
(group "--" (one-or-more any)) "="
(group (zero-or-more any)))
"Regexp to match a long option with its argument.
The first parenthesized group defines the option and the second
group - the argument.")
(defvar guix-pcomplete-short-option-with-arg-regexp
(rx string-start
(group "-" (not (any "-")))
(group (zero-or-more any)))
"Regexp to match a short option with its argument.
The first parenthesized group defines the option and the second
group - the argument.")
(defun guix-pcomplete-match-option ()
"Return non-nil, if the current argument is an option."
(pcomplete-match guix-pcomplete-option-regexp 0))
(defun guix-pcomplete-match-long-option ()
"Return non-nil, if the current argument is a long option."
(pcomplete-match guix-pcomplete-long-option-regexp 0))
(defun guix-pcomplete-match-long-option-with-arg ()
"Return non-nil, if the current argument is a long option with value."
(pcomplete-match guix-pcomplete-long-option-with-arg-regexp 0))
(defun guix-pcomplete-match-short-option-with-arg ()
"Return non-nil, if the current argument is a short option with value."
(pcomplete-match guix-pcomplete-short-option-with-arg-regexp 0))
(defun guix-pcomplete-long-option-arg (option args)
"Return a long OPTION's argument from a list of arguments ARGS."
(let* ((re (concat "\\`" option "=\\(.*\\)"))
(args (cl-member-if (lambda (arg)
(string-match re arg))
args))
(cur (car args)))
(when cur
(match-string-no-properties 1 cur))))
(defun guix-pcomplete-short-option-arg (option args)
"Return a short OPTION's argument from a list of arguments ARGS."
(let* ((re (concat "\\`" option "\\(.*\\)"))
(args (cl-member-if (lambda (arg)
(string-match re arg))
args))
(cur (car args)))
(when cur
(let ((arg (match-string-no-properties 1 cur)))
(if (string= "" arg)
(cadr args) ; take the next arg
arg)))))
(defun guix-pcomplete-complete-comma-args (entries)
"Complete comma separated arguments using ENTRIES."
(let ((index pcomplete-index))
(while (= index pcomplete-index)
(let* ((args (if (or (guix-pcomplete-match-long-option-with-arg)
(guix-pcomplete-match-short-option-with-arg))
(pcomplete-match-string 2 0)
(pcomplete-arg 0)))
(input (if (string-match ".*,\\(.*\\)" args)
(match-string-no-properties 1 args)
args)))
(pcomplete-here* entries input)))))
(defun guix-pcomplete-complete-command-arg (command)
"Complete argument for guix COMMAND."
(cond
((member command
'("archive" "build" "environment" "lint" "refresh"))
(while t
(pcomplete-here (guix-pcomplete-all-packages))))
(t (pcomplete-here* (pcomplete-entries)))))
(defun guix-pcomplete-complete-option-arg (command option &optional input)
"Complete argument for COMMAND's OPTION.
INPUT is the current partially completed string."
(cl-flet ((option? (short long)
(or (string= option short)
(string= option long)))
(command? (&rest commands)
(member command commands))
(complete (entries)
(pcomplete-here entries input nil t))
(complete* (entries)
(pcomplete-here* entries input t)))
(cond
((option? "-L" "--load-path")
(complete* (pcomplete-dirs)))
((string= "--key-download" option)
(complete* guix-pcomplete-key-policies))
((command? "package")
(cond
;; For '--install[=]' and '--remove[=]', try to complete a package
;; name (INPUT) after the "=" sign, and then the rest packages
;; separated with spaces.
((option? "-i" "--install")
(complete (guix-pcomplete-all-packages))
(while (not (guix-pcomplete-match-option))
(pcomplete-here (guix-pcomplete-all-packages))))
((option? "-r" "--remove")
(let* ((profile (or (guix-pcomplete-short-option-arg
"-p" pcomplete-args)
(guix-pcomplete-long-option-arg
"--profile" pcomplete-args)))
(profile (and profile (expand-file-name profile))))
(complete (guix-pcomplete-installed-packages profile))
(while (not (guix-pcomplete-match-option))
(pcomplete-here (guix-pcomplete-installed-packages profile)))))
((string= "--show" option)
(complete (guix-pcomplete-all-packages)))
((option? "-p" "--profile")
(complete* (pcomplete-dirs)))
((option? "-m" "--manifest")
(complete* (pcomplete-entries)))))
((and (command? "archive" "build")
(option? "-s" "--system"))
(complete* guix-pcomplete-systems))
((and (command? "build")
(option? "-r" "--root"))
(complete* (pcomplete-entries)))
((and (command? "environment")
(option? "-l" "--load"))
(complete* (pcomplete-entries)))
((and (command? "hash" "download")
(option? "-f" "--format"))
(complete* guix-pcomplete-hash-formats))
((and (command? "lint")
(option? "-c" "--checkers"))
(guix-pcomplete-complete-comma-args
(guix-pcomplete-lint-checkers)))
((and (command? "publish")
(option? "-u" "--user"))
(complete* (pcmpl-unix-user-names)))
((and (command? "refresh")
(option? "-s" "--select"))
(complete* guix-pcomplete-refresh-subsets)))))
(defun guix-pcomplete-complete-options (command)
"Complete options (with their arguments) for guix COMMAND."
(while (guix-pcomplete-match-option)
(let ((index pcomplete-index))
(if (guix-pcomplete-match-long-option)
;; Long options.
(if (guix-pcomplete-match-long-option-with-arg)
(let ((option (pcomplete-match-string 1 0))
(arg (pcomplete-match-string 2 0)))
(guix-pcomplete-complete-option-arg
command option arg))
(pcomplete-here* (guix-pcomplete-long-options command))
;; We support '--opt arg' style (along with '--opt=arg'),
;; because 'guix package --install/--remove' may be used this
;; way. So try to complete an argument after the option has
;; been completed.
(unless (guix-pcomplete-match-option)
(guix-pcomplete-complete-option-arg
command (pcomplete-arg 0 -1))))
;; Short options.
(let ((arg (pcomplete-arg 0)))
(if (> (length arg) 2)
;; Support specifying an argument after a short option without
;; spaces (for example, '-L/tmp/foo').
(guix-pcomplete-complete-option-arg
command
(substring-no-properties arg 0 2)
(substring-no-properties arg 2))
(pcomplete-opt (guix-pcomplete-short-options command))
(guix-pcomplete-complete-option-arg
command (pcomplete-arg 0 -1)))))
;; If there were no completions, move to the next argument and get
;; out if the last argument is achieved.
(when (= index pcomplete-index)
(if (= pcomplete-index pcomplete-last)
(throw 'pcompleted nil)
(pcomplete-next-arg))))))
;;;###autoload
(defun pcomplete/guix ()
"Completion for `guix'."
(let ((commands (guix-pcomplete-commands)))
(pcomplete-here* (cons "--help" commands))
(let ((command (pcomplete-arg 'first 1)))
(when (member command commands)
(guix-pcomplete-complete-options command)
(let ((subcommands (guix-pcomplete-commands command)))
(when subcommands
(pcomplete-here* subcommands)))
(guix-pcomplete-complete-options command)
(guix-pcomplete-complete-command-arg command)))))
(provide 'guix-pcomplete)
;;; guix-pcomplete.el ends here

View file

@ -1,6 +1,6 @@
;;; guix-utils.el --- General utility functions
;;; guix-utils.el --- General utility functions -*- lexical-binding: t -*-
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@ -170,6 +170,35 @@ accessed with KEYS."
"Same as `diff', but use `guix-diff-switches' as default."
(diff old new (or switches guix-diff-switches) no-async))
;;; Memoizing
(defun guix-memoize (function)
"Return a memoized version of FUNCTION."
(let ((cache (make-hash-table :test 'equal)))
(lambda (&rest args)
(let ((result (gethash args cache 'not-found)))
(if (eq result 'not-found)
(let ((result (apply function args)))
(puthash args result cache)
result)
result)))))
(defmacro guix-memoized-defun (name arglist docstring &rest body)
"Define a memoized function NAME.
See `defun' for the meaning of arguments."
(declare (doc-string 3) (indent 2))
`(defalias ',name
(guix-memoize (lambda ,arglist ,@body))
;; Add '(name args ...)' string with real arglist to the docstring,
;; because *Help* will display '(name &rest ARGS)' for a defined
;; function (since `guix-memoize' returns a lambda with '(&rest
;; args)').
,(format "(%S %s)\n\n%s"
name
(mapconcat #'symbol-name arglist " ")
docstring)))
(provide 'guix-utils)
;;; guix-utils.el ends here

View file

@ -124,6 +124,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/gl.scm \
gnu/packages/glib.scm \
gnu/packages/gnome.scm \
gnu/packages/gnucash.scm \
gnu/packages/gnunet.scm \
gnu/packages/gnupg.scm \
gnu/packages/gnustep.scm \
@ -173,6 +174,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/libffcall.scm \
gnu/packages/libffi.scm \
gnu/packages/libftdi.scm \
gnu/packages/calendar.scm \
gnu/packages/libidn.scm \
gnu/packages/libphidget.scm \
gnu/packages/libreoffice.scm \
@ -217,6 +219,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/ncurses.scm \
gnu/packages/netpbm.scm \
gnu/packages/nettle.scm \
gnu/packages/networking.scm \
gnu/packages/ninja.scm \
gnu/packages/node.scm \
gnu/packages/noweb.scm \
@ -273,13 +276,13 @@ GNU_SYSTEM_MODULES = \
gnu/packages/slang.scm \
gnu/packages/slim.scm \
gnu/packages/smalltalk.scm \
gnu/packages/socat.scm \
gnu/packages/ssh.scm \
gnu/packages/stalonetray.scm \
gnu/packages/statistics.scm \
gnu/packages/swig.scm \
gnu/packages/sxiv.scm \
gnu/packages/synergy.scm \
gnu/packages/task-management.scm \
gnu/packages/tbb.scm \
gnu/packages/tcl.scm \
gnu/packages/tcsh.scm \
@ -291,6 +294,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/tmux.scm \
gnu/packages/tor.scm \
gnu/packages/tre.scm \
gnu/packages/tv.scm \
gnu/packages/unrtf.scm \
gnu/packages/upnp.scm \
gnu/packages/uucp.scm \
@ -327,13 +331,12 @@ GNU_SYSTEM_MODULES = \
gnu/services.scm \
gnu/services/avahi.scm \
gnu/services/base.scm \
gnu/services/colord.scm \
gnu/services/dbus.scm \
gnu/services/databases.scm \
gnu/services/desktop.scm \
gnu/services/dmd.scm \
gnu/services/lirc.scm \
gnu/services/networking.scm \
gnu/services/ssh.scm \
gnu/services/upower.scm \
gnu/services/xorg.scm \
\
gnu/system.scm \
@ -384,6 +387,7 @@ dist_patch_DATA = \
gnu/packages/patches/bigloo-gc-shebangs.patch \
gnu/packages/patches/binutils-ld-new-dtags.patch \
gnu/packages/patches/binutils-loongson-workaround.patch \
gnu/packages/patches/bitlbee-configure-doc-fix.patch \
gnu/packages/patches/calibre-drop-unrar.patch \
gnu/packages/patches/calibre-no-updates-dialog.patch \
gnu/packages/patches/cdparanoia-fpic.patch \
@ -403,8 +407,6 @@ dist_patch_DATA = \
gnu/packages/patches/cssc-missing-include.patch \
gnu/packages/patches/clucene-contribs-lib.patch \
gnu/packages/patches/cursynth-wave-rand.patch \
gnu/packages/patches/curl-support-capath-on-gnutls.patch \
gnu/packages/patches/curl-support-capath-on-gnutls-conf.patch \
gnu/packages/patches/dbus-localstatedir.patch \
gnu/packages/patches/diffutils-gets-undeclared.patch \
gnu/packages/patches/dfu-programmer-fix-libusb.patch \
@ -419,10 +421,13 @@ dist_patch_DATA = \
gnu/packages/patches/findutils-localstatedir.patch \
gnu/packages/patches/flashrom-use-libftdi1.patch \
gnu/packages/patches/flex-bison-tests.patch \
gnu/packages/patches/fltk-shared-lib-defines.patch \
gnu/packages/patches/fuse-CVE-2015-3202.patch \
gnu/packages/patches/gawk-shell.patch \
gnu/packages/patches/gcc-arm-link-spec-fix.patch \
gnu/packages/patches/gcc-cross-environment-variables.patch \
gnu/packages/patches/gcc-libvtv-runpath.patch \
gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \
gnu/packages/patches/geoclue-config.patch \
gnu/packages/patches/ghostscript-runpath.patch \
gnu/packages/patches/gitolite-openssh-6.8-compat.patch \
@ -435,7 +440,6 @@ dist_patch_DATA = \
gnu/packages/patches/glibc-ldd-x86_64.patch \
gnu/packages/patches/glibc-locales.patch \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
gnu/packages/patches/gnutls-fix-duplicate-manpages.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
gnu/packages/patches/gobject-introspection-girepository.patch \
@ -447,10 +451,9 @@ dist_patch_DATA = \
gnu/packages/patches/guile-default-utf8.patch \
gnu/packages/patches/guile-linux-syscalls.patch \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/guix-test-networking.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/inetutils-syslogd.patch \
gnu/packages/patches/hop-linker-flags.patch \
gnu/packages/patches/irrlicht-mesa-10.patch \
gnu/packages/patches/jbig2dec-ignore-testtest.patch \
gnu/packages/patches/kmod-module-directory.patch \
@ -464,13 +467,11 @@ dist_patch_DATA = \
gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
gnu/packages/patches/libmad-mips-newgcc.patch \
gnu/packages/patches/libtheora-config-guess.patch \
gnu/packages/patches/libtool-skip-tests.patch \
gnu/packages/patches/libtool-skip-tests2.patch \
gnu/packages/patches/libssh-CVE-2014-0017.patch \
gnu/packages/patches/libvpx-fix-armhf-link.patch \
gnu/packages/patches/libvpx-fix-ssse3-quantize.patch \
gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch \
gnu/packages/patches/linux-libre-libreboot-fix.patch \
gnu/packages/patches/lirc-localstatedir.patch \
gnu/packages/patches/lm-sensors-hwmon-attrs.patch \
gnu/packages/patches/lua51-liblua-so.patch \
@ -479,6 +480,7 @@ dist_patch_DATA = \
gnu/packages/patches/luit-posix.patch \
gnu/packages/patches/m4-gets-undeclared.patch \
gnu/packages/patches/make-impure-dirs.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/mhash-keygen-test-segfault.patch \
@ -523,14 +525,16 @@ dist_patch_DATA = \
gnu/packages/patches/pyqt-configure.patch \
gnu/packages/patches/python-fix-tests.patch \
gnu/packages/patches/python-libffi-mips-n32-fix.patch \
gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch \
gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
gnu/packages/patches/qemu-CVE-2015-3209.patch \
gnu/packages/patches/qemu-CVE-2015-3456.patch \
gnu/packages/patches/qt4-ldflags.patch \
gnu/packages/patches/qt4-tests.patch \
gnu/packages/patches/qt5-conflicting-typedefs.patch \
gnu/packages/patches/qt5-runpath.patch \
gnu/packages/patches/r-fix-15899.patch \
gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.patch \
gnu/packages/patches/ripperx-libm.patch \
@ -538,17 +542,23 @@ dist_patch_DATA = \
gnu/packages/patches/scheme48-tests.patch \
gnu/packages/patches/scotch-test-threading.patch \
gnu/packages/patches/sdl-libx11-1.6.patch \
gnu/packages/patches/serf-comment-style-fix.patch \
gnu/packages/patches/serf-deflate-buckets-test-fix.patch \
gnu/packages/patches/slim-session.patch \
gnu/packages/patches/slim-config.patch \
gnu/packages/patches/slim-sigusr1.patch \
gnu/packages/patches/soprano-find-clucene.patch \
gnu/packages/patches/subversion-sqlite-3.8.9-fix.patch \
gnu/packages/patches/superlu-dist-scotchmetis.patch \
gnu/packages/patches/tar-d_ino_in_dirent-fix.patch \
gnu/packages/patches/tcsh-fix-autotest.patch \
gnu/packages/patches/teckit-cstdio.patch \
gnu/packages/patches/texi2html-document-encoding.patch \
gnu/packages/patches/texi2html-i18n.patch \
gnu/packages/patches/udev-gir-libtool.patch \
gnu/packages/patches/tvtime-gcc41.patch \
gnu/packages/patches/tvtime-pngoutput.patch \
gnu/packages/patches/tvtime-videodev2.patch \
gnu/packages/patches/tvtime-xmltv.patch \
gnu/packages/patches/unzip-CVE-2014-8139.patch \
gnu/packages/patches/unzip-CVE-2014-8140.patch \
gnu/packages/patches/unzip-CVE-2014-8141.patch \
@ -559,9 +569,17 @@ dist_patch_DATA = \
gnu/packages/patches/vtk-mesa-10.patch \
gnu/packages/patches/w3m-fix-compile.patch \
gnu/packages/patches/weex-vacopy.patch \
gnu/packages/patches/wicd-template-instantiation.patch \
gnu/packages/patches/wicd-urwid-1.3.patch \
gnu/packages/patches/wmctrl-64-fix.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-1863.patch \
gnu/packages/patches/wpa-supplicant-2015-2-fix.patch \
gnu/packages/patches/wpa-supplicant-2015-3-fix.patch \
gnu/packages/patches/wpa-supplicant-2015-4-fix-pt1.patch \
gnu/packages/patches/wpa-supplicant-2015-4-fix-pt2.patch \
gnu/packages/patches/wpa-supplicant-2015-4-fix-pt3.patch \
gnu/packages/patches/wpa-supplicant-2015-4-fix-pt4.patch \
gnu/packages/patches/wpa-supplicant-2015-4-fix-pt5.patch \
gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \
gnu/packages/patches/xf86-video-ast-remove-mibstore.patch \
gnu/packages/patches/xf86-video-geode-glibc-2.20.patch \

View file

@ -32,9 +32,9 @@ (define %artwork-repository
(method git-fetch)
(uri (git-reference
(url "git://git.savannah.gnu.org/guix/guix-artwork.git")
(commit "61ae7c8")))
(commit "6998d30")))
(sha256
(base32
"102fxk2l6b0ibry3n430q8ljhwrnbml9qgalzkz6v09r7sx6a532"))))
"0k7j3pj9s3zqiqmfkapypssvzx3f12yr0cc2rbzxqfii0b4clp1j"))))
;;; artwork.scm ends here

View file

@ -78,6 +78,11 @@ (define %skeleton-directory
(define (dot-or-dot-dot? file)
(member file '("." "..")))
(define (make-file-writable file)
"Make FILE writable for its owner.."
(let ((stat (lstat file))) ;XXX: symlinks
(chmod file (logior #o600 (stat:perms stat)))))
(define* (copy-account-skeletons home
#:optional (directory %skeleton-directory))
"Copy the account skeletons from DIRECTORY to HOME."
@ -85,8 +90,21 @@ (define* (copy-account-skeletons home
string<?)))
(mkdir-p home)
(for-each (lambda (file)
(copy-file (string-append directory "/" file)
(string-append home "/" file)))
(let ((target (string-append home "/" file)))
(copy-file (string-append directory "/" file) target)
(make-file-writable target)))
files)))
(define* (make-skeletons-writable home
#:optional (directory %skeleton-directory))
"Make sure that the files that have been copied from DIRECTORY to HOME are
owner-writable in HOME."
(let ((files (scandir directory (negate dot-or-dot-dot?)
string<?)))
(for-each (lambda (file)
(let ((target (string-append home "/" file)))
(when (file-exists? target)
(make-file-writable target))))
files)))
(define* (add-user name group
@ -128,7 +146,14 @@ (define* (add-user name group
,@(if password `("-p" ,password) '())
,@(if system? '("--system") '())
,name)))
(zero? (apply system* "useradd" args)))))
(and (zero? (apply system* "useradd" args))
(begin
;; Since /etc/skel is a link to a directory in the store where
;; all files have the writable bit cleared, and since 'useradd'
;; preserves permissions when it copies them, explicitly make
;; them writable.
(make-skeletons-writable home)
#t)))))
(define* (modify-user name group
#:key uid comment home shell password system?
@ -344,9 +369,11 @@ (define (activate-ptrace-attach)
processes--see Yama.txt in the Linux source tree for the rationale. This
sounds like an unacceptable restriction for little or no security
improvement."
(call-with-output-file "/proc/sys/kernel/yama/ptrace_scope"
(lambda (port)
(display 0 port))))
(let ((file "/proc/sys/kernel/yama/ptrace_scope"))
(when (file-exists? file)
(call-with-output-file file
(lambda (port)
(display 0 port))))))
(define %current-system

View file

@ -133,9 +133,19 @@ (define (populate-root-file-system system target)
(directives (%store-directory)))
;; Add system generation 1.
(false-if-exception (delete-file "/var/guix/profiles/system-1-link"))
(symlink system
(string-append target "/var/guix/profiles/system-1-link")))
(let ((generation-1 (string-append target
"/var/guix/profiles/system-1-link")))
(let try ()
(catch 'system-error
(lambda ()
(symlink system generation-1))
(lambda args
;; If GENERATION-1 already exists, overwrite it.
(if (= EEXIST (system-error-errno args))
(begin
(delete-file generation-1)
(try))
(apply throw args)))))))
(define (reset-timestamps directory)
"Reset the timestamps of all the files under DIRECTORY, so that they appear

View file

@ -418,7 +418,6 @@ (define (lookup-module name)
(switch-root "/root")
(format #t "loading '~a'...\n" to-load)
;; TODO: Remove /lib, /share, and /loader.go.
(primitive-load to-load)
(format (current-error-port)

View file

@ -152,25 +152,20 @@ (define-public pies
(define-public inetutils
(package
(name "inetutils")
(version "1.9.2")
(version "1.9.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/inetutils/inetutils-"
version ".tar.gz"))
(sha256
(base32
"04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))
(patches (list (search-patch "inetutils-syslogd.patch")))))
"06dshajjpyi9sxi7qfki9gnp5r3nxvyvf81r81gx0x2qkqzqcxlj"))))
(build-system gnu-build-system)
(arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
;; which is currently missing.
#:tests? #f))
(inputs `(("ncurses" ,ncurses)
("readline" ,readline))) ; for 'ftp'
;; Help2man is needed because of the patch that modifies syslogd.c.
(native-inputs `(("help2man" ,help2man)))
(home-page "http://www.gnu.org/software/inetutils/")
(synopsis "Basic networking utilities")
(description
@ -693,7 +688,7 @@ (define-public sudo
(define-public wpa-supplicant-light
(package
(name "wpa-supplicant-light")
(version "2.3")
(version "2.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -702,9 +697,16 @@ (define-public wpa-supplicant-light
".tar.gz"))
(sha256
(base32
"0skvkl6c10ls4s48b2wmf47h9j1y40nlzxnzn8hyaw2j0prmpapa"))
"08li21q1wjn5chrv289w666il9ah1w419y3dkq2rl4wnq0rci385"))
(patches
(list (search-patch "wpa-supplicant-CVE-2015-1863.patch")))))
(map search-patch '("wpa-supplicant-CVE-2015-1863.patch"
"wpa-supplicant-2015-2-fix.patch"
"wpa-supplicant-2015-3-fix.patch"
"wpa-supplicant-2015-4-fix-pt1.patch"
"wpa-supplicant-2015-4-fix-pt2.patch"
"wpa-supplicant-2015-4-fix-pt3.patch"
"wpa-supplicant-2015-4-fix-pt4.patch"
"wpa-supplicant-2015-4-fix-pt5.patch")))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-replace
@ -872,7 +874,7 @@ (define-public dmidecode
(define-public acpica
(package
(name "acpica")
(version "20140724")
(version "20150410")
(source (origin
(method url-fetch)
(uri (string-append
@ -880,7 +882,7 @@ (define-public acpica
version ".tar.gz"))
(sha256
(base32
"01vdgrh7dsxrrvg5yd8sxm63cw8210pnsi5qg9g15ac53gn243ac"))))
"0q1fjwkyw9x6gsva6fd0zbn7ly4fx0ha4853f416np9kf2irillw"))))
(build-system gnu-build-system)
(native-inputs `(("flex" ,flex)
("bison" ,bison)))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,25 +18,26 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages apr)
#:use-module (guix licenses)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages xml)
#:use-module (gnu packages autotools))
(define-public apr
(package
(name "apr")
(version "1.5.1")
(version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/apr/apr-"
version ".tar.bz2"))
(sha256
(base32
"1b4qw686bwjn19iyb0lg918q23xxd6s2gnyczhjq992d3m1vwjp9"))
"0ypn51xblix5ys9xy7da3ngdydip0qqh9rdq8nz54w9aq8lys0vx"))
(patches
(list (search-patch "apr-skip-getservbyname-test.patch")))
(patch-flags '("-p0"))))
@ -59,7 +60,7 @@ (define-public apr
not identical behaviour regardless of the platform on which their software is
built, relieving them of the need to code special-case conditions to work
around or take advantage of platform-specific deficiencies or features.")
(license asl2.0)))
(license l:asl2.0)))
(define-public apr-util
(package
@ -74,19 +75,23 @@ (define-public apr-util
"0bn81pfscy9yjvbmyx442svf43s6dhrdfcsnkpxz43fai5qk5kx6"))))
(build-system gnu-build-system)
(inputs
`(("apr" ,apr)))
`(("apr" ,apr)))
(propagated-inputs
`(("expat" ,expat)))
(arguments
'(#:phases
(alist-replace
'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(apr (assoc-ref inputs "apr")))
(let ((out (assoc-ref outputs "out"))
(apr (assoc-ref inputs "apr"))
(expat (assoc-ref inputs "expat")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(string-append "--with-apr=" apr)))))
(string-append "--with-apr=" apr)
(string-append "--with-expat=" expat)))))
%standard-phases)
;; There are race conditions during 'make check'. Typically, the
@ -98,4 +103,4 @@ (define-public apr-util
(synopsis "One of the Apache Portable Runtime Library companions")
(description
"APR-util provides a number of helpful abstractions on top of APR.")
(license asl2.0)))
(license l:asl2.0)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,6 +22,7 @@ (define-module (gnu packages audio)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix build-system waf)
@ -128,7 +130,23 @@ (define-public aubio
streams from live audio.")
(license license:gpl3+)))
(define-public ardour
(define (ardour-rpath-phase major-version)
`(lambda* (#:key outputs #:allow-other-keys)
(let ((libdir (string-append (assoc-ref outputs "out")
"/lib/ardour" ,major-version)))
(substitute* "wscript"
(("linker_flags = \\[\\]")
(string-append "linker_flags = [\""
"-Wl,-rpath="
libdir ":"
libdir "/backends" ":"
libdir "/engines" ":"
libdir "/panners" ":"
libdir "/surfaces" ":"
libdir "/vamp" "\"]"))))
#t))
(define-public ardour-3
(package
(name "ardour")
(version "3.5.403")
@ -140,6 +158,9 @@ (define-public ardour
(url "git://git.ardour.org/ardour/ardour.git")
(commit version)))
(snippet
;; Ardour expects this file to exist at build time. It can be
;; created from a git checkout with:
;; ./waf create_stored_revision
'(call-with-output-file
"libs/ardour/revision.cc"
(lambda (port)
@ -151,7 +172,12 @@ (define-public ardour
(file-name (string-append name "-" version))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target
`(#:phases
(modify-phases %standard-phases
(add-after
'unpack 'set-rpath-in-LDFLAGS
,(ardour-rpath-phase (version-prefix version 1))))
#:tests? #f ; no check target
#:python ,python-2))
(inputs
`(("alsa-lib" ,alsa-lib)
@ -183,8 +209,6 @@ (define-public ardour
("sratom" ,sratom)
("suil" ,suil)
("lilv" ,lilv)
("rasqal" ,rasqal)
("raptor2" ,raptor2)
("redland" ,redland)
("rubberband" ,rubberband)
("taglib" ,taglib)
@ -200,6 +224,35 @@ (define-public ardour
engineers, musicians, soundtrack editors and composers.")
(license license:gpl2+)))
(define-public ardour
(package (inherit ardour-3)
(name "ardour")
(version "4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.ardour.org/ardour/ardour.git")
(commit version)))
(snippet
;; Ardour expects this file to exist at build time. It can be
;; created from a git checkout with:
;; ./waf create_stored_revision
'(call-with-output-file
"libs/ardour/revision.cc"
(lambda (port)
(format port "#include \"ardour/revision.h\"
namespace ARDOUR { const char* revision = \"4.0\" ; }"))))
(sha256
(base32
"0a8bydc24xv0cahdqfaxdmi1f43cyr9psiyshxpbrkdqw2c7a4xi"))
(file-name (string-append name "-" version))))
(arguments
(substitute-keyword-arguments (package-arguments ardour-3)
((#:phases phases)
`(modify-phases ,phases
(replace 'set-rpath-in-LDFLAGS
,(ardour-rpath-phase (version-prefix version 1)))))))))
(define-public azr3
(package
(name "azr3")
@ -466,6 +519,46 @@ (define-public freepats
;; GPLv2+ with exception for compositions using these patches.
(license license:gpl2+)))
(define-public ir
(package
(name "ir")
(version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append
"http://factorial.hu/system/files/ir.lv2-"
version ".tar.gz"))
(sha256
(base32
"1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no "check" target
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
;; no configure script
(alist-delete 'configure %standard-phases)))
(inputs
`(("libsndfile" ,libsndfile)
("libsamplerate" ,libsamplerate)
("lv2" ,lv2)
("glib" ,glib)
("gtk+" ,gtk+-2)
("zita-convolver" ,zita-convolver)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(native-search-paths
(list (search-path-specification
(variable "LV2_PATH")
(files '("lib/lv2")))))
(home-page "http://factorial.hu/plugins/lv2/ir")
(synopsis "LV2 convolution reverb")
(description
"IR is a low-latency, real-time, high performance signal convolver
especially for creating reverb effects. It supports impulse responses with 1,
2 or 4 channels, in any soundfile format supported by libsndfile.")
(license license:gpl2+)))
(define-public jack-1
(package
(name "jack")
@ -898,10 +991,8 @@ (define-public patchage
("boost" ,boost)
("jack" ,jack-1)
("ganv" ,ganv)
("glib" ,glib)
("glibmm" ,glibmm)
("gtkmm" ,gtkmm-2)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -1386,6 +1477,48 @@ (define-public rsound
with a much different focus than most other audio daemons.")
(license license:gpl3+)))
(define-public zita-convolver
(package
(name "zita-convolver")
(version "3.1.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/zita-convolver-"
version ".tar.bz2"))
(sha256
(base32
"14qrnczhp5mbwhky64il7kxc4hl1mmh495v60va7i2qnhasr6zmz"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(alist-cons-after
'unpack 'patch-makefile-and-enter-directory
(lambda _
(substitute* "libs/Makefile"
(("ldconfig") "true")
(("^LIBDIR =.*") "LIBDIR = lib\n"))
(chdir "libs") #t)
(alist-cons-after
'install
'install-symlink
(lambda _
(symlink "libzita-convolver.so"
(string-append (assoc-ref %outputs "out")
"/lib/libzita-convolver.so.3")))
;; no configure script
(alist-delete 'configure %standard-phases)))))
(inputs `(("fftwf" ,fftwf)))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "Fast, partitioned convolution engine library")
(description
"Zita convolver is a C++ library providing a real-time convolution
engine.")
(license license:gpl3+)))
(define-public zita-alsa-pcmi
(package
(name "zita-alsa-pcmi")

View file

@ -23,13 +23,14 @@ (define-module (gnu packages autogen)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages base)
#:use-module (gnu packages guile))
(define-public autogen
(package
(name "autogen")
(version "5.18.4")
(version "5.18.5")
(source
(origin
(method url-fetch)
@ -38,9 +39,10 @@ (define-public autogen
version ".tar.gz"))
(sha256
(base32
"0pbjzwgvmjvi6nl1bcyhfc9kl93s6321dgmvp5dqdip7i8dgin9w"))))
"1flnbnmkbqmbfgammkl8m36wrlk6rhpgnf9pdm6gdfhqalxvggbv"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) ;for doc generator mdoc
(native-inputs `(("perl" ,perl) ;for doc generator mdoc
("pkg-config" ,pkg-config)))
(inputs `(("which" ,which)
("guile" ,guile-2.0)))
(arguments

View file

@ -24,6 +24,7 @@ (define-module (gnu packages bioinformatics)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
@ -45,6 +46,7 @@ (define-module (gnu packages bioinformatics)
#:use-module (gnu packages tbb)
#:use-module (gnu packages textutils)
#:use-module (gnu packages vim)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages zip))
@ -62,7 +64,17 @@ (define-public bamtools
(base32
"1brry29bw2xr2l9pqn240rkqwayg85b8qq78zk2zs6nlspk4d018"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no "check" target
(arguments
`(#:tests? #f ;no "check" target
#:phases
(modify-phases %standard-phases
(add-before
'configure 'set-ldflags
(lambda* (#:key outputs #:allow-other-keys)
(setenv "LDFLAGS"
(string-append
"-Wl,-rpath="
(assoc-ref outputs "out") "/lib/bamtools")))))))
(inputs `(("zlib" ,zlib)))
(home-page "https://github.com/pezmaster31/bamtools")
(synopsis "C++ API and command-line toolkit for working with BAM data")
@ -532,6 +544,74 @@ (define-public cutadapt
other types of unwanted sequence from high-throughput sequencing reads.")
(license license:expat)))
(define-public edirect
(package
(name "edirect")
(version "2.50")
(source (origin
(method url-fetch)
;; Note: older versions are not retained.
(uri "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.zip")
(sha256
(base32
"08afhz2ph66h8h381hl1mqyxkdi5nbvzsyj9gfw3jfbdijnpi4qj"))))
(build-system perl-build-system)
(arguments
`(#:tests? #f ;no "check" target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out")
"/bin")))
(mkdir-p target)
(copy-file "edirect.pl"
(string-append target "/edirect.pl"))
#t)))
(add-after
'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'edirect.pl' finds all perl inputs at runtime.
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PERL5LIB")))
(wrap-program (string-append out "/bin/edirect.pl")
`("PERL5LIB" ":" prefix (,path)))))))))
(inputs
`(("perl-html-parser" ,perl-html-parser)
("perl-encode-locale" ,perl-encode-locale)
("perl-file-listing" ,perl-file-listing)
("perl-html-tagset" ,perl-html-tagset)
("perl-html-tree" ,perl-html-tree)
("perl-http-cookies" ,perl-http-cookies)
("perl-http-date" ,perl-http-date)
("perl-http-message" ,perl-http-message)
("perl-http-negotiate" ,perl-http-negotiate)
("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
("perl-net-http" ,perl-net-http)
("perl-uri" ,perl-uri)
("perl-www-robotrules" ,perl-www-robotrules)
("perl" ,perl)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://www.ncbi.nlm.nih.gov/books/NBK179288")
(synopsis "Tools for accessing the NCBI's set of databases")
(description
"Entrez Direct (EDirect) is a method for accessing the National Center
for Biotechnology Information's (NCBI) set of interconnected
databases (publication, sequence, structure, gene, variation, expression,
etc.) from a terminal. Functions take search terms from command-line
arguments. Individual operations are combined to build multi-step queries.
Record retrieval and formatting normally complete the process.
EDirect also provides an argument-driven function that simplifies the
extraction of data from document summaries or other results that are returned
in structured XML format. This can eliminate the need for writing custom
software to answer ad hoc questions.")
(license license:public-domain)))
(define-public express
(package
(name "express")
@ -839,6 +919,41 @@ (define-public htsjdk
manipulating HTS data.")
(license license:expat)))
(define-public htslib
(package
(name "htslib")
(version "1.2.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/samtools/htslib/releases/download/"
version "/htslib-" version ".tar.bz2"))
(sha256
(base32
"1c32ssscbnjwfw3dra140fq7riarp2x990qxybh34nr1p5r17nxx"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after
'unpack 'patch-tests
(lambda _
(substitute* "test/test.pl"
(("/bin/bash") (which "bash")))
#t)))))
(inputs
`(("zlib" ,zlib)))
(native-inputs
`(("perl" ,perl)))
(home-page "http://www.htslib.org")
(synopsis "C library for reading/writing high-throughput sequencing data")
(description
"HTSlib is a C library for reading/writing high-throughput sequencing
data. It also provides the bgzip, htsfile, and tabix utilities.")
;; Files under cram/ are released under the modified BSD license;
;; the rest is released under the Expat license
(license (list license:expat license:bsd-3))))
(define-public macs
(package
(name "macs")
@ -1003,6 +1118,84 @@ (define-public pbtranscript-tofu
generated using the PacBio Iso-Seq protocol.")
(license license:bsd-3))))
(define-public rsem
(package
(name "rsem")
(version "1.2.20")
(source
(origin
(method url-fetch)
(uri
(string-append "http://deweylab.biostat.wisc.edu/rsem/src/rsem-"
version ".tar.gz"))
(sha256
(base32 "0nzdc0j0hjllhsd5f2xli95dafm3nawskigs140xzvjk67xh0r9q"))
(patches (list (search-patch "rsem-makefile.patch")))
(modules '((guix build utils)))
(snippet
'(begin
;; remove bundled copy of boost
(delete-file-recursively "boost")
#t))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no "check" target
#:phases
(modify-phases %standard-phases
;; No "configure" script.
;; Do not build bundled samtools library.
(replace 'configure
(lambda _
(substitute* "Makefile"
(("^all : sam/libbam.a") "all : "))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (string-append (assoc-ref outputs "out")))
(bin (string-append out "/bin/"))
(perl (string-append out "/lib/perl5/site_perl")))
(mkdir-p bin)
(mkdir-p perl)
(for-each (lambda (file)
(copy-file file
(string-append bin (basename file))))
(find-files "." "rsem-.*"))
(copy-file "rsem_perl_utils.pm"
(string-append perl "/rsem_perl_utils.pm")))
#t))
(add-after
'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (prog)
(wrap-program (string-append out "/bin/" prog)
`("PERL5LIB" ":" prefix
(,(string-append out "/lib/perl5/site_perl")))))
'("rsem-plot-transcript-wiggles"
"rsem-calculate-expression"
"rsem-generate-ngvector"
"rsem-run-ebseq"
"rsem-prepare-reference")))
#t)))))
(inputs
`(("boost" ,boost)
("ncurses" ,ncurses)
("r" ,r)
("perl" ,perl)
("samtools" ,samtools-0.1)
("zlib" ,zlib)))
(home-page "http://deweylab.biostat.wisc.edu/rsem/")
(synopsis "Estimate gene expression levels from RNA-Seq data")
(description
"RSEM is a software package for estimating gene and isoform expression
levels from RNA-Seq data. The RSEM package provides a user-friendly
interface, supports threads for parallel computation of the EM algorithm,
single-end and paired-end read data, quality scores, variable-length reads and
RSPD estimation. In addition, it provides posterior mean and 95% credibility
interval estimates for expression levels. For visualization, it can generate
BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
(license license:gpl3+)))
(define-public rseqc
(package
(name "rseqc")
@ -1068,32 +1261,31 @@ (define-public samtools
;; systems.
#:tests? ,(string=? (or (%current-system) (%current-target-system))
"x86_64-linux")
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
#:make-flags (list "LIBCURSES=-lncurses"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(alist-cons-after
'unpack
'patch-makefile-curses
(lambda _
(substitute* "Makefile"
(("-lcurses") "-lncurses")))
'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "test/test.pl"
;; The test script calls out to /bin/bash
(("/bin/bash")
(string-append bash "/bin/bash"))
;; There are two failing tests upstream relating to the "stats"
;; subcommand in test_usage_subcommand ("did not have Usage"
;; and "usage did not mention samtools stats"), so we disable
;; them.
(("(test_usage_subcommand\\(.*\\);)" cmd)
(string-append "unless ($subcommand eq 'stats') {" cmd "};")))))
(alist-cons-after
'unpack
'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "test/test.pl"
;; The test script calls out to /bin/bash
(("/bin/bash")
(string-append bash "/bin/bash"))
;; There are two failing tests upstream relating to the "stats"
;; subcommand in test_usage_subcommand ("did not have Usage"
;; and "usage did not mention samtools stats"), so we disable
;; them.
(("(test_usage_subcommand\\(.*\\);)" cmd)
(string-append "unless ($subcommand eq 'stats') {" cmd "};")))))
(alist-delete
'configure
%standard-phases)))))
'install 'install-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(mkdir-p lib)
(copy-file "libbam.a" (string-append lib "/libbam.a"))))
(alist-delete 'configure %standard-phases)))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("ncurses" ,ncurses)
("perl" ,perl)
@ -1108,6 +1300,34 @@ (define-public samtools
viewer.")
(license license:expat)))
(define-public samtools-0.1
;; This is the most recent version of the 0.1 line of samtools. The input
;; and output formats differ greatly from that used and produced by samtools
;; 1.x and is still used in many bioinformatics pipelines.
(package (inherit samtools)
(version "0.1.19")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://sourceforge/samtools/"
version "/samtools-" version ".tar.bz2"))
(sha256
(base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
(arguments
(substitute-keyword-arguments (package-arguments samtools)
((#:tests? tests) #f) ;no "check" target
((#:phases phases)
`(modify-phases ,phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append
(assoc-ref outputs "out") "/bin")))
(mkdir-p bin)
(copy-file "samtools"
(string-append bin "/samtools")))))
(delete 'patch-tests)))))))
(define-public ngs-sdk
(package
(name "ngs-sdk")
@ -1266,11 +1486,16 @@ (define-public ncbi-vdb
(assoc-ref inputs "hdf5"))))))
(alist-cons-after
'install 'install-interfaces
(lambda* (#:key system outputs #:allow-other-keys)
;; Install interface libraries
(lambda* (#:key outputs #:allow-other-keys)
;; Install interface libraries. On i686 the interface libraries
;; are installed to "linux/gcc/i386", so we need to use the Linux
;; architecture name ("i386") instead of the target system prefix
;; ("i686").
(mkdir (string-append (assoc-ref outputs "out") "/ilib"))
(copy-recursively (string-append "build/ncbi-vdb/linux/gcc/"
(car (string-split system #\-))
,(system->linux-architecture
(or (%current-target-system)
(%current-system)))
"/rel/ilib")
(string-append (assoc-ref outputs "out")
"/ilib"))
@ -1513,7 +1738,40 @@ (define-public shogun
"/sources/shogun-" version ".tar.bz2"))
(sha256
(base32
"159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))))
"159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))
(modules '((guix build utils)
(ice-9 rdelim)))
(snippet
'(begin
;; Remove non-free sources and files referencing them
(for-each delete-file
(find-files "src/shogun/classifier/svm/"
"SVMLight\\.(cpp|h)"))
(for-each delete-file
(find-files "examples/undocumented/libshogun/"
(string-append
"(classifier_.*svmlight.*|"
"evaluation_cross_validation_locked_comparison).cpp")))
;; Remove non-free functions.
(define (delete-ifdefs file)
(with-atomic-file-replacement file
(lambda (in out)
(let loop ((line (read-line in 'concat))
(skipping? #f))
(if (eof-object? line)
#t
(let ((skip-next?
(or (and skipping?
(not (string-prefix?
"#endif //USE_SVMLIGHT" line)))
(string-prefix?
"#ifdef USE_SVMLIGHT" line))))
(when (or (not skipping?)
(and skipping? (not skip-next?)))
(display line out))
(loop (read-line in 'concat) skip-next?)))))))
(for-each delete-ifdefs (find-files "src/shogun/kernel/"
"^Kernel\\.(cpp|h)"))))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no check target
@ -1621,6 +1879,7 @@ (define-public vcftools
(arguments
`(#:tests? #f ; no "check" target
#:make-flags (list
"CFLAGS=-O2" ; override "-m64" flag
(string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "MANDIR=" (assoc-ref %outputs "out")
"/share/man/man1"))

View file

@ -53,8 +53,9 @@ (define-public busybox
;; There is no /usr/bin or /bin - replace it with /gnu/store
(substitute* "testsuite/cpio.tests"
(("/usr/bin") "/gnu/store")
(("usr") "gnu"))
(("/usr/bin") (%store-directory))
(("usr") (car (filter (negate string-null?)
(string-split (%store-directory) #\/)))))
(substitute* "testsuite/date/date-works-1"
(("/bin/date") (which "date")))

52
gnu/packages/calendar.scm Normal file
View file

@ -0,0 +1,52 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@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 calendar)
#:use-module (gnu packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages perl))
(define-public libical
(package
(name "libical")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/libical/libical/releases/download/v"
version "/libical-" version ".tar.gz"))
(sha256
(base32
"14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; test suite appears broken
(native-inputs
`(("perl" ,perl)))
(inputs
`(("icu4c" ,icu4c)))
(home-page "https://libical.github.io/libical/")
(synopsis "iCalendar protocols and data formats implementation")
(description
"Libical is an implementation of the iCalendar protocols and protocol
data units.")
(license lgpl2.1)))

View file

@ -95,7 +95,9 @@ (define-public libcdio
for CD-ROM and CD image file access. It allows the developer to add CD
access to an application without having to worry about the OS- and
device-dependent properties of CD-ROM or the specific details of CD image
formats.")
formats. It includes pycdio, a Python interface to libcdio, and
libcdio-paranoia, a library providing jitter-free and error-free audio
extraction from CDs.")
(license gpl3+)))
(define-public libcdio-paranoia
@ -122,14 +124,14 @@ (define-public libcdio-paranoia
(define-public xorriso
(package
(name "xorriso")
(version "1.3.8")
(version "1.4.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/xorriso/xorriso-"
version ".tar.gz"))
(sha256
(base32
"0zhhj9lr9z7hnb2alac54mc28w1l0mbanphhpmy3ylsi8rih84lh"))))
"0mhfxn2idkrw1i65a5y4gnb1fig85zpnszb9ax7w4a2v062y1l8b"))))
(build-system gnu-build-system)
(inputs
`(("acl" ,acl)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -89,12 +90,18 @@ (define-public cppunit
(version "1.12.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/cppunit/" name "/"
(uri (string-append "mirror://sourceforge/cppunit/" name "/"
name "-"
version ".tar.gz"))
(sha256
(base32
"0jm49v5rmc5qw34vqs56gy8xja1dhci73bmh23cig4kcir6a0a5c"))))
;; Explicitly link with libdl. This is expected to be done by packages
;; relying on cppunit for their tests. However, not all of them do.
;; If we added the linker flag to such packages, we would pollute all
;; binaries, not only those used for testing.
(arguments
`(#:make-flags '("LDFLAGS=-ldl")))
(build-system gnu-build-system)
(home-page "http://sourceforge.net/projects/cppunit/")
(synopsis "Unit testing framework for C++")

View file

@ -783,16 +783,26 @@ (define (gcc-toolchain gcc)
'(#:modules ((guix build union))
#:builder (begin
(use-modules (ice-9 match)
(srfi srfi-26)
(guix build union))
(match %build-inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories)))
(let ((out (assoc-ref %outputs "out")))
(union-build (assoc-ref %outputs "debug")
(list (assoc-ref %build-inputs
"libc-debug"))))))
(match %build-inputs
(((names . directories) ...)
(union-build out directories)))
;; Remove the 'sh' and 'bash' binaries that come with
;; libc to avoid polluting the user's profile (these are
;; statically-linked binaries with no locale support and
;; so on.)
(for-each (lambda (file)
(delete-file (string-append out "/bin/" file)))
'("sh" "bash"))
(union-build (assoc-ref %outputs "debug")
(list (assoc-ref %build-inputs
"libc-debug")))))))
(native-search-paths (package-native-search-paths gcc))
(search-paths (package-search-paths gcc))

View file

@ -297,7 +297,7 @@ (define-public lzip
(define-public sharutils
(package
(name "sharutils")
(version "4.15")
(version "4.15.2")
(source
(origin
(method url-fetch)
@ -305,7 +305,7 @@ (define-public sharutils
version ".tar.xz"))
(sha256
(base32
"19gqb6qbqmpgh6xlpgpj0ayw2nshllxg9d01qb5z8bnkhfcla8ka"))))
"16isapn8f39lnffc3dp4dan05b7x6mnc76v6q5nn8ysxvvvwy19b"))))
(build-system gnu-build-system)
(inputs
`(("which" ,which)))

View file

@ -106,14 +106,14 @@ (define-public cups-filters
(define-public cups-minimal
(package
(name "cups-minimal")
(version "2.0.1")
(version "2.0.3")
(source (origin
(method url-fetch)
(uri (string-append "http://www.cups.org/software/"
version "/cups-" version "-source.tar.gz"))
(sha256
(base32
"1kbc85kwhm1vyzahblrg3qih9yypggs91d13gdrbnaac8q7jd9jr"))))
"1kq1kpny0hghqgbjvashlv6qw1xn0c1p3d4r3cx8qxdzd2ifk4lf"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View file

@ -38,17 +38,14 @@ (define-module (gnu packages curl)
(define-public curl
(package
(name "curl")
(version "7.41.0")
(version "7.42.1")
(source (origin
(method url-fetch)
(uri (string-append "http://curl.haxx.se/download/curl-"
version ".tar.lzma"))
(sha256
(base32
"08n7vrhdfzziy3a7n93r7qjhzk8p26q464hxg8w9irdk3v60pi62"))
(patches
(list (search-patch "curl-support-capath-on-gnutls.patch")
(search-patch "curl-support-capath-on-gnutls-conf.patch")))))
"0ircrhi4i9iviq0d9044rq288sdrww19d0ci6vmb4fh8nmm1jv1x"))))
(build-system gnu-build-system)
(inputs `(("gnutls" ,gnutls)
("gss" ,gss)

View file

@ -49,6 +49,7 @@ (define-module (gnu packages databases)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system cmake)
#:use-module (guix utils)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match))
@ -100,53 +101,47 @@ (define-public bdb
(define-public mysql
(package
(name "mysql")
(version "5.1.73")
(version "5.6.25")
(source (origin
(method url-fetch)
(uri (string-append
"http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-"
version ".tar.gz"))
"http://dev.mysql.com/get/Downloads/MySQL-"
(version-major+minor version) "/"
name "-" version ".tar.gz"))
(sha256
(base32
"1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5"))))
(build-system gnu-build-system)
"1gbz5i1z3nswpq3q8f477vrx7g15j8n41pyb94k0jfnkhc5rq1qm"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
'("-DBUILD_CONFIG=mysql_release"
"-DWITH_SSL=system"
"-DWITH_ZLIB=system"
"-DDEFAULT_CHARSET=utf8"
"-DDEFAULT_COLLATION=utf8_general_ci"
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
"-DINSTALL_INFODIR=share/mysql/docs"
"-DINSTALL_MANDIR=share/man"
"-DINSTALL_PLUGINDIR=lib/mysql/plugin"
"-DINSTALL_SCRIPTDIR=bin"
"-DINSTALL_INCLUDEDIR=include/mysql"
"-DINSTALL_DOCREADMEDIR=share/mysql/docs"
"-DINSTALL_SUPPORTFILESDIR=share/mysql"
"-DINSTALL_MYSQLSHAREDIR=share/mysql"
"-DINSTALL_DOCDIR=share/mysql/docs"
"-DINSTALL_SHAREDIR=share/mysql"
;; Get rid of test data.
"-DINSTALL_MYSQLTESTDIR="
"-DINSTALL_SQLBENCHDIR=")))
(native-inputs
`(("bison" ,bison)
("perl" ,perl)))
(inputs
`(("procps" ,procps)
`(("libaio" ,libaio)
("openssl" ,openssl)
("perl" ,perl)
("zlib" ,zlib)
("ncurses" ,ncurses)))
(arguments
'(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)) ; for "rm -rf"
#:phases (alist-cons-after
'install 'clean-up
(lambda* (#:key outputs #:allow-other-keys)
;; Remove the 112 MiB of tests that get installed.
(let ((out (assoc-ref outputs "out")))
(define (rm-rf dir)
(file-system-fold (const #t) ; enter?
(lambda (file stat result) ; leaf
(delete-file file))
(const #t) ; down
(lambda (dir stat result) ; up
(rmdir dir))
(const #t)
(lambda (file stat errno result)
(format (current-error-port)
"error: ~a: ~a~%"
file (strerror errno)))
#t
(string-append out "/" dir)))
(rm-rf "mysql-test")
(rm-rf "sql-bench")
;; Compress the 14 MiB Info file.
(zero?
(system* "gzip" "--best"
(string-append out "/share/info/mysql.info")))))
%standard-phases)))
(home-page "http://www.mysql.com/")
(synopsis "Fast, easy to use, and popular database")
(description
@ -158,7 +153,7 @@ (define (rm-rf dir)
(define-public mariadb
(package
(name "mariadb")
(version "10.0.17")
(version "10.0.18")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.org/f/"
@ -166,7 +161,7 @@ (define-public mariadb
name "-" version ".tar.gz"))
(sha256
(base32
"04ckq67qgkghh7yzrbzwidk7wn7yjml15gzj2c5p1hs2k7lr9lww"))))
"1xcs391cm0vnl9bvx1470v8z4d77zqv16n6iaqi12jm0ma8fwvv8"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@ -226,14 +221,14 @@ (define-public mariadb
(define-public postgresql
(package
(name "postgresql")
(version "9.3.6")
(version "9.3.7")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"056ass7nnfyv7blv02anv795kgpz77gipdpxggd835cdwrhwns13"))))
"0ggz0i91znv053zx9qas7pjf93s5by3dk84z1jxbjkg8yyrnlx4b"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)
@ -289,7 +284,7 @@ (define-public recutils
(define-public sqlite
(package
(name "sqlite")
(version "3.8.8.3")
(version "3.8.9")
(source (origin
(method url-fetch)
;; TODO: Download from sqlite.org once this bug :
@ -309,7 +304,7 @@ (define-public sqlite
"/sqlite-autoconf-" numeric-version ".tar.gz")))
(sha256
(base32
"04dl53iv5q0srv4jcgjfzsrdzkq6dg1sgmlmpw9lrd4xrmj6jmvl"))))
"18k90bbfvvgc5204nm1hzw0vsj9ygzv7zbq3z6zrya6j5hwvdsvn"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(arguments

View file

@ -26,7 +26,7 @@ (define-module (gnu packages dejagnu)
(define-public dejagnu
(package
(name "dejagnu")
(version "1.5.2")
(version "1.5.3")
(source
(origin
(method url-fetch)
@ -34,7 +34,7 @@ (define-public dejagnu
version ".tar.gz"))
(sha256
(base32
"18ikblg4x4y5fkw8sg0c2zmqgxdqqycswmws17sxx8m4sz6g7dch"))))
"069z3qrdv35cm2sbnfr5yjzplrqj9f61cchxis7j9mm19hv8x6q9"))))
(build-system gnu-build-system)
(inputs `(("expect" ,expect)))
(arguments

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -119,3 +120,30 @@ (define-public ddrescue
program also includes a tool for manipulating its log files, which are used
to recover data more efficiently by only reading the necessary blocks.")
(license gpl3+)))
(define-public dosfstools
(package
(name "dosfstools")
(version "3.0.27")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/" name "/" name
"/releases/download/v" version "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1a2qs5g2zqbk1gzaaf4v3fw3yny6jgbzddpgcamkp3fjifn8wxl5"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc")
#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(delete 'configure))))
(home-page "https://github.com/dosfstools/dosfstools")
(synopsis "Utilities for making and checking MS-DOS FAT filesystems")
(description
"The dosfstools package includes the mkfs.fat and fsck.fat utilities,
which respectively make and check MS-DOS FAT filesystems.")
(license gpl3+)))

View file

@ -25,7 +25,6 @@ (define-module (gnu packages ebook)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages databases)
#:use-module (gnu packages ebook)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@ -33,6 +32,7 @@ (define-module (gnu packages ebook)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libusb)
#:use-module (gnu packages openssl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -60,7 +60,7 @@ (define-public chmlib
(define-public calibre
(package
(name "calibre")
(version "2.25.0")
(version "2.29.0")
(source
(origin
(method url-fetch)
@ -69,7 +69,7 @@ (define-public calibre
version ".tar.xz"))
(sha256
(base32
"0h7cnwdd9phk4n5hl6xggkn7szvqsds5847mnk2wg2j2j1lzp2r0"))
"1n3cfnjnghhhsgzcbcvbr0gh191lhl6az09q1s68jhlcc2lski6l"))
;; Remove non-free or doubtful code, see
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
(modules '((guix build utils)))
@ -106,6 +106,7 @@ (define-public calibre
("libpng" ,libpng)
("libusb" ,libusb)
("libxrender" ,libxrender)
("openssl" ,openssl)
("podofo" ,podofo)
("python" ,python-2)
("python2-apsw" ,python2-apsw)

View file

@ -23,10 +23,12 @@ (define-module (gnu packages emacs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages guile)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages ncurses)
@ -146,6 +148,35 @@ (define-public emacs-no-x-toolkit
(arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
(package-arguments emacs)))))
(define-public guile-emacs
(package (inherit emacs)
(name "guile-emacs")
(version "20150512.41120e0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.hcoop.net/git/bpt/emacs.git")
(commit "41120e0f595b16387eebfbf731fff70481de1b4b")))
(sha256
(base32
"0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("guile" ,guile-for-guile-emacs)
,@(package-native-inputs emacs)))
(arguments
(substitute-keyword-arguments `(;; Build fails if we allow parallel build.
#:parallel-build? #f
;; Tests aren't passing for now.
#:tests? #f
,@(package-arguments emacs))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'autogen
(lambda _
(zero? (system* "sh" "autogen.sh"))))))))))
;;;
;;; Emacs hacking.
@ -230,52 +261,115 @@ (define-public paredit
when typing parentheses directly or commenting out code line by line.")
(license license:gpl3+)))
(define-public git-modes
(package
(name "git-modes")
(version "1.0.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/magit/git-modes/archive/"
version ".tar.gz"))
(sha256
(base32
"1biiss75bswx4alk85k3g9p0a3q3sc9i74h4mnrxc2rsk2iwhws0"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build emacs-utils)
(guix build utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out"))
;; Don't put .el files in a 'git-modes'
;; sub-directory.
(string-append "LISPDIR="
(assoc-ref %outputs "out")
"/share/emacs/site-lisp"))
#:test-target "test"
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-after 'install 'emacs-autoloads
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lisp (string-append
out "/share/emacs/site-lisp/")))
(emacs-generate-autoloads ,name lisp)))))))
(native-inputs `(("emacs" ,emacs-no-x)))
(home-page "https://github.com/magit/git-modes")
(synopsis "Emacs major modes for Git configuration files")
(description
"This package provides Emacs major modes for editing various Git
configuration files, such as .gitattributes, .gitignore, and .git/config.")
(license license:gpl3+)))
(define-public magit
(package
(name "magit")
(version "1.2.1")
(version "1.4.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/magit/magit/releases/download/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32 "1in48g5l5xdc9cf2apnpgx73mqlz2njrpi1w52dgql4qxv3kg6gr"))))
(base32
"0bbvz6cma5vj6qxx9v2m60zqkjwgwjrdf9kp04iacybvrcm8vcg7"))))
(build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo)))
(inputs `(("emacs" ,emacs-no-x)
("git" ,git)
(native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-no-x)))
(inputs `(("git" ,git)
("git:gui" ,git "gui")))
(propagated-inputs `(("git-modes" ,git-modes)))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(guix build emacs-utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:tests? #f ; no check target
#:test-target "test"
#:tests? #f ;'tests/magit-tests.el' is missing
#:make-flags (list
;; Don't put .el files in a sub-directory.
(string-append "lispdir=" (assoc-ref %outputs "out")
"/share/emacs/site-lisp"))
#:phases
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("/usr/local") out)
(("/etc") (string-append out "/etc")))))
(alist-cons-before
'build 'patch-exec-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((git (assoc-ref inputs "git"))
(git:gui (assoc-ref inputs "git:gui")))
(emacs-substitute-variables "magit.el"
("magit-git-executable" (string-append git "/bin/git"))
("magit-gitk-executable" (string-append git:gui "/bin/gitk")))))
(alist-cons-after
(modify-phases %standard-phases
(replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("/usr/local") out)
(("/etc") (string-append out "/etc"))))))
(add-before
'build 'patch-exec-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((git (assoc-ref inputs "git"))
(git:gui (assoc-ref inputs "git:gui")))
(emacs-substitute-variables "magit.el"
("magit-git-executable" (string-append git "/bin/git"))
("magit-gitk-executable" (string-append git:gui
"/bin/gitk"))))))
(add-before
'build 'augment-load-path
(lambda* (#:key inputs #:allow-other-keys)
;; Allow git-commit-mode.el & co. to be found.
(let ((git-modes (assoc-ref inputs "git-modes")))
(setenv "EMACSLOADPATH"
(string-append ":" git-modes "/share/emacs/site-lisp"))
#t)))
(add-after
'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(emacs-generate-autoloads
,name (string-append (assoc-ref outputs "out")
"/share/emacs/site-lisp/")))
%standard-phases)))))
"/share/emacs/site-lisp/")))))))
(home-page "http://magit.github.io/")
(synopsis "Emacs interface for the Git version control system")
(description
@ -286,6 +380,56 @@ (define-public magit
operations.")
(license license:gpl3+)))
(define-public magit-svn
(package
(name "magit-svn")
(version "b69b79")
(source (origin
(method git-fetch)
(uri (git-reference
(commit version)
(url "https://github.com/magit/magit-svn.git")))
(sha256
(base32
"07xxszd12r38s46sz8fn2qz26b7s88i022cqp3gmkmmj3j57kqv6"))))
(build-system trivial-build-system)
(inputs `(("emacs" ,emacs-no-x)
("magit" ,magit)))
(arguments
`(#:modules ((guix build utils)
(guix build emacs-utils))
#:builder
(begin
(use-modules (guix build utils)
(guix build emacs-utils))
(let* ((emacs (string-append (assoc-ref %build-inputs "emacs")
"/bin/emacs"))
(magit (string-append (assoc-ref %build-inputs "magit")
"/share/emacs/site-lisp"))
(commit (string-append (assoc-ref %build-inputs
"magit/git-modes")
"/share/emacs/site-lisp"))
(source (assoc-ref %build-inputs "source"))
(lisp-dir (string-append %output "/share/emacs/site-lisp")))
(mkdir-p lisp-dir)
(copy-file (string-append source "/magit-svn.el")
(string-append lisp-dir "/magit-svn.el"))
(with-directory-excursion lisp-dir
(parameterize ((%emacs emacs))
(emacs-generate-autoloads ,name lisp-dir)
(setenv "EMACSLOADPATH"
(string-append ":" magit ":" commit))
(emacs-batch-eval '(byte-compile-file "magit-svn.el"))))))))
(home-page "https://github.com/magit/magit-svn")
(synopsis "Git-SVN extension to Magit")
(description
"This package is an extension to Magit, the Git Emacs mode, providing
support for Git-SVN.")
(license license:gpl3+)))
;;;
;;; Web browsing.

View file

@ -29,7 +29,7 @@ (define-module (gnu packages feh)
(define-public feh
(package
(name "feh")
(version "2.12")
(version "2.13")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
@ -37,7 +37,7 @@ (define-public feh
name "-" version ".tar.bz2"))
(sha256
(base32
"0ckhidmsms2l5jycp0qf71jzmb3bpbhjq3bcgfpvfvszah7pmq30"))))
"06fa9zh1zpi63l90kw3l9a0sfavf424j7ksi396ifg9669gx35gn"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-delete 'configure %standard-phases)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -17,7 +18,10 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages fltk)
#:use-module (guix licenses)
#:use-module ((guix licenses) #:select (lgpl2.0))
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages image)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gl)
#:use-module (guix packages)
@ -35,11 +39,15 @@ (define-public fltk
"/fltk-" version "-source.tar.gz"))
(sha256
(base32
"15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))))
"15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))
(patches (list (search-patch "fltk-shared-lib-defines.patch")))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
("mesa" ,mesa)))
(inputs
`(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
("libpng" ,libpng)
("libx11" ,libx11)
("mesa" ,mesa)
("zlib" ,zlib)))
(arguments
`(#:tests? #f ;TODO: compile programs in "test" dir
#:configure-flags
@ -51,7 +59,22 @@ (define-public fltk
(lambda _
(substitute* "makeinclude.in"
(("/bin/sh") (which "sh"))))
%standard-phases)))
(alist-cons-after
'install 'patch-config
;; Provide -L flags for image libraries when querying fltk-config to
;; avoid propagating inputs.
(lambda* (#:key inputs outputs #:allow-other-keys)
(use-modules (srfi srfi-26))
(let* ((conf (string-append (assoc-ref outputs "out")
"/bin/fltk-config"))
(jpeg (assoc-ref inputs "libjpeg"))
(png (assoc-ref inputs "libpng"))
(zlib (assoc-ref inputs "zlib")))
(substitute* conf
(("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg"))
(("-lpng") (string-append "-L" png "/lib -lpng"))
(("-lz") (string-append "-L" zlib "/lib -lz")))))
%standard-phases))))
(home-page "http://www.fltk.org")
(synopsis "3D C++ GUI library")
(description "FLTK is a C++ GUI toolkit providing modern GUI functionality

View file

@ -1,6 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,12 +21,22 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages freedesktop)
#:use-module ((guix licenses) #:select (expat x11))
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages gnome)
#:use-module (gnu packages python)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gperf)
#:use-module (gnu packages xml)
#:use-module (gnu packages docbook)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg))
@ -48,7 +61,7 @@ (define-public xdg-utils
(description "The xdg-utils package is a set of simple scripts that
provide basic desktop integration functions in the framework of the
freedesktop.org project.")
(license expat)))
(license license:expat)))
(define-public libinput
(package
@ -74,4 +87,113 @@ (define-public libinput
(description
"Libinput is a library to handle input devices for display servers and
other applications that need to directly deal with input devices.")
(license x11)))
(license license:x11)))
(define-public elogind
(let ((commit "14405a9"))
(package
(name "elogind")
(version (string-append "219." commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "http://git.elephly.net/software/elogind.git")
(commit commit)))
(sha256
(base32
"1wz5lxj95qg64x2q5hf4zcb35hpxlw3wfswx6sb2srvsg50y3y72"))
(file-name (string-append name "-checkout-" commit))
(modules '((guix build utils)))
(snippet
'(begin
(use-modules (guix build utils))
(substitute* "Makefile.am"
;; Avoid validation against DTD because the DTDs for
;; both doctype 4.2 and 4.5 are needed.
(("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list
;; pam_elogind fails because of bus-error.c hackery
"--disable-pam"
(string-append "--with-rootprefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(and (zero? (system* "intltoolize" "--force" "--automake"))
(zero? (system* "autoreconf" "-vif"))))))))
(native-inputs
`(("intltool" ,intltool)
("gettext" ,gnu-gettext)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
("xsltproc" ,libxslt)
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("pkg-config", pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("gperf" ,gperf)))
(inputs
`(("linux-pam" ,linux-pam)
("linux-libre-headers" ,linux-libre-headers)
("libcap" ,libcap)
("dbus" ,dbus)
("eudev" ,eudev)))
(home-page "https://github.com/andywingo/elogind")
(synopsis "User, seat, and session management service")
(description "Elogind is the systemd project's \"logind\" service,
extracted out as a separate project. Elogind integrates with PAM to provide
the org.freedesktop.login1 interface over the system bus, allowing other parts
of a the system to know what users are logged in, and where.")
(license license:lgpl2.1+))))
(define-public python-pyxdg
(package
(name "python-pyxdg")
(version "0.25")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/p/pyxdg/pyxdg-"
version ".tar.gz"))
(sha256
(base32
"179767h8m634ydlm4v8lnz01ba42gckfp684id764zaip7h87s41"))))
(build-system python-build-system)
(arguments
'(#:phases
(alist-replace
'check
(lambda* (#:key inputs #:allow-other-keys)
(setenv "XDG_DATA_DIRS"
(string-append (assoc-ref inputs "shared-mime-info")
"/share/"))
(substitute* "test/test-icon.py"
(("/usr/share/icons/hicolor/index.theme")
(string-append (assoc-ref inputs "hicolor-icon-theme")
"/share/icons/hicolor/index.theme")))
;; One test fails with:
;; AssertionError: 'x-apple-ios-png' != 'png'
(substitute* "test/test-mime.py"
(("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#"))
(zero? (system* "nosetests" "-v")))
%standard-phases)))
(native-inputs
`(("shared-mime-info" ,shared-mime-info) ;for tests
("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests
("python-nose" ,python-nose)
("python-setuptools" ,python-setuptools)))
(home-page "http://freedesktop.org/wiki/Software/pyxdg")
(synopsis "Implementations of freedesktop.org standards in Python")
(description
"PyXDG is a collection of implementations of freedesktop.org standards in
Python")
(license license:lgpl2.0)))
(define-public python2-pyxdg
(package-with-python2 python-pyxdg))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
@ -36,8 +36,10 @@ (define-public lftp
(version "4.6.1")
(source (origin
(method url-fetch)
(uri (string-append "http://lftp.yar.ru/ftp/lftp-"
version ".tar.xz"))
(uri (list (string-append "http://lftp.yar.ru/ftp/lftp-"
version ".tar.xz")
(string-append "http://lftp.yar.ru/ftp/old/lftp-"
version ".tar.xz")))
(sha256
(base32
"1grmp8zg7cjgjinz66mrh53whigkqzl90nlxj05hapnhk3ns3vni"))

View file

@ -33,7 +33,11 @@ (define-module (gnu packages game-development)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages image)
#:use-module (gnu packages audio)
#:use-module (gnu packages pulseaudio))
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages sdl)
#:use-module (gnu packages pkg-config))
(define-public bullet
(package
@ -127,3 +131,40 @@ (define-public sfml
to ease the development of games and multimedia applications. It is composed
of five modules: system, window, graphics, audio and network.")
(license license:zlib)))
(define-public sfxr
(package
(name "sfxr")
(version "1.2.1")
(source (origin
(method url-fetch)
(uri (string-append "http://www.drpetter.se/files/sfxr-sdl-1.2.1.tar.gz"))
(sha256
(base32
"0dfqgid6wzzyyhc0ha94prxax59wx79hqr25r6if6by9cj4vx4ya"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'patch-makefile
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("\\$\\(DESTDIR\\)/usr") out))
(substitute* "main.cpp"
(("/usr/share")
(string-append out "/share")))
#t))))
#:tests? #f)) ; no tests
(native-inputs
`(("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils)))
(inputs
`(("sdl" ,sdl)
("gtk+" ,gtk+)))
(synopsis "Simple sound effect generator")
(description "Sfxr is a tool for quickly generating simple sound effects.
Originally created for use in video game prototypes, it can generate random
sounds from presets such as \"explosion\" or \"powerup\".")
(home-page "http://www.drpetter.se/project_sfxr.html")
(license license:expat)))

View file

@ -108,7 +108,7 @@ (define-public gnubg
(define-public gnubik
(package
(name "gnubik")
(version "2.4.1")
(version "2.4.2")
(source
(origin
(method url-fetch)
@ -116,7 +116,7 @@ (define-public gnubik
version ".tar.gz"))
(sha256
(base32
"0mfpwz341i1qpzi2qgslpc5i7d4fv7i01kv392m11pczqdc7i7m5"))))
"0mhpfnxzbns0wfrsjv5vafqr34770rbvkmdzxk0x0aq67hb3zyl5"))))
(build-system gnu-build-system)
(inputs `(("gtk+" ,gtk+-2)
("mesa" ,mesa)
@ -748,6 +748,43 @@ (define-public glulxe
reference interpreter, using Glk API.")
(license (license:fsf-free "file://README"))))
(define-public fizmo
(package
(name "fizmo")
(version "0.7.9")
(source (origin
(method url-fetch)
(uri (string-append "https://christoph-ender.de/fizmo/source/"
name "-" version ".tar.gz"))
(sha256
(base32
"1w7cgyjrhgkadjrazijzhq7zh0pl5bfc6wl7mdpgh020y4kp46d7"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(let ((libjpeg (assoc-ref %build-inputs "libjpeg"))
(ncurses (assoc-ref %build-inputs "ncurses")))
(list (string-append "jpeg_CFLAGS=-I" libjpeg "/include")
(string-append "jpeg_LIBS=-ljpeg")
(string-append "ncursesw_CFLAGS=-I" ncurses "/include")
(string-append "ncursesw_LIBS=-lncursesw")))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libsndfile" ,libsndfile)
("libxml2" ,libxml2)
("ncurses" ,ncurses)
("sdl" ,sdl)))
(home-page "https://christoph-ender.de/fizmo/")
(synopsis "Z-machine interpreter")
(description
"Fizmo is a console-based Z-machine interpreter. It is used to play
interactive ficiton, also known as textadventures, which were implemented
either by Infocom or created using the Inform compiler.")
(license license:bsd-3)))
(define-public retroarch
(package
(name "retroarch")
@ -879,3 +916,37 @@ (define-public extremetuxracer
This game is based on the GPL version of the famous game TuxRacer.")
(home-page "http://sourceforge.net/projects/extremetuxracer/")
(license license:gpl2+)))
(define-public gnujump
(package
(name "gnujump")
(version "1.0.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnujump/gnujump-"
version ".tar.gz"))
(sha256
(base32
"05syy9mzbyqcfnm0hrswlmhwlwx54f0l6zhcaq8c1c0f8dgzxhqk"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before
'configure 'link-libm
(lambda _ (setenv "LIBS" "-lm"))))))
(inputs
`(("glu" ,glu)
("mesa", mesa)
("sdl" ,sdl)
("sdl-image" ,sdl-image)
("sdl-mixer" ,sdl-mixer)))
(home-page "http://gnujump.es.gnu.org/")
(synopsis
"Game of jumping to the next floor, trying not to fall")
(description
"GNUjump is a simple, yet addictive game in which you must jump from
platform to platform to avoid falling, while the platforms drop at faster rates
the higher you go. The game features multiplayer, unlimited FPS, smooth floor
falling, themeable graphics and sounds, and replays.")
(license license:gpl3+)))

View file

@ -335,7 +335,9 @@ (define-public gcc-5.1
(sha256
(base32
"1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp"))
(patches (origin-patches (package-source gcc-4.9)))))))
(patches (map search-patch
'("gcc-arm-link-spec-fix.patch"
"gcc-5.0-libvtv-runpath.patch")))))))
(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
"Return a custom version of GCC that supports LANGUAGES."
@ -405,38 +407,57 @@ (define-public gcj-4.8
"--enable-languages=java"
,@(remove (cut string-match "--enable-languages.*" <>)
,flags))))
((#:phases phases)
`(alist-cons-after
'install 'install-javac-and-javap-wrappers
(lambda _
(let* ((javac (assoc-ref %build-inputs "javac.in"))
(ecj (assoc-ref %build-inputs "ecj-bootstrap"))
(gcj (assoc-ref %outputs "out"))
(gcjbin (string-append gcj "/bin/"))
(jvm (string-append gcj "/lib/jvm/"))
(target (string-append jvm "/bin/javac")))
((#:phases phases)
`(modify-phases ,phases
(add-after
'unpack 'add-lib-output-to-rpath
(lambda _
(substitute* "libjava/Makefile.in"
(("libgcj_bc_dummy_LINK = .* -shared" line)
(string-append line " -Wl,-rpath=$(libdir)"))
(("libgcj(_bc)?_la_LDFLAGS =" ldflags _)
(string-append ldflags " -Wl,-rpath=$(libdir)")))))
(add-after
'install 'install-javac-and-javap-wrappers
(lambda _
(let* ((javac (assoc-ref %build-inputs "javac.in"))
(ecj (assoc-ref %build-inputs "ecj-bootstrap"))
(gcj (assoc-ref %outputs "out"))
(gcjbin (string-append gcj "/bin/"))
(jvm (string-append gcj "/lib/jvm/"))
(target (string-append jvm "/bin/javac")))
(symlink (string-append gcjbin "jcf-dump")
(string-append jvm "/bin/javap"))
(symlink (string-append gcjbin "jcf-dump")
(string-append jvm "/bin/javap"))
(copy-file ecj (string-append gcj "/share/java/ecj.jar"))
(copy-file ecj (string-append gcj "/share/java/ecj.jar"))
;; Create javac wrapper from the template javac.in by
;; replacing the @VARIABLES@ with paths.
(copy-file javac target)
(patch-shebang target)
(substitute* target
(("@JAVA@")
(string-append jvm "/bin/java"))
(("@ECJ_JAR@")
(string-append gcj "/share/java/ecj.jar"))
(("@RT_JAR@")
(string-append jvm "/jre/lib/rt.jar"))
(("@TOOLS_JAR@")
(string-append jvm "/lib/tools.jar")))
(chmod target #o755)
#t))
,phases))))))
;; Create javac wrapper from the template javac.in by
;; replacing the @VARIABLES@ with paths.
(copy-file javac target)
(patch-shebang target)
(substitute* target
(("@JAVA@")
(string-append jvm "/bin/java"))
(("@ECJ_JAR@")
(string-append gcj "/share/java/ecj.jar"))
(("@RT_JAR@")
(string-append jvm "/jre/lib/rt.jar"))
(("@TOOLS_JAR@")
(string-append jvm "/lib/tools.jar")))
(chmod target #o755)
#t)))
(add-after
'install 'remove-broken-or-conflicting-files
(lambda _
(let ((out (assoc-ref %outputs "out")))
(for-each
delete-file
(append (find-files (string-append out "/lib/jvm/jre/lib")
"libjawt.so")
(find-files (string-append out "/bin")
".*(c\\+\\+|cpp|g\\+\\+|gcc.*)"))))
#t))))))))
(define ecj-bootstrap-4.8
(origin

View file

@ -36,14 +36,14 @@ (define-module (gnu packages gdb)
(define-public gdb
(package
(name "gdb")
(version "7.9")
(version "7.9.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
"14l3hhsy7fmpn2dk7ivc67gnbjdhkxlq90kxijpzfa35l58mcccv"))))
"0h5sfg4ndhb8q4fxbq0hdxfjp35n6ih96f6x8yvb418s84x5976d"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; FIXME "make check" fails on single-processor systems.

View file

@ -32,6 +32,7 @@ (define-module (gnu packages gimp)
#:use-module (gnu packages compression)
#:use-module (gnu packages xml)
#:use-module (gnu packages photo)
#:use-module (gnu packages python)
#:use-module (gnu packages xorg)
#:use-module (gnu packages imagemagick))
@ -127,10 +128,6 @@ (define-public gimp
(base32
"0bdj0l7a94jqhjnj40m9rqaf622wj905iximivb55iy98639aanq"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
;; We don't have pygtk which seems to be needed for this feature
`("--disable-python")))
(inputs
`(("babl" ,babl)
("glib" ,glib)
@ -141,6 +138,8 @@ (define-public gimp
("exif" ,libexif) ;optional, EXIF + XMP support
("lcms" ,lcms) ;optional, color management
("librsvg" ,librsvg) ;optional, SVG support
("python" ,python-2) ;optional, Python support
("python2-pygtk" ,python2-pygtk) ;optional, Python support
("gegl" ,gegl)))
(native-inputs
`(("pkg-config" ,pkg-config)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Joshua Grant <tadni@riseup.net>
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
@ -40,7 +40,8 @@ (define-module (gnu packages gl)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages guile)
#:use-module (gnu packages video)
#:use-module (gnu packages xdisorg))
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages zip))
(define-public glu
(package
@ -53,7 +54,8 @@ (define-public glu
(sha256
(base32 "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3"))))
(build-system gnu-build-system)
(inputs `(("mesa" ,mesa)))
(propagated-inputs
`(("mesa" ,mesa))) ; according to glu.pc
(home-page "http://www.opengl.org/archives/resources/faq/technical/glu.htm")
(synopsis "Mesa OpenGL Utility library")
(description
@ -219,7 +221,7 @@ (define-public mesa
(arguments
`(#:configure-flags
'(;; drop r300 from default gallium drivers, as it requires llvm
"--with-gallium-drivers=r600,svga,swrast"
"--with-gallium-drivers=r600,svga,swrast,nouveau"
;; Enable various optional features. TODO: opencl requires libclc,
;; omx requires libomxil-bellagio
"--with-egl-platforms=x11,drm"
@ -403,6 +405,7 @@ (define-public guile-opengl
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("guile" ,guile-2.0)
("mesa" ,mesa)
("glu" ,glu)
("freeglut" ,freeglut)))
(arguments
'(#:phases (alist-cons-before
@ -417,7 +420,7 @@ (define (dynamic-link-substitute file lib input)
;; Replace dynamic-link calls for libGL, libGLU, and
;; libglut with absolute paths to the store.
(dynamic-link-substitute "glx/runtime.scm" "GL" "mesa")
(dynamic-link-substitute "glu/runtime.scm" "GLU" "mesa")
(dynamic-link-substitute "glu/runtime.scm" "GLU" "glu")
(dynamic-link-substitute "glut/runtime.scm" "glut"
"freeglut"))
%standard-phases)))
@ -484,3 +487,45 @@ (define-public libepoxy
(description
"A library for handling OpenGL function pointer management.")
(license l:x11)))
(define-public soil
(package
(name "soil")
(version "1.0.7")
(source (origin
(method url-fetch)
;; No versioned archive available.
(uri "http://www.lonesock.net/files/soil.zip")
(sha256
(base32
"00gpwp9dldzhsdhksjvmbhsd2ialraqbv6v6dpikdmpncj6mnc52"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'init-build
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "CFLAGS" "-fPIC") ; needed for shared library
;; Use alternate Makefile
(copy-file "projects/makefile/alternate Makefile.txt"
"src/Makefile")
(chdir "src")
(substitute* '("Makefile")
(("INCLUDEDIR = /usr/include/SOIL")
(string-append "INCLUDEDIR = " out "/include/SOIL"))
(("LIBDIR = /usr/lib")
(string-append "LIBDIR = " out "/lib"))
;; Remove these flags from 'install' commands.
(("-o root -g root") ""))))))))
(native-inputs
`(("unzip" ,unzip)))
(inputs
`(("mesa" ,mesa)))
(home-page "http://www.lonesock.net/soil.html")
(synopsis "OpenGL texture loading library")
(description
"SOIL is a tiny C library used primarily for uploading textures into
OpenGL.")
(license l:public-domain)))

View file

@ -353,10 +353,11 @@ (define dbus-glib
(base32
"1xi1v1msz75qs0s4lkyf1psrksdppa3hwkg0mznc6gpw5flg3hdz"))))
(build-system gnu-build-system)
(inputs
(propagated-inputs ; according to dbus-glib-1.pc
`(("dbus" ,dbus)
("expat" ,expat)
("glib" ,glib)))
(inputs
`(("expat" ,expat)))
(native-inputs
`(("glib" ,glib "bin")
("pkg-config" ,pkg-config)))

View file

@ -6,6 +6,8 @@
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,14 +38,15 @@ (define-module (gnu packages gnome)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages djvu)
#:use-module (gnu packages flex)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages pdf)
#:use-module (gnu packages polkit)
#:use-module (gnu packages popt)
@ -59,13 +62,20 @@ (define-module (gnu packages gnome)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages scanner)
#:use-module (gnu packages ssh)
#:use-module (gnu packages xml)
#:use-module (gnu packages gl)
#:use-module (gnu packages compression)
#:use-module (gnu packages texlive)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages ncurses))
#:use-module (gnu packages mail)
#:use-module (gnu packages backup)
#:use-module (gnu packages nettle)
#:use-module (gnu packages ncurses)
#:use-module (srfi srfi-1))
(define-public brasero
(package
@ -176,6 +186,50 @@ (define-public gnome-doc-utils
and keep up to date translations of documentation.")
(license license:gpl2+))) ; xslt under lgpl
(define-public gcr
(package
(name "gcr")
(version "3.16.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0xfhi0w358lvca1jjx24x2gm67mif33dsnmi9cv5i0f83ks8vzpc"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does
;not exist
#:phases (modify-phases %standard-phases
(add-before
'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build/tap-driver"
(("/usr/bin/env python") (which "python"))))))))
(inputs
`(("dbus" ,dbus)
("gnupg" ,gnupg) ;called as a child process during tests
("libgcrypt" ,libgcrypt)))
(native-inputs
`(("python" ,python-2) ;for tests
("pkg-config" ,pkg-config)
("glib" ,glib "bin")
("intltool" ,intltool)))
;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
(propagated-inputs
`(("p11-kit" ,p11-kit)
("glib" ,glib)
("gtk+" ,gtk+)))
(home-page "http://www.gnome.org")
(synopsis "Libraries for displaying certificates and accessing key stores")
(description
"The GCR package contains libraries used for displaying certificates and
accessing key stores. It also provides the viewer for crypto files on the
GNOME Desktop.")
(license license:lgpl2.1+)))
(define-public libgnome-keyring
(package
(name "libgnome-keyring")
@ -207,10 +261,77 @@ (define-public libgnome-keyring
;; Though a couple of files are LGPLv2.1+.
(license license:lgpl2.0+)))
(define-public gnome-keyring
(package
(name "gnome-keyring")
(version "3.16.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1xg1xha3x3hzlmvdq2zm90hc61pj7pnf9yxxvgq4ynl5af6bp8qm"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
;not exist
#:configure-flags
(list
(string-append "--with-pkcs11-config="
(assoc-ref %outputs "out") "/share/p11-kit/modules/")
(string-append "--with-pkcs11-modules="
(assoc-ref %outputs "out") "/share/p11-kit/modules/"))
#:phases
(modify-phases %standard-phases
(add-before
'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "build/tap-driver"
(("/usr/bin/env python") (which "python")))))
(add-before
'configure 'fix-docbook
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "docs/Makefile.am"
(("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
(string-append (assoc-ref inputs "docbook-xsl")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml")))))))
(inputs
`(("libgcrypt" ,libgcrypt)
("dbus" ,dbus)
("gcr" ,gcr)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin")
("python" ,python-2) ;for tests
("intltool" ,intltool)
("autoconf" ,autoconf)
("automake" ,automake)
("libxslt" ,libxslt) ;for documentation
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)))
(home-page "http://www.gnome.org")
(synopsis "Daemon to store passwords and encryption keys")
(description
"gnome-keyring is a program that keeps passwords and other secrets for
users. It is run as a daemon in the session, similar to ssh-agent, and other
applications locate it via an environment variable or D-Bus.
The program can manage several keyrings, each with its own master password,
and there is also a session keyring which is never stored to disk, but
forgotten when the session ends.")
(license license:lgpl2.1+)))
(define-public evince
(package
(name "evince")
(version "3.6.1")
(version "3.16.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -218,7 +339,7 @@ (define-public evince
name "-" version ".tar.xz"))
(sha256
(base32
"1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv"))))
"0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-nautilus")
@ -229,12 +350,18 @@ (define-public evince
#:tests? #f))
(inputs
`(("libspectre" ,libspectre)
;; ("djvulibre" ,djvulibre)
("djvulibre" ,djvulibre)
("ghostscript" ,ghostscript)
("poppler" ,poppler)
("libtiff" ,libtiff)
;; TODO:
;; Add libgxps for XPS support.
;; Build libkpathsea as a shared library for DVI support.
;; ("libkpathsea" ,texlive-bin)
("gnome-desktop" ,gnome-desktop)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("libgnome-keyring" ,libgnome-keyring)
("gnome-icon-theme" ,gnome-icon-theme)
("adwaita-icon-theme" ,adwaita-icon-theme)
("itstool" ,itstool)
("gdk-pixbuf" ,gdk-pixbuf)
("atk" ,atk)
@ -247,7 +374,8 @@ (define-public evince
("shared-mime-info" ,shared-mime-info)
("dconf" ,dconf)
("libcanberra" ,libcanberra)
("libsecret" ,libsecret)
;; For tests.
("dogtail" ,python2-dogtail)))
(native-inputs
@ -365,7 +493,7 @@ (define-public desktop-file-utils
(define-public gnome-icon-theme
(package
(name "gnome-icon-theme")
(version "3.10.0")
(version "3.12.0")
(source
(origin
(method url-fetch)
@ -374,14 +502,13 @@ (define-public gnome-icon-theme
name "-" version ".tar.xz"))
(sha256
(base32
"1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66"))))
"0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+)
("icon-naming-utils" ,icon-naming-utils)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
`(("gtk+" ,gtk+) ; for gtk-update-icon-cache
("icon-naming-utils" ,icon-naming-utils)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://art.gnome.org/")
(synopsis
"GNOME icon theme")
@ -389,6 +516,20 @@ (define-public gnome-icon-theme
"Icons for the GNOME desktop.")
(license license:lgpl3))) ; or Creative Commons BY-SA 3.0
;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
(define-public adwaita-icon-theme
(package (inherit gnome-icon-theme)
(name "adwaita-icon-theme")
(version "3.16.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1hmlw7kvhr7c2asc5y77adpymi9ka17gaf76zz835nwwffnn4rlw"))))))
(define-public shared-mime-info
(package
(name "shared-mime-info")
@ -629,7 +770,7 @@ (define-public libgsf
(define-public librsvg
(package
(name "librsvg")
(version "2.40.6")
(version "2.40.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -637,7 +778,7 @@ (define-public librsvg
name "-" version ".tar.xz"))
(sha256
(base32
"01jgb11779080b80k2ncrhdphgillqrrnszal6vh8yv787r4kwwa"))))
"0fplymmqqr28y24vcnb01szn62pfbqhk8p1ngns54x9m6mflr5hk"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -657,15 +798,15 @@ (define-public librsvg
(alist-cons-after
'install 'generate-full-cache
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((loaders-directory
(let ((loaders-directory
(string-append (assoc-ref outputs "out")
"/lib/gdk-pixbuf-2.0/2.10.0/loaders")))
(zero?
(system
(string-append
"gdk-pixbuf-query-loaders "
(system
(string-append
"gdk-pixbuf-query-loaders "
loaders-directory "/libpixbufloader-svg.so "
(string-join (find-files (assoc-ref inputs "gdk-pixbuf")
(string-join (find-files (assoc-ref inputs "gdk-pixbuf")
"libpixbufloader-.*\\.so") " ")
"> " loaders-directory ".cache")))))
%standard-phases))))
@ -716,7 +857,7 @@ (define-public libidl
Definition Language (idl) files, which is a specification for defining
portable interfaces. libidl was initially written for orbit (the orb from the
GNOME project, and the primary means of libidl distribution). However, the
functionality was designed to be as reusable and portable as possible.")
functionality was designed to be as reusable and portable as possible.")
(license license:lgpl2.0+)))
@ -726,7 +867,7 @@ (define-public orbit2
(version "2.14.19")
(source (origin
(method url-fetch)
(uri (let ((upstream-name "ORBit2"))
(uri (let ((upstream-name "ORBit2"))
(string-append "mirror://gnome/sources/" upstream-name "/"
(version-major+minor version) "/"
upstream-name "-" version ".tar.bz2")))
@ -751,11 +892,11 @@ (define-public orbit2
(home-page "https://projects.gnome.org/orbit2/")
(synopsis "CORBA 2.4-compliant Object Request Broker")
(description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
featuring mature C, C++ and Python bindings.")
featuring mature C, C++ and Python bindings.")
;; Licence notice is unclear. The Web page simply say "GPL" without giving a version.
;; SOME of the code files have licence notices for GPLv2+
;; The tarball contains files of the text of GPLv2 and LGPLv2
(license license:gpl2+)))
(license license:gpl2+)))
(define-public libbonobo
@ -798,7 +939,7 @@ (define-public libbonobo
(home-page "https://developer.gnome.org/libbonobo/")
(synopsis "Framework for creating reusable components for use in GNOME applications")
(description "Bonobo is a framework for creating reusable components for
use in GNOME applications, built on top of CORBA.")
use in GNOME applications, built on top of CORBA.")
;; Licence not explicitly stated. Source files contain no licence notices.
;; Tarball contains text of both GPLv2 and LGPLv2
;; GPLv2 covers both conditions
@ -811,7 +952,7 @@ (define-public gconf
(version "3.2.6")
(source (origin
(method url-fetch)
(uri
(uri
(let ((upstream-name "GConf"))
(string-append "mirror://gnome/sources/" upstream-name "/"
(version-major+minor version) "/"
@ -819,11 +960,10 @@ (define-public gconf
(sha256
(base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
(build-system gnu-build-system)
(inputs `(("glib" ,glib)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
(inputs `(("dbus-glib" ,dbus-glib)
("libxml2" ,libxml2)))
(propagated-inputs `(("orbit2" ,orbit2))) ; referred to in the .pc file
(propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
("orbit2" ,orbit2)))
(native-inputs
`(("intltool" ,intltool)
("glib" ,glib "bin") ; for glib-genmarshal, etc.
@ -832,7 +972,7 @@ (define-public gconf
(synopsis "Store application preferences")
(description "Gconf is a system for storing application preferences. It
is intended for user preferences; not arbitrary data storage.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)))
(define-public gnome-mime-data
@ -887,10 +1027,8 @@ (define-public gnome-vfs
(substitute* "test/test-async-cancel.c"
(("EXIT_FAILURE") "77")))
%standard-phases))))
(inputs `(("glib" ,glib)
("libxml2" ,libxml2)
(inputs `(("libxml2" ,libxml2)
("dbus-glib" ,dbus-glib)
("dbus" ,dbus)
("gconf" ,gconf)
("gnome-mime-data" ,gnome-mime-data)
("zlib" ,zlib)))
@ -925,7 +1063,7 @@ (define-public libgnome
`(#:phases
(alist-cons-before
'configure 'enable-deprecated
(lambda _
(lambda _
(substitute* "libgnome/Makefile.in"
(("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
%standard-phases)))
@ -943,8 +1081,7 @@ (define-public libgnome
`(("libcanberra" ,libcanberra)
("libbonobo" ,libbonobo)
("gconf" ,gconf)
("gnome-vfs" ,gnome-vfs)
("glib" ,glib)))
("gnome-vfs" ,gnome-vfs)))
(home-page "https://developer.gnome.org/libgnome/")
(synopsis "Useful routines for building applications")
(description "The libgnome library provides a number of useful routines
@ -971,7 +1108,7 @@ (define-public libart-lgpl
`(("pkg-config" ,pkg-config)))
(home-page "https://people.gnome.org/~mathieu/libart")
(synopsis "2D drawing library")
(description "Libart is a 2D drawing library intended as a
(description "Libart is a 2D drawing library intended as a
high-quality vector-based 2D library with antialiasing and alpha composition.")
(license license:lgpl2.0+)))
@ -1143,7 +1280,7 @@ (define-public libgnomeprintui
("glib" ,glib)
("gnome-icon-theme" ,gnome-icon-theme)
("libgnomecanvas" ,libgnomecanvas)
("libxml2" ,libxml2)))
("libxml2" ,libxml2)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
@ -1172,7 +1309,7 @@ (define-public libbonoboui
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server"))
(disp ":1"))
(setenv "HOME" (getcwd))
(setenv "DISPLAY" disp)
;; There must be a running X server and make check doesn't start one.
@ -1269,11 +1406,38 @@ (define-public goffice
(home-page "https://developer.gnome.org/goffice/")
(synopsis "Document-centric objects and utilities")
(description "A GLib/GTK+ set of document-centric objects and utilities.")
(license
(license
;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
;; Note: NOT LGPL
(list license:gpl2 license:gpl3))))
(define-public goffice-0.8
(package (inherit goffice)
(version "0.8.17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
(version-major+minor version) "/"
(package-name goffice) "-" version ".tar.xz"))
(sha256
(base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
(arguments
`(#:phases
(alist-cons-after
'unpack 'fix-pcre-check
(lambda _
;; Only glib.h can be included directly. See
;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
(substitute* "configure"
(("glib/gregex\\.h") "glib.h")) #t)
%standard-phases)))
(propagated-inputs
;; libgoffice-0.8.pc mentions libgsf-1
`(("libgsf" ,libgsf)))
(inputs
`(("gtk" ,gtk+-2)
,@(alist-delete "gtk" (package-inputs goffice))))))
(define-public gnumeric
(package
(name "gnumeric")
@ -1290,7 +1454,7 @@ (define-public gnumeric
(arguments
`(;; The gnumeric developers don't worry much about failing tests.
;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
#:tests? #f
#:tests? #f
#:phases
(alist-cons-before
'configure 'pre-conf
@ -1299,9 +1463,9 @@ (define-public gnumeric
;; I am informed that this only affects the possibility to embed a
;; spreadsheet inside an Abiword document. So presumably when we
;; package Abiword we'll have to refer it to this directory.
(substitute* "configure"
(substitute* "configure"
(("^GOFFICE_PLUGINS_DIR=.*")
(string-append "GOFFICE_PLUGINS_DIR="
(string-append "GOFFICE_PLUGINS_DIR="
(assoc-ref outputs "out") "/goffice/plugins"))))
%standard-phases)))
(inputs
@ -1336,7 +1500,7 @@ (define-public gnome-themes-standard
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/" name "-"
version ".tar.xz"))
(sha256
@ -1361,8 +1525,8 @@ (define-public gnome-themes-standard
;; gdk-pixbuf because the latter does not include support for SVG
;; files.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "GDK_PIXBUF_MODULE_FILE"
(car (find-files (assoc-ref inputs "librsvg")
(setenv "GDK_PIXBUF_MODULE_FILE"
(car (find-files (assoc-ref inputs "librsvg")
"loaders\\.cache"))))
%standard-phases)))
(home-page "https://launchpad.net/gnome-themes-standard")
@ -1371,6 +1535,39 @@ (define-public gnome-themes-standard
"The default GNOME 3 themes (Adwaita and some accessibility themes).")
(license license:lgpl2.1+)))
(define-public seahorse
(package
(name "seahorse")
(version "3.16.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/" name "-"
version ".tar.xz"))
(sha256
(base32
"0cg1grgpwbfkiny5148n17rzpc8kswyr5yff0kpm8l3lp01my2kp"))))
(build-system glib-or-gtk-build-system)
(inputs
`(("gtk+" ,gtk+)
("gcr" ,gcr)
("gnupg" ,gnupg-1)
("gpgme" ,gpgme)
("openssh" ,openssh)
("libsecret" ,libsecret)))
(native-inputs
`(("intltool" ,intltool)
("glib:bin" ,glib "bin")
("itstool" ,itstool)
("pkg-config" ,pkg-config)))
(home-page "https://launchpad.net/gnome-themes-standard")
(synopsis "Manage encryption keys and passwords in the GNOME keyring")
(description
"Seahorse is a GNOME application for managing encryption keys and
passwords in the GNOME keyring.")
(license license:gpl2+)))
(define-public vala
(package
(name "vala")
@ -1471,7 +1668,7 @@ (define-public dconf
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnome/sources/" name "/"
"mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
@ -1493,7 +1690,7 @@ (define-public dconf
; or /etc/machine-id.
#:configure-flags
;; Set the correct RUNPATH in binaries.
(list (string-append "LDFLAGS=-Wl,-rpath="
(list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib")
"--disable-gtk-doc-html") ; FIXME: requires gtk-doc
#:phases
@ -1502,12 +1699,12 @@ (define-public dconf
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "docs/Makefile.in"
(("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
(string-append (assoc-ref inputs "docbook-xsl")
(string-append (assoc-ref inputs "docbook-xsl")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
(setenv "XML_CATALOG_FILES"
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml")))
%standard-phases)))
(home-page "https://developer.gnome.org/dconf")
@ -1906,7 +2103,6 @@ (define-public colord
("intltool" ,intltool)))
(inputs
`(("eudev" ,eudev)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("libusb" ,libusb)
("lcms" ,lcms)
@ -1923,7 +2119,7 @@ (define-public colord
(define-public geoclue
(package
(name "geoclue")
(version "2.1.10")
(version "2.2.0")
(source
(origin
(method url-fetch)
@ -1932,7 +2128,7 @@ (define-public geoclue
name "-" version ".tar.xz"))
(sha256
(base32
"0s0ws2bx5g1cbjamxmm448r4n4crha2fwpzm8zbx6cq6qslygmzi"))
"0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454"))
(patches (list (search-patch "geoclue-config.patch")))))
(build-system glib-or-gtk-build-system)
(arguments
@ -2040,7 +2236,6 @@ (define-public upower
("python" ,python)))
(inputs
`(("eudev" ,eudev)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("libusb" ,libusb)))
(home-page "http://upower.freedesktop.org/")
@ -2153,3 +2348,99 @@ (define-public gnome-settings-daemon
handles settings such keyboard layout, shortcuts, and accessibility, clipboard
settings, themes, mouse settings, and startup of other daemons.")
(license license:gpl2+)))
(define-public totem-pl-parser
(package
(name "totem-pl-parser")
(version "3.10.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/totem-pl-parser/3.10/"
"totem-pl-parser-" version ".tar.xz"))
(sha256
(base32
"0dw1kiwmjwdjrighri0j9nagsnj44dllm0mamnfh4y5nc47mhim7"))))
(build-system gnu-build-system)
(arguments
;; FIXME: Tests require gvfs.
`(#:tests? #f))
(native-inputs
`(("intltool" ,intltool)
("glib" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("gmime" ,gmime)
("libarchive" ,libarchive)
("libgcrypt" ,libgcrypt)
("nettle" ,nettle)
("libsoup" ,libsoup)
("libxml2" ,libxml2)))
(home-page "https://projects.gnome.org/totem")
(synopsis "Library to parse and save media playlists for GNOME")
(description "Totem-pl-parser is a GObjects-based library to parse and save
playlists in a variety of formats.")
(license license:lgpl2.0+)))
(define-public aisleriot
(package
(name "aisleriot")
(version "3.16.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"19k483x9dkq8vjbq8f333pk9qil64clpsfg20q8xk9bgmk38aj8h"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags
'("--with-platform=gtk-only"
"--with-card-theme-formats=svg")))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
("intltool" ,intltool)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
("guile" ,guile-2.0)
("libcanberra" ,libcanberra)
("librsvg" ,librsvg)))
(home-page "https://wiki.gnome.org/Apps/Aisleriot")
(synopsis "Solitaire card games")
(description
"Aisleriot (also known as Solitaire or sol) is a collection of card games
which are easy to play with the aid of a mouse.")
(license license:gpl3+)))
(define-public devhelp
(package
(name "devhelp")
(version "3.16.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"0i8kyh86hzwxs8dm047ivghl2b92vigdxa3x4pk4ha0whpk38g37"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("webkitgtk" ,webkitgtk)))
(home-page "https://wiki.gnome.org/Apps/Devhelp")
(synopsis "API documentation browser for GNOME")
(description
"Devhelp is an API documentation browser for GTK+ and GNOME. It works
natively with GTK-Doc (the API reference system developed for GTK+ and used
throughout GNOME for API documentation).")
(license license:gpl2+)))

View file

@ -23,22 +23,25 @@ (define-module (gnu packages gnu-pw-mgr)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages base))
#:use-module (gnu packages base)
#:use-module (gnu packages autogen))
(define-public gnu-pw-mgr
(package
(name "gnu-pw-mgr")
(version "1.3")
(version "1.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnu-pw-mgr/gnu-pw-mgr-"
version ".tar.gz"))
version ".tar.xz"))
(sha256
(base32
"0rbnv5wszpr35py97vwylqkdlf06qpd2x9j9aqlmgkd4mr1n4hf0"))))
"0a352y1m33vp6zmdbn96fdrq9gr9lchc9vcrj14mfx7g0dsvxjns"))))
(build-system gnu-build-system)
(inputs `(("which" ,which)))
(native-inputs
`(("which" ,which)
("autogen" ,autogen)))
(home-page "http://www.gnu.org/software/gnu-pw-mgr/")
(synopsis "Retrieve login credentials without recording passwords")
(description

72
gnu/packages/gnucash.scm Normal file
View file

@ -0,0 +1,72 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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 gnucash)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages gnome)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml))
(define-public gnucash
(package
(name "gnucash")
(version "2.6.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnucash/gnucash-"
version ".tar.bz2"))
(sha256
(base32
"103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
#:configure-flags '("--disable-dbi")))
(inputs
`(("guile" ,guile-2.0)
("icu4c" ,icu4c)
("glib" ,glib)
("gtk" ,gtk+-2)
("goffice" ,goffice-0.8)
("libgnomecanvas" ,libgnomecanvas)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("webkitgtk" ,webkitgtk/gtk+-2)))
(native-inputs
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "https://gnu.org/software/gnucash")
(synopsis "Personal and small business financial accounting software")
(description
"GnuCash is personal and professional financial-accounting software.
It can be used to track bank accounts, stocks, income and expenses, based on
the double-entry accounting practice. It includes support for QIF/OFX/HBCI
import and transaction matching. It also automates several tasks, such as
financial calculations or scheduled transactions.")
(license gpl3+)))

View file

@ -190,14 +190,14 @@ (define-public npth
(define-public gnupg
(package
(name "gnupg")
(version "2.1.2")
(version "2.1.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
"14k7c5spai3yppz6izf1ggbnffskl54ln87v1wgy9pwism1mlks0"))))
"1c3c89b7ziknz6h1dnwmfjhgyy28g982rcncrhmhylb8v3npw4k4"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)
@ -231,14 +231,14 @@ (define-public gnupg
(define-public gnupg-2.0
(package (inherit gnupg)
(version "2.0.27")
(version "2.0.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
"1wihx7dphacg9fy5wfj93h236lr1w5gwzh7ir3js37wi9cz6sr2p"))))
"0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff"))))
(inputs
`(("bzip2" ,bzip2)
("curl" ,curl)
@ -300,7 +300,7 @@ (define-public gpgme
;; Needs to be propagated because gpgme.h includes gpg-error.h.
`(("libgpg-error" ,libgpg-error)))
(inputs
`(("gnupg" ,gnupg)
`(("gnupg" ,gnupg-2.0)
("libassuan" ,libassuan)))
(arguments '(#:make-flags '("GPG=gpg2")))
(home-page "http://www.gnupg.org/related_software/gpgme/")

View file

@ -39,7 +39,7 @@ (define-module (gnu packages gnutls)
(define-public libtasn1
(package
(name "libtasn1")
(version "4.4")
(version "4.5")
(source
(origin
(method url-fetch)
@ -47,7 +47,7 @@ (define-public libtasn1
version ".tar.gz"))
(sha256
(base32
"0p8c5s1gm3z3nn4s9qc6gs18grbk45mx44byqw2l2qzynjqrsd7q"))))
"1nhvnznhg2aqfrfjxc8v008hjlzkh5831jsfahqk89qrw7fbbcw9"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
@ -104,7 +104,7 @@ (define-public p11-kit
(define-public gnutls
(package
(name "gnutls")
(version "3.4.0")
(version "3.4.1")
(source (origin
(method url-fetch)
(uri
@ -115,9 +115,7 @@ (define-public gnutls
"/gnutls-" version ".tar.xz"))
(sha256
(base32
"0bj7ydvsyvml59b6040wg7694iz37rwnqnv09bic9ddz652588ml"))
(patches
(list (search-patch "gnutls-fix-duplicate-manpages.patch")))))
"0bmih0zyiplr4v8798w0v9g3215zmganq18n8935cizkxj5zbdg9"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags

View file

@ -124,7 +124,7 @@ (define-public nspr
(define-public nss
(package
(name "nss")
(version "3.18")
(version "3.19.1")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@ -135,7 +135,7 @@ (define-public nss
"nss-" version ".tar.gz")))
(sha256
(base32
"0h0xy9kvd2s8r438q4dfn25cgvv5dc1hkm9lb4bgrxpr5bxv13b1"))
"1zrgqlli01gsg2a5w4bk2p0q3aagi5dhd31yirnj04zca6ap1gmp"))
;; Create nss.pc and nss-config.
(patches (list (search-patch "nss-pkgconfig.patch")))))
(build-system gnu-build-system)
@ -205,6 +205,12 @@ (define-public nss
("zlib" ,zlib)))
(propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
(native-inputs `(("perl" ,perl)))
;; The NSS test suite takes over 28 hours on Loongson 3A (MIPS), and
;; possibly longer when another build is happening concurrently on the
;; same machine.
(properties '((timeout . 144000))) ; 40 hours
(home-page
"https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
(synopsis "Network Security Services")
@ -219,7 +225,7 @@ (define-public nss
(define-public icecat
(package
(name "icecat")
(version "31.6.0-gnu1")
(version "31.7.0-gnu1")
(source
(origin
(method url-fetch)
@ -228,15 +234,13 @@ (define-public icecat
name "-" version ".tar.bz2"))
(sha256
(base32
"1a4l23msg4cpc4yp59q2z6xv63r6advlbnjy65v4djv6yhgnqf1i"))))
"0a25jp5afla2dxzj7i4cyvqpa5smsn7ns3xvpzqw6pc7naixkpap"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("bzip2" ,bzip2)
("cairo" ,cairo)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("glib" ,glib)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+-2)

View file

@ -171,6 +171,10 @@ (define-public gst-plugins-base
;; for g-ir-scanner.
(setenv "CC" "gcc"))
%standard-phases)))
(native-search-paths
(list (search-path-specification
(variable "GST_PLUGIN_SYSTEM_PATH")
(files '("lib/gstreamer-1.0")))))
(home-page "http://gstreamer.freedesktop.org/")
(synopsis
"Plugins for the GStreamer multimedia library")

View file

@ -138,24 +138,28 @@ (define-public cairo
(define-public harfbuzz
(package
(name "harfbuzz")
(version "0.9.22")
(version "0.9.40")
(source (origin
(method url-fetch)
(uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
version ".tar.bz2"))
(sha256
(base32
"1nkimwadri6v2kzrmz8y0crmy59gw0kg4i4f6cc786bngs0815lq"))))
"07rjp05axas96fp23lpf8l2yyfdj9yib4m0qjv592vdyhcsxaw8p"))))
(build-system gnu-build-system)
(inputs
`(("cairo" ,cairo)
("graphite2" ,graphite2)
("icu4c" ,icu4c)))
(propagated-inputs
`(("glib" ,glib))) ; required by harfbuzz-gobject.pc
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
`(("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("python" ,python-2))) ; incompatible with Python 3 (print syntax)
(arguments
`(#:configure-flags `("--with-graphite2=yes")))
`(#:configure-flags `("--with-graphite2"
"--with-gobject")))
(synopsis "OpenType text shaping engine")
(description
"HarfBuzz is an OpenType text shaping engine.")
@ -426,7 +430,7 @@ (define-public at-spi2-atk
(define-public gtk+-2
(package
(name "gtk+")
(version "2.24.27")
(version "2.24.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -434,7 +438,7 @@ (define-public gtk+-2
name "-" version ".tar.xz"))
(sha256
(base32
"1x14rnjvqslpa1q19fp1qalz5sxds72amsgjk8m7769rwk511jr0"))))
"0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@ -482,7 +486,7 @@ (define-public gtk+-2
(define-public gtk+
(package (inherit gtk+-2)
(name "gtk+")
(version "3.16.2")
(version "3.16.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -490,7 +494,7 @@ (define-public gtk+
name "-" version ".tar.xz"))
(sha256
(base32
"1yhwg2l72l3khfkprydcjlpxjrg11ccqfc80sjl56llz3jk66fd0"))))
"195ykv53sl2gsc847wcnd79zilm1yzcc2cfjxnrakhh2dd5gshr9"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
@ -501,7 +505,8 @@ (define-public gtk+
("libxdamage" ,libxdamage)
("pango" ,pango)))
(inputs
`(("libxml2" ,libxml2)
`(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg
("libxml2" ,libxml2)
("cups" ,cups))) ;for printing support
(native-inputs
`(("perl" ,perl)
@ -533,7 +538,18 @@ (define-public gtk+
"demos/gtk-demo/Makefile.in")
(("gtk-update-icon-cache") "$(bindir)/gtk-update-icon-cache"))
#t)
%standard-phases)))))
(alist-cons-after
'install 'wrap-gtk-encode-symbolic-svg
;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know
;; librsvg's loaders.cache to handle SVG files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/bin/gtk-encode-symbolic-svg"))
(librsvg (assoc-ref inputs "librsvg"))
(loaders.cache (find-files librsvg "^loaders\\.cache$")))
(wrap-program prog
`("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache))))
%standard-phases))))))
;;;
;;; Guile bindings.
@ -844,7 +860,7 @@ (define-public python2-pygtk
(define-public girara
(package
(name "girara")
(version "0.2.3")
(version "0.2.4")
(source (origin
(method url-fetch)
(uri
@ -852,7 +868,7 @@ (define-public girara
version ".tar.gz"))
(sha256
(base32
"1phfmqp8y17zcy9yi6pm2f80x8ldbk60iswpm4bmjz5217jwqzxh"))))
"0pnfdsg435b5vc4x8l9pgm77aj7ram1q0bzrp9g4a3bh1r64xq1f"))))
(native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gnu-gettext)))
(inputs `(("gtk+" ,gtk+)

View file

@ -27,6 +27,7 @@ (define-module (gnu packages guile)
#:use-module (gnu packages gperf)
#:use-module (gnu packages libffi)
#:use-module (gnu packages autotools)
#:use-module (gnu packages flex)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
@ -35,6 +36,9 @@ (define-module (gnu packages guile)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages ed)
#:use-module (gnu packages base)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gdbm)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@ -181,6 +185,42 @@ (define-public guile-2.0/fixed
;; in the `base' module, and thus changing it entails a full rebuild.
guile-2.0)
(define-public guile-for-guile-emacs
(package (inherit guile-2.0)
(name "guile-for-guile-emacs")
(version "20150510.d8d9a8d")
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.hcoop.net/git/bpt/guile.git")
(commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17")))
(sha256
(base32
"00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0"))))
(arguments
(substitute-keyword-arguments `(;; Tests aren't passing for now.
;; Obviously we should re-enable this!
#:tests? #f
,@(package-arguments guile-2.0))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'autogen
(lambda _
(zero? (system* "sh" "autogen.sh"))))
(add-before 'autogen 'patch-/bin/sh
(lambda _
(substitute* "build-aux/git-version-gen"
(("#!/bin/sh") (string-append "#!" (which "sh"))))
#t))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("flex" ,flex)
("texinfo" ,texinfo)
("gettext" ,gnu-gettext)
,@(package-native-inputs guile-2.0)))))
;;;
;;; Extensions.
@ -189,25 +229,19 @@ (define-public guile-2.0/fixed
(define-public guile-reader
(package
(name "guile-reader")
(version "0.6")
(version "0.6.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/guile-reader/guile-reader-"
version ".tar.gz"))
(sha256
(base32
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
"020wz5w8z6g79nbqifg2n496wxwkcjzh8xizpv6mz0hczpl155ma"))))
(build-system gnu-build-system)
(native-inputs `(("pkgconfig" ,pkg-config)
("gperf" ,gperf)))
(inputs `(("guile" ,guile-2.0)))
(arguments `(;; The extract-*.sh scripts really expect to run in the C
;; locale. Failing to do that, we end up with a build
;; failure while extracting doc. (Fixed in Guile-Reader's
;; repo.)
#:locale "C"
#:configure-flags
(arguments `(#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "--with-guilemoduledir="
out "/share/guile/site/2.0")))))
@ -436,4 +470,69 @@ (define-public guile-minikanren
See http://minikanren.org/ for more on miniKanren generally.")
(license expat)))
;; There are two guile-gdbm packages, one using the FFI and one with
;; direct C bindings, hence the verbose name.
(define-public guile-gdbm-ffi
(package
(name "guile-gdbm-ffi")
(version "20120209.fa1d5b6")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ijp/guile-gdbm.git")
(commit "fa1d5b6231d0e4d096687b378c025f2148c5f246")))
(sha256
(base32
"1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj"))))
(build-system trivial-build-system)
(arguments
`(#:modules
((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(system base compile))
(let* ((out (assoc-ref %outputs "out"))
(module-dir (string-append out "/share/guile/site/2.0"))
(source (assoc-ref %build-inputs "source"))
(doc (string-append out "/share/doc"))
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild"))
(gdbm.scm-dest
(string-append module-dir "/gdbm.scm"))
(gdbm.go-dest
(string-append module-dir "/gdbm.go")))
;; Make installation directories.
(mkdir-p module-dir)
(mkdir-p doc)
;; Switch directory for compiling and installing
(chdir source)
;; copy the source
(copy-file "gdbm.scm" gdbm.scm-dest)
;; Patch the FFI
(substitute* gdbm.scm-dest
(("\\(dynamic-link \"libgdbm\"\\)")
(format #f "(dynamic-link \"~a/lib/libgdbm.so\")"
(assoc-ref %build-inputs "gdbm"))))
;; compile to the destination
(compile-file gdbm.scm-dest
#:output-file gdbm.go-dest)))))
(inputs
`(("guile" ,guile-2.0)))
(propagated-inputs
`(("gdbm" ,gdbm)))
(home-page "https://github.com/ijp/guile-gdbm")
(synopsis "Guile bindings to the GDBM library via Guile's FFI")
(description
"Guile bindings to the GDBM key-value storage system, using
Guile's foreign function interface.")
(license gpl3+)))
;;; guile.scm ends here

View file

@ -373,14 +373,13 @@ (define-public ghc-text
(arguments
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
(home-page "https://github.com/bos/text")
(synopsis
"Efficient packed Unicode text type library.")
(synopsis "Efficient packed Unicode text type library")
(description
"An efficient packed, immutable Unicode text type (both strict and
lazy), with a powerful loop fusion optimization framework.
The 'Text' type represents Unicode character strings, in a time and
space-efficient manner. This package provides text processing
space-efficient manner. This package provides text processing
capabilities that are optimized for performance critical use, both
in terms of large data quantities and high speed.")
(license bsd-3)))
@ -870,7 +869,7 @@ (define-public ghc-http
(home-page "https://github.com/haskell/HTTP")
(synopsis "Library for client-side HTTP")
(description
"The HTTP package supports client-side web programming in Haskell. It
"The HTTP package supports client-side web programming in Haskell. It
lets you set up HTTP connections, transmitting requests and processing the
responses coming back.")
(license bsd-3)))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -72,7 +73,6 @@ (define-public ibus
`(("dbus" ,dbus)
("dconf" ,dconf)
("gconf" ,gconf)
("glib" ,glib)
("gtk2" ,gtk+-2)
("intltool" ,intltool)
("libnotify" ,libnotify)

View file

@ -28,7 +28,7 @@ (define-module (gnu packages icu4c)
(define-public icu4c
(package
(name "icu4c")
(version "54.1")
(version "55.1")
(source (origin
(method url-fetch)
(uri (string-append "http://download.icu-project.org/files/icu4c/"
@ -37,7 +37,7 @@ (define-public icu4c
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
"-src.tgz"))
(sha256
(base32 "1cwapgjmvrcv1n2wjspj3vahidg596gjfp4jn1gcb4baralcjayl"))))
(base32 "0ys5f5spizg45qlaa31j2lhgry0jka2gfha527n4ndfxxz5j4sz1"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)))

View file

@ -555,10 +555,10 @@ (define-public libwebp
(synopsis "Lossless and lossy image compression")
(description
"WebP is a new image format that provides lossless and lossy compression
for images. WebP lossless images are 26% smaller in size compared to
PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at
equivalent SSIM index. WebP supports lossless transparency (also known as
alpha channel) with just 22% additional bytes. Transparency is also supported
for images. WebP lossless images are 26% smaller in size compared to
PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at
equivalent SSIM index. WebP supports lossless transparency (also known as
alpha channel) with just 22% additional bytes. Transparency is also supported
with lossy compression and typically provides 3x smaller file sizes compared
to PNG when lossy compression is acceptable for the red/green/blue color
channels.")

View file

@ -37,14 +37,14 @@ (define-module (gnu packages imagemagick)
(define-public imagemagick
(package
(name "imagemagick")
(version "6.9.0-4")
(version "6.9.1-3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"0ms9lxrm3hvgghv8k7rj6kvk40xkc6lgr41xyaxz7lyf3l4ahslr"))))
"18wbsjfccxlgsdsd6h9wvhcjrsglyi086jk4bk029ik07rh81laz"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-cons-before

View file

@ -250,6 +250,11 @@ (define-public icedtea6
;; gremlin) doesn't support it yet, so skip this phase.
#:validate-runpath? #f
#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 popen)
(ice-9 rdelim))
#:configure-flags
(let* ((gcjdir (assoc-ref %build-inputs "gcj"))
(ecj (string-append gcjdir "/share/java/ecj.jar"))
@ -378,9 +383,16 @@ (define-public icedtea6
(lambda* (#:key inputs #:allow-other-keys)
(let* ((gcjdir (assoc-ref %build-inputs "gcj"))
(gcjlib (string-append gcjdir "/lib"))
(antpath (string-append (getcwd) "/../apache-ant-1.9.4")))
(antpath (string-append (getcwd) "/../apache-ant-1.9.4"))
;; Get target-specific include directory so that
;; libgcj-config.h is found when compiling hotspot.
(gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include"))
(str (read-line port)))
(close-pipe port)
str)))
(setenv "CPATH"
(string-append (assoc-ref %build-inputs "libxrender")
(string-append gcjinclude ":"
(assoc-ref %build-inputs "libxrender")
"/include/X11/extensions" ":"
(assoc-ref %build-inputs "libxtst")
"/include/X11/extensions" ":"

View file

@ -224,6 +224,6 @@ (define-public oxygen-icons
(arguments
`(#:tests? #f)) ; no test target
(home-page "http://www.kde.org/")
(synopsis "oxygen icon theme for the KDE desktop")
(synopsis "Oxygen icon theme for the KDE desktop")
(description "KDE desktop environment")
(license lgpl3+)))

View file

@ -42,7 +42,7 @@ (define-public libedit
(synopsis "NetBSD Editline library")
(description
"This is an autotool- and libtoolized port of the NetBSD Editline
library (libedit). This Berkeley-style licensed command line editor library
library (libedit). This Berkeley-style licensed command line editor library
provides generic line editing, history, and tokenization functions, similar to
those found in GNU Readline.")
(license bsd-3)))

View file

@ -18,14 +18,51 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libreoffice)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module ((guix licenses) #:select (mpl2.0))
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module ((guix licenses)
#:select (gpl2+ lgpl2.1+ mpl1.1 mpl2.0
non-copyleft x11-style))
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openssl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python))
#:use-module (gnu packages python)
#:use-module (gnu packages rdf)
#:use-module (gnu packages scanner)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages zip))
(define-public ixion
(package
@ -79,3 +116,711 @@ (define-public orcus
Plain Text, Gnumeric XML, Generic XML. It also includes low-level parsers for
CSV, CSS and XML.")
(license mpl2.0)))
(define-public librevenge
(package
(name "librevenge")
(version "0.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-"
version ".tar.xz"))
(sha256 (base32
"03ygxyb0vfjv8raif5q62sl33b54wkr5rzgadb8slijm6k281wpn"))))
(build-system gnu-build-system)
(native-inputs
`(("boost" ,boost)
("cppunit" ,cppunit)
("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(inputs
`(("zlib" ,zlib)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "http://sourceforge.net/p/libwpd/wiki/librevenge/")
(synopsis "Document importer for office suites")
(description "Librevenge is a base library for writing document import
filters. It has interfaces for text documents, vector graphics,
spreadsheets and presentations.")
(license (list mpl2.0 lgpl2.1+)))) ;dual licensed
(define-public libwpd
(package
(name "libwpd")
(version "0.10.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-"
version ".tar.xz"))
(sha256 (base32
"0b6krzr6kxzm89g6bapn805kdayq70hn16n5b5wfs2lwrf0ag2wx"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("librevenge" ,librevenge))) ; in Requires field of .pkg
(inputs
`(("zlib" ,zlib)))
(home-page "http://libwpd.sourceforge.net/")
(synopsis "Library for importing WordPerfect documents")
(description "Libwpd is a C++ library designed to help process
WordPerfect documents. It is most commonly used to import such documents
into other word processors.")
(license (list mpl2.0 lgpl2.1+)))) ;dual licensed
(define-public libe-book
(package
(name "libe-book")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libebook/libe-book-"
version "/libe-book-" version ".tar.xz"))
(sha256
(base32
"1v48pd32r2pfysr3a3igc4ivcf6vvb26jq4pdkcnq75p70alp2bz"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
("gperf" ,gperf)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("icu4c" ,icu4c)
("librevenge" ,librevenge)
("libxml2" ,libxml2)))
(inputs
`(("boost" ,boost)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "http://libebook.sourceforge.net")
(synopsis "Library for import of reflowable e-book formats")
(description "Libe-book is a library and a set of tools for reading and
converting various reflowable e-book formats. Currently supported are:
Broad Band eBook, eReader .pdb, FictionBook v. 2 (including zipped files),
PalmDoc Ebook, Plucker .pdb, QiOO (mobile format, for java-enabled
cellphones), TCR (simple compressed text format), TealDoc, zTXT,
ZVR (simple compressed text format).")
(license mpl2.0)))
(define-public libwpg
(package
(name "libwpg")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libwpg/" name "/" name "-"
version ".tar.xz"))
(sha256 (base32
"097jx8a638fwwfrzf6v29r1yhc34rq9526py7wf0ck2z4fcr2w3g"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("libwpd" ,libwpd))) ; in Requires field of .pkg
(inputs
`(("perl" ,perl)
("zlib" ,zlib)))
(home-page "http://libwpg.sourceforge.net/")
(synopsis "Library and tools for the WordPerfect Graphics format")
(description "The libwpg project provides a library and tools for
working with graphics in the WPG (WordPerfect Graphics) format.")
(license (list mpl2.0 lgpl2.1+)))) ;dual licensed
(define-public libcmis
(package
(name "libcmis")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "-"
version ".tar.gz"))
(sha256 (base32
"1dprvk4fibylv24l7gr49gfqbkfgmxynvgssvdcycgpf7n8h4zm8"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires field of .pkg
`(("curl" ,curl)
("libxml2" ,libxml2)))
(inputs
`(("boost" ,boost)
("cyrus-sasl" ,cyrus-sasl)
("openssl" ,openssl)))
(arguments
`(#:configure-flags
(list
;; FIXME: Man pages generation requires docbook-to-man; reenable
;; it once this is available.
"--without-man"
;; avoid triggering configure errors by simple inclusion of
;; boost headers
"--disable-werror"
;; During configure, the boost headers are found, but linking
;; fails without the following flag.
(string-append "--with-boost="
(assoc-ref %build-inputs "boost")))))
(home-page "http://sourceforge.net/projects/libcmis/")
(synopsis "CMIS client library")
(description "LibCMIS is a C++ client library for the CMIS interface. It
allows C++ applications to connect to any ECM behaving as a CMIS server such
as Alfresco or Nuxeo.")
(license (list mpl1.1 gpl2+ lgpl2.1+)))) ; triple license
(define-public libabw
(package
(name "libabw")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"0zi1zj4fpxgpglbbb5n1kg3dmhqq5rpf46lli89r5daavp19iing"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("gperf" ,gperf)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("librevenge" ,librevenge)
("libxml2" ,libxml2)))
(inputs
`(("boost" ,boost)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw")
(synopsis "Library for parsing the AbiWord format")
(description "Libabw is a library that parses the file format of
AbiWord documents.")
(license mpl2.0)))
(define-public libcdr
(package
(name "libcdr")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"07yzb1yr5kzv0binzj5swz3zzay2gw3xb0fbkc2zwdssgrkf19nh"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("icu4c" ,icu4c)
("lcms" ,lcms)
("librevenge" ,librevenge)
("zlib" ,zlib)))
(inputs
`(("boost" ,boost)))
(arguments
;; avoid triggering a build failure due to warnings
`(#:configure-flags '("--disable-werror")))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libcdr")
(synopsis "Library for parsing the CorelDRAW format")
(description "Libcdr is a library that parses the file format of
CorelDRAW documents of all versions.")
(license mpl2.0)))
(define-public libetonyek
(package
(name "libetonyek")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"0gn8v24jb9r9kxppbws6xlc7knpd9mk2n9xjvziccv5f2l7mlslw"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
("doxygen" ,doxygen)
("gperf" ,gperf)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("librevenge" ,librevenge)
("libxml2" ,libxml2)))
(inputs
`(("boost" ,boost)))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek")
(synopsis "Library for parsing the Apple Keynote format")
(description "Libetonyek is a library that parses the file format of
Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
(license mpl2.0)))
(define-public libexttextcat
(package
(name "libexttextcat")
(version "3.4.4")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"14v2hkygnmf1zgahfm1fha47cr67iikrz2ymiqi28d2jydn0hk7j"))))
(build-system gnu-build-system)
(home-page "http://www.freedesktop.org/wiki/Software/libexttextcat/")
(synopsis "Text Categorization library")
(description "Libexttextcat is an N-Gram-Based Text Categorization
library primarily intended for language guessing.")
(license (non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
(define-public libfreehand
(package
(name "libfreehand")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"01j7mxi4lmf72w1mv2r098p8l0csdd94w2gq0ncp93djn34al6ai"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("gperf" ,gperf)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("librevenge" ,librevenge)
("zlib" ,zlib)))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libfreehand")
(synopsis "Library for parsing the FreeHand format")
(description "Libfreehand is a library that parses the file format of
Aldus/Macromedia/Adobe FreeHand documents.")
(license mpl2.0)))
(define-public libmspub
(package
(name "libmspub")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"03sn6lxpr49sdq6j8q7fw7yjybyfahhs03z80388mh105pwapfmh"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("icu4c" ,icu4c)
("librevenge" ,librevenge)
("zlib" ,zlib)))
(inputs
`(("boost" ,boost)))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libmspub")
(synopsis "Library for parsing the Microsoft Publisher format")
(description "Libmspub is a library that parses the file format of
Microsoft Publisher documents of all versions.")
(license mpl2.0)))
(define-public libpagemaker
(package
(name "libpagemaker")
(version "0.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"05zgj5ngg9z4b7dnrfs59nm0macm99lzyxv4mg53jcvp0mkgigfd"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires field of .pkg
`(("librevenge" ,librevenge)))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
(arguments
;; avoid triggering a build failure due to warnings
`(#:configure-flags '("--disable-werror")))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libpagemaker")
(synopsis "Library for parsing the PageMaker format")
(description "Libpagemaker is a library that parses the file format of
Aldus/Adobe PageMaker documents. Currently it only understands documents
created by PageMaker version 6.x and 7.")
(license mpl2.0)))
(define-public libvisio
(package
(name "libvisio")
;; FIXME: The newer version 0.1.1 fails its tests.
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"0vvd2wyp4rw6s9xnj1dc9vgdpfvm45gnb5b9hhzif0fdnx4iskqf"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
("doxygen" ,doxygen)
("gperf" ,gperf)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires or Requires.private field of .pkg
`(("icu4c" ,icu4c)
("librevenge" ,librevenge)
("libxml2" ,libxml2)))
(inputs
`(("boost" ,boost)))
;; FIXME: Not needed any more for newer version 0.1.1.
(arguments
;; avoid triggering a build failure due to warnings
`(#:configure-flags '("--disable-werror")))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libvisio")
(synopsis "Library for parsing the Microsoft Visio format")
(description "Libvisio is a library that parses the file format of
Microsoft Visio documents of all versions.")
(license mpl2.0)))
(define-public libodfgen
(package
(name "libodfgen")
(version "0.1.3")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev-www.libreoffice.org/src/"
name "-" version ".tar.bz2"))
(sha256 (base32
"074qsav86ixwi9zm1f77g9vxdf1ihm6n930vxjg8q3lwzd8g7lb6"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires field of .pkg
`(("librevenge" ,librevenge)))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "http://sourceforge.net/p/libwpd/wiki/libodfgen/")
(synopsis "ODF (Open Document Format) library")
(description "Libodfgen is a library for generating documents in the
Open Document Format (ODF). It provides generator implementations for all
document interfaces supported by librevenge:
text documents, vector drawings, presentations and spreadsheets.")
(license (list mpl2.0 lgpl2.1+)))) ; dual license
(define-public libmwaw
(package
(name "libmwaw")
(version "0.3.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"1sn95flxrh85qjsg1kk700c1ggxaaccr9j1nnw7x4daw8lky25ac"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires field of .pkg
`(("librevenge" ,librevenge)))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "http://sourceforge.net/p/libmwaw/wiki/Home/")
(synopsis "Import library for some old Macintosh text documents")
(description "Libmwaw contains some import filters for old Macintosh
text documents (MacWrite, ClarisWorks, ... ) and for some graphics and
spreadsheet documents.")
(license (list mpl2.0 lgpl2.1+)))) ; dual license
(define-public libwps
(package
(name "libwps")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.xz"))
(sha256 (base32
"14wfhw1ahavhx4hrdzc4hdwxjlffrm939kswf2x1250jnmyjlb5v"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(propagated-inputs ; in Requires field of .pkg
`(("librevenge" ,librevenge)))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
(arguments
;; avoid triggering configure errors by simple inclusion of boost headers
`(#:configure-flags '("--disable-werror")))
(home-page "http://libwps.sourceforge.net/")
(synopsis "Import library for Microsoft Works text documents")
(description "Libwps is a library for importing files in the Microsoft
Works word processor file format.")
(license (list mpl2.0 lgpl2.1+)))) ; dual license
(define-public hunspell
(package
(name "hunspell")
(version "1.3.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/"
name "-" version ".tar.gz"))
(sha256 (base32
"0v14ff9s37vkh45diaddndcrj0hmn67arh8xh8k79q9c1vgc1cm7"))))
(build-system gnu-build-system)
(home-page "http://hunspell.sourceforge.net/")
(synopsis "Spell checker")
(description "Hunspell is a spell checker and morphological analyzer
library and program designed for languages with rich morphology and complex
word compounding or character encoding.")
;; triple license, including "mpl1.1 or later"
(license (list mpl1.1 gpl2+ lgpl2.1+))))
(define-public hyphen
(package
(name "hyphen")
(version "2.8.8")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hunspell/"
name "-" version ".tar.gz"))
(sha256 (base32
"01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)))
(home-page "http://hunspell.sourceforge.net/")
(synopsis "Hyphenation library")
(description "Hyphen is a hyphenation library using TeX hyphenation
patterns, which are pre-processed by a perl script.")
;; triple license, including "mpl1.1 or later"
(license (list mpl1.1 mpl2.0 gpl2+ lgpl2.1+))))
(define-public mythes
(package
(name "mythes")
(version "1.2.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hunspell/"
name "-" version ".tar.gz"))
(sha256 (base32
"0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("hunspell" ,hunspell)
("perl" ,perl)))
(home-page "http://hunspell.sourceforge.net/")
(synopsis "Thesaurus")
(description "MyThes is a simple thesaurus that uses a structured text
data file and an index file with binary search to look up words and phrases
and to return information on pronunciations, meaningss and synonyms.")
(license (non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
;; LibreOffice requires an xmlsec source tarball; it does not even check
;; for the presence of an externally compiled library.
(define xmlsec-src-libreoffice
(origin
(method url-fetch)
(uri
(string-append
"http://dev-www.libreoffice.org/src/"
"1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz"))
(sha256 (base32
"0jnxxygg6z5zi6za94dvxmg1bfar1wh8p5xa2bzbha0qcn2m02ir"))))
(define-public libreoffice
(package
(name "libreoffice")
(version "4.4.3.2")
(source
(origin
(method url-fetch)
(uri
(string-append
"http://download.documentfoundation.org/libreoffice/src/"
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256 (base32
"0rl9x01ngxwnqwzxkrqy4vks4rb024m75z0w4zidwyp0az0m8qdd"))))
(build-system gnu-build-system)
(native-inputs
`(;; autoreconf is run by the LibreOffice build system, since after
;; unpacking the external xmlsec tarball, it applies a series of
;; patches to Makefile.am, configure.in, config.guess and config.sub.
("autoconf" ,autoconf)
("automake" ,automake)
("bison" ,bison)
("cppunit" ,cppunit)
("flex" ,flex)
("pkg-config" ,pkg-config)
("python" ,python)
("which" ,which)))
(inputs
`(("bluez" ,bluez)
("boost" ,boost)
("clucene" ,clucene)
("cups" ,cups)
("dbus-glib" ,dbus-glib)
("fontconfig" ,fontconfig)
("gconf" ,gconf)
("glew" ,glew)
("glm" ,glm)
("gperf" ,gperf)
("graphite2" ,graphite2)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+-2)
("harfbuzz" ,harfbuzz)
("hunspell" ,hunspell)
("hyphen" ,hyphen)
("libabw" ,libabw)
("libcdr" ,libcdr)
("libcmis" ,libcmis)
("libjpeg" ,libjpeg)
("libe-book" ,libe-book)
("libetonyek" ,libetonyek)
("libexttextcat" ,libexttextcat)
("libfreehand" ,libfreehand)
("libmspub" ,libmspub)
("libmwaw" ,libmwaw)
("libodfgen" ,libodfgen)
("libpagemaker" ,libpagemaker)
("libvisio" ,libvisio)
("libwpg" ,libwpg)
("libwps" ,libwps)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxslt" ,libxslt)
("libxt" ,libxt)
("lpsolve" ,lpsolve)
("mdds" ,mdds)
("mythes" ,mythes)
("neon" ,neon)
("nspr" ,nspr)
("nss" ,nss)
("openldap" ,openldap)
("openssl" ,openssl)
("orcus" ,orcus)
("perl" ,perl)
("perl-zip" ,perl-zip)
("poppler" ,poppler)
("postgresql" ,postgresql)
("python" ,python)
("redland" ,redland)
("sane-backends" ,sane-backends)
("unixodbc" ,unixodbc)
("unzip" ,unzip)
("vigra" ,vigra)
("xmlsec-src" ,xmlsec-src-libreoffice)
("zip" ,zip)))
(arguments
`(#:parallel-build? #f ; Otherwise the build fails.
#:tests? #f ; Building the tests already fails.
#:make-flags '("build-nocheck") ; Do not build unit tests, which fails.
#:phases
(modify-phases %standard-phases
(add-before 'configure 'prepare-src
(lambda* (#:key inputs #:allow-other-keys)
(let ((xmlsec (assoc-ref inputs "xmlsec-src")))
(substitute*
(list "sysui/CustomTarget_share.mk"
"solenv/gbuild/gbuild.mk"
"solenv/gbuild/platform/unxgcc.mk"
"external/libxmlsec/xmlsec1-oldlibtool.patch")
(("/bin/sh") (which "bash")))
(mkdir "external/tarballs")
(symlink
xmlsec
(string-append "external/tarballs/"
"1f24ab1d39f4a51faf22244c94a6203f-"
"xmlsec1-1.2.14.tar.gz"))
;; The following is required for building xmlsec from the
;; unpatched external tarball; since "configure" starts with
;; "/bin/sh", it needs to be executed by a command invoking
;; the shell.
(setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash"))
(substitute* "external/libxmlsec/ExternalProject_xmlsec.mk"
(("./configure") "$(CONFIG_SHELL) ./configure" ))
#t)))
(add-after 'install 'bin-install
;; Create a symlink bin/soffice to the executable script.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir bin)
(symlink
(string-append out "/lib/libreoffice/program/soffice")
(string-append bin "/soffice")))
#t)))
#:configure-flags
(list
"--enable-release-build"
"--enable-verbose"
"--without-parallelism" ; otherwise the build fails
"--disable-fetch-external" ; disable downloads
"--with-system-libs" ; enable all --with-system-* flags
(string-append "--with-boost-libdir="
(assoc-ref %build-inputs "boost") "/lib")
;; Avoid a dependency on ucpp.
"--with-idlc-cpp=cpp"
;; The fonts require an external tarball (crosextrafonts).
;; They should not be needed when system fonts are available.
"--without-fonts"
;; With java, the build fails since sac.jar is missing.
"--without-java"
;; FIXME: Enable once the corresponding inputs are packaged.
"--without-system-npapi-headers"
"--disable-coinmp"
"--disable-firebird-sdbc" ; embedded firebird
"--disable-gltf"
"--disable-liblangtag")))
(home-page "https://www.libreoffice.org/")
(synopsis "Office suite")
(description "LibreOffice is a comprehensive office suite. It contains
a number of components: Writer, a word processor; Calc, a spreadsheet
application; Impress, a presentation engine; Draw, a drawing and
flowcharting application; Base, a database and database frontend;
Math for editing mathematics.")
(license mpl2.0)))

View file

@ -24,12 +24,13 @@ (define-module (gnu packages libusb)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config))
(define-public libusb
(package
(name "libusb")
(version "1.0.9")
(version "1.0.19")
(source
(origin
(method url-fetch)
@ -37,8 +38,14 @@ (define-public libusb
"libusb-" version "/libusb-" version ".tar.bz2"))
(sha256
(base32
"16sz34ix6hw2wwl3kqx6rf26fg210iryr68wc439dc065pffw879"))))
"0h38p9rxfpg9vkrbyb120i1diq57qcln82h5fr7hvy82c20jql3c"))))
(build-system gnu-build-system)
;; XXX: Enabling udev is now recommended, but eudev indirectly depends on
;; libusb.
(arguments `(#:configure-flags '("--disable-udev")))
;; (inputs `(("eudev" ,eudev)))
(home-page "http://www.libusb.org")
(synopsis "User-space USB library")
(description

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
@ -55,6 +55,8 @@ (define-module (gnu packages linux)
#:use-module (gnu packages gtk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages asciidoc)
#:use-module (gnu packages readline)
#:use-module (gnu packages calendar)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@ -208,7 +210,7 @@ (define (lookup file)
#f)))
(define-public linux-libre
(let* ((version "4.0")
(let* ((version "4.0.5")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Apply the neat patch.
@ -281,9 +283,7 @@ (define-public linux-libre
(uri (linux-libre-urls version))
(sha256
(base32
"12nkzn1n4si2zcp10b645qri83m2y7iwp29vs2rjmy612azdab8f"))
(patches
(list (search-patch "linux-libre-libreboot-fix.patch")))))
"0g8a4h8gjw51pp02hjfrp6bk2nkrclm3krp9mpjh3iwbf4vfh2al"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("bc" ,bc)
@ -318,7 +318,7 @@ (define-public linux-libre
(license gpl2)
(home-page "http://www.gnu.org/software/linux-libre/"))))
;;;
;;; Pluggable authentication modules (PAM).
;;;
@ -364,7 +364,7 @@ (define-public linux-pam
at login. Local and dynamic reconfiguration are its key features")
(license bsd-3)))
;;;
;;; Miscellaneous.
;;;
@ -587,8 +587,21 @@ (define-public e2fsprogs
(string-append "#!" (which "sh")))))
(alist-cons-after
'install 'install-libs
(lambda _
(zero? (system* "make" "install-libs")))
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(and (zero? (system* "make" "install-libs"))
;; Make the .a writable so that 'strip' works.
;; Failing to do that, due to debug symbols, we
;; retain a reference to the final
;; linux-libre-headers, which refer to the
;; bootstrap binaries.
(let ((archives (find-files lib "\\.a$")))
(for-each (lambda (file)
(chmod file #o666))
archives)
#t))))
%standard-phases))
;; FIXME: Tests work by comparing the stdout/stderr of programs, that
@ -1041,6 +1054,17 @@ (define-public bridge-utils
'(#:phases (alist-cons-after
'unpack 'bootstrap
(lambda _
;; Fix "field ip6 has incomplete type" errors.
(substitute* "libbridge/libbridge.h"
(("#include <linux/if_bridge.h>")
"#include <linux/in6.h>\n#include <linux/if_bridge.h>"))
;; Ensure that the entire build fails if one of the
;; sub-Makefiles fails.
(substitute* "Makefile.in"
(("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;")
"$(MAKE) $(MFLAGS) -C $$x || exit 1;"))
(zero? (system* "autoreconf" "-vf")))
%standard-phases)
#:tests? #f)) ; no 'check' target
@ -1198,7 +1222,8 @@ (define-public fuse
version ".tar.gz"))
(sha256
(base32
"071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))))
"071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))
(patches (list (search-patch "fuse-CVE-2015-3202.patch")))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(arguments
@ -1567,7 +1592,7 @@ (define-public eudev
;; Work around undefined reference to
;; 'mq_getattr' in sc-daemon.c.
"LDFLAGS=-lrt")
#:phases
#:phases
(alist-cons-before
'build 'pre-build
;; The program 'g-ir-scanner' (part of the package
@ -2171,3 +2196,40 @@ (define-public libaio
system calls, important for the performance of databases and other advanced
applications.")
(license lgpl2.1+)))
(define-public bluez
(package
(name "bluez")
(version "5.30")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.kernel.org/pub/linux/bluetooth/bluez-"
version ".tar.xz"))
(sha256
(base32
"0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list "--enable-library"
"--disable-systemd"
;; Install dbus/udev files to the correct location.
(string-append "--with-dbusconfdir=" out "/etc")
(string-append "--with-udevdir=" out "/lib/udev")))))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gnu-gettext)))
(inputs
`(("glib" ,glib)
("dbus" ,dbus)
("eudev" ,eudev)
("libical" ,libical)
("readline" ,readline)))
(home-page "http://www.bluez.org/")
(synopsis "Linux Bluetooth protocol stack")
(description
"BlueZ provides support for the core Bluetooth layers and protocols. It
is flexible, efficient and uses a modular implementation.")
(license gpl2+)))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,11 +36,10 @@ (define-public m4
"0w0da1chh12mczxa5lnwzjk9czi3dq6gnnndbpa6w4rj76b1yklf"))))
(build-system gnu-build-system)
(arguments
;; XXX: Disable tests on those platforms with know issues.
`(#:tests? ,(not (member (%current-system)
'("x86_64-darwin"
"i686-cygwin"
"i686-sunos")))
`(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
;; proceeds and fails, unsurprisingly.
#:tests? ,(not (%current-target-system))
#:phases (alist-cons-before
'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)

View file

@ -7,6 +7,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -66,7 +67,8 @@ (define-module (gnu packages mail)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module ((guix licenses)
#:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ non-copyleft))
#:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft
(expat . license:expat)))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@ -492,7 +494,6 @@ (define-public claws-mail
(inputs `(("bogofilter" ,bogofilter)
("curl" ,curl)
("dbus-glib" ,dbus-glib)
("dbus" ,dbus)
("enchant" ,enchant)
("expat" ,expat)
("ghostscript" ,ghostscript)
@ -639,6 +640,49 @@ (define-public exim
facilities for checking incoming mail.")
(license gpl2+)))
(define-public dovecot
(package
(name "dovecot")
(version "2.2.16")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.dovecot.org/releases/"
(version-major+minor version) "/"
name "-" version ".tar.gz"))
(sha256 (base32
"1w6gg4h9mxg3i8faqpmgj19imzyy001b0v8ihch8ma3zl63i5kjn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("openssl" ,openssl)
("zlib" ,zlib)
("bzip2" ,bzip2)
("sqlite" ,sqlite)))
(arguments
`(#:configure-flags '("--sysconfdir=/etc"
"--localstatedir=/var")
#:phases (modify-phases %standard-phases
(add-before
'configure 'pre-configure
(lambda _
;; Simple hack to avoid installing in /etc
(substitute* '("doc/Makefile.in"
"doc/example-config/Makefile.in")
(("pkgsysconfdir = .*")
"pkgsysconfdir = /tmp/etc"))
#t)))))
(home-page "http://www.dovecot.org")
(synopsis "Secure POP3/IMAP server")
(description
"Dovecot is a mail server whose major goals are security and reliability.
It supports mbox/Maildir and its own dbox/mdbox formats.")
;; Most source files are covered by either lgpl2.1 or expat. The SHA code
;; is covered by a variant of BSD-3, and UnicodeData.txt is covered by the
;; Unicode, Inc. License Agreement for Data Files and Software.
(license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))
(define-public isync
(package
(name "isync")

View file

@ -153,7 +153,7 @@ (define-public man-pages
(define-public help2man
(package
(name "help2man")
(version "1.46.5")
(version "1.46.6")
(source
(origin
(method url-fetch)
@ -161,7 +161,7 @@ (define-public help2man
version ".tar.xz"))
(sha256
(base32
"1gqfqgxq3qgwnldjz3i5mxvzyx2w3j042r3fw1wygic3f6327nha"))))
"1brccgnjf09f2zg70s6gv6gn68mi59kp3zf50wvxp79n72ngapv1"))))
(build-system gnu-build-system)
(arguments `(;; There's no `check' target.
#:tests? #f))

View file

@ -7,6 +7,7 @@
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -68,6 +69,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages zip))
@ -382,6 +384,9 @@ (define-public octave
`(("lapack" ,lapack)
("readline" ,readline)
("glpk" ,glpk)
("fftw" ,fftw)
("fftwf" ,fftwf)
("arpack" ,arpack-ng)
("curl" ,curl)
("pcre" ,pcre)
("fltk" ,fltk)
@ -390,16 +395,18 @@ (define-public octave
("hdf5" ,hdf5)
("libxft" ,libxft)
("mesa" ,mesa)
("glu" ,glu)
("zlib" ,zlib)))
(native-inputs
`(("gfortran" ,gfortran-4.8)
("pkg-config" ,pkg-config)
("perl" ,perl)
;; The following inputs are not actually used in the build process. However, the
;; ./configure gratuitously tests for their existence and assumes that programs not
;; present at build time are also not, and can never be, available at run time!
;; If these inputs are therefore not present, support for them will be built out.
;; However, Octave will still run without them, albeit without the features they
;; The following inputs are not actually used in the build process.
;; However, the ./configure gratuitously tests for their existence and
;; assumes that programs not present at build time are also not, and
;; can never be, available at run time! If these inputs are therefore
;; not present, support for them will be built out. However, Octave
;; will still run without them, albeit without the features they
;; provide.
("less" ,less)
("texinfo" ,texinfo)
@ -411,11 +418,11 @@ (define-public octave
"/bin/sh"))))
(home-page "http://www.gnu.org/software/octave/")
(synopsis "High-level language for numerical computation")
(description "GNU Octave is a high-level interpreted language that is specialized
for numerical computations. It can be used for both linear and non-linear
applications and it provides great support for visualizing results. Work may
be performed both at the interactive command-line as well as via script
files.")
(description "GNU Octave is a high-level interpreted language that is
specialized for numerical computations. It can be used for both linear and
non-linear applications and it provides great support for visualizing results.
Work may be performed both at the interactive command-line as well as via
script files.")
(license license:gpl3+)))
(define-public gmsh
@ -917,7 +924,7 @@ (define-public gsegrafix
(define-public maxima
(package
(name "maxima")
(version "5.34.1")
(version "5.36.1")
(source
(origin
(method url-fetch)
@ -925,7 +932,8 @@ (define-public maxima
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
"1dw9vfzldpj7lv303xbw0wpyn6ra6i2yzwlrjbcx7j0jm5n43ji0"))))
"0x1rk659sn3cq0n5c90848ilzr1gb1wf0072fl6jhkdq00qgh2s0"))
(patches (list (search-patch "maxima-defsystem-mkdir.patch")))))
(build-system gnu-build-system)
(inputs
`(("gcl" ,gcl)
@ -946,8 +954,8 @@ (define-public maxima
(let ((v ,(package-version tk)))
(string-take v (string-index-right v #\.)))))
;; By default Maxima attempts to write temporary files to
;; '/tmp/nix-build-maxima-5.34.1', which doesn't exist. Work around
;; that.
;; '/tmp/nix-build-maxima-*', which won't exist at run time.
;; Work around that.
#:make-flags (list "TMPDIR=/tmp")
#:phases (alist-cons-before
'check 'pre-check
@ -992,6 +1000,49 @@ (define-public maxima
;; GPLv2 only is therefore the smallest subset.
(license license:gpl2)))
(define-public wxmaxima
(package
(name "wxmaxima")
(version "15.04.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wxmaxima/wxMaxima/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180"))))
(build-system gnu-build-system)
(inputs
`(("wxwidgets" ,wxwidgets)
("maxima" ,maxima)))
(arguments
`(#:phases (modify-phases %standard-phases
(add-after
'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/wxmaxima")
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "maxima")
"/bin"))))
#t)))))
(home-page "https://andrejv.github.io/wxmaxima/")
(synopsis "Graphical user interface for the Maxima computer algebra system")
(description
"wxMaxima is a graphical user interface for the Maxima computer algebra
system. It eases the use of Maxima by making most of its commands available
through a menu system and by providing input dialogs for commands that require
more than one argument. It also implements its own display engine that
outputs mathematical symbols directly instead of depicting them with ASCII
characters.
wxMaxima also features 2D and 3D inline plots, simple animations, mixing of
text and mathematical calculations to create documents, exporting of input and
output to TeX, and a browser for Maxima's manual including command index and
full text searching.")
(license license:gpl2+)))
(define-public muparser
(package
(name "muparser")
@ -1020,7 +1071,7 @@ (define-public muparser
(define-public openblas
(package
(name "openblas")
(version "0.2.13")
(version "0.2.14")
(source
(origin
(method url-fetch)
@ -1029,10 +1080,14 @@ (define-public openblas
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1asg5mix13ipxgj5h2yj2p0r8km1di5jbcjkn5gmhb37nx7qfv6k"))))
"0av3pd96j8rx5i65f652xv9wqfkaqn0w4ma1gvbyz73i6j2hi9db"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no "check" target
`(#:tests? #f ;no "check" target
;; DYNAMIC_ARCH is not supported on MIPS. When it is disabled,
;; OpenBLAS will tune itself to the build host, so we need to disable
;; substitutions.
#:substitutable? ,(not (string-prefix? "mips" (%current-system)))
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"SHELL=bash"
@ -1040,7 +1095,10 @@ (define-public openblas
;; Build the library for all supported CPUs. This allows
;; switching CPU targets at runtime with the environment variable
;; OPENBLAS_CORETYPE=<type>, where "type" is a supported CPU type.
"DYNAMIC_ARCH=1")
;; Unfortunately, this is not supported on MIPS.
,@(if (string-prefix? "mips" (%current-system))
'()
'("DYNAMIC_ARCH=1")))
;; no configure script
#:phases (alist-delete 'configure %standard-phases)))
(inputs
@ -1333,3 +1391,72 @@ (define-public glm
library for graphics software based on the OpenGL Shading Language (GLSL)
specifications.")
(license license:expat)))
(define-public lpsolve
(package
(name "lpsolve")
(version "5.5.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/lpsolve/lpsolve/" version
"/lp_solve_" version "_source.tar.gz"))
(sha256
(base32
"176c7f023mb6b8bfmv4rfqnrlw88lsg422ca74zjh19i2h5s69sq"))
(modules '((guix build utils)))
(snippet
'(substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
(("^c=cc") "c=gcc")
;; Pretend to be on a 64 bit platform to obtain a common directory
;; name for the build results on all architectures; nothing else
;; seems to depend on it.
(("^PLATFORM=.*$") "PLATFORM=ux64\n")))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(with-directory-excursion "lpsolve55"
(system* "bash" "ccc"))
(with-directory-excursion "lp_solve"
(system* "bash" "ccc"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib"))
;; This is where LibreOffice expects to find the header
;; files, and where they are installed by Debian.
(include (string-append out "/include/lpsolve")))
(mkdir-p lib)
(copy-file "lpsolve55/bin/ux64/liblpsolve55.a"
(string-append lib "/liblpsolve55.a"))
(copy-file "lpsolve55/bin/ux64/liblpsolve55.so"
(string-append lib "/liblpsolve55.so"))
(mkdir-p bin)
(copy-file "lp_solve/bin/ux64/lp_solve"
(string-append bin "/lp_solve"))
(mkdir-p include)
;; Install a subset of the header files as on Debian
;; (plus lp_bit.h, which matches the regular expression).
(for-each
(lambda (name)
(copy-file name (string-append include "/" name)))
(find-files "." "lp_[HMSa-z].*\\.h$"))
(with-directory-excursion "shared"
(for-each
(lambda (name)
(copy-file name (string-append include "/" name)))
(find-files "." "\\.h$")))
#t))))))
(home-page "http://lpsolve.sourceforge.net/")
(synopsis "Mixed integer linear programming (MILP) solver")
(description
"lp_solve is a mixed integer linear programming solver based on the
revised simplex and the branch-and-bound methods.")
(license license:lgpl2.1+)))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -86,20 +87,20 @@ (define-public libotr-3
(define-public bitlbee
(package
(name "bitlbee")
(version "3.2.2")
(version "3.4")
(source (origin
(method url-fetch)
(uri (string-append "http://get.bitlbee.org/src/bitlbee-"
version ".tar.gz"))
(sha256
(base32 "13jmcxxgli82wb2n4hs091159xk8rgh7nb02f478lgpjh6996f5s"))))
(base32 "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf"))
(patches (list (search-patch "bitlbee-configure-doc-fix.patch")))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("check" ,check)))
(inputs `(("glib" ,glib)
("libotr" ,libotr)
("gnutls" ,gnutls)
("zlib" ,zlib) ; Needed to satisfy "pkg-config --exists gnutls"
("python" ,python-2)
("perl" ,perl)))
(arguments

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,7 +27,7 @@ (define-module (gnu packages moe)
(define-public moe
(package
(name "moe")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -35,7 +35,7 @@ (define-public moe
version ".tar.lz"))
(sha256
(base32
"1cfwi67sdl2qchqbdib4p6wxjpwz2kmn6vxn9hmh1zs0gg4xkbwc"))))
"1fzimk1qpmsm7wzfnjzzrp4dvdn7ipdb5j7969910g1m93wndfik"))))
(build-system gnu-build-system)
(native-inputs `(("lzip" ,lzip)))
(inputs `(("ncurses" ,ncurses)))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -16,14 +17,42 @@
;;; 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 socat)
(define-module (gnu packages networking)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages openssl))
;; XXX: Group with other networking tools like tcpdump in a module?
(define-public miredo
(package
(name "miredo")
(version "1.2.6")
(source (origin
(method url-fetch)
(uri (string-append "http://www.remlab.net/files/miredo/miredo-"
version ".tar.xz"))
(sha256
(base32
"0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
;; The checkconf test in src/ requires network access.
(add-before
'check 'disable-checkconf-test
(lambda _
(substitute* "src/Makefile"
(("^TESTS = .*") "TESTS = \n")))))))
(home-page "http://www.remlab.net/miredo/")
(synopsis "Teredo IPv6 tunneling software")
(description
"Miredo is an implementation (client, relay, server) of the Teredo
specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
residing in IPv4-only networks, even when they are behind a NAT device.")
(license license:gpl2+)))
(define-public socat
(package
(name "socat")
@ -53,3 +82,26 @@ (define-public socat
establish a relatively secure environment (su and chroot) for running client
or server shell scripts with network connections. ")
(license license:gpl2)))
(define-public zeromq
(package
(name "zeromq")
(version "4.0.5")
(source (origin
(method url-fetch)
(uri (string-append "http://download.zeromq.org/zeromq-"
version ".tar.gz"))
(sha256
(base32
"0arl8fy8d03xd5h0mgda1s5bajwg8iyh1kk4hd1420rpcxgkrj9v"))))
(build-system gnu-build-system)
(home-page "http://zeromq.org")
(synopsis "Library for message-based applications")
(description
"The 0MQ lightweight messaging kernel is a library which extends the
standard socket interfaces with features traditionally provided by specialized
messaging middle-ware products. 0MQ sockets provide an abstraction of
asynchronous message queues, multiple messaging patterns, message
filtering (subscriptions), seamless access to multiple transport protocols and
more.")
(license license:lgpl3+)))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,11 +18,20 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages ocaml)
#:use-module (guix licenses)
#:use-module ((guix licenses) #:hide (zlib))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages emacs)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages compression)
#:use-module (gnu packages commencement)
#:use-module (gnu packages xorg)
#:use-module (gnu packages texlive)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages ncurses)
@ -32,56 +41,94 @@ (define-module (gnu packages ocaml)
(define-public ocaml
(package
(name "ocaml")
(version "4.00.1")
(version "4.02.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-"
version ".tar.gz"))
(sha256
(base32
"0yp86napnvbi2jgxr6bk1235bmjdclgzrzgq4mhwv87l7dymr3dl"))))
(method url-fetch)
(uri (string-append
"http://caml.inria.fr/pub/distrib/ocaml-"
(version-major+minor version)
"/ocaml-" version ".tar.xz"))
(sha256
(base32
"1p7lqvh64xpykh99014mz21q8fs3qyjym2qazhhbq8scwldv1i38"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)))
(inputs
`(("libx11" ,libx11)
("gcc:lib" ,gcc-final "lib") ; for libiberty, needed for objdump support
("zlib" ,zlib))) ; also needed for objdump support
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
#:phases (alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
;; OCaml uses "-prefix <prefix>" rather than the usual
;; "--prefix=<prefix>".
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" "-prefix" out
"-mandir"
(string-append out "/share/man")))))
(alist-replace
'build
(lambda* (#:key outputs #:allow-other-keys)
;; "make" does not do anything, we must use
;; "make world.opt".
(zero? (system* "make" "world.opt")))
(alist-replace
'check-after-install
(lambda* (#:key outputs #:allow-other-keys)
;; There does not seem to be a "check" or "test" target.
(zero? (system "cd testsuite && make all")))
(let ((check (assq-ref %standard-phases 'check)))
;; OCaml assumes that "make install" is run before
;; launching the tests.
(alist-cons-after
'install 'check-after-install
check
(alist-delete 'check %standard-phases))))))))
(inputs `(("perl" ,perl)))
(home-page "http://caml.inria.fr/")
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(web server))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh-references
(lambda* (#:key inputs #:allow-other-keys)
(let* ((sh (string-append (assoc-ref inputs "bash")
"/bin/sh"))
(quoted-sh (string-append "\"" sh "\"")))
(with-fluids ((%default-port-encoding #f))
(for-each (lambda (file)
(substitute* file
(("\"/bin/sh\"")
(begin
(format (current-error-port) "\
patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
file quoted-sh)
quoted-sh))))
(find-files "." "\\.ml$"))
#t))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mandir (string-append out "/share/man")))
;; Custom configure script doesn't recognize
;; --prefix=<PREFIX> syntax (with equals sign).
(zero? (system* "./configure"
"--prefix" out
"--mandir" mandir)))))
(replace 'build
(lambda _
(zero? (system* "make" "-j" (number->string
(parallel-job-count))
"world.opt"))))
(delete 'check)
(add-after 'install 'check
(lambda _
(with-directory-excursion "testsuite"
(zero? (system* "make" "all")))))
(add-before 'check 'prepare-socket-test
(lambda _
(format (current-error-port)
"Spawning local test web server on port 8080~%")
(when (zero? (primitive-fork))
(run-server (lambda (request request-body)
(values '((content-type . (text/plain)))
"Hello!"))
'http '(#:port 8080)))
(let ((file "testsuite/tests/lib-threads/testsocket.ml"))
(format (current-error-port)
"Patching ~a to use localhost port 8080~%"
file)
(substitute* file
(("caml.inria.fr") "localhost")
(("80") "8080")
(("HTTP1.0") "HTTP/1.0"))
#t))))))
(home-page "https://ocaml.org/")
(synopsis "The OCaml programming language")
(description
"OCaml is a general purpose industrial-strength programming language with
an emphasis on expressiveness and safety. Developed for more than 20 years at
Inria it benefits from one of the most advanced type systems and supports
functional, imperative and object-oriented styles of programming.")
(license (list qpl gpl2))))
;; The compiler is distributed under qpl1.0 with a change to choice of
;; law: the license is governed by the laws of France. The library is
;; distributed under lgpl2.0.
(license (list qpl lgpl2.0))))
(define-public opam
(package
@ -143,3 +190,198 @@ (define-public opam
;; The 'LICENSE' file waives some requirements compared to LGPLv3.
(license lgpl3)))
(define-public camlp5
(package
(name "camlp5")
(version "6.12")
(source (origin
(method url-fetch)
(uri (string-append "http://camlp5.gforge.inria.fr/distrib/src/"
name "-" version ".tgz"))
(sha256
(base32
"00jwgp6w4g64lfqjx77xziy532091fy00c42fsy0b4i892rch5mp"))))
(build-system gnu-build-system)
(inputs
`(("ocaml" ,ocaml)))
(arguments
`(#:tests? #f ; XXX TODO figure out how to run the tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mandir (string-append out "/share/man")))
;; Custom configure script doesn't recognize
;; --prefix=<PREFIX> syntax (with equals sign).
(zero? (system* "./configure"
"--prefix" out
"--mandir" mandir)))))
(replace 'build
(lambda _
(zero? (system* "make" "-j" (number->string
(parallel-job-count))
"world.opt")))))))
(home-page "http://camlp5.gforge.inria.fr/")
(synopsis "Pre-processor Pretty Printer for OCaml")
(description
"Camlp5 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers
tools for syntax (Stream Parsers and Grammars) and the ability to modify the
concrete syntax of the language (Quotations, Syntax Extensions).")
;; Most files are distributed under bsd-3, but ocaml_stuff/* is under qpl.
(license (list bsd-3 qpl))))
(define-public hevea
(package
(name "hevea")
(version "2.23")
(source (origin
(method url-fetch)
(uri (string-append "http://hevea.inria.fr/distri/"
name "-" version ".tar.gz"))
(sha256
(base32
"1f9pj48518ixhjxbviv2zx27v4anp92zgg3x704g1s5cki2w33nv"))))
(build-system gnu-build-system)
(inputs
`(("ocaml" ,ocaml)))
(arguments
`(#:tests? #f ; no test suite
#:make-flags (list (string-append "PREFIX=" %output))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(home-page "http://hevea.inria.fr/")
(synopsis "LaTeX to HTML translator")
(description
"HeVeA is a LaTeX to HTML translator that generates modern HTML 5. It is
written in Objective Caml.")
(license qpl)))
(define-public coq
(package
(name "coq")
(version "8.4pl6")
(source (origin
(method url-fetch)
(uri (string-append "https://coq.inria.fr/distrib/V" version
"/files/" name "-" version ".tar.gz"))
(sha256
(base32
"1mpbj4yf36kpjg2v2sln12i8dzqn8rag6fd07hslj2lpm4qs4h55"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,texlive)
("hevea" ,hevea)))
(inputs
`(("ocaml" ,ocaml)
("camlp5" ,camlp5)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(mandir (string-append out "/share/man"))
(browser "icecat -remote \"OpenURL(%s,new-tab)\""))
(zero? (system* "./configure"
"--prefix" out
"--mandir" mandir
"--browser" browser)))))
(replace 'build
(lambda _
(zero? (system* "make" "-j" (number->string
(parallel-job-count))
"world"))))
(delete 'check)
(add-after 'install 'check
(lambda _
(with-directory-excursion "test-suite"
(zero? (system* "make"))))))))
(home-page "https://coq.inria.fr")
(synopsis "Proof assistant for higher-order logic")
(description
"Coq is a proof assistant for higher-order logic, which allows the
development of computer programs consistent with their formal specification.
It is developed using Objective Caml and Camlp5.")
;; The code is distributed under lgpl2.1.
;; Some of the documentation is distributed under opl1.0+.
(license (list lgpl2.1 opl1.0+))))
(define-public proof-general
(package
(name "proof-general")
(version "4.2")
(source (origin
(method url-fetch)
(uri (string-append
"http://proofgeneral.inf.ed.ac.uk/releases/"
"ProofGeneral-" version ".tgz"))
(sha256
(base32
"09qb0myq66fw17v4ziz401ilsb5xlxz1nl2wsp69d0vrfy0bcrrm"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)
("emacs" ,emacs-no-x)
("texinfo" ,texinfo)))
(inputs
`(("host-emacs" ,emacs)
("perl" ,perl)
("coq" ,coq)))
(arguments
`(#:tests? #f ; no check target
#:make-flags (list (string-append "PREFIX=" %output)
(string-append "DEST_PREFIX=" %output))
#:modules ((guix build gnu-build-system)
(guix build utils)
(guix build emacs-utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'disable-byte-compile-error-on-warn
(lambda _
(substitute* "Makefile"
(("\\(setq byte-compile-error-on-warn t\\)")
"(setq byte-compile-error-on-warn nil)"))
#t))
(add-after 'unpack 'patch-hardcoded-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(coq (assoc-ref inputs "coq"))
(emacs (assoc-ref inputs "host-emacs")))
(define (coq-prog name)
(string-append coq "/bin/" name))
(emacs-substitute-variables "coq/coq.el"
("coq-prog-name" (coq-prog "coqtop"))
("coq-compiler" (coq-prog "coqc"))
("coq-dependency-analyzer" (coq-prog "coqdep")))
(substitute* "Makefile"
(("/sbin/install-info") "install-info"))
(substitute* "bin/proofgeneral"
(("^PGHOMEDEFAULT=.*" all)
(string-append all
"PGHOME=$PGHOMEDEFAULT\n"
"EMACS=" emacs "/bin/emacs")))
#t)))
(add-after 'unpack 'clean
(lambda _
;; Delete the pre-compiled elc files for Emacs 23.
(zero? (system* "make" "clean"))))
(add-after 'install 'install-doc
(lambda* (#:key make-flags #:allow-other-keys)
;; XXX FIXME avoid building/installing pdf files,
;; due to unresolved errors building them.
(substitute* "Makefile"
((" [^ ]*\\.pdf") ""))
(zero? (apply system* "make" "install-doc"
make-flags)))))))
(home-page "http://proofgeneral.inf.ed.ac.uk/")
(description "Generic front-end for proof assistants based on Emacs")
(synopsis
"Proof General is a major mode to turn Emacs into an interactive proof
assistant to write formal mathematical proofs using a variety of theorem
provers.")
(license gpl2+)))

View file

@ -37,11 +37,21 @@ (define-public openldap
(version "2.4.40")
(source (origin
(method url-fetch)
(uri (string-append
"ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/openldap-release/openldap-"
version ".tgz"))
(sha256 (base32
"1nyslrgwxwilgv5sixc37svls5rbvhsv9drb7hlrjr2vqaji29ni"))))
;; See <http://www.openldap.org/software/download/> for a list of
;; mirrors.
(uri (list (string-append
"ftp://mirror.switch.ch/mirror/OpenLDAP/"
"openldap-release/openldap-" version ".tgz")
(string-append
"ftp://ftp.OpenLDAP.org/pub/OpenLDAP/"
"openldap-release/openldap-" version ".tgz")
(string-append
"ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/"
"openldap-release/openldap-" version ".tgz")))
(sha256
(base32
"1nyslrgwxwilgv5sixc37svls5rbvhsv9drb7hlrjr2vqaji29ni"))))
(build-system gnu-build-system)
(inputs `(("bdb" ,bdb)
("openssl" ,openssl)

View file

@ -29,6 +29,7 @@ (define-module (gnu packages package-management)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages databases)
#:use-module (gnu packages gnutls)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages autotools)
@ -51,17 +52,17 @@ (define (boot-guile-uri arch)
arch "-linux"
"/20131110/guile-2.0.9.tar.xz")))
(define-public guix-0.8.1
(define-public guix-0.8.2
(package
(name "guix")
(version "0.8.1")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-"
version ".tar.gz"))
(sha256
(base32
"12h5ldj1yf0za6ladlr8h7nx2gqrv2dxcsiwyqayvrza93lijkf5"))))
"1a5gnkh17w7fgi5zy63ph64iqdvarkdqypkwgw2iifpqa6jq04zz"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list
@ -130,7 +131,8 @@ (define (copy arch)
(base32
"1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))))))
(propagated-inputs
`(("guile-json" ,guile-json)
`(("gnutls" ,gnutls) ;for 'guix download' & co.
("guile-json" ,guile-json)
("geiser" ,geiser))) ;for guix.el
(home-page "http://www.gnu.org/software/guix")
@ -148,9 +150,9 @@ (define guix-devel
;;
;; Note: use a short commit id; when using the long one, the limit on socket
;; file names is exceeded while running the tests.
(let ((commit "fc34dee"))
(package (inherit guix-0.8.1)
(version (string-append "0.8.1." commit))
(let ((commit "c2ee19e"))
(package (inherit guix-0.8.2)
(version (string-append "0.8.2." commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -158,9 +160,9 @@ (define guix-devel
(commit commit)))
(sha256
(base32
"0nx60wwiar0s4bgwrm3nrskc54jig3vw7yzwxkwilc43cnlgpkja"))))
"1gwc1gypgscxg2m3n2vd0mw4dmxr7vsisqgh3y0lr05q9z5742sj"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.8.1)
(substitute-keyword-arguments (package-arguments guix-0.8.2)
((#:phases phases)
`(alist-cons-after
'unpack 'bootstrap
@ -178,7 +180,7 @@ (define guix-devel
("gettext" ,gnu-gettext)
("texinfo" ,texinfo)
("graphviz" ,graphviz)
,@(package-native-inputs guix-0.8.1))))))
,@(package-native-inputs guix-0.8.2))))))
(define-public guix guix-devel)

View file

@ -28,7 +28,7 @@ (define-module (gnu packages parallel)
(define-public parallel
(package
(name "parallel")
(version "20150322")
(version "20150422")
(source
(origin
(method url-fetch)
@ -36,7 +36,7 @@ (define-public parallel
version ".tar.bz2"))
(sha256
(base32
"1zsj1bd4zbwb4n9i0jgzs7vd5wkyg3xvj6s1q6s5fyn0pff7j01c"))))
"1x6lvbw6msjkibadihzr2s0mbbcx2h2wxd723q5bgz6mcnsml346"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(home-page "http://www.gnu.org/software/parallel/")

View file

@ -0,0 +1,15 @@
Fix the check for the prebuilt helpfile when xsltproc is not available.
--- bitlbee-3.4/configure.orig 2015-03-25 18:09:10.000000000 -0400
+++ bitlbee-3.4/configure 2015-05-20 14:51:33.627975970 -0400
@@ -650,8 +650,8 @@
if [ "$doc" = "1" ]; then
if [ ! -e doc/user-guide/help.txt ] && \
- ! type xmlto > /dev/null 2> /dev/null || \
- ! type xsltproc > /dev/null 2> /dev/null
+ (! type xmlto > /dev/null 2> /dev/null || \
+ ! type xsltproc > /dev/null 2> /dev/null)
then
echo
echo 'WARNING: Building from an unreleased source tree without prebuilt helpfile.'

View file

@ -1,16 +0,0 @@
This patch updates 'configure' as autoreconf would have done after
applying curl-support-capath-on-gnutls.patch.
--- a/configure 2015-03-22 01:11:23.178743705 +0100
+++ b/configure 2015-02-25 00:05:37.000000000 +0100
@@ -23952,8 +24432,8 @@
ca="$want_ca"
capath="no"
elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then
- if test "x$OPENSSL_ENABLED" != "x1" -a "x$POLARSSL_ENABLED" != "x1"; then
- as_fn_error $? "--with-ca-path only works with openSSL or PolarSSL" "$LINENO" 5
+ if test "x$OPENSSL_ENABLED" != "x1" -a "x$GNUTLS_ENABLED" != "x1" -a "x$POLARSSL_ENABLED" != "x1"; then
+ as_fn_error $? "--with-ca-path only works with OpenSSL, GnuTLS or PolarSSL" "$LINENO" 5
fi
capath="$want_capath"
ca="no"

View file

@ -1,102 +0,0 @@
This patch adds support for CURLOPT_CAPATH to the GnuTLS backend.
From 5a1614cecdd57cab8b4ae3e9bc19dfff5ba77e80 Mon Sep 17 00:00:00 2001
From: Alessandro Ghedini <alessandro@ghedini.me>
Date: Sun, 8 Mar 2015 20:11:06 +0100
Subject: [PATCH] gtls: add support for CURLOPT_CAPATH
---
acinclude.m4 | 4 ++--
docs/libcurl/opts/CURLOPT_CAPATH.3 | 5 ++---
lib/vtls/gtls.c | 22 ++++++++++++++++++++++
lib/vtls/gtls.h | 3 +++
4 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index 6ed7ffb..ca01869 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2615,8 +2615,8 @@ AC_HELP_STRING([--without-ca-path], [Don't use a default CA path]),
capath="no"
elif test "x$want_capath" != "xno" -a "x$want_capath" != "xunset"; then
dnl --with-ca-path given
- if test "x$OPENSSL_ENABLED" != "x1" -a "x$POLARSSL_ENABLED" != "x1"; then
- AC_MSG_ERROR([--with-ca-path only works with openSSL or PolarSSL])
+ if test "x$OPENSSL_ENABLED" != "x1" -a "x$GNUTLS_ENABLED" != "x1" -a "x$POLARSSL_ENABLED" != "x1"; then
+ AC_MSG_ERROR([--with-ca-path only works with OpenSSL, GnuTLS or PolarSSL])
fi
capath="$want_capath"
ca="no"
diff --git a/docs/libcurl/opts/CURLOPT_CAPATH.3 b/docs/libcurl/opts/CURLOPT_CAPATH.3
index 642953d..6695f9f 100644
--- a/docs/libcurl/opts/CURLOPT_CAPATH.3
+++ b/docs/libcurl/opts/CURLOPT_CAPATH.3
@@ -43,9 +43,8 @@ All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
.SH EXAMPLE
TODO
.SH AVAILABILITY
-This option is OpenSSL-specific and does nothing if libcurl is built to use
-GnuTLS. NSS-powered libcurl provides the option only for backward
-compatibility.
+This option is supported by the OpenSSL, GnuTLS and PolarSSL backends. The NSS
+backend provides the option only for backward compatibility.
.SH RETURN VALUE
Returns CURLE_OK if TLS enabled, and CURLE_UNKNOWN_OPTION if not, or
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 05aef19..c792540 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -97,6 +97,10 @@ static bool gtls_inited = FALSE;
# if (GNUTLS_VERSION_NUMBER >= 0x03020d)
# define HAS_OCSP
# endif
+
+# if (GNUTLS_VERSION_NUMBER >= 0x030306)
+# define HAS_CAPATH
+# endif
#endif
#ifdef HAS_OCSP
@@ -462,6 +466,24 @@ gtls_connect_step1(struct connectdata *conn,
rc, data->set.ssl.CAfile);
}
+#ifdef HAS_CAPATH
+ if(data->set.ssl.CApath) {
+ /* set the trusted CA cert directory */
+ rc = gnutls_certificate_set_x509_trust_dir(conn->ssl[sockindex].cred,
+ data->set.ssl.CApath,
+ GNUTLS_X509_FMT_PEM);
+ if(rc < 0) {
+ infof(data, "error reading ca cert file %s (%s)\n",
+ data->set.ssl.CAfile, gnutls_strerror(rc));
+ if(data->set.ssl.verifypeer)
+ return CURLE_SSL_CACERT_BADFILE;
+ }
+ else
+ infof(data, "found %d certificates in %s\n",
+ rc, data->set.ssl.CApath);
+ }
+#endif
+
if(data->set.ssl.CRLfile) {
/* set the CRL list file */
rc = gnutls_certificate_set_x509_crl_file(conn->ssl[sockindex].cred,
diff --git a/lib/vtls/gtls.h b/lib/vtls/gtls.h
index c3867e5..af1cb5b 100644
--- a/lib/vtls/gtls.h
+++ b/lib/vtls/gtls.h
@@ -54,6 +54,9 @@ bool Curl_gtls_cert_status_request(void);
/* Set the API backend definition to GnuTLS */
#define CURL_SSL_BACKEND CURLSSLBACKEND_GNUTLS
+/* this backend supports the CAPATH option */
+#define have_curlssl_ca_path 1
+
/* API setup for GnuTLS */
#define curlssl_init Curl_gtls_init
#define curlssl_cleanup Curl_gtls_cleanup
--
2.2.1

View file

@ -0,0 +1,51 @@
This patch from upstream revision 10588.
--- fltk-1.3.3/src/Xutf8.h
+++ fltk-1.3.3/src/Xutf8.h
@@ -25,6 +25,7 @@
#include <X11/Xlib.h>
#include <X11/Xlocale.h>
#include <X11/Xutil.h>
+#include <FL/Fl_Export.H>
typedef struct {
int nb_font;
@@ -98,8 +99,8 @@
XUtf8FontStruct *font_set,
unsigned int ucs);
-int
-XGetUtf8FontAndGlyph(
+FL_EXPORT int
+fl_XGetUtf8FontAndGlyph(
XUtf8FontStruct *font_set,
unsigned int ucs,
XFontStruct **fnt,
--- fltk-1.3.3/src/gl_draw.cxx
+++ fltk-1.3.3/src/gl_draw.cxx
@@ -114,7 +114,7 @@
for (int i = 0; i < 0x400; i++) {
XFontStruct *font = NULL;
unsigned short id;
- XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
+ fl_XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
if (font) glXUseXFont(font->fid, id, 1, gl_fontsize->listbase+ii);
ii++;
}
--- fltk-1.3.3/src/xutf8/utf8Wrap.c
+++ fltk-1.3.3/src/xutf8/utf8Wrap.c
@@ -816,10 +816,10 @@
/** get the X font and glyph ID of a UCS char **/
/*****************************************************************************/
int
-XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set,
- unsigned int ucs,
- XFontStruct **fnt,
- unsigned short *id) {
+fl_XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set,
+ unsigned int ucs,
+ XFontStruct **fnt,
+ unsigned short *id) {
/* int x; */
int *encodings; /* encodings array */

View file

@ -0,0 +1,65 @@
The following patch was copied from Debian.
Description: Fix CVE-2015-3202
Missing scrubbing of the environment before executing a mount or umount
of a filesystem.
Origin: upstream
Author: Miklos Szeredi <miklos@szeredi.hu>
Last-Update: 2015-05-19
---
lib/mount_util.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
--- a/lib/mount_util.c
+++ b/lib/mount_util.c
@@ -95,10 +95,12 @@ static int add_mount(const char *prognam
goto out_restore;
}
if (res == 0) {
+ char *env = NULL;
+
sigprocmask(SIG_SETMASK, &oldmask, NULL);
setuid(geteuid());
- execl("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
- "-f", "-t", type, "-o", opts, fsname, mnt, NULL);
+ execle("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
+ "-f", "-t", type, "-o", opts, fsname, mnt, NULL, &env);
fprintf(stderr, "%s: failed to execute /bin/mount: %s\n",
progname, strerror(errno));
exit(1);
@@ -146,10 +148,17 @@ static int exec_umount(const char *progn
goto out_restore;
}
if (res == 0) {
+ char *env = NULL;
+
sigprocmask(SIG_SETMASK, &oldmask, NULL);
setuid(geteuid());
- execl("/bin/umount", "/bin/umount", "-i", rel_mnt,
- lazy ? "-l" : NULL, NULL);
+ if (lazy) {
+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
+ "-l", NULL, &env);
+ } else {
+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
+ NULL, &env);
+ }
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
progname, strerror(errno));
exit(1);
@@ -205,10 +214,12 @@ static int remove_mount(const char *prog
goto out_restore;
}
if (res == 0) {
+ char *env = NULL;
+
sigprocmask(SIG_SETMASK, &oldmask, NULL);
setuid(geteuid());
- execl("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
- "--fake", mnt, NULL);
+ execle("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
+ "--fake", mnt, NULL, &env);
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
progname, strerror(errno));
exit(1);

View file

@ -0,0 +1,15 @@
GCC 4.9 and later have libvtv and, just like libstdc++ (see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354), it doesn't
have $libdir in its RUNPATH, but it NEEDs libgcc_s. This patch
fixes that.
--- gcc-5.1.0/libvtv/Makefile.in 2014-10-30 09:28:58.000000000 +0100
+++ gcc-5.1.0/libvtv/Makefile.in 2015-04-30 09:51:04.161129705 +0200
@@ -15,6 +15,7 @@
@SET_MAKE@
+libvtv_la_LDFLAGS = -Wl,-rpath=$(libdir)
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@

View file

@ -1,30 +0,0 @@
Remove duplicate manpage entries from Makefile.
--- gnutls-3.4.0/doc/manpages/Makefile.am.orig 2015-04-06 04:48:30.000000000 -0400
+++ gnutls-3.4.0/doc/manpages/Makefile.am 2015-04-12 16:52:58.029694525 -0400
@@ -134,11 +134,8 @@
APIMANS += gnutls_certificate_get_peers_subkey_id.3
APIMANS += gnutls_certificate_get_trust_list.3
APIMANS += gnutls_certificate_get_verify_flags.3
-APIMANS += gnutls_certificate_get_verify_flags.3
-APIMANS += gnutls_certificate_get_x509_crt.3
APIMANS += gnutls_certificate_get_x509_crt.3
APIMANS += gnutls_certificate_get_x509_key.3
-APIMANS += gnutls_certificate_get_x509_key.3
APIMANS += gnutls_certificate_send_x509_rdn_sequence.3
APIMANS += gnutls_certificate_server_set_request.3
APIMANS += gnutls_certificate_set_dh_params.3
--- gnutls-3.4.0/doc/manpages/Makefile.in.orig 2015-04-08 02:08:30.000000000 -0400
+++ gnutls-3.4.0/doc/manpages/Makefile.in 2015-04-12 16:53:13.319694530 -0400
@@ -1275,11 +1275,8 @@
gnutls_certificate_get_peers_subkey_id.3 \
gnutls_certificate_get_trust_list.3 \
gnutls_certificate_get_verify_flags.3 \
- gnutls_certificate_get_verify_flags.3 \
- gnutls_certificate_get_x509_crt.3 \
gnutls_certificate_get_x509_crt.3 \
gnutls_certificate_get_x509_key.3 \
- gnutls_certificate_get_x509_key.3 \
gnutls_certificate_send_x509_rdn_sequence.3 \
gnutls_certificate_server_set_request.3 \
gnutls_certificate_set_dh_params.3 \

View file

@ -1,15 +0,0 @@
Skip that test when the network is unreachable.
diff --git a/tests/packages.scm b/tests/packages.scm
index 04e3b0b..6ac215b 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -139,6 +139,8 @@
(and (direct-store-path? source)
(string-suffix? "utils.scm" source))))
+(unless (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))
+ (test-skip 1))
(test-equal "package-source-derivation, snippet"
"OK"
(let* ((file (search-bootstrap-binary "guile-2.0.9.tar.xz"

View file

@ -0,0 +1,60 @@
Make hop's link rules honor flags set by the --blflags configure argument.
--- hop-2.4.0/src/Makefile 2015-05-05 19:41:04.800151036 -0500
+++ hop-2.4.0/src/Makefile 2015-05-05 19:40:40.916150417 -0500
@@ -69,10 +69,10 @@
$(MAKE) link.$(LINK) DEST=$@
link.dynamic:
- @ $(call link,$(BIGLOO),$(BCFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$(DEST))
+ @ $(call link,$(BIGLOO),$(BCFLAGS) $(BLFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$(DEST))
link.static:
- @ $(call link,$(BIGLOO),$(BCFLAGS),$(BCFLAGSDEV),-static-all-bigloo $(OBJECTS),-o,$(DEST))
+ @ $(call link,$(BIGLOO),$(BCFLAGS) $(BLFLAGS),$(BCFLAGSDEV),-static-all-bigloo $(OBJECTS),-o,$(DEST))
link.library:
echo "***ERROR: link.library not currently supported!"
--- hop-2.4.0/hopc/Makefile 2013-01-30 07:17:59.000000000 -0600
+++ hop-2.4.0/hopc/Makefile 2015-05-05 19:45:21.876157699 -0500
@@ -62,7 +62,7 @@
mkdir -p $@
$(BUILDBINDIR)/$(EXEC): .afile .etags $(OBJECTS)
- @ $(call link,$(BIGLOO),$(BCFLAGS),,$(OBJECTS),-o,$@)
+ @ $(call link,$(BIGLOO),$(BCFLAGS) $(BLFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$@)
$(BUILDBINDIR)/$(EXEC).jar: .afile .etags .jfile $(BGL_CLASSES) META-INF/MANIFEST.MF jvm-stdlibs jvm-share jvm-lib
$(JAR) $@ META-INF/MANIFEST.MF -C o/class_s .
--- hop-2.4.0/hophz/Makefile 2013-01-30 07:17:59.000000000 -0600
+++ hop-2.4.0/hophz/Makefile 2015-05-05 19:59:42.996180030 -0500
@@ -16,9 +16,6 @@
-include ../etc/Makefile.hopconfig
-include ../etc/Makefile.version
-BLFLAGS =
-BLINKFLAGS = -suffix hop
-
#*---------------------------------------------------------------------*/
#* Target and Project */
#*---------------------------------------------------------------------*/
@@ -72,7 +69,7 @@
mkdir -p $@
$(BUILDBINDIR)/$(EXEC): .afile .etags $(OBJECTS)
- @ $(call link,$(BIGLOO),$(BCFLAGS),$(BLINKFLAGS),$(OBJECTS),-o,$@)
+ @ $(call link,$(BIGLOO),$(BCFLAGS) $(BLFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$@)
$(BUILDBINDIR)/$(EXEC).jar: .afile .etags .jfile $(BGL_CLASSES) META-INF/MANIFEST.MF jvm-stdlibs jvm-share jvm-lib
@ $(JAR) $@ META-INF/MANIFEST.MF -C o/class_s .
--- hop-2.4.0/hopsh/Makefile 2013-01-30 07:17:59.000000000 -0600
+++ hop-2.4.0/hopsh/Makefile 2015-05-05 19:46:36.060159626 -0500
@@ -60,7 +60,7 @@
mkdir -p $@
$(BUILDBINDIR)/$(EXEC): .afile .etags $(OBJECTS)
- @ $(call link,$(BIGLOO),$(BCFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$@)
+ @ $(call link,$(BIGLOO),$(BCFLAGS) $(BLFLAGS),$(BCFLAGSDEV),$(OBJECTS),-o,$@)
$(BUILDBINDIR)/$(EXEC).jar: .afile .etags .jfile $(BGL_CLASSES) META-INF/MANIFEST.MF jvm-stdlibs jvm-share jvm-lib
@ $(JAR) $@ META-INF/MANIFEST.MF -C o/class_s .

View file

@ -1,20 +0,0 @@
From <http://lists.gnu.org/archive/html/bug-inetutils/2015-04/msg00001.html>.
2015-04-01 Ludovic Courtès <ludo@gnu.org>
* src/syslogd.c (load_conffile): Use 'bcopy' instead of 'strcpy'
since the two regions may overlap.
Reported by Alex Kost <alezost@gmail.com>
at <http://lists.gnu.org/archive/html/guix-devel/2015-03/msg00780.html>.
--- a/src/syslogd.c
+++ b/src/syslogd.c
@@ -1989,7 +1989,7 @@ load_conffile (const char *filename, struct filed **nextp)
if (*p == '\0' || *p == '#')
continue;
- strcpy (cline, p);
+ bcopy (p, cline, strlen (p) + 1);
/* Cut the trailing spaces. */
for (p = strchr (cline, '\0'); isspace (*--p);)

View file

@ -1,55 +0,0 @@
Because our GCC 'lib' spec automatically adds '-rpath' for each '-L'
and a couple more '-rpath, there are two test failures:
one in demo.test, and one in destdir.at. Disable these.
Also skip the nopic test on ARM and MIPS systems.
--- libtool-2.4.6/tests/demo.at.orig 2015-01-16 13:52:04.000000000 -0500
+++ libtool-2.4.6/tests/demo.at 2015-02-16 10:48:51.435851966 -0500
@@ -510,7 +510,7 @@
AT_SETUP([force non-PIC objects])
AT_CHECK([case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
--- libtool-2.4.6/tests/testsuite.orig 2015-02-15 11:15:25.000000000 -0500
+++ libtool-2.4.6/tests/testsuite 2015-02-16 10:50:58.736483216 -0500
@@ -8741,7 +8741,7 @@
{ set +x
$as_echo "$at_srcdir/demo.at:535: case \$host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -8766,7 +8766,7 @@
"
at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:535"
( $at_check_trace; case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -9298,7 +9298,7 @@
#AT_START_34
at_fn_group_banner 34 'demo.at:548' \
"hardcoding library path" " " 4
-at_xfail=no
+at_xfail=yes
test no = "$ACLOCAL" && at_xfail=yes
test no = "$AUTOHEADER" && at_xfail=yes
test no = "$AUTOMAKE" && at_xfail=yes
@@ -27243,7 +27243,7 @@
#AT_START_98
at_fn_group_banner 98 'destdir.at:75' \
"DESTDIR with in-package deplibs" " " 8
-at_xfail=no
+at_xfail=yes
eval `$LIBTOOL --config | $GREP '^fast_install='`
case $fast_install in no) :;; *) false;; esac && at_xfail=yes
(

View file

@ -1,37 +0,0 @@
This patch fixes linux-libre-3.19.x on Libreboot X60 machines.
Copied from https://bugzilla.kernel.org/show_bug.cgi?id=93171#c25
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ a/drivers/gpu/drm/i915/i915_irq.c
@@ -3598,14 +3598,12 @@ static int i8xx_irq_postinstall(struct drm_device *dev)
~(I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
- I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT |
- I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
+ I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT);
I915_WRITE16(IMR, dev_priv->irq_mask);
I915_WRITE16(IER,
I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
- I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |
I915_USER_INTERRUPT);
POSTING_READ16(IER);
@@ -3767,14 +3765,12 @@ static int i915_irq_postinstall(struct drm_device *dev)
I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
- I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT |
- I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
+ I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT);
enable_mask =
I915_ASLE_INTERRUPT |
I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
- I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |
I915_USER_INTERRUPT;
if (I915_HAS_HOTPLUG(dev)) {

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