me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
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 @@ refer to the bootstrap tools."
(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 @@
(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 @@ system.")
(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 @@
(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 @@ containing a Git checkout of Guix."
(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 @@ OUTPUTS is a list of package outputs (may be an empty list)."
(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.

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 @@
(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 (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 @@
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 @@ properties. Return #t on success."
,@(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 @@ found in Linux 3.4 onward that prevents users from attaching to their own
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 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
(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 @@ to it are lost."
(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 @@ re-executing them as necessary.")
(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 @@ commands and their arguments.")
(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 @@ commands and their arguments.")
".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 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20140724")
(version "20150410")
(source (origin
(method url-fetch)
(uri (string-append
@ -880,7 +882,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
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 @@ an API to which software developers may code and be assured of predictable if
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 @@ around or take advantage of platform-specific deficiencies or features.")
"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 @@ around or take advantage of platform-specific deficiencies or features.")
(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 @@
#: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 @@ attacks, performing pitch detection, tapping the beat and producing MIDI
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 @@ streams from live audio.")
(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 @@ namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
(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 @@ namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
("sratom" ,sratom)
("suil" ,suil)
("lilv" ,lilv)
("rasqal" ,rasqal)
("raptor2" ,raptor2)
("redland" ,redland)
("rubberband" ,rubberband)
("taglib" ,taglib)
@ -200,6 +224,35 @@ record, edit, mix and master audio and MIDI projects. It is targeted at audio
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 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
;; 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 @@ buffers, and audio capture.")
("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 @@ directly to a different computer on your LAN network. It is an audio daemon
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 @@
#: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 @@
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 @@
#: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 @@
#: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 @@
(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 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
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 @@ sequencing (HTS) data. There are also an number of useful utilities for
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 @@ files and writing bioinformatics applications.")
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 @@ distribution, coverage uniformity, strand specificity, etc.")
;; 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 @@ variant calling (in conjunction with bcftools), and a simple alignment
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 @@ simultaneously.")
(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 @@ against local background noises.")
"/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 @@ in terms of new algorithms.")
(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 @@
;; 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")))

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 @@ caching facility provided by the library.")
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 @@ libcdio.")
(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 @@ with a flexible variety of user interfaces.")
(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 @@ COREUTILS-FINAL vs. COREUTILS, etc."
'(#: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 @@ archiving. Lzip is a clean implementation of the LZMA algorithm.")
(define-public sharutils
(package
(name "sharutils")
(version "4.15")
(version "4.15.2")
(source
(origin
(method url-fetch)
@ -305,7 +305,7 @@ archiving. Lzip is a clean implementation of the LZMA algorithm.")
version ".tar.xz"))
(sha256
(base32
"19gqb6qbqmpgh6xlpgpj0ayw2nshllxg9d01qb5z8bnkhfcla8ka"))))
"16isapn8f39lnffc3dp4dan05b7x6mnc76v6q5nn8ysxvvvwy19b"))))
(build-system gnu-build-system)
(inputs
`(("which" ,which)))

View File

@ -106,14 +106,14 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(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-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 @@
#: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 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(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 @@ Language.")
(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 @@ Language.")
name "-" version ".tar.gz"))
(sha256
(base32
"04ckq67qgkghh7yzrbzwidk7wn7yjml15gzj2c5p1hs2k7lr9lww"))))
"1xcs391cm0vnl9bvx1470v8z4d77zqv16n6iaqi12jm0ma8fwvv8"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@ -226,14 +221,14 @@ as a drop-in replacement of MySQL.")
(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 @@ types are supported, as is encryption.")
(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 @@ types are supported, as is encryption.")
"/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-public dejagnu
(package
(name "dejagnu")
(version "1.5.2")
(version "1.5.3")
(source
(origin
(method url-fetch)
@ -34,7 +34,7 @@
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 @@ from one file to another, working to rescue data in case of read errors. The
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 @@
#: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 @@
#: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 calibre
(package
(name "calibre")
(version "2.25.0")
(version "2.29.0")
(source
(origin
(method url-fetch)
@ -69,7 +69,7 @@
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 @@
("libpng" ,libpng)
("libusb" ,libusb)
("libxrender" ,libxrender)
("openssl" ,openssl)
("podofo" ,podofo)
("python" ,python-2)
("python2-apsw" ,python2-apsw)

View File

@ -23,10 +23,12 @@
#: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 @@ editor (without an 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 @@ for those who may want transient periods of unbalanced parentheses, such as
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 @@ cherry picking, reverting, merging, rebasing, and other common Git
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-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 @@
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 @@
"/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 @@
(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 @@
(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 @@ freedesktop.org project.")
(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 @@
(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 @@
#: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 @@ clone.")
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 @@ representation of the playing board.")
(define-public gnubik
(package
(name "gnubik")
(version "2.4.1")
(version "2.4.2")
(source
(origin
(method url-fetch)
@ -116,7 +116,7 @@ representation of the playing board.")
version ".tar.gz"))
(sha256
(base32
"0mfpwz341i1qpzi2qgslpc5i7d4fv7i01kv392m11pczqdc7i7m5"))))
"0mhpfnxzbns0wfrsjv5vafqr34770rbvkmdzxk0x0aq67hb3zyl5"))))
(build-system gnu-build-system)
(inputs `(("gtk+" ,gtk+-2)
("mesa" ,mesa)
@ -748,6 +748,43 @@ some of the restrictions in the venerable Z-machine format. This is the
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 @@ bones.
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 @@ Go. It also includes runtime support libraries for these languages.")
(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 @@ Go. It also includes runtime support libraries for these languages.")
"--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-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 @@
#: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 @@ buffers.")
(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 @@ buffers.")
("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 @@
#: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 @@
(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 @@ also known as DXTn or DXTC) for 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 @@ extension functionality is exposed in a single header file.")
(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 @@ extension functionality is exposed in a single header file.")
;; 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 @@ OpenGL graphics API.")
(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 @@ translated.")
(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 @@
#: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 @@
#: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 @@ Gnome project. It includes xml2po tool which makes it easier to translate
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 @@ and keep up to date translations of documentation.")
;; 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 @@ and keep up to date translations of documentation.")
name "-" version ".tar.xz"))
(sha256
(base32
"1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv"))))
"0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-nautilus")
@ -229,12 +350,18 @@ and keep up to date translations of documentation.")
#: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 @@ and keep up to date translations of documentation.")
("shared-mime-info" ,shared-mime-info)
("dconf" ,dconf)
("libcanberra" ,libcanberra)
("libsecret" ,libsecret)
;; For tests.
("dogtail" ,python2-dogtail)))
(native-inputs
@ -365,7 +493,7 @@ update-desktop-database: updates the database containing a cache of MIME types
(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 @@ update-desktop-database: updates the database containing a cache of MIME types
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 @@ update-desktop-database: updates the database containing a cache of MIME types
"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 @@ dealing with different structured file formats.")
(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 @@ dealing with different structured file formats.")
name "-" version ".tar.xz"))
(sha256
(base32
"01jgb11779080b80k2ncrhdphgillqrrnszal6vh8yv787r4kwwa"))))
"0fplymmqqr28y24vcnb01szn62pfbqhk8p1ngns54x9m6mflr5hk"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -657,15 +798,15 @@ dealing with different structured file formats.")
(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 @@ library.")
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 @@ functionality was designed to be as reusable and portable as possible.")
(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 @@ functionality was designed to be as reusable and portable as possible.")
(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 @@ featuring mature C, C++ and Python bindings.")
(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 @@ use in GNOME applications, built on top of CORBA.")
(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 @@ use in GNOME applications, built on top of CORBA.")
(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 @@ use in GNOME applications, built on top of CORBA.")
(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 @@ designed to be accessed through the MIME functions in GnomeVFS.")
(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 @@ to access local and remote files with a single consistent API.")
`(#: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 @@ to access local and remote files with a single consistent API.")
`(("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 @@ files and URIs, and displaying help.")
`(("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 @@ since ca. 2006, when GTK+ itself incorporated printing support.")
("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 @@ since ca. 2006, when GTK+ itself incorporated printing support.")
(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 @@ Hints specification (EWMH).")
(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 @@ Hints specification (EWMH).")
(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 @@ Hints specification (EWMH).")
;; 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 @@ engineering.")
(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 @@ engineering.")
;; 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 @@ engineering.")
"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 @@ editors, IDEs, etc.")
(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 @@ editors, IDEs, etc.")
; 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 @@ editors, IDEs, etc.")
(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 @@ keyboard shortcuts.")
("intltool" ,intltool)))
(inputs
`(("eudev" ,eudev)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("libusb" ,libusb)
("lcms" ,lcms)
@ -1923,7 +2119,7 @@ output devices.")
(define-public geoclue
(package
(name "geoclue")
(version "2.1.10")
(version "2.2.0")
(source
(origin
(method url-fetch)
@ -1932,7 +2128,7 @@ output devices.")
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 @@ faster results and to avoid unnecessary server load.")
("python" ,python)))
(inputs
`(("eudev" ,eudev)
("dbus" ,dbus)
("dbus-glib" ,dbus-glib)
("libusb" ,libusb)))
(home-page "http://upower.freedesktop.org/")
@ -2153,3 +2348,99 @@ parameters of a GNOME session and the applications that run under it. It
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 @@
#: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

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 @@ compatible to GNU Pth.")
(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 @@ libskba (working with X.509 certificates and CMS data).")
(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 @@ libskba (working with X.509 certificates and CMS data).")
;; 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-public libtasn1
(package
(name "libtasn1")
(version "4.4")
(version "4.5")
(source
(origin
(method url-fetch)
@ -47,7 +47,7 @@
version ".tar.gz"))
(sha256
(base32
"0p8c5s1gm3z3nn4s9qc6gs18grbk45mx44byqw2l2qzynjqrsd7q"))))
"1nhvnznhg2aqfrfjxc8v008hjlzkh5831jsfahqk89qrw7fbbcw9"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
@ -104,7 +104,7 @@ living in the same process.")
(define-public gnutls
(package
(name "gnutls")
(version "3.4.0")
(version "3.4.1")
(source (origin
(method url-fetch)
(uri
@ -115,9 +115,7 @@ living in the same process.")
"/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 @@ in the Mozilla clients.")
(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 @@ in the Mozilla clients.")
"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 @@ in the Mozilla clients.")
("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 @@ standards.")
(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 @@ standards.")
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 @@ This package provides the core library and elements.")
;; 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 @@ affine transformation (scale, rotation, shear, etc.)")
(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 @@ is part of the GNOME accessibility project.")
(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 @@ is part of the GNOME accessibility project.")
name "-" version ".tar.xz"))
(sha256
(base32
"1x14rnjvqslpa1q19fp1qalz5sxds72amsgjk8m7769rwk511jr0"))))
"0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@ -482,7 +486,7 @@ application suites.")
(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 @@ application suites.")
name "-" version ".tar.xz"))
(sha256
(base32
"1yhwg2l72l3khfkprydcjlpxjrg11ccqfc80sjl56llz3jk66fd0"))))
"195ykv53sl2gsc847wcnd79zilm1yzcc2cfjxnrakhh2dd5gshr9"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
@ -501,7 +505,8 @@ application suites.")
("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 @@ application suites.")
"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 @@ write GNOME applications.")
(define-public girara
(package
(name "girara")
(version "0.2.3")
(version "0.2.4")
(source (origin
(method url-fetch)
(uri
@ -852,7 +868,7 @@ write GNOME applications.")
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 @@
#: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 @@
#: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 @@ without requiring the source code to be rewritten.")
;; 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 @@ without requiring the source code to be rewritten.")
(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 @@ slightly from miniKanren mainline.
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 @@ access to the full zlib feature set.")
(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 @@ package into this package.")
(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 @@
`(("dbus" ,dbus)
("dconf" ,dconf)
("gconf" ,gconf)
("glib" ,glib)
("gtk2" ,gtk+-2)
("intltool" ,intltool)
("libnotify" ,libnotify)

View File

@ -28,7 +28,7 @@
(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 @@
(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 @@ multi-dimensional image processing.")
(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-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 @@ build process and its dependencies, whereas Make uses Makefile format.")
;; 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 @@ build process and its dependencies, whereas Make uses Makefile format.")
(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 @@ calculation of sha1 for every file crawled
(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 @@
(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 @@ Microsoft Excel 2007 XML, Microsoft Excel 2003 XML, Open Document Spreadsheet,
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 @@
#: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 @@
"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 @@
#: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 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
#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 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
(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 @@ It has been modified to remove all non-free binary blobs.")
(license gpl2)
(home-page "http://www.gnu.org/software/linux-libre/"))))
;;;
;;; Pluggable authentication modules (PAM).
;;;
@ -364,7 +364,7 @@ be used through the PAM API to perform tasks, like authenticating a user
at login. Local and dynamic reconfiguration are its key features")
(license bsd-3)))
;;;
;;; Miscellaneous.
;;;
@ -587,8 +587,21 @@ slabtop, and skill.")
(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 @@ Linux-based operating systems.")
'(#: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 @@ processes currently causing I/O.")
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 @@ from the module-init-tools project.")
;; 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 @@ arrays when needed.")
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 @@
"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 @@
#: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 @@ MailCore 2.")
(inputs `(("bogofilter" ,bogofilter)
("curl" ,curl)
("dbus-glib" ,dbus-glib)
("dbus" ,dbus)
("enchant" ,enchant)
("expat" ,expat)
("ghostscript" ,ghostscript)
@ -639,6 +640,49 @@ deal of flexibility in the way mail can be routed, and there are extensive
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 @@ Linux kernel and C library interfaces employed by user-space programs.")
(define-public help2man
(package
(name "help2man")
(version "1.46.5")
(version "1.46.6")
(source
(origin
(method url-fetch)
@ -161,7 +161,7 @@ Linux kernel and C library interfaces employed by user-space programs.")
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 @@
#: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 @@ extremely large and complex data collections.")
`(("lapack" ,lapack)
("readline" ,readline)
("glpk" ,glpk)
("fftw" ,fftw)
("fftwf" ,fftwf)
("arpack" ,arpack-ng)
("curl" ,curl)
("pcre" ,pcre)
("fltk" ,fltk)
@ -390,16 +395,18 @@ extremely large and complex data collections.")
("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 @@ extremely large and complex data collections.")
"/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 @@ to BMP, JPEG or PNG image formats.")
(define-public maxima
(package
(name "maxima")
(version "5.34.1")
(version "5.36.1")
(source
(origin
(method url-fetch)
@ -925,7 +932,8 @@ to BMP, JPEG or PNG image formats.")
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 @@ to BMP, JPEG or PNG image formats.")
(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 @@ point numbers")
;; 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 @@ constant parts of it.")
(define-public openblas
(package
(name "openblas")
(version "0.2.13")
(version "0.2.14")
(source
(origin
(method url-fetch)
@ -1029,10 +1080,14 @@ constant parts of it.")
(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 @@ constant parts of it.")
;; 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 @@ library with poor performance.")
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 @@ providing:
(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-public moe
(package
(name "moe")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -35,7 +35,7 @@
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 @@ line, to logically connect serial lines on different computers, or to
establish a relatively secure environment (su and chroot) for running client
or server shell scripts with network connections. ")
(license license:gpl2)))
(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-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 @@ Git-friendly development workflow.")
;; 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 @@
(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 @@
#: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 @@
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 @@
(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 @@ the Nix package manager.")
;;
;; 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 @@ the Nix package manager.")
(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 @@ the Nix package manager.")
("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-public parallel
(package
(name "parallel")
(version "20150322")
(version "20150422")
(source
(origin
(method url-fetch)
@ -36,7 +36,7 @@
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