Merge branch 'master' into staging

master
Marius Bakke 2018-06-11 23:52:15 +02:00
commit a032b4454b
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
472 changed files with 44637 additions and 17220 deletions

View File

@ -73,6 +73,9 @@
(eval . (put 'run-with-state 'scheme-indent-function 1)) (eval . (put 'run-with-state 'scheme-indent-function 1))
(eval . (put 'wrap-program 'scheme-indent-function 1)) (eval . (put 'wrap-program 'scheme-indent-function 1))
(eval . (put 'with-imported-modules 'scheme-indent-function 1)) (eval . (put 'with-imported-modules 'scheme-indent-function 1))
(eval . (put 'with-extensions 'scheme-indent-function 1))
(eval . (put 'with-database 'scheme-indent-function 2))
(eval . (put 'call-with-container 'scheme-indent-function 1)) (eval . (put 'call-with-container 'scheme-indent-function 1))
(eval . (put 'container-excursion 'scheme-indent-function 1)) (eval . (put 'container-excursion 'scheme-indent-function 1))

View File

@ -1,51 +1,78 @@
Contributor Code of Conduct Contributor Covenant Code of Conduct
Note: In the sequel, "project" refers to GNU Guix, and "project Note: In the sequel, "project" refers to GNU Guix, and "project
maintainer(s)" refers to maintainer(s) of GNU Guix. maintainer(s)" refers to maintainer(s) of GNU Guix.
As contributors and maintainers of this project, and in the interest of Our Pledge
fostering an open and welcoming community, we pledge to respect all
people who contribute through reporting issues, posting feature In the interest of fostering an open and welcoming environment, we as
requests, updating documentation, submitting pull requests or patches, contributors and maintainers pledge to making participation in our project and
and other activities. our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.
Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
We are committed to making participation in this project a
harassment-free experience for everyone, regardless of level of
experience, gender, gender identity and expression, sexual orientation,
disability, personal appearance, body size, race, ethnicity, age,
religion, or nationality.
Examples of unacceptable behavior by participants include: Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery
* Personal attacks * The use of sexualized language or imagery and unwelcome sexual attention or
* Trolling or insulting/derogatory comments advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment * Public or private harassment
* Publishing other's private information, such as physical or electronic * Publishing others private information, such as a physical or electronic
addresses, without explicit permission address, without explicit permission
* Other unethical or unprofessional conduct * Other conduct which could reasonably be considered inappropriate in a
professional setting
Project maintainers have the right and responsibility to remove, edit,
or reject comments, commits, code, wiki edits, issues, and other
contributions that are not aligned to this Code of Conduct, or to ban
temporarily or permanently any contributor for other behaviors that they
deem inappropriate, threatening, offensive, or harmful.
By adopting this Code of Conduct, project maintainers commit themselves Our Responsibilities
to fairly and consistently applying these principles to every aspect of
managing this project. Project maintainers who do not follow or enforce
the Code of Conduct may be permanently removed from the project team.
This Code of Conduct applies both within project spaces and in public Project maintainers are responsible for clarifying the standards of acceptable
spaces when an individual is representing the project or its community. behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Instances of abusive, harassing, or otherwise unacceptable behavior may Project maintainers have the right and responsibility to remove, edit, or
be reported by contacting a project maintainer at guix-maintainers@gnu.org. reject comments, commits, code, wiki edits, issues, and other contributions
All complaints will be reviewed and investigated and will that are not aligned to this Code of Conduct, or to ban temporarily or
result in a response that is deemed necessary and appropriate to the permanently any contributor for other behaviors that they deem inappropriate,
circumstances. Maintainers are obligated to maintain confidentiality threatening, offensive, or harmful.
with regard to the reporter of an incident.
This Code of Conduct is adapted from the Contributor Covenant Scope
(http://contributor-covenant.org), version 1.3.0, available at
http://contributor-covenant.org/version/1/3/0/ This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at guix-maintainers@gnu.org. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the projects leadership.
Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

View File

@ -96,6 +96,7 @@ MODULES = \
guix/workers.scm \ guix/workers.scm \
guix/zlib.scm \ guix/zlib.scm \
guix/build-system.scm \ guix/build-system.scm \
guix/build-system/android-ndk.scm \
guix/build-system/ant.scm \ guix/build-system/ant.scm \
guix/build-system/cargo.scm \ guix/build-system/cargo.scm \
guix/build-system/cmake.scm \ guix/build-system/cmake.scm \
@ -128,6 +129,7 @@ MODULES = \
guix/svn-download.scm \ guix/svn-download.scm \
guix/i18n.scm \ guix/i18n.scm \
guix/ui.scm \ guix/ui.scm \
guix/build/android-ndk-build-system.scm \
guix/build/ant-build-system.scm \ guix/build/ant-build-system.scm \
guix/build/download.scm \ guix/build/download.scm \
guix/build/download-nar.scm \ guix/build/download-nar.scm \
@ -255,15 +257,27 @@ MODULES += \
endif BUILD_DAEMON_OFFLOAD endif BUILD_DAEMON_OFFLOAD
# Scheme implementation of the build daemon and related functionality.
STORE_MODULES = \
guix/store/database.scm \
guix/store/deduplication.scm
if HAVE_GUILE_SQLITE3
MODULES += $(STORE_MODULES)
else
MODULES_NOT_COMPILED += $(STORE_MODULES)
endif !HAVE_GUILE_SQLITE3
# Internal modules with test suite support. # Internal modules with test suite support.
dist_noinst_DATA = guix/tests.scm guix/tests/http.scm dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
# Auxiliary files for packages. # Auxiliary files for packages.
AUX_FILES = \ AUX_FILES = \
gnu/packages/aux-files/emacs/guix-emacs.el \ gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/linux-libre/4.16-arm.conf \ gnu/packages/aux-files/linux-libre/4.17-arm.conf \
gnu/packages/aux-files/linux-libre/4.16-i686.conf \ gnu/packages/aux-files/linux-libre/4.17-arm64.conf \
gnu/packages/aux-files/linux-libre/4.16-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.17-i686.conf \
gnu/packages/aux-files/linux-libre/4.17-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.14-arm.conf \ gnu/packages/aux-files/linux-libre/4.14-arm.conf \
gnu/packages/aux-files/linux-libre/4.14-i686.conf \ gnu/packages/aux-files/linux-libre/4.14-i686.conf \
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \
@ -272,7 +286,8 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/4.4-i686.conf \ gnu/packages/aux-files/linux-libre/4.4-i686.conf \
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.1-i686.conf \ gnu/packages/aux-files/linux-libre/4.1-i686.conf \
gnu/packages/aux-files/linux-libre/4.1-x86_64.conf gnu/packages/aux-files/linux-libre/4.1-x86_64.conf \
gnu/packages/aux-files/run-in-namespace.c
# Templates, examples. # Templates, examples.
EXAMPLES = \ EXAMPLES = \
@ -375,6 +390,14 @@ SCM_TESTS += \
endif endif
if HAVE_GUILE_SQLITE3
SCM_TESTS += \
tests/store-database.scm \
tests/store-deduplication.scm
endif
SH_TESTS = \ SH_TESTS = \
tests/guix-build.sh \ tests/guix-build.sh \
tests/guix-download.sh \ tests/guix-download.sh \

17
NEWS
View File

@ -10,6 +10,23 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
Please send Guix bug reports to bug-guix@gnu.org. Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 0.15.0 (since 0.14.0)
** Package management
*** guix pack now supports building SquashFS images
*** guix pack can now build relocatable tarballs
** Distribution
*** New services
enlightenment
** Programming interfaces
*** package-full-name (guix packages) now uses "@" as its delimiter.
(<https://bugs.gnu.org/31088>)
* Changes in 0.14.0 (since 0.13.0) * Changes in 0.14.0 (since 0.13.0)
** Package management ** Package management

View File

@ -184,7 +184,8 @@ person's version identifier."
(date->string (current-date 0) "~Y~m~d.~H")) (date->string (current-date 0) "~Y~m~d.~H"))
(define* (build-program source version (define* (build-program source version
#:optional (guile-version (effective-version))) #:optional (guile-version (effective-version))
#:key (pull-version 0))
"Return a program that computes the derivation to build Guix from SOURCE." "Return a program that computes the derivation to build Guix from SOURCE."
(define select? (define select?
;; Select every module but (guix config) and non-Guix modules. ;; Select every module but (guix config) and non-Guix modules.
@ -253,11 +254,14 @@ person's version identifier."
(spin system))) (spin system)))
(display (display
(derivation-file-name (and=>
(run-with-store store (run-with-store store
(guix-derivation #$source #$version (guix-derivation #$source #$version
#$guile-version) #$guile-version
#:system system))))))) #:pull-version
#$pull-version)
#:system system)
derivation-file-name))))))
#:module-path (list source)))) #:module-path (list source))))
;; The procedure below is our return value. ;; The procedure below is our return value.
@ -266,13 +270,15 @@ person's version identifier."
(guile-version (match ((@ (guile) version)) (guile-version (match ((@ (guile) version))
("2.2.2" "2.2.2") ("2.2.2" "2.2.2")
(_ (effective-version)))) (_ (effective-version))))
(pull-version 0)
#:allow-other-keys #:allow-other-keys
#:rest rest) #:rest rest)
"Return a derivation that unpacks SOURCE into STORE and compiles Scheme "Return a derivation that unpacks SOURCE into STORE and compiles Scheme
files." files."
;; Build the build program and then use it as a trampoline to build from ;; Build the build program and then use it as a trampoline to build from
;; SOURCE. ;; SOURCE.
(mlet %store-monad ((build (build-program source version guile-version)) (mlet %store-monad ((build (build-program source version guile-version
#:pull-version pull-version))
(system (if system (return system) (current-system)))) (system (if system (return system) (current-system))))
(mbegin %store-monad (mbegin %store-monad
(show-what-to-build* (list build)) (show-what-to-build* (list build))
@ -292,6 +298,9 @@ files."
(return (newline (current-output-port))) (return (newline (current-output-port)))
((store-lift add-temp-root) drv) ((store-lift add-temp-root) drv)
(return (read-derivation-from-file drv)))) (return (read-derivation-from-file drv))))
("#f"
;; Unsupported PULL-VERSION.
(return #f))
((? string? str) ((? string? str)
(error "invalid build result" (list build str)))))))) (error "invalid build result" (list build str))))))))

View File

@ -25,7 +25,8 @@
(and=> (or (getenv "XDG_CONFIG_HOME") (and=> (or (getenv "XDG_CONFIG_HOME")
(and=> (getenv "HOME") (and=> (getenv "HOME")
(cut string-append <> "/.config"))) (cut string-append <> "/.config")))
(cut string-append <> "/guix/latest"))) (cute string-append <> "/guix/current/share/guile/site/"
(effective-version))))
(use-modules (guix) (guix ui) (use-modules (guix) (guix ui)
(guix git-download) (guix git-download)
@ -43,7 +44,7 @@
(mlet* %store-monad ((source (interned-file source "guix-source" (mlet* %store-monad ((source (interned-file source "guix-source"
#:select? git? #:select? git?
#:recursive? #t)) #:recursive? #t))
(drv (build source))) (drv (build source #:pull-version 1)))
(mbegin %store-monad (mbegin %store-monad
(show-what-to-build* (list drv)) (show-what-to-build* (list drv))
(built-derivations (list drv)) (built-derivations (list drv))

View File

@ -264,7 +264,8 @@ all its dependencies, and ready to be installed on non-GuixSD distributions.")
(define job-name (define job-name
;; Return the name of a package's job. ;; Return the name of a package's job.
(compose string->symbol package-full-name)) (compose string->symbol
(cut package-full-name <> "-")))
(define package->job (define package->job
(let ((base-packages (let ((base-packages

View File

@ -46,6 +46,7 @@ for SYSTEM. Use VERSION as the version identifier."
`((derivation . ,(derivation-file-name `((derivation . ,(derivation-file-name
(run-with-store store (run-with-store store
(build source #:version version #:system system (build source #:version version #:system system
#:pull-version 1
#:guile-version "2.2")))) ;the latest 2.2.x #:guile-version "2.2")))) ;the latest 2.2.x
(description . "Modular Guix") (description . "Modular Guix")
(long-description (long-description

View File

@ -132,6 +132,7 @@ then
for file in "$bootstrap_directory"/guile-* for file in "$bootstrap_directory"/guile-*
do do
[ -f "$file" ] && \
"@abs_top_builddir@/pre-inst-env" \ "@abs_top_builddir@/pre-inst-env" \
guix download "file://$file" > /dev/null guix download "file://$file" > /dev/null
done done

View File

@ -124,6 +124,11 @@ dnl Guile-JSON is used in various places.
GUILE_MODULE_AVAILABLE([have_guile_json], [(json)]) GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"]) AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
dnl Guile-Sqlite3 is used by the (guix store ...) modules.
GUIX_CHECK_GUILE_SQLITE3
AM_CONDITIONAL([HAVE_GUILE_SQLITE3],
[test "x$guix_cv_have_recent_guile_sqlite3" = "xyes"])
dnl Make sure we have a full-fledged Guile. dnl Make sure we have a full-fledged Guile.
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])

View File

@ -3,17 +3,17 @@
Ce projet est un effort coopératif et nous avons besoin de votre aide pour Ce projet est un effort coopératif et nous avons besoin de votre aide pour
le faire grandir ! Contactez-nous sur @email{guix-devel@@gnu.org} et le faire grandir ! Contactez-nous sur @email{guix-devel@@gnu.org} et
@code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les @code{#guix} sur le réseau IRC Freenode. Nous accueillons les idées, les
rapports de bogues, les correctifs et tout ce qui pourrait aider le rapports de bogues, les correctifs et tout ce qui pourrait aider le projet.
projet. Nous apprécions particulièrement toute aide sur la création de Nous apprécions particulièrement toute aide sur la création de paquets
paquets (@pxref{Consignes d'empaquetage}). (@pxref{Consignes d'empaquetage}).
@cindex code de conduite, des contributeurs @cindex code de conduite, des contributeurs
@cindex convention de contribution @cindex convention de contribution
Nous souhaitons fournir un environnement chaleureux, amical et sans Nous souhaitons fournir un environnement chaleureux, amical et sans
harcèlement pour que tout le monde puisse contribuer au mieux de ses harcèlement pour que tout le monde puisse contribuer au mieux de ses
capacités. Pour cela notre projet a une « Convention de contribution » capacités. Pour cela notre projet a une « Convention de contribution »
adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une
version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence
des sources. des sources.
@ -22,7 +22,7 @@ correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe
quel nom ou pseudonyme de leur choix. quel nom ou pseudonyme de leur choix.
@menu @menu
* Construire depuis Git:: The latest and greatest. * Construire depuis Git:: toujours le plus récent.
* Lancer Guix avant qu'il ne soit installé:: Astuces pour les hackers. * Lancer Guix avant qu'il ne soit installé:: Astuces pour les hackers.
* La configuration parfaite:: Les bons outils. * La configuration parfaite:: Les bons outils.
* Style de code:: Hygiène du contributeur. * Style de code:: Hygiène du contributeur.
@ -62,7 +62,7 @@ guix environment guix
@end example @end example
@xref{Invoquer guix environment}, pour plus d'information sur cette @xref{Invoquer guix environment}, pour plus d'information sur cette
commande. On peut ajouter des dépendances supplémentaires avec commande. On peut ajouter des dépendances supplémentaires avec
@option{--ad-hoc} : @option{--ad-hoc} :
@example @example
@ -70,7 +70,7 @@ guix environment guix --ad-hoc help2man git strace
@end example @end example
Lancez @command{./bootstrap} pour générer l'infrastructure du système de Lancez @command{./bootstrap} pour générer l'infrastructure du système de
construction avec Autoconf et Automake. Si vous avez une erreur comme : construction avec Autoconf et Automake. Si vous avez une erreur comme :
@example @example
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
@ -78,11 +78,11 @@ configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
@noindent @noindent
cela signifie probablement qu'Autoconf n'a pas pu trouver @file{pkg.m4} qui cela signifie probablement qu'Autoconf n'a pas pu trouver @file{pkg.m4} qui
est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est disponible.
disponible. C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par
fournies par Guile. Par exemple, si vous avez installé Automake dans Guile. Par exemple, si vous avez installé Automake dans @file{/usr/local},
@file{/usr/local}, il ne cherchera pas les fichiers @file{.m4} dans il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}. Dans ce
@file{/usr/share}. Dans ce case vous devez invoquer la commande suivante : case vous devez invoquer la commande suivante :
@example @example
export ACLOCAL_PATH=/usr/share/aclocal export ACLOCAL_PATH=/usr/share/aclocal
@ -91,13 +91,13 @@ export ACLOCAL_PATH=/usr/share/aclocal
@xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus @xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus
d'information. d'information.
Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de Ensuite, lancez @command{./configure} comme d'habitude. Assurez-vous de
passer @code{--localstatedir=@var{directory}} où @var{directory} est la passer @code{--localstatedir=@var{directory}} où @var{directory} est la
valeur @code{localstatedir} utilisée par votre installation actuelle valeur @code{localstatedir} utilisée par votre installation actuelle
(@pxref{Le dépôt} pour plus d'informations à ce propos). (@pxref{Le dépôt} pour plus d'informations à ce propos).
Finalement, vous devez invoquer @code{make check} pour lancer les tests Finalement, vous devez invoquer @code{make check} pour lancer les tests
(@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil (@pxref{Lancer la suite de tests}). Si quelque chose échoue, jetez un œil
aux instructions d'installation (@pxref{Installation}) ou envoyez un message aux instructions d'installation (@pxref{Installation}) ou envoyez un message
à la list @email{guix-devel@@gnu.org}. à la list @email{guix-devel@@gnu.org}.
@ -106,12 +106,12 @@ aux instructions d'installation (@pxref{Installation}) ou envoyez un message
@section Lancer Guix avant qu'il ne soit installé @section Lancer Guix avant qu'il ne soit installé
Pour garder un environnement de travail sain, il est utile de tester les Pour garder un environnement de travail sain, il est utile de tester les
changement localement sans les installer pour de vrai. Pour pouvoir changement localement sans les installer pour de vrai. Pour pouvoir
distinguer votre rôle « d'utilisateur final » de celui parfois haut en distinguer votre rôle « d'utilisateur final » de celui parfois haut en
couleur de « développeur ». couleur de « développeur ».
Pour cela, tous les outils en ligne de commande sont utilisables même sans Pour cela, tous les outils en ligne de commande sont utilisables même sans
avoir lancé @code{make install}. Vous devez pour cela préfixer chaque avoir lancé @code{make install}. Vous devez pour cela préfixer chaque
commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se commande par @command{./pre-inst-env} (le script @file{pre-inst-env} se
trouve dans le répertoire de plus haut niveau de l'arborescence des sources trouve dans le répertoire de plus haut niveau de l'arborescence des sources
de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie de Guix) comme cela@footnote{L'option @option{-E} de @command{sudo} garantie
@ -160,12 +160,12 @@ d'environnement nécessaires, dont @env{PATH} et @env{GUILE_LOAD_PATH}.
Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour Remarquez que @command{./pre-inst-env guix pull} ne met @emph{pas} à jour
l'arborescence des sources locale ; il met seulement à jour le lien l'arborescence des sources locale ; il met seulement à jour le lien
symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). Lancez symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}).
@command{git pull} à la place si vous voulez mettre à jour votre Lancez @command{git pull} à la place si vous voulez mettre à jour votre
arborescence des sources locale@footnote{Si vous voulez paramétrer arborescence des sources locale@footnote{Si vous voulez paramétrer
@command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer @command{guix} pour qu'il utilise votre dépôt Git, vous pouvez faire pointer
le lien symbolique @file{~/.config/guix/latest} vers le répertoire contenant le lien symbolique @file{~/.config/guix/latest} vers le répertoire contenant
ce dépôt. Si vous le seul utilisateur du système, vous pouvez aussi ce dépôt. Si vous le seul utilisateur du système, vous pouvez aussi
considérer faire pointer le lien symbolique @file{/root/.config/guix/latest} considérer faire pointer le lien symbolique @file{/root/.config/guix/latest}
vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même
commande @command{guix} que votre utilisateur}. commande @command{guix} que votre utilisateur}.
@ -176,7 +176,7 @@ commande @command{guix} que votre utilisateur}.
La configuration parfaite pour travailler sur Guix est simplement la La configuration parfaite pour travailler sur Guix est simplement la
configuration parfaite pour travailler en Guile (@pxref{Using Guile in configuration parfaite pour travailler en Guile (@pxref{Using Guile in
Emacs,,, guile, Guile Reference Manual}). Tout d'abord, vous avez besoin de Emacs,,, guile, Guile Reference Manual}). Tout d'abord, vous avez besoin de
mieux qu'un éditeur de texte, vous avez besoin de mieux qu'un éditeur de texte, vous avez besoin de
@url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe @url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe
@url{http://nongnu.org/geiser/, Geiser}. @url{http://nongnu.org/geiser/, Geiser}.
@ -185,10 +185,10 @@ Geiser permet le développement interactif et incrémental depuis Emacs : la
compilation du code et son évaluation depuis les buffers, l'accès à la compilation du code et son évaluation depuis les buffers, l'accès à la
documentation en ligne (docstrings), la complétion sensible au contexte, documentation en ligne (docstrings), la complétion sensible au contexte,
@kbd{M-.} pour sauter à la définition d'un objet, un REPL pour tester votre @kbd{M-.} pour sauter à la définition d'un objet, un REPL pour tester votre
code, et bien plus (@pxref{Introduction,,, geiser, Geiser User code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}).
Manual}). Pour travailler confortablement sur Guix, assurez-vous de modifier Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin
le chemin de chargement de Guile pour qu'il trouve les fichiers source de de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt
votre dépôt : :
@lisp @lisp
;; @r{Si l'extrait est dans ~/src/guix.} ;; @r{Si l'extrait est dans ~/src/guix.}
@ -196,21 +196,21 @@ votre dépôt :
(add-to-list 'geiser-guile-load-path "~/src/guix")) (add-to-list 'geiser-guile-load-path "~/src/guix"))
@end lisp @end lisp
To actually edit the code, Emacs already has a neat Scheme mode. But in Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme.
addition to that, you must not miss Mais en plus de ça, vous ne devez pas rater
@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides @url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Il fournit des
facilities to directly operate on the syntax tree, such as raising an fonctionnalités pour opérer directement sur l'arbre de syntaxe, comme
s-expression or wrapping it, swallowing or rejecting the following relever une s-expression ou l'envelopper, absorber ou rejeter la
s-expression, etc. s-expression suivante, etc.
@cindex extraits de code @cindex extraits de code
@cindex modèles @cindex modèles
@cindex réduire la quantité de code commun @cindex réduire la quantité de code commun
Nous fournissons aussi des modèles pour les messages de commit git communs Nous fournissons aussi des modèles pour les messages de commit git communs
et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces et les définitions de paquets dans le répertoire @file{etc/snippets}. Ces
modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/, modèles s'utilisent avec @url{http://joaotavora.github.io/yasnippet/,
YASnippet} pour développer des chaînes courtes de déclenchement en extraits YASnippet} pour développer des chaînes courtes de déclenchement en extraits
de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la
variables @var{yas-snippet-dirs} d'Emacs. variables @var{yas-snippet-dirs} d'Emacs.
@lisp @lisp
@ -220,14 +220,14 @@ variables @var{yas-snippet-dirs} d'Emacs.
@end lisp @end lisp
Les extraits de messages de commit dépendent de @url{https://magit.vc/, Les extraits de messages de commit dépendent de @url{https://magit.vc/,
Magit} pour afficher les fichiers sélectionnés. Lors de la modification d'un Magit} pour afficher les fichiers sélectionnés. Lors de la modification
message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un d'un message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un
modèle de message de commit pour ajouter un paquet ; tapez @code{update} modèle de message de commit pour ajouter un paquet ; tapez @code{update}
suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet. suivi de @kbd{TAB} pour insérer un modèle pour la mise à jour d'un paquet.
L'extrait principal pour @code{scheme-mode} est lancé en tapant L'extrait principal pour @code{scheme-mode} est lancé en tapant
@code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de @code{package…} suivi par @kbd{TAB}. Cet extrait insère aussi la chaîne de
déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait déclenchement @code{origin…}, qui peut aussi être étendue. L'extrait
@code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui @code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui
finissent sur @code{…}, qui peuvent aussi être étendues. finissent sur @code{…}, qui peuvent aussi être étendues.
@ -236,7 +236,7 @@ finissent sur @code{…}, qui peuvent aussi être étendues.
@section Style de code @section Style de code
En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards, En général notre code suit le Standard de Code GNU (@pxref{Top,,, standards,
GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, donc GNU Coding Standards}). Cependant, il ne parle pas beaucoup de Scheme, donc
voici quelques règles supplémentaires. voici quelques règles supplémentaires.
@menu @menu
@ -250,7 +250,7 @@ voici quelques règles supplémentaires.
@node Paradigme de programmation @node Paradigme de programmation
@subsection Paradigme de programmation @subsection Paradigme de programmation
Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le Le code Scheme dans Guix est écrit dans un style purement fonctionnel. Le
code qui s'occupe des entrées-sorties est une exception ainsi que les code qui s'occupe des entrées-sorties est une exception ainsi que les
procédures qui implémentent des concepts bas-niveau comme la procédure procédures qui implémentent des concepts bas-niveau comme la procédure
@code{memoize}. @code{memoize}.
@ -259,8 +259,8 @@ procédures qui implémentent des concepts bas-niveau comme la procédure
@subsection Modules @subsection Modules
Les modules Guile qui sont sensés être utilisés du côté de la construction Les modules Guile qui sont sensés être utilisés du côté de la construction
doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne doivent se trouver dans l'espace de nom @code{(guix build @dots{})}. Ils ne
doivent pas se référer à d'autres modules Guix ou GNU. Cependant il est doivent pas se référer à d'autres modules Guix ou GNU@. Cependant il est
correct pour un module « côté hôte » de dépendre d'un module coté correct pour un module « côté hôte » de dépendre d'un module coté
construction. construction.
@ -272,13 +272,13 @@ l'espace de nom @code{(gnu @dots{})} plutôt que @code{(guix @dots{})}.
La tendance en Lisp classique est d'utiliser des listes pour tout La tendance en Lisp classique est d'utiliser des listes pour tout
représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr}, représenter et de naviguer dedans « à la main ( avec @code{car}, @code{cdr},
@code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style, @code{cadr} et compagnie. Il y a plusieurs problèmes avec ce style,
notamment le fait qu'il soit dur à lire, source d'erreur et un obstacle aux notamment le fait qu'il soit dur à lire, source d'erreur et un obstacle aux
rapports d'erreur bien typés. rapports d'erreur bien typés.
Le code de Guix devrait définir des types de données appropriées (par Le code de Guix devrait définir des types de données appropriées (par
exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes. En exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes.
plus, il devrait utiliser la recherche de motifs, via le module Guile En plus, il devrait utiliser la recherche de motifs, via le module Guile
@code{(ice-9 match)}, surtout pour rechercher dans des listes. @code{(ice-9 match)}, surtout pour rechercher dans des listes.
@node Formatage du code @node Formatage du code
@ -287,22 +287,22 @@ plus, il devrait utiliser la recherche de motifs, via le module Guile
@cindex formater le code @cindex formater le code
@cindex style de code @cindex style de code
Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux Lorsque nous écrivons du code Scheme, nous suivons la sagesse commune aux
programmeurs Scheme. En général, nous suivons les programmeurs Scheme. En général, nous suivons les
@url{http://mumble.net/~campbell/scheme/style.txt, règles de style de @url{http://mumble.net/~campbell/scheme/style.txt, règles de style de
Riastradh}. Ce document décrit aussi les conventions utilisées dans le code Riastradh}. Ce document décrit aussi les conventions utilisées dans le code
de Guile. Il est bien pensé et bien écrit, alors n'hésitez pas à le lire. de Guile. Il est bien pensé et bien écrit, alors n'hésitez pas à le lire.
Certaines formes spéciales introduites dans Guix comme la macro Certaines formes spéciales introduites dans Guix comme la macro
@code{substitute*} ont des règles d'indentation spécifiques. Elles sont @code{substitute*} ont des règles d'indentation spécifiques. Elles sont
définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise définies dans le fichier @file{.dir-locals.el} qu'Emacs utilise
automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode automatiquement. Remarquez aussi qu'Emacs-Guix fournit le mode
@code{guix-devel-mode} qui indente et colore le code Guix correctement @code{guix-devel-mode} qui indente et colore le code Guix correctement
(@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual}). (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual}).
@cindex indentation, du code @cindex indentation, du code
@cindex formatage, du code @cindex formatage, du code
Si vous n'utilisez pas Emacs, assurez-vous que votre éditeur connaisse ces Si vous n'utilisez pas Emacs, assurez-vous que votre éditeur connaisse ces
règles. Pour indenter automatiquement une définition de paquet, vous pouvez règles. Pour indenter automatiquement une définition de paquet, vous pouvez
aussi lancer : aussi lancer :
@example @example
@ -311,16 +311,24 @@ aussi lancer :
@noindent @noindent
Cela indente automatiquement la définition de @var{package} dans Cela indente automatiquement la définition de @var{package} dans
@file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande. Pour @file{gnu/packages/@var{file}.scm} en lançant Emacs en mode commande. Pour
indenter un fichier complet, n'indiquez pas de second argument : indenter un fichier complet, n'indiquez pas de second argument :
@example @example
./etc/indent-code.el gnu/services/@var{file}.scm ./etc/indent-code.el gnu/services/@var{file}.scm
@end example @end example
@cindex Vim, édition de code Scheme
Si vous éditez du code avec Vim, nous recommandons de lancer @code{:set
autoindent} pour que votre code soit automatiquement indenté au moment où
vous l'entrez. En plus,
@uref{https://www.vim.org/scripts/script.php?script_id=3998,
@code{paredit.vim}} peut vous aider à gérer toutes ces parenthèses.
Nous demandons que toutes les procédure de premier niveau contiennent une Nous demandons que toutes les procédure de premier niveau contiennent une
chaîne de documentation. Ce pré-requis peut être relâché pour les procédures chaîne de documentation. Ce pré-requis peut être relâché pour les
privées simples dans l'espace de nom @code{(guix build @dots{})} cependant. procédures privées simples dans l'espace de nom @code{(guix build @dots{})}
cependant.
Les procédures ne devraient pas avoir plus de quatre paramètres Les procédures ne devraient pas avoir plus de quatre paramètres
positionnés. Utilisez des paramètres par mot-clefs pour les procédures qui positionnés. Utilisez des paramètres par mot-clefs pour les procédures qui
@ -330,14 +338,14 @@ prennent plus de quatre paramètres.
@node Envoyer des correctifs @node Envoyer des correctifs
@section Envoyer des correctifs @section Envoyer des correctifs
Le développement se fait avec le système de contrôle de version Git. Ainsi, Le développement se fait avec le système de contrôle de version Git. Ainsi,
l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les l'accès au dépôt n'est pas strictement nécessaire. Nous accueillons les
contributions sous forme de correctifs produits par @code{git format-patch} contributions sous forme de correctifs produits par @code{git format-patch}
envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}. envoyés sur la liste de diffusion @email{guix-patches@@gnu.org}.
Cette liste de diffusion est gérée par une instance Debbugs accessible à Cette liste de diffusion est gérée par une instance Debbugs accessible à
l'adresse @uref{https://bugs.gnu.org/guix-patches}, qui nous permet de l'adresse @uref{https://bugs.gnu.org/guix-patches}, qui nous permet de
suivre les soumissions. Chaque message envoyé à cette liste se voit suivre les soumissions. Chaque message envoyé à cette liste se voit
attribuer un numéro de suivi ; les gens peuvent ensuite répondre à cette attribuer un numéro de suivi ; les gens peuvent ensuite répondre à cette
soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où soumission en envoyant un courriel à @code{@var{NNN}@@debbugs.gnu.org}, où
@var{NNN} est le numéro de suivi (@pxref{Envoyer une série de correctifs}). @var{NNN} est le numéro de suivi (@pxref{Envoyer une série de correctifs}).
@ -352,13 +360,13 @@ paquet, veuillez vérifier cette check-list :
@enumerate @enumerate
@item @item
Si les auteurs du paquet logiciel fournissent une signature cryptographique Si les auteurs du paquet logiciel fournissent une signature cryptographique
pour l'archive, faîtes un effort pour vérifier l'authenticité de pour l'archive, faîtes un effort pour vérifier l'authenticité de l'archive.
l'archive. Pour un fichier de signature GPG détaché, cela se fait avec la Pour un fichier de signature GPG détaché, cela se fait avec la commande
commande @code{gpg --verify}. @code{gpg --verify}.
@item @item
Prenez un peu de temps pour fournir un synopsis et une description adéquats Prenez un peu de temps pour fournir un synopsis et une description adéquats
pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes pour le paquet. Voir @xref{Synopsis et descriptions} pour quelques lignes
directrices. directrices.
@item @item
@ -376,9 +384,9 @@ Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà
disponible dans un paquet séparé. disponible dans un paquet séparé.
Parfois, les paquets incluent des copie du code source de leurs dépendances Parfois, les paquets incluent des copie du code source de leurs dépendances
pour le confort de leurs utilisateurs. Cependant, en tant que distribution, pour le confort de leurs utilisateurs. Cependant, en tant que distribution,
nous voulons nous assurer que ces paquets utilisent bien les copient que nous voulons nous assurer que ces paquets utilisent bien les copient que
nous avons déjà dans la distribution si elles existent. Cela améliore nous avons déjà dans la distribution si elles existent. Cela améliore
l'utilisation des ressources (la dépendance n'est construite et stockée l'utilisation des ressources (la dépendance n'est construite et stockée
qu'une seule fois) et permet à la distribution de faire des changements qu'une seule fois) et permet à la distribution de faire des changements
transversaux comme appliquer des correctifs de sécurité pour un paquet donné transversaux comme appliquer des correctifs de sécurité pour un paquet donné
@ -386,8 +394,8 @@ depuis un unique emplacement et qu'ils affectent tout le système, ce
qu'empêchent les copies groupées. qu'empêchent les copies groupées.
@item @item
Regardez le profile rapporté par @command{guix size} (@pxref{Invoquer guix size}). Cela vous permettra de remarquer des références à d'autres paquets Regardez le profile rapporté par @command{guix size} (@pxref{Invoquer guix size}). Cela vous permettra de remarquer des références à d'autres paquets
qui ont été retenus. Il peut aussi aider à déterminer s'il faut découper le qui ont été retenus. Il peut aussi aider à déterminer s'il faut découper le
paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance
facultative utiliser. facultative utiliser.
@ -413,27 +421,27 @@ principes :
branche @code{master} (changements non-disruptifs). branche @code{master} (changements non-disruptifs).
@item entre 300 et 1200 paquets dépendants @item entre 300 et 1200 paquets dépendants
branche @code{staging} (changemets non-disruptifs). Cette branche devrait branche @code{staging} (changemets non-disruptifs). Cette branche devrait
être fusionnées dans @code{master} tous les 3 semaines. Les changements par être fusionnées dans @code{master} tous les 3 semaines. Les changements par
thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une thèmes (par exemple une mise à jour de la pile GNOME) peuvent aller dans une
branche spécifique (disons, @code{gnome-updates}). branche spécifique (disons, @code{gnome-updates}).
@item plus de 1200 paquets dépendants @item plus de 1200 paquets dépendants
branche @code{core-updates} (peut inclure des changements majeurs et branche @code{core-updates} (peut inclure des changements majeurs et
potentiellement disruptifs). Cette branche devrait être fusionnée dans potentiellement disruptifs). Cette branche devrait être fusionnée dans
@code{master} tous les 2,5 mois environ. @code{master} tous les 2,5 mois environ.
@end table @end table
Toutes ces branches sont gérées par notre ferme de construction et Toutes ces branches sont gérées par notre ferme de construction et
fusionnées dans @code{master} une fois que tout a été construit fusionnées dans @code{master} une fois que tout a été construit
correctement. Cela nous permet de corriger des problèmes avant qu'ils correctement. Cela nous permet de corriger des problèmes avant qu'ils
n'atteignent les utilisateurs et réduit la fenêtre pendant laquelle les n'atteignent les utilisateurs et réduit la fenêtre pendant laquelle les
binaires pré-construits ne sont pas disponibles. binaires pré-construits ne sont pas disponibles.
@item @item
@cindex déterminisme, du processus de construction @cindex déterminisme, du processus de construction
@cindex construction reproductibles, vérification @cindex construction reproductibles, vérification
Vérifiez si le processus de construction du paquet est déterministe. Cela Vérifiez si le processus de construction du paquet est déterministe. Cela
signifie typiquement vérifier qu'une construction indépendante du paquet signifie typiquement vérifier qu'une construction indépendante du paquet
renvoie exactement le même résultat que vous avez obtenu, bit à bit. renvoie exactement le même résultat que vous avez obtenu, bit à bit.
@ -449,10 +457,10 @@ comme l'horodatage ou des sorties générées aléatoirement dans le résultat d
la construction. la construction.
Une autre option consiste à utiliser @command{guix challenge} Une autre option consiste à utiliser @command{guix challenge}
(@pxref{Invoquer guix challenge}). Vous pouvez lancer la commande une fois (@pxref{Invoquer guix challenge}). Vous pouvez lancer la commande une fois
que les paquets ont été commités et construits par @code{hydra.gnu.org} pour que les paquets ont été commités et construits par @code{hydra.gnu.org} pour
vérifier s'il obtient le même résultat que vous. Mieux encore : trouvez une vérifier s'il obtient le même résultat que vous. Mieux encore : trouvez une
autre machine qui peut le construire et lancez @command{guix publish}. Puis autre machine qui peut le construire et lancez @command{guix publish}. Puis
la machine distante est sûrement différente de la vôtre, cela peut trouver la machine distante est sûrement différente de la vôtre, cela peut trouver
des problèmes de non-déterminisme liés au matériel — par exemple utiliser des problèmes de non-déterminisme liés au matériel — par exemple utiliser
une extension du jeu d'instruction — ou du noyau du système d'exploitation — une extension du jeu d'instruction — ou du noyau du système d'exploitation —
@ -466,8 +474,8 @@ neutre lorsque vous vous référez à des personnes, comme le
@item @item
Vérifiez que votre correctif contienne seulement un ensemble de changements Vérifiez que votre correctif contienne seulement un ensemble de changements
liés. Grouper des changements non liés ensemble rend la revue plus difficile liés. Grouper des changements non liés ensemble rend la revue plus
et plus lente. difficile et plus lente.
Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections
dans ce paquet sont des exemples de changements sans rapport. dans ce paquet sont des exemples de changements sans rapport.
@ -480,10 +488,10 @@ du code}).
@end enumerate @end enumerate
Lorsque vous envoyez un correctif à la liste de diffusion, utilisez Lorsque vous envoyez un correctif à la liste de diffusion, utilisez
@samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de @samp{[PATCH] @dots{}} comme sujet. Vous pouvez utiliser votre client de
courriel ou la commande @command{git send-email} (@pxref{Envoyer une série courriel ou la commande @command{git send-email} (@pxref{Envoyer une série
de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit de correctifs}). Nous préférons recevoir des correctifs en texte brut, soit
en ligne, soit en pièce-jointe MIME. Nous vous conseillons de faire en ligne, soit en pièce-jointe MIME@. Nous vous conseillons de faire
attention si votre client de courriel change par exemple les retours à la attention si votre client de courriel change par exemple les retours à la
ligne ou l'indentation, ce qui peut casser les correctifs. ligne ou l'indentation, ce qui peut casser les correctifs.
@ -497,9 +505,9 @@ Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à
@cindex @code{git-send-email} @cindex @code{git-send-email}
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html @c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
Lorsque vous envoyez une série de correctifs (p.e. avec @code{git Lorsque vous envoyez une série de correctifs (p.@@:: ex.@: avec @code{git
send-email}), envoyez d'abord une premier message à send-email}), envoyez d'abord une premier message à
@email{guix-patches@@gnu.org} puis envoyez le reste des correctifs à @email{guix-patches@@gnu.org} puis envoyez le reste des correctifs à
@email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés @email{@var{NNN}@@debbugs.gnu.org} pour vous assurer qu'ils seront groupés
ensemble. Voyez @uref{https://debbugs.gnu.org/Advanced.html, la ensemble. Voyez @uref{https://debbugs.gnu.org/Advanced.html, la
documentation de Debbugs} pour plus d'informations. documentation de Debbugs} pour plus d'informations.

View File

@ -155,15 +155,9 @@ The @command{pre-inst-env} script sets up all the environment variables
necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}. necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}.
Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the
local source tree; it simply updates the @file{~/.config/guix/latest} local source tree; it simply updates the @file{~/.config/guix/current}
symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if
you want to upgrade your local source tree.@footnote{If you would like you want to upgrade your local source tree.
to set up @command{guix} to use your Git checkout, you can point the
@file{~/.config/guix/latest} symlink to your Git checkout directory.
If you are the sole user of your system, you may also consider pointing
the @file{/root/.config/guix/latest} symlink to point to
@file{~/.config/guix/latest}; this way it will always use the same
@command{guix} as your user does.}
@node The Perfect Setup @node The Perfect Setup

File diff suppressed because it is too large Load Diff

View File

@ -47,7 +47,8 @@ Copyright @copyright{} 2017, 2018 Arun Isaac@*
Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2017 nee@*
Copyright @copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 Rutger Helling@*
Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Oleg Pykhalov@*
Copyright @copyright{} 2018 Mike Gerwitz Copyright @copyright{} 2018 Mike Gerwitz@*
Copyright @copyright{} 2018 Pierre-Antoine Rouby
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
@ -235,6 +236,7 @@ Services
* X Window:: Graphical display. * X Window:: Graphical display.
* Printing Services:: Local and remote printer support. * Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services. * Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc. * Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that. * Mail Services:: IMAP, POP3, SMTP, and all that.
* Messaging Services:: Messaging services. * Messaging Services:: Messaging services.
@ -2741,11 +2743,39 @@ Any user can update their Guix copy using @command{guix pull}, and the
effect is limited to the user who run @command{guix pull}. For effect is limited to the user who run @command{guix pull}. For
instance, when user @code{root} runs @command{guix pull}, this has no instance, when user @code{root} runs @command{guix pull}, this has no
effect on the version of Guix that user @code{alice} sees, and vice effect on the version of Guix that user @code{alice} sees, and vice
versa@footnote{Under the hood, @command{guix pull} updates the versa.
@file{~/.config/guix/latest} symbolic link to point to the latest Guix,
and the @command{guix} command loads code from there. Currently, the The result of running @command{guix pull} is a @dfn{profile} available
only way to roll back an invocation of @command{guix pull} is to under @file{~/.config/guix/current} containing the latest Guix. Thus,
manually update this symlink to point to the previous Guix.}. make sure to add it to the beginning of your search path so that you use
the latest version, and similarly for the Info manual
(@pxref{Documentation}):
@example
export PATH="$HOME/.config/guix/current/bin:$PATH"
export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
@end example
This @code{~/.config/guix/current} profile works like any other profile
created by @command{guix package} (@pxref{Invoking guix package}). That
is, you can list generations, roll back to the previous
generation---i.e., the previous Guix---and so on:
@example
$ guix package -p ~/.config/guix/current -l
Generation 1 May 25 2018 10:06:41
guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
Generation 2 May 27 2018 19:07:47
+ guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
- guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
Generation 3 May 30 2018 16:11:39 (current)
+ guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990
- guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
$ guix package -p ~/.config/guix/current --roll-back
switched from generation 3 to 2
@end example
The @command{guix pull} command is usually invoked with no arguments, The @command{guix pull} command is usually invoked with no arguments,
but it supports the following options: but it supports the following options:
@ -2833,6 +2863,16 @@ guix pack -S /opt/gnu/bin=bin guile emacs geiser
@noindent @noindent
That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy. That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy.
@cindex relocatable binaries, with @command{guix pack}
What if the recipient of your pack does not have root privileges on
their machine, and thus cannot unpack it in the root file system? In
that case, you will want to use the @code{--relocatable} option (see
below). This option produces @dfn{relocatable binaries}, meaning they
they can be placed anywhere in the file system hierarchy: in the example
above, users can unpack your tarball in their home directory and
directly run @file{./opt/gnu/bin/guile}.
@cindex Docker, build an image with guix pack
Alternatively, you can produce a pack in the Docker image format using Alternatively, you can produce a pack in the Docker image format using
the following command: the following command:
@ -2846,6 +2886,22 @@ command. See the
@uref{https://docs.docker.com/engine/reference/commandline/load/, Docker @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker
documentation} for more information. documentation} for more information.
@cindex Singularity, build an image with guix pack
@cindex SquashFS, build an image with guix pack
Yet another option is to produce a SquashFS image with the following
command:
@example
guix pack -f squashfs guile emacs geiser
@end example
@noindent
The result is a SquashFS file system image that can either be mounted or
directly be used as a file system container image with the
@uref{http://singularity.lbl.gov, Singularity container execution
environment}, using commands like @command{singularity shell} or
@command{singularity exec}.
Several command-line options allow you to customize your pack: Several command-line options allow you to customize your pack:
@table @code @table @code
@ -2864,8 +2920,46 @@ specified binaries and symlinks.
This produces a tarball that follows the This produces a tarball that follows the
@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
Docker Image Specification}. Docker Image Specification}.
@item squashfs
This produces a SquashFS image containing all the specified binaries and
symlinks, as well as empty mount points for virtual file systems like
procfs.
@end table @end table
@item --relocatable
@itemx -R
Produce @dfn{relocatable binaries}---i.e., binaries that can be placed
anywhere in the file system hierarchy and run from there. For example,
if you create a pack containing Bash with:
@example
guix pack -R -S /mybin=bin bash
@end example
@noindent
... you can copy that pack to a machine that lacks Guix, and from your
home directory as a normal user, run:
@example
tar xf pack.tar.gz
./mybin/sh
@end example
@noindent
In that shell, if you type @code{ls /gnu/store}, you'll notice that
@file{/gnu/store} shows up and contains all the dependencies of
@code{bash}, even though the machine actually lacks @file{/gnu/store}
altogether! That is probably the simplest way to deploy Guix-built
software on a non-Guix machine.
There's a gotcha though: this technique relies on the @dfn{user
namespace} feature of the kernel Linux, which allows unprivileged users
to mount or change root. Old versions of Linux did not support it, and
some GNU/Linux distributions turn it off; on these systems, programs
from the pack @emph{will fail to run}, unless they are unpacked in the
root file system.
@item --expression=@var{expr} @item --expression=@var{expr}
@itemx -e @var{expr} @itemx -e @var{expr}
Consider the package @var{expr} evaluates to. Consider the package @var{expr} evaluates to.
@ -3749,6 +3843,25 @@ that should be run during the @code{build} phase. By default the
@end defvr @end defvr
@defvr {Scheme Variable} android-ndk-build-system
@cindex Android distribution
@cindex Android NDK build system
This variable is exported by @code{(guix build-system android-ndk)}. It
implements a build procedure for Android NDK (native development kit)
packages using a Guix-specific build process.
The build system assumes that packages install their public interface
(header) files to the subdirectory "include" of the "out" output and
their libraries to the subdirectory "lib" of the "out" output.
It's also assumed that the union of all the dependencies of a package
has no conflicting files.
For the time being, cross-compilation is not supported - so right now
the libraries and header files are assumed to be host tools.
@end defvr
@defvr {Scheme Variable} asdf-build-system/source @defvr {Scheme Variable} asdf-build-system/source
@defvrx {Scheme Variable} asdf-build-system/sbcl @defvrx {Scheme Variable} asdf-build-system/sbcl
@defvrx {Scheme Variable} asdf-build-system/ecl @defvrx {Scheme Variable} asdf-build-system/ecl
@ -4979,6 +5092,23 @@ headers, which comes in handy in this case:
@dots{}))) @dots{})))
@end example @end example
@cindex extensions, for gexps
@findex with-extensions
In the same vein, sometimes you want to import not just pure-Scheme
modules, but also ``extensions'' such as Guile bindings to C libraries
or other ``full-blown'' packages. Say you need the @code{guile-json}
package available on the build side, here's how you would do it:
@example
(use-modules (gnu packages guile)) ;for 'guile-json'
(with-extensions (list guile-json)
(gexp->derivation "something-with-json"
#~(begin
(use-modules (json))
@dots{})))
@end example
The syntactic form to construct gexps is summarized below. The syntactic form to construct gexps is summarized below.
@deffn {Scheme Syntax} #~@var{exp} @deffn {Scheme Syntax} #~@var{exp}
@ -5062,6 +5192,18 @@ directly defined in @var{body}@dots{}, but not on those defined, say, in
procedures called from @var{body}@dots{}. procedures called from @var{body}@dots{}.
@end deffn @end deffn
@deffn {Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}
Mark the gexps defined in @var{body}@dots{} as requiring
@var{extensions} in their build and execution environment.
@var{extensions} is typically a list of package objects such as those
defined in the @code{(gnu packages guile)} module.
Concretely, the packages listed in @var{extensions} are added to the
load path while compiling imported modules in @var{body}@dots{}; they
are also added to the load path of the gexp returned by
@var{body}@dots{}.
@end deffn
@deffn {Scheme Procedure} gexp? @var{obj} @deffn {Scheme Procedure} gexp? @var{obj}
Return @code{#t} if @var{obj} is a G-expression. Return @code{#t} if @var{obj} is a G-expression.
@end deffn @end deffn
@ -5076,6 +5218,7 @@ information about monads.)
[#:hash #f] [#:hash-algo #f] @ [#:hash #f] [#:hash-algo #f] @
[#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @
[#:module-path @var{%load-path}] @ [#:module-path @var{%load-path}] @
[#:effective-version "2.2"] @
[#:references-graphs #f] [#:allowed-references #f] @ [#:references-graphs #f] [#:allowed-references #f] @
[#:disallowed-references #f] @ [#:disallowed-references #f] @
[#:leaked-env-vars #f] @ [#:leaked-env-vars #f] @
@ -5096,6 +5239,9 @@ make @var{modules} available in the evaluation context of @var{exp};
the load path during the execution of @var{exp}---e.g., @code{((guix the load path during the execution of @var{exp}---e.g., @code{((guix
build utils) (guix build gnu-build-system))}. build utils) (guix build gnu-build-system))}.
@var{effective-version} determines the string to use when adding extensions of
@var{exp} (see @code{with-extensions}) to the search path---e.g., @code{"2.2"}.
@var{graft?} determines whether packages referred to by @var{exp} should be grafted when @var{graft?} determines whether packages referred to by @var{exp} should be grafted when
applicable. applicable.
@ -5793,9 +5939,16 @@ information on cross-compilation.
An example use of this is on Linux-based systems, which can emulate An example use of this is on Linux-based systems, which can emulate
different personalities. For instance, passing different personalities. For instance, passing
@code{--system=i686-linux} on an @code{x86_64-linux} system allows you @code{--system=i686-linux} on an @code{x86_64-linux} system or
@code{--system=armhf-linux} on an @code{aarch64-linux} system allows you
to build packages in a complete 32-bit environment. to build packages in a complete 32-bit environment.
@quotation Note
Building for an @code{armhf-linux} system is unconditionally enabled on
@code{aarch64-linux} machines, although certain aarch64 chipsets do not
allow for this functionality, notably the ThunderX.
@end quotation
Similarly, when transparent emulation with QEMU and @code{binfmt_misc} Similarly, when transparent emulation with QEMU and @code{binfmt_misc}
is enabled (@pxref{Virtualization Services, is enabled (@pxref{Virtualization Services,
@code{qemu-binfmt-service-type}}), you can build for any system for @code{qemu-binfmt-service-type}}), you can build for any system for
@ -6461,6 +6614,12 @@ signatures,, emacs, The GNU Emacs Manual}).
@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} @uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa}
identifier. identifier.
@end itemize @end itemize
@item --recursive
@itemx -r
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@end table @end table
@item crate @item crate
@ -6773,15 +6932,33 @@ where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
Package developers can specify in package recipes the Package developers can specify in package recipes the
@uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)}
name and version of the package when they differ from the name that Guix name and version of the package when they differ from the name or version
uses, as in this example: that Guix uses, as in this example:
@example @example
(package (package
(name "grub") (name "grub")
;; @dots{} ;; @dots{}
;; CPE calls this package "grub2". ;; CPE calls this package "grub2".
(properties '((cpe-name . "grub2")))) (properties '((cpe-name . "grub2")
(cpe-version . "2.3")))
@end example
@c See <http://www.openwall.com/lists/oss-security/2017/03/15/3>.
Some entries in the CVE database do not specify which version of a
package they apply to, and would thus ``stick around'' forever. Package
developers who found CVE alerts and verified they can be ignored can
declare them as in this example:
@example
(package
(name "t1lib")
;; @dots{}
;; These CVEs no longer apply and can be safely ignored.
(properties `((lint-hidden-cve . ("CVE-2011-0433"
"CVE-2011-1553"
"CVE-2011-1554"
"CVE-2011-5244")))))
@end example @end example
@item formatting @item formatting
@ -6825,19 +7002,23 @@ single output for a package that could easily be split (@pxref{Packages
with Multiple Outputs}). Such are the typical issues that with Multiple Outputs}). Such are the typical issues that
@command{guix size} can highlight. @command{guix size} can highlight.
The command can be passed a package specification such as @code{gcc@@4.8} The command can be passed one or more package specifications
such as @code{gcc@@4.8}
or @code{guile:debug}, or a file name in the store. Consider this or @code{guile:debug}, or a file name in the store. Consider this
example: example:
@example @example
$ guix size coreutils $ guix size coreutils
store item total self store item total self
/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8% /gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1%
/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6% /gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6%
/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7% /gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0%
/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5% /gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4%
/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4% /gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9%
/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1% /gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5%
/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3%
/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2%
total: 78.9 MiB
@end example @end example
@cindex closure @cindex closure
@ -6857,17 +7038,21 @@ item itself. The last column shows the ratio of the size of the item
itself to the space occupied by all the items listed here. itself to the space occupied by all the items listed here.
In this example, we see that the closure of Coreutils weighs in at In this example, we see that the closure of Coreutils weighs in at
70@tie{}MiB, half of which is taken by libc. (That libc represents a 79@tie{}MiB, most of which is taken by libc and GCC's run-time support
large fraction of the closure is not a problem @i{per se} because it is libraries. (That libc and GCC's libraries represent a large fraction of
always available on the system anyway.) the closure is not a problem @i{per se} because they are always available
on the system anyway.)
When the package passed to @command{guix size} is available in the When the package(s) passed to @command{guix size} are available in the
store, @command{guix size} queries the daemon to determine its store@footnote{More precisely, @command{guix size} looks for the
@emph{ungrafted} variant of the given package(s), as returned by
@code{guix build @var{package} --no-grafts}. @xref{Security Updates},
for information on grafts.}, @command{guix size} queries the daemon to determine its
dependencies, and measures its size in the store, similar to @command{du dependencies, and measures its size in the store, similar to @command{du
-ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU
Coreutils}). Coreutils}).
When the given package is @emph{not} in the store, @command{guix size} When the given packages are @emph{not} in the store, @command{guix size}
reports information based on the available substitutes reports information based on the available substitutes
(@pxref{Substitutes}). This makes it possible it to profile disk usage of (@pxref{Substitutes}). This makes it possible it to profile disk usage of
store items that are not even on disk, only available remotely. store items that are not even on disk, only available remotely.
@ -9115,20 +9300,31 @@ This is a string specifying the type of the file system---e.g.,
This designates the place where the file system is to be mounted. This designates the place where the file system is to be mounted.
@item @code{device} @item @code{device}
This names the ``source'' of the file system. By default it is the name This names the ``source'' of the file system. It can be one of three
of a node under @file{/dev}, but its meaning depends on the @code{title} things: a file system label, a file system UUID, or the name of a
field described below. @file{/dev} node. Labels and UUIDs offer a way to refer to file
systems without having to hard-code their actual device
name@footnote{Note that, while it is tempting to use
@file{/dev/disk/by-uuid} and similar device names to achieve the same
result, this is not recommended: These special device nodes are created
by the udev daemon and may be unavailable at the time the device is
mounted.}.
@item @code{title} (default: @code{'device}) @findex file-system-label
This is a symbol that specifies how the @code{device} field is to be File system labels are created using the @code{file-system-label}
interpreted. procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are
plain strings. Here's an example of a file system referred to by its
label, as shown by the @command{e2label} command:
When it is the symbol @code{device}, then the @code{device} field is @example
interpreted as a file name; when it is @code{label}, then @code{device} (file-system
is interpreted as a file system label name; when it is @code{uuid}, (mount-point "/home")
@code{device} is interpreted as a file system unique identifier (UUID). (type "ext4")
(device (file-system-label "my-home")))
@end example
UUIDs may be converted from their string representation (as shown by the @findex uuid
UUIDs are converted from their string representation (as shown by the
@command{tune2fs -l} command) using the @code{uuid} form@footnote{The @command{tune2fs -l} command) using the @code{uuid} form@footnote{The
@code{uuid} form expects 16-byte UUIDs as defined in @code{uuid} form expects 16-byte UUIDs as defined in
@uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the @uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the
@ -9140,22 +9336,13 @@ like this:
(file-system (file-system
(mount-point "/home") (mount-point "/home")
(type "ext4") (type "ext4")
(title 'uuid)
(device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
@end example @end example
The @code{label} and @code{uuid} options offer a way to refer to file When the source of a file system is a mapped device (@pxref{Mapped
systems without having to hard-code their actual device
name@footnote{Note that, while it is tempting to use
@file{/dev/disk/by-uuid} and similar device names to achieve the same
result, this is not recommended: These special device nodes are created
by the udev daemon and may be unavailable at the time the device is
mounted.}.
However, when the source of a file system is a mapped device (@pxref{Mapped
Devices}), its @code{device} field @emph{must} refer to the mapped Devices}), its @code{device} field @emph{must} refer to the mapped
device name---e.g., @file{/dev/mapper/root-partition}---and consequently device name---e.g., @file{"/dev/mapper/root-partition"}.
@code{title} must be set to @code{'device}. This is required so that This is required so that
the system knows that mounting the file system depends on having the the system knows that mounting the file system depends on having the
corresponding device mapping established. corresponding device mapping established.
@ -9697,6 +9884,7 @@ declaration.
* X Window:: Graphical display. * X Window:: Graphical display.
* Printing Services:: Local and remote printer support. * Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services. * Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc. * Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that. * Mail Services:: IMAP, POP3, SMTP, and all that.
* Messaging Services:: Messaging services. * Messaging Services:: Messaging services.
@ -11624,7 +11812,7 @@ Script to run after starting xorg-server.
@item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")}) @item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")})
Script to run before stopping xorg-server. Script to run before stopping xorg-server.
@item @code{xsession-command} (default: @code{xinitr }) @item @code{xsession-command} (default: @code{xinitrc})
Script to run before starting a X session. Script to run before starting a X session.
@item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions") @item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions")
@ -11697,6 +11885,44 @@ resolutions---e.g., @code{((1024 768) (640 480))}.
Last, @var{extra-config} is a list of strings or objects appended to the Last, @var{extra-config} is a list of strings or objects appended to the
configuration file. It is used to pass extra text to be configuration file. It is used to pass extra text to be
added verbatim to the configuration file. added verbatim to the configuration file.
@cindex keymap
@cindex keyboard layout
This procedure is especially useful to configure a different keyboard layout
than the default US keymap. For instance, to use the ``bépo'' keymap by
default on the display manager:
@example
(define bepo-evdev
"Section \"InputClass\"
Identifier \"evdev keyboard catchall\"
Driver \"evdev\"
MatchIsKeyboard \"on\"
Option \"xkb_layout\" \"fr\"
Option \"xkb_variant\" \"bepo\"
EndSection")
(operating-system
...
(services
(modify-services %desktop-services
(slim-service-type config =>
(slim-configuration
(inherit config)
(startx (xorg-start-command
#:configuration-file
(xorg-configuration-file
#:extra-config
(list bepo-evdev)))))))))
@end example
The @code{MatchIsKeyboard} line specifies that we only apply the configuration
to keyboards. Without this line, other devices such as touchpad may not work
correctly because they will be attached to the wrong driver. In this example,
the user typically used @code{setxkbmap fr bepo} to set their favorite keymap
once logged in. The first argument corresponds to the layout, while the second
argument corresponds to the variant. The @code{xkb_variant} line can be omitted
to select the default variant.
@end deffn @end deffn
@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}] @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}]
@ -12582,11 +12808,11 @@ field of an @code{operating-system} declaration (@pxref{operating-system
Reference, @code{services}}). Reference, @code{services}}).
Additionally, the @code{gnome-desktop-service}, Additionally, the @code{gnome-desktop-service},
@code{xfce-desktop-service} and @code{mate-desktop-service} @code{xfce-desktop-service}, @code{mate-desktop-service} and
procedures can add GNOME, XFCE and/or MATE to a system. @code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE
To ``add GNOME'' means that system-level services like the and/or Enlightenment to a system. To ``add GNOME'' means that system-level
backlight adjustment helpers and the power management utilities are services like the backlight adjustment helpers and the power management
added to the system, extending @code{polkit} and @code{dbus} utilities are added to the system, extending @code{polkit} and @code{dbus}
appropriately, allowing GNOME to operate with elevated privileges on a appropriately, allowing GNOME to operate with elevated privileges on a
limited number of special-purpose system interfaces. Additionally, limited number of special-purpose system interfaces. Additionally,
adding a service made by @code{gnome-desktop-service} adds the GNOME adding a service made by @code{gnome-desktop-service} adds the GNOME
@ -12599,7 +12825,10 @@ To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
appropriately, allowing MATE to operate with elevated privileges on a appropriately, allowing MATE to operate with elevated privileges on a
limited number of special-purpose system interfaces. Additionally, limited number of special-purpose system interfaces. Additionally,
adding a service made by @code{mate-desktop-service} adds the MATE adding a service made by @code{mate-desktop-service} adds the MATE
metapackage to the system profile. metapackage to the system profile. ``Adding ENLIGHTENMENT'' means that
@code{dbus} is extended appropriately, and several of Enlightenment's binaries
are set as setuid, allowing Enlightenment's screen locker and other
functionality to work as expetected.
The desktop environments in Guix use the Xorg display server by The desktop environments in Guix use the Xorg display server by
default. If you'd like to use the newer display server protocol default. If you'd like to use the newer display server protocol
@ -12629,8 +12858,20 @@ profile, and extends polkit with the actions from
@code{mate-settings-daemon}. @code{mate-settings-daemon}.
@end deffn @end deffn
@deffn {Scheme Procedure} enlightenment-desktop-service-type
Return a service that adds the @code{enlightenment} package to the system
profile, and extends dbus with actions from @code{efl}.
@end deffn
@deftp {Data Type} enlightenment-desktop-service-configuration
@table @asis
@item @code{enlightenment} (default @code{enlightenment})
The enlightenment package to use.
@end table
@end deftp
Because the GNOME, XFCE and MATE desktop services pull in so many packages, Because the GNOME, XFCE and MATE desktop services pull in so many packages,
the default @code{%desktop-services} variable doesn't include either of the default @code{%desktop-services} variable doesn't include any of
them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto
@code{%desktop-services} in the @code{services} field of your @code{%desktop-services} in the @code{services} field of your
@code{operating-system}: @code{operating-system}:
@ -12842,6 +13083,48 @@ bluetooth keyboard or mouse.
Users need to be in the @code{lp} group to access the D-Bus service. Users need to be in the @code{lp} group to access the D-Bus service.
@end deffn @end deffn
@node Sound Services
@subsubsection Sound Services
@cindex sound support
@cindex ALSA
@cindex PulseAudio, sound support
The @code{(gnu services sound)} module provides an
@code{alsa-service-type} service to generate an ALSA
@file{/etc/asound.conf} configuration file. This configuration file is
what allows applications that produce sound using ALSA to be correctly
handled.
@deffn {Scheme Variable} alsa-service-type
This is the type for the @uref{https://alsa-project.org/, ALSA},
@command{alsa-configuration} record as in this example:
@example
(service alsa-service-type)
@end example
See below for details about @code{alsa-configuration}.
@end deffn
@deftp {Data Type} alsa-configuration
Data type representing the configuration for @code{alsa-service}.
@table @asis
@item @code{pulseaudio?} (default: @var{#t})
Whether ALSA applications should transparently be made to use the
@uref{http://www.pulseaudio.org/, PulseAudio} sound server.
Using PulseAudio allows you to run several sound-producing applications
at the same time and to individual control them @i{via}
@command{pavucontrol}, among other things.
@item @code{extra-options} (default: @var{""})
String to append to the @file{asound.conf} file.
@end table
@end deftp
@node Database Services @node Database Services
@subsubsection Database Services @subsubsection Database Services
@ -14880,6 +15163,9 @@ networking interface.
@item @code{package} (default: @code{bitlbee}) @item @code{package} (default: @code{bitlbee})
The BitlBee package to use. The BitlBee package to use.
@item @code{plugins} (default: @code{'()})
List of plugin packages to use---e.g., @code{bitlbee-discord}.
@item @code{extra-settings} (default: @code{""}) @item @code{extra-settings} (default: @code{""})
Configuration snippet added as-is to the BitlBee configuration file. Configuration snippet added as-is to the BitlBee configuration file.
@end table @end table
@ -15979,6 +16265,64 @@ A simple setup for cat-avatar-generator can look like this:
%base-services)) %base-services))
@end example @end example
@subsubheading Hpcguix-web
@cindex hpcguix-web
The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/}
program is a customizable web interface to browse Guix packages,
initially designed for users of high-performance computing (HPC)
clusters.
@defvr {Scheme Variable} hpcguix-web-service-type
The service type for @code{hpcguix-web}.
@end defvr
@deftp {Data Type} hpcguix-web-configuration
Data type for the hpcguix-web service configuration.
@table @asis
@item @code{specs}
A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service
configuration. The main items available in this spec are:
@table @asis
@item @code{title-prefix} (default: @code{"hpcguix | "})
The page title prefix.
@item @code{guix-command} (default: @code{"guix"})
The @command{guix} command.
@item @code{package-filter-proc} (default: @code{(const #t)})
A procedure specifying how to filter packages that are displayed.
@item @code{package-page-extension-proc} (default: @code{(const '())})
Extension package for @code{hpcguix-web}.
@item @code{menu} (default: @code{'()})
Additional entry in page @code{menu}.
@end table
See the hpcguix-web repository for a
@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm,
complete example}.
@item @code{package} (default: @code{hpcguix-web})
The hpcguix-web package to use.
@end table
@end deftp
A typical hpcguix-web service declaration looks like this:
@example
(service hpcguix-web-service-type
(hpcguix-web-configuration
(specs
#~(define site-config
(hpcweb-configuration
(title-prefix "Guix-HPC - ")
(menu '(("/about" "ABOUT"))))))))
@end example
@node Certificate Services @node Certificate Services
@subsubsection Certificate Services @subsubsection Certificate Services
@ -16133,7 +16477,11 @@ saved to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}.
The @code{(gnu services dns)} module provides services related to the The @code{(gnu services dns)} module provides services related to the
@dfn{domain name system} (DNS). It provides a server service for hosting @dfn{domain name system} (DNS). It provides a server service for hosting
an @emph{authoritative} DNS server for multiple zones, slave or master. an @emph{authoritative} DNS server for multiple zones, slave or master.
This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. This service uses @uref{https://www.knot-dns.cz/, Knot DNS}. And also a
caching and forwarding DNS server for the LAN, which uses
@uref{http://www.thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}.
@subsubheading Knot Service
An example configuration of an authoritative server for two zones, one master An example configuration of an authoritative server for two zones, one master
and one slave, is: and one slave, is:
@ -16528,6 +16876,59 @@ The list of knot-zone-configuration used by this configuration.
@end table @end table
@end deftp @end deftp
@subsubheading Dnsmasq Service
@deffn {Scheme Variable} dnsmasq-service-type
This is the type of the dnsmasq service, whose value should be an
@code{dnsmasq-configuration} object as in this example:
@example
(service dnsmasq-service-type
(dnsmasq-configuration
(no-resolv? #t)
(servers '("192.168.1.1"))))
@end example
@end deffn
@deftp {Data Type} dnsmasq-configuration
Data type representing the configuration of dnsmasq.
@table @asis
@item @code{package} (default: @var{dnsmasq})
Package object of the dnsmasq server.
@item @code{no-hosts?} (default: @code{#f})
When true, don't read the hostnames in /etc/hosts.
@item @code{port} (default: @code{53})
The port to listen on. Setting this to zero completely disables DNS
funtion, leaving only DHCP and/or TFTP.
@item @code{local-service?} (default: @code{#t})
Accept DNS queries only from hosts whose address is on a local subnet,
ie a subnet for which an interface exists on the server.
@item @code{listen-addresses} (default: @code{'()})
Listen on the given IP addresses.
@item @code{resolv-file} (default: @code{"/etc/resolv.conf"})
The file to read the IP address of the upstream nameservers from.
@item @code{no-resolv?} (default: @code{#f})
When true, don't read @var{resolv-file}.
@item @code{servers} (default: @code{'()})
Specify IP address of upstream servers directly.
@item @code{cache-size} (default: @code{150})
Set the size of dnsmasq's cache. Setting the cache size to zero
disables caching.
@item @code{negative-cache?} (default: @code{#t})
When false, disable negative caching.
@end table
@end deftp
@node VPN Services @node VPN Services
@subsubsection VPN Services @subsubsection VPN Services
@ -19100,7 +19501,7 @@ Defaults to @samp{#f}.
@end deftypevr @end deftypevr
@deftypevr {@code{cgit-configuration} parameter} list project-list @deftypevr {@code{cgit-configuration} parameter} project-list project-list
A list of subdirectories inside of @code{repository-directory}, relative A list of subdirectories inside of @code{repository-directory}, relative
to it, that should loaded as Git repositories. An empty list means that to it, that should loaded as Git repositories. An empty list means that
all subdirectories will be loaded. all subdirectories will be loaded.

View File

@ -86,9 +86,7 @@ chk_require()
_debug "--- [ $FUNCNAME ] ---" _debug "--- [ $FUNCNAME ] ---"
for c in ${cmds[@]}; do for c in ${cmds[@]}; do
command -v "$c" &>/dev/null command -v "$c" &>/dev/null || warn+=("$c")
[ "$?" -eq "1" ] &&
warn+=("$c")
done done
[ "${#warn}" -ne 0 ] && [ "${#warn}" -ne 0 ] &&

View File

@ -64,6 +64,7 @@ corresponding to old generations of the system."
(format port "# This file was generated from your GuixSD configuration. Any changes (format port "# This file was generated from your GuixSD configuration. Any changes
# will be lost upon reconfiguration. # will be lost upon reconfiguration.
UI menu.c32 UI menu.c32
MENU TITLE GuixSD Boot Options
PROMPT ~a PROMPT ~a
TIMEOUT ~a~%" TIMEOUT ~a~%"
(if (> timeout 0) 1 0) (if (> timeout 0) 1 0)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@ -31,6 +31,7 @@
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu bootloader) #:use-module (gnu bootloader)
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages compression) (gzip) #:autoload (gnu packages compression) (gzip)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
@ -120,25 +121,14 @@ otherwise."
(define* (svg->png svg #:key width height) (define* (svg->png svg #:key width height)
"Build a PNG of HEIGHT x WIDTH from SVG." "Build a PNG of HEIGHT x WIDTH from SVG."
;; Note: Guile-RSVG & co. are now built for Guile 2.2, so we use 2.2 here. (gexp->derivation "grub-image.png"
;; TODO: Remove #:guile-for-build when 2.2 has become the default. (with-imported-modules '((gnu build svg))
(mlet %store-monad ((guile (package->derivation guile-2.2 #:graft? #f))) (with-extensions (list guile-rsvg guile-cairo)
(gexp->derivation "grub-image.png"
(with-imported-modules '((gnu build svg))
#~(begin #~(begin
;; We need these two libraries.
(add-to-load-path (string-append #+guile-rsvg
"/share/guile/site/"
(effective-version)))
(add-to-load-path (string-append #+guile-cairo
"/share/guile/site/"
(effective-version)))
(use-modules (gnu build svg)) (use-modules (gnu build svg))
(svg->png #+svg #$output (svg->png #+svg #$output
#:width #$width #:width #$width
#:height #$height))) #:height #$height))))))
#:guile-for-build guile)))
(define* (grub-background-image config #:key (width 1024) (height 768)) (define* (grub-background-image config #:key (width 1024) (height 768))
"Return the GRUB background image defined in CONFIG with a ratio of "Return the GRUB background image defined in CONFIG with a ratio of
@ -303,9 +293,10 @@ code."
((? uuid? uuid) ((? uuid? uuid)
(format #f "search --fs-uuid --set ~a" (format #f "search --fs-uuid --set ~a"
(uuid->string device))) (uuid->string device)))
((? string? label) ((? file-system-label? label)
(format #f "search --label --set ~a" label)) (format #f "search --label --set ~a"
(#f (file-system-label->string label)))
((or #f (? string?))
#~(format #f "search --file --set ~a" #$file))))) #~(format #f "search --file --set ~a" #$file)))))
(define* (grub-configuration-file config entries (define* (grub-configuration-file config entries

View File

@ -33,7 +33,12 @@
u-boot-a20-olinuxino-micro-bootloader u-boot-a20-olinuxino-micro-bootloader
u-boot-banana-pi-m2-ultra-bootloader u-boot-banana-pi-m2-ultra-bootloader
u-boot-beaglebone-black-bootloader u-boot-beaglebone-black-bootloader
u-boot-nintendo-nes-classic-edition-bootloader)) u-boot-mx6cuboxi-bootloader
u-boot-nintendo-nes-classic-edition-bootloader
u-boot-novena-bootloader
u-boot-pine64-plus-bootloader
u-boot-puma-rk3399-bootloader
u-boot-wandboard-bootloader))
(define install-u-boot (define install-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader device mount-point)
@ -62,6 +67,33 @@
(write-file-on-device u-boot (stat:size (stat u-boot)) (write-file-on-device u-boot (stat:size (stat u-boot))
device (* 8 1024))))) device (* 8 1024)))))
(define install-allwinner64-u-boot
#~(lambda (bootloader device mount-point)
(let ((spl (string-append bootloader "/libexec/spl/sunxi-spl.bin"))
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device spl (stat:size (stat spl))
device (* 8 1024))
(write-file-on-device u-boot (stat:size (stat u-boot))
device (* 40 1024)))))
(define install-imx-u-boot
#~(lambda (bootloader device mount-point)
(let ((spl (string-append bootloader "/libexec/SPL"))
(u-boot (string-append bootloader "/libexec/u-boot.img")))
(write-file-on-device spl (stat:size (stat spl))
device (* 1 1024))
(write-file-on-device u-boot (stat:size (stat u-boot))
device (* 69 1024)))))
(define install-puma-rk3399-u-boot
#~(lambda (bootloader device mount-point)
(let ((spl (string-append bootloader "/libexec/u-boot-spl.rksd"))
(u-boot (string-append bootloader "/libexec/u-boot.itb")))
(write-file-on-device spl (stat:size (stat spl))
device (* 64 512))
(write-file-on-device u-boot (stat:size (stat u-boot))
device (* 512 512)))))
;;; ;;;
@ -86,6 +118,16 @@
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(installer install-allwinner-u-boot))) (installer install-allwinner-u-boot)))
(define u-boot-allwinner64-bootloader
(bootloader
(inherit u-boot-bootloader)
(installer install-allwinner64-u-boot)))
(define u-boot-imx-bootloader
(bootloader
(inherit u-boot-bootloader)
(installer install-imx-u-boot)))
(define u-boot-nintendo-nes-classic-edition-bootloader (define u-boot-nintendo-nes-classic-edition-bootloader
(bootloader (bootloader
(inherit u-boot-allwinner-bootloader) (inherit u-boot-allwinner-bootloader)
@ -110,3 +152,29 @@
(bootloader (bootloader
(inherit u-boot-allwinner-bootloader) (inherit u-boot-allwinner-bootloader)
(package u-boot-banana-pi-m2-ultra))) (package u-boot-banana-pi-m2-ultra)))
(define u-boot-mx6cuboxi-bootloader
(bootloader
(inherit u-boot-imx-bootloader)
(package u-boot-mx6cuboxi)))
(define u-boot-wandboard-bootloader
(bootloader
(inherit u-boot-imx-bootloader)
(package u-boot-wandboard)))
(define u-boot-novena-bootloader
(bootloader
(inherit u-boot-imx-bootloader)
(package u-boot-novena)))
(define u-boot-pine64-plus-bootloader
(bootloader
(inherit u-boot-allwinner64-bootloader)
(package u-boot-pine64-plus)))
(define u-boot-puma-rk3399-bootloader
(bootloader
(inherit u-boot-bootloader)
(package u-boot-puma-rk3399)
(installer install-puma-rk3399-u-boot)))

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; ;;;
@ -119,7 +119,7 @@ C_*INCLUDE_PATH."
;; libc is false, so we are building xgcc-sans-libc. ;; libc is false, so we are building xgcc-sans-libc.
;; Add essential headers from mingw-w64. ;; Add essential headers from mingw-w64.
(let ((mingw-source (assoc-ref inputs "mingw-source"))) (let ((mingw-source (assoc-ref inputs "mingw-source")))
(system* "tar" "xvf" mingw-source) (invoke "tar" "xvf" mingw-source)
(let ((mingw-headers (unpacked-mingw-dir))) (let ((mingw-headers (unpacked-mingw-dir)))
;; We need _mingw.h which will gets built from _mingw.h.in by ;; We need _mingw.h which will gets built from _mingw.h.in by
;; mingw-w64's configure. We cannot configure mingw-w64 until we ;; mingw-w64's configure. We cannot configure mingw-w64 until we
@ -160,7 +160,7 @@ C_*INCLUDE_PATH."
"Install a stripped GCC." "Install a stripped GCC."
;; Unlike our 'strip' phase, this will do the right thing for ;; Unlike our 'strip' phase, this will do the right thing for
;; cross-compilers. ;; cross-compilers.
(zero? (system* "make" "install-strip"))) (invoke "make" "install-strip"))
(define* (cross-gcc-build-phases target (define* (cross-gcc-build-phases target
#:optional (phases %standard-phases)) #:optional (phases %standard-phases))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
@ -473,17 +473,9 @@ were found."
(find-partition luks-partition-uuid-predicate)) (find-partition luks-partition-uuid-predicate))
(define* (canonicalize-device-spec spec #:optional (title 'any)) (define (canonicalize-device-spec spec)
"Return the device name corresponding to SPEC. TITLE is a symbol, one of "Return the device name corresponding to SPEC, which can be a <uuid>, a
the following: <file-system-label>, or a string (typically a /dev file name)."
'device', in which case SPEC is known to designate a device node--e.g.,
\"/dev/sda1\";
'label', in which case SPEC is known to designate a partition label--e.g.,
\"my-root-part\";
'uuid', in which case SPEC must be a UUID designating a partition;
'any', in which case SPEC can be anything.
"
(define max-trials (define max-trials
;; Number of times we retry partition label resolution, 1 second per ;; Number of times we retry partition label resolution, 1 second per
;; trial. Note: somebody reported a delay of 16 seconds (!) before their ;; trial. Note: somebody reported a delay of 16 seconds (!) before their
@ -491,19 +483,6 @@ the following:
;; this long. ;; this long.
20) 20)
(define canonical-title
;; The realm of canonicalization.
(if (eq? title 'any)
(if (string? spec)
;; The "--root=SPEC" kernel command-line option always provides a
;; string, but the string can represent a device, a UUID, or a
;; label. So check for all three.
(cond ((string-prefix? "/" spec) 'device)
((string->uuid spec) 'uuid)
(else 'label))
'uuid)
title))
(define (resolve find-partition spec fmt) (define (resolve find-partition spec fmt)
(let loop ((count 0)) (let loop ((count 0))
(let ((device (find-partition spec))) (let ((device (find-partition spec)))
@ -518,23 +497,19 @@ the following:
(sleep 1) (sleep 1)
(loop (+ 1 count)))))))) (loop (+ 1 count))))))))
(case canonical-title (match spec
((device) ((? string?)
;; Nothing to do. ;; Nothing to do, but wait until SPEC shows up.
spec) (resolve identity spec identity))
((label) ((? file-system-label?)
;; Resolve the label. ;; Resolve the label.
(resolve find-partition-by-label spec identity)) (resolve find-partition-by-label
((uuid) (file-system-label->string spec)
identity))
((? uuid?)
(resolve find-partition-by-uuid (resolve find-partition-by-uuid
(cond ((string? spec) (uuid-bytevector spec)
(string->uuid spec)) uuid->string))))
((uuid? spec)
(uuid-bytevector spec))
(else spec))
uuid->string))
(else
(error "unknown device title" title))))
(define (check-file-system device type) (define (check-file-system device type)
"Run a file system check of TYPE on DEVICE." "Run a file system check of TYPE on DEVICE."
@ -615,8 +590,7 @@ run a file system check."
""))))) "")))))
(let ((type (file-system-type fs)) (let ((type (file-system-type fs))
(options (file-system-options fs)) (options (file-system-options fs))
(source (canonicalize-device-spec (file-system-device fs) (source (canonicalize-device-spec (file-system-device fs)))
(file-system-title fs)))
(mount-point (string-append root "/" (mount-point (string-append root "/"
(file-system-mount-point fs))) (file-system-mount-point fs)))
(flags (mount-flags->bit-mask (file-system-flags fs)))) (flags (mount-flags->bit-mask (file-system-flags fs))))

View File

@ -507,9 +507,15 @@ upon error."
(error "pre-mount actions failed"))) (error "pre-mount actions failed")))
(if root (if root
(mount-root-file-system (canonicalize-device-spec root) ;; The "--root=SPEC" kernel command-line option always provides a
root-fs-type ;; string, but the string can represent a device, a UUID, or a
#:volatile-root? volatile-root?) ;; label. So check for all three.
(let ((root (cond ((string-prefix? "/" root) root)
((uuid root) => identity)
(else (file-system-label root)))))
(mount-root-file-system (canonicalize-device-spec root)
root-fs-type
#:volatile-root? volatile-root?))
(mount "none" "/root" "tmpfs")) (mount "none" "/root" "tmpfs"))
;; Mount the specified file systems. ;; Mount the specified file systems.

View File

@ -26,6 +26,7 @@
make-marionette make-marionette
marionette-eval marionette-eval
wait-for-file wait-for-file
wait-for-tcp-port
marionette-control marionette-control
marionette-screen-text marionette-screen-text
wait-for-screen-text wait-for-screen-text
@ -187,6 +188,32 @@ FILE has not shown up after TIMEOUT seconds, raise an error."
('failure ('failure
(error "file didn't show up" file)))) (error "file didn't show up" file))))
(define* (wait-for-tcp-port port marionette
#:key (timeout 20))
"Wait for up to TIMEOUT seconds for PORT to accept connections in
MARIONETTE. Raise an error on failure."
;; Note: The 'connect' loop has to run within the guest because, when we
;; forward ports to the host, connecting to the host never raises
;; ECONNREFUSED.
(match (marionette-eval
`(begin
(let ((sock (socket PF_INET SOCK_STREAM 0)))
(let loop ((i 0))
(catch 'system-error
(lambda ()
(connect sock AF_INET INADDR_LOOPBACK ,port)
'success)
(lambda args
(if (< i ,timeout)
(begin
(sleep 1)
(loop (+ 1 i)))
'failure))))))
marionette)
('success #t)
('failure
(error "nobody's listening on port" port))))
(define (marionette-control command marionette) (define (marionette-control command marionette)
"Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as "Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as
\"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc) \"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -55,7 +55,6 @@
(define (tmpfs directory) (define (tmpfs directory)
(file-system (file-system
(device "none") (device "none")
(title 'device)
(mount-point directory) (mount-point directory)
(type "tmpfs") (type "tmpfs")
(check? #f))) (check? #f)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -18,16 +18,11 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build svg) (define-module (gnu build svg)
#:use-module (rsvg)
#:use-module (cairo)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:export (svg->png)) #:export (svg->png))
;; We need Guile-RSVG and Guile-Cairo. Load them lazily, at run time, to
;; allow compilation to proceed. See also <http://bugs.gnu.org/12202>.
(module-autoload! (current-module)
'(rsvg) '(rsvg-handle-new-from-file))
(module-autoload! (current-module)
'(cairo) '(cairo-image-surface-create))
(define* (downscaled-surface surface (define* (downscaled-surface surface
#:key #:key
source-width source-height source-width source-height

View File

@ -106,11 +106,16 @@ the #:references-graphs parameter of 'derivation'."
(not target-arm32?)) (not target-arm32?))
'("-enable-kvm") '("-enable-kvm")
'()) '())
;; Pass "panic=1" so that the guest dies upon error.
"-append" "-append"
;; The serial port name differs between emulated architectures/machines. ,(string-append "panic=1 --load=" builder
,@(if target-arm32?
`(,(string-append "console=ttyAMA0 --load=" builder)) ;; The serial port name differs between emulated
`(,(string-append "console=ttyS0 --load=" builder))) ;; architectures/machines.
" console="
(if target-arm32? "ttyAMA0" "ttyS0"))
;; NIC is not supported on ARM "virt" machine, so use a user mode ;; NIC is not supported on ARM "virt" machine, so use a user mode
;; network stack instead. ;; network stack instead.
,@(if target-arm32? ,@(if target-arm32?
@ -265,7 +270,8 @@ actual /dev name based on DEVICE."
#:key label uuid) #:key label uuid)
"Create an ext-family file system of TYPE on PARTITION. If LABEL is true, "Create an ext-family file system of TYPE on PARTITION. If LABEL is true,
use that as the volume name. If UUID is true, use it as the partition UUID." use that as the volume name. If UUID is true, use it as the partition UUID."
(format #t "creating ~a partition...\n" type) (format #t "creating ~a partition... ~@[label: ~s~] ~@[uuid: ~s~]\n"
type label (and uuid (uuid->string uuid)))
(apply invoke (string-append "mkfs." type) (apply invoke (string-append "mkfs." type)
"-F" partition "-F" partition
`(,@(if label `(,@(if label

View File

@ -1,6 +1,6 @@
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017 Andreas Enge <andreas@enge.fr> # Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> # Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@ -96,6 +96,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/chez.scm \ %D%/packages/chez.scm \
%D%/packages/ci.scm \ %D%/packages/ci.scm \
%D%/packages/cinnamon.scm \ %D%/packages/cinnamon.scm \
%D%/packages/cluster.scm \
%D%/packages/cmake.scm \ %D%/packages/cmake.scm \
%D%/packages/cobol.scm \ %D%/packages/cobol.scm \
%D%/packages/code.scm \ %D%/packages/code.scm \
@ -202,6 +203,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/graphics.scm \ %D%/packages/graphics.scm \
%D%/packages/graphviz.scm \ %D%/packages/graphviz.scm \
%D%/packages/groff.scm \ %D%/packages/groff.scm \
%D%/packages/groovy.scm \
%D%/packages/gsasl.scm \ %D%/packages/gsasl.scm \
%D%/packages/gstreamer.scm \ %D%/packages/gstreamer.scm \
%D%/packages/gtk.scm \ %D%/packages/gtk.scm \
@ -225,7 +227,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/image-processing.scm \ %D%/packages/image-processing.scm \
%D%/packages/image-viewers.scm \ %D%/packages/image-viewers.scm \
%D%/packages/imagemagick.scm \ %D%/packages/imagemagick.scm \
%D%/packages/indent.scm \
%D%/packages/inklingreader.scm \ %D%/packages/inklingreader.scm \
%D%/packages/inkscape.scm \ %D%/packages/inkscape.scm \
%D%/packages/irc.scm \ %D%/packages/irc.scm \
@ -343,6 +344,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/plotutils.scm \ %D%/packages/plotutils.scm \
%D%/packages/polkit.scm \ %D%/packages/polkit.scm \
%D%/packages/popt.scm \ %D%/packages/popt.scm \
%D%/packages/printers.scm \
%D%/packages/profiling.scm \ %D%/packages/profiling.scm \
%D%/packages/pth.scm \ %D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \ %D%/packages/pulseaudio.scm \
@ -480,6 +482,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/networking.scm \ %D%/services/networking.scm \
%D%/services/nfs.scm \ %D%/services/nfs.scm \
%D%/services/shepherd.scm \ %D%/services/shepherd.scm \
%D%/services/sound.scm \
%D%/services/herd.scm \ %D%/services/herd.scm \
%D%/services/pm.scm \ %D%/services/pm.scm \
%D%/services/rsync.scm \ %D%/services/rsync.scm \
@ -551,12 +554,15 @@ dist_patch_DATA = \
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \ %D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
%D%/packages/patches/acl-fix-perl-regex.patch \ %D%/packages/patches/acl-fix-perl-regex.patch \
%D%/packages/patches/acl-hurd-path-max.patch \ %D%/packages/patches/acl-hurd-path-max.patch \
%D%/packages/patches/adb-add-libraries.patch \
%D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-constness-error.patch \
%D%/packages/patches/aegis-perl-tempdir1.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \
%D%/packages/patches/aegis-perl-tempdir2.patch \ %D%/packages/patches/aegis-perl-tempdir2.patch \
%D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-1.patch \
%D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \
%D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/agg-am_c_prototype.patch \
%D%/packages/patches/alsa-lib-add-environment-variable.patch \
%D%/packages/patches/amule-crypto-6.patch \
%D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \ %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
@ -575,9 +581,10 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \ %D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/binutils-ld-new-dtags.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/blast+-fix-makefile.patch \
%D%/packages/patches/boost-fix-icu-build.patch \
%D%/packages/patches/btrfs-progs-e-value-block.patch \
%D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \
@ -602,7 +609,6 @@ dist_patch_DATA = \
%D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clisp-remove-failing-test.patch \
%D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/clx-remove-demo.patch \ %D%/packages/patches/clx-remove-demo.patch \
%D%/packages/patches/cmake-fix-tests.patch \
%D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \
%D%/packages/patches/cool-retro-term-fix-array-size.patch \ %D%/packages/patches/cool-retro-term-fix-array-size.patch \
@ -629,11 +635,14 @@ dist_patch_DATA = \
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \ %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
%D%/packages/patches/doc++-include-directives.patch \ %D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/doxygen-gcc-ice.patch \
%D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/doxygen-test.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \
%D%/packages/patches/e2fsprogs-glibc-2.27.patch \
%D%/packages/patches/eigen-arm-neon-fixes.patch \ %D%/packages/patches/eigen-arm-neon-fixes.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-disable-failing-tests.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \
%D%/packages/patches/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \ %D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \
%D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-exec-path.patch \
@ -642,6 +651,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/eudev-rules-directory.patch \
%D%/packages/patches/evilwm-lost-focus-bug.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \
@ -656,6 +666,8 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \ %D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \
%D%/packages/patches/fcgi-2.4.0-poll.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
%D%/packages/patches/file-CVE-2017-1000249.patch \ %D%/packages/patches/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/findutils-test-xargs.patch \
@ -664,7 +676,6 @@ dist_patch_DATA = \
%D%/packages/patches/fltk-xfont-on-demand.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
%D%/packages/patches/fontconfig-remove-debug-printf.patch \
%D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \
%D%/packages/patches/freeimage-CVE-2016-5684.patch \ %D%/packages/patches/freeimage-CVE-2016-5684.patch \
%D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \ %D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \
@ -696,7 +707,6 @@ dist_patch_DATA = \
%D%/packages/patches/gd-CVE-2018-5711.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \
%D%/packages/patches/gegl-CVE-2012-4433.patch \
%D%/packages/patches/gemma-intel-compat.patch \ %D%/packages/patches/gemma-intel-compat.patch \
%D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
@ -706,13 +716,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/ghostscript-runpath.patch \ %D%/packages/patches/ghostscript-runpath.patch \
%D%/packages/patches/giflib-make-reallocarray-private.patch \ %D%/packages/patches/giflib-make-reallocarray-private.patch \
%D%/packages/patches/gimp-CVE-2017-17784.patch \
%D%/packages/patches/gimp-CVE-2017-17785.patch \
%D%/packages/patches/gimp-CVE-2017-17786.patch \
%D%/packages/patches/gimp-CVE-2017-17787.patch \
%D%/packages/patches/gimp-CVE-2017-17789.patch \
%D%/packages/patches/glib-networking-ssl-cert-file.patch \ %D%/packages/patches/glib-networking-ssl-cert-file.patch \
%D%/packages/patches/glib-respect-datadir.patch \
%D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \
%D%/packages/patches/glibc-CVE-2015-7547.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \
@ -724,12 +728,15 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \ %D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
%D%/packages/patches/glibc-bootstrap-system.patch \ %D%/packages/patches/glibc-bootstrap-system.patch \
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \ %D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-memchr-overflow-i686.patch \ %D%/packages/patches/glibc-memchr-overflow-i686.patch \
%D%/packages/patches/glibc-o-largefile.patch \ %D%/packages/patches/glibc-o-largefile.patch \
%D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \
%D%/packages/patches/glibc-vectorized-strcspn-guards.patch \ %D%/packages/patches/glibc-vectorized-strcspn-guards.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \ %D%/packages/patches/glibc-versioned-locpath.patch \
%D%/packages/patches/glibc-2.27-git-fixes.patch \
%D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \ %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
%D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/glog-gcc-5-demangling.patch \
%D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \
@ -737,6 +744,7 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \
%D%/packages/patches/gnupg-1.4-CVE-2018-12020.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
@ -745,14 +753,15 @@ dist_patch_DATA = \
%D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpsbabel-minizip.patch \ %D%/packages/patches/gpsbabel-minizip.patch \
%D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/graphite2-ffloat-store.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/groff-source-date-epoch.patch \ %D%/packages/patches/groff-source-date-epoch.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-default-utf8.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \
%D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-default-utf8.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-relocatable.patch \
@ -777,14 +786,13 @@ dist_patch_DATA = \
%D%/packages/patches/hdf-eos5-remove-gctp.patch \ %D%/packages/patches/hdf-eos5-remove-gctp.patch \
%D%/packages/patches/hdf-eos5-fix-szip.patch \ %D%/packages/patches/hdf-eos5-fix-szip.patch \
%D%/packages/patches/hdf-eos5-fortrantests.patch \ %D%/packages/patches/hdf-eos5-fortrantests.patch \
%D%/packages/patches/heimdal-CVE-2017-6594.patch \
%D%/packages/patches/heimdal-CVE-2017-11103.patch \
%D%/packages/patches/hmmer-remove-cpu-specificity.patch \ %D%/packages/patches/hmmer-remove-cpu-specificity.patch \
%D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/higan-remove-march-native-flag.patch \
%D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch \
%D%/packages/patches/icecat-use-system-graphite2.patch \ %D%/packages/patches/icecat-use-system-graphite2.patch \
%D%/packages/patches/icecat-use-system-harfbuzz.patch \ %D%/packages/patches/icecat-use-system-harfbuzz.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \
@ -805,6 +813,7 @@ dist_patch_DATA = \
%D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/jq-CVE-2015-8863.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/kiki-level-selection-crash.patch \ %D%/packages/patches/kiki-level-selection-crash.patch \
%D%/packages/patches/kiki-makefile.patch \ %D%/packages/patches/kiki-makefile.patch \
%D%/packages/patches/kiki-missing-includes.patch \ %D%/packages/patches/kiki-missing-includes.patch \
@ -817,7 +826,6 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \ %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \ %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/laby-make-install.patch \ %D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/lcms-CVE-2016-10165.patch \
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \ %D%/packages/patches/ldc-bootstrap-disable-tests.patch \
%D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \ %D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \
%D%/packages/patches/ledger-fix-uninitialized.patch \ %D%/packages/patches/ledger-fix-uninitialized.patch \
@ -849,17 +857,20 @@ dist_patch_DATA = \
%D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \
%D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libgpg-error-aarch64-logging-fix.patch \
%D%/packages/patches/libgxps-CVE-2017-11590.patch \ %D%/packages/patches/libgxps-CVE-2017-11590.patch \
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/liboop-mips64-deplibs-fix.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/liblxqt-include.patch \ %D%/packages/patches/liblxqt-include.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-frame-length.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libreoffice-icu.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \
@ -867,19 +878,16 @@ dist_patch_DATA = \
%D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh-hostname-parser-bug.patch \
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtasn1-CVE-2017-10790.patch \
%D%/packages/patches/libtasn1-CVE-2018-6003.patch \
%D%/packages/patches/libtheora-config-guess.patch \ %D%/packages/patches/libtheora-config-guess.patch \
%D%/packages/patches/libtiff-CVE-2017-9935.patch \ %D%/packages/patches/libtiff-CVE-2017-9935.patch \
%D%/packages/patches/libtiff-CVE-2017-18013.patch \ %D%/packages/patches/libtiff-CVE-2017-18013.patch \
%D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \ %D%/packages/patches/libusb-for-axoloti.patch \
%D%/packages/patches/libutils-add-includes.patch \
%D%/packages/patches/libutils-remove-damaging-includes.patch \
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \
%D%/packages/patches/libvorbis-CVE-2017-14632.patch \
%D%/packages/patches/libvorbis-CVE-2017-14633.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libxcb-python-3.5-compat.patch \
%D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxslt-generated-ids.patch \
%D%/packages/patches/libxt-guix-search-paths.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \
%D%/packages/patches/lierolibre-check-unaligned-access.patch \ %D%/packages/patches/lierolibre-check-unaligned-access.patch \
@ -905,10 +913,13 @@ dist_patch_DATA = \
%D%/packages/patches/lxsession-use-gapplication.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \
%D%/packages/patches/lyx-2.2.3-fix-test.patch \ %D%/packages/patches/lyx-2.2.3-fix-test.patch \
%D%/packages/patches/mailutils-uninitialized-memory.patch \ %D%/packages/patches/mailutils-uninitialized-memory.patch \
%D%/packages/patches/make-glibc-compat.patch \
%D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \
%D%/packages/patches/maven-generate-component-xml.patch \
%D%/packages/patches/maven-generate-javax-inject-named.patch \
%D%/packages/patches/mcron-install.patch \ %D%/packages/patches/mcron-install.patch \
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \
@ -927,14 +938,12 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-shell-version.patch \ %D%/packages/patches/mozjs38-shell-version.patch \
%D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mumble-1.2.19-abs.patch \
%D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mumps-build-parallelism.patch \
%D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \
%D%/packages/patches/mupdf-CVE-2017-17858.patch \
%D%/packages/patches/mupdf-CVE-2018-6544.patch \
%D%/packages/patches/mupdf-CVE-2018-1000051.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
%D%/packages/patches/mutt-store-references.patch \ %D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/myrepos-CVE-2018-7032.patch \
%D%/packages/patches/net-tools-bitrot.patch \ %D%/packages/patches/net-tools-bitrot.patch \
%D%/packages/patches/netcdf-date-time.patch \ %D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netcdf-tst_h_par.patch \ %D%/packages/patches/netcdf-tst_h_par.patch \
@ -962,6 +971,7 @@ dist_patch_DATA = \
%D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \
%D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \
%D%/packages/patches/opensmtpd-fix-crash.patch \
%D%/packages/patches/openssl-runpath.patch \ %D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.patch \
@ -977,8 +987,7 @@ dist_patch_DATA = \
%D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/pcre2-CVE-2017-7186.patch \ %D%/packages/patches/perf-gcc-ice.patch \
%D%/packages/patches/pcre2-CVE-2017-8786.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \ %D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \ %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \
@ -999,6 +1008,7 @@ dist_patch_DATA = \
%D%/packages/patches/pinball-src-deps.patch \ %D%/packages/patches/pinball-src-deps.patch \
%D%/packages/patches/pinball-system-ltdl.patch \ %D%/packages/patches/pinball-system-ltdl.patch \
%D%/packages/patches/pingus-sdl-libs-config.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pius.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \
%D%/packages/patches/plink-1.07-unclobber-i.patch \ %D%/packages/patches/plink-1.07-unclobber-i.patch \
%D%/packages/patches/plink-endian-detection.patch \ %D%/packages/patches/plink-endian-detection.patch \
@ -1015,8 +1025,8 @@ dist_patch_DATA = \
%D%/packages/patches/psm-ldflags.patch \ %D%/packages/patches/psm-ldflags.patch \
%D%/packages/patches/psm-repro.patch \ %D%/packages/patches/psm-repro.patch \
%D%/packages/patches/pulseaudio-fix-mult-test.patch \ %D%/packages/patches/pulseaudio-fix-mult-test.patch \
%D%/packages/patches/pulseaudio-glibc-2.27.patch \
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \ %D%/packages/patches/pulseaudio-longer-test-timeout.patch \
%D%/packages/patches/pycairo-wscript.patch \
%D%/packages/patches/pybugz-encode-error.patch \ %D%/packages/patches/pybugz-encode-error.patch \
%D%/packages/patches/pybugz-stty.patch \ %D%/packages/patches/pybugz-stty.patch \
%D%/packages/patches/pygpgme-disable-problematic-tests.patch \ %D%/packages/patches/pygpgme-disable-problematic-tests.patch \
@ -1043,7 +1053,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-nose-timer-drop-ordereddict.patch \ %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-pillow-fix-failing-tests.patch \ %D%/packages/patches/python-pillow-fix-failing-tests.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
%D%/packages/patches/python-statsmodels-fix-tests.patch \
%D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \ %D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \
%D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-faker-fix-build-32bit.patch \ %D%/packages/patches/python-faker-fix-build-32bit.patch \
@ -1058,10 +1067,12 @@ dist_patch_DATA = \
%D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \ %D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quassel-qt-5.11.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/rapicorn-isnan.patch \
%D%/packages/patches/raptor2-heap-overflow.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \
@ -1088,9 +1099,9 @@ dist_patch_DATA = \
%D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-build-parallelism.patch \
%D%/packages/patches/scotch-graph-diam-64.patch \ %D%/packages/patches/scotch-graph-diam-64.patch \
%D%/packages/patches/scotch-graph-induce-type-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \
%D%/packages/patches/sddm-fix-build-with-qt-5.11-1024.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/shadow-CVE-2018-7169.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \
%D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-session.patch \
@ -1100,6 +1111,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \ %D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/strace-kernel-4.16.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/swish-e-format-security.patch \
@ -1107,7 +1119,7 @@ dist_patch_DATA = \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \
%D%/packages/patches/t1lib-CVE-2011-1552+.patch \ %D%/packages/patches/t1lib-CVE-2011-1552+.patch \
%D%/packages/patches/tar-CVE-2016-6321.patch \ %D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \
%D%/packages/patches/tclxml-3.2-install.patch \ %D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \
@ -1143,7 +1155,6 @@ dist_patch_DATA = \
%D%/packages/patches/unzip-overflow-long-fsize.patch \ %D%/packages/patches/unzip-overflow-long-fsize.patch \
%D%/packages/patches/unzip-remove-build-date.patch \ %D%/packages/patches/unzip-remove-build-date.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-CVE-2018-7738.patch \
%D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \ %D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/valgrind-enable-arm.patch \ %D%/packages/patches/valgrind-enable-arm.patch \
@ -1178,8 +1189,6 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \
%D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \
%D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \
%D%/packages/patches/xcb-proto-python3-print.patch \
%D%/packages/patches/xcb-proto-python3-whitespace.patch \
%D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \

View File

@ -188,7 +188,7 @@ decreasing version order."
version>?))) version>?)))
(if version (if version
(filter (lambda (package) (filter (lambda (package)
(string-prefix? version (package-version package))) (version-prefix? version (package-version package)))
matching) matching)
matching))))) matching)))))

View File

@ -83,7 +83,7 @@ available to help to click.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public footswitch (define-public footswitch
(let ((commit "deedd87fd90fad90ce342aeabafd4a3198d7d3d4") (let ((commit "ca43d53fc2002520cc825d119702afc124303e73")
(revision "2")) (revision "2"))
(package (package
(name "footswitch") (name "footswitch")
@ -95,7 +95,8 @@ available to help to click.")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1ys90wqyz62kffa8m3hgaq1dl7f29x3mrc3zqfjrkbn2ps0k6ps0")))) (base32
"14pyzc4ws1mj859xs9n4x83wzxxvd3bh5bdxzr6nv267xwx1mq68"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -112,6 +113,7 @@ available to help to click.")
(let ((bin (string-append (assoc-ref outputs "out") (let ((bin (string-append (assoc-ref outputs "out")
"/bin"))) "/bin")))
(install-file "footswitch" bin) (install-file "footswitch" bin)
(install-file "scythe" bin)
#t)))))) #t))))))
(home-page "https://github.com/rgerganov/footswitch") (home-page "https://github.com/rgerganov/footswitch")
(synopsis "Command line utility for PCsensor foot switch") (synopsis "Command line utility for PCsensor foot switch")

View File

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -47,8 +48,20 @@
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "tests" `(#:test-target "tests"
#:modules ((ice-9 ftw)
,@%gnu-build-system-modules)
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; XXX After repacking the sources the timestamps are reset to the
;; epoch, which leads to a failure in gzipping the CHANGES file.
(add-after 'unpack 'ensure-no-mtimes-pre-1980
(lambda _
(let ((early-1980 315619200)) ; 1980-01-02 UTC
(ftw "." (lambda (file stat flag)
(unless (<= early-1980 (stat:mtime stat))
(utime file early-1980 early-1980))
#t))
#t)))
(add-after 'build 'patch-exec-bin-sh (add-after 'build 'patch-exec-bin-sh
(lambda _ (lambda _
(substitute* "test/run" (substitute* "test/run"
@ -64,10 +77,11 @@
;; this user does not exist within Guix's build environment. ;; this user does not exist within Guix's build environment.
(for-each (lambda (file) (for-each (lambda (file)
(delete-file (string-append "test/" file))) (delete-file (string-append "test/" file)))
'("setfacl-X.test" "cp.test" "misc.test")))) '("setfacl-X.test" "cp.test" "misc.test"))
#t))
(replace 'install (replace 'install
(lambda _ (lambda _
(zero? (system* "make" "install" "install-lib" "install-dev"))))))) (invoke "make" "install" "install-lib" "install-dev"))))))
(inputs `(("attr" ,attr))) (inputs `(("attr" ,attr)))
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View File

@ -50,8 +50,11 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages file)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
@ -70,6 +73,7 @@
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages openldap) #:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt) #:use-module (gnu packages mcrypt)
@ -97,7 +101,8 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages mpi)) #:use-module (gnu packages mpi)
#:use-module (gnu packages web))
(define-public aide (define-public aide
(package (package
@ -358,16 +363,15 @@ hostname.")
(define-public shadow (define-public shadow
(package (package
(name "shadow") (name "shadow")
(version "4.5") (version "4.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/shadow-maint/shadow/releases/" "https://github.com/shadow-maint/shadow/releases/"
"download/" version "/shadow-" version ".tar.xz")) "download/" version "/shadow-" version ".tar.xz"))
(patches (search-patches "shadow-CVE-2018-7169.patch"))
(sha256 (sha256
(base32 (base32
"0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w")))) "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU `(;; Assume System V `setpgrp (void)', which is the default on GNU
@ -386,7 +390,8 @@ hostname.")
"libc")))) "libc"))))
(substitute* "lib/nscd.c" (substitute* "lib/nscd.c"
(("/usr/sbin/nscd") (("/usr/sbin/nscd")
(string-append libc "/sbin/nscd")))))) (string-append libc "/sbin/nscd")))
#t)))
(add-after 'install 'remove-groups (add-after 'install 'remove-groups
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Remove `groups', which is already provided by Coreutils. ;; Remove `groups', which is already provided by Coreutils.
@ -486,8 +491,8 @@ allow automatic login and starting any app.")
(output (assoc-ref %outputs "out")) (output (assoc-ref %outputs "out"))
(etc (string-append output "/etc"))) (etc (string-append output "/etc")))
(setenv "PATH" (string-append xz "/bin")) (setenv "PATH" (string-append xz "/bin"))
(system* (string-append tar "/bin/tar") "xvf" (invoke (string-append tar "/bin/tar") "xvf"
source) source)
(chdir ,(string-append "netbase-" version)) (chdir ,(string-append "netbase-" version))
(mkdir-p etc) (mkdir-p etc)
(for-each copy-file (for-each copy-file
@ -603,10 +608,10 @@ connection alive.")
(define-public isc-dhcp (define-public isc-dhcp
(let* ((bind-major-version "9") (let* ((bind-major-version "9")
(bind-minor-version "9") (bind-minor-version "11")
(bind-patch-version "11") (bind-patch-version "3")
(bind-release-type "-P") ; for patch release, use "-P" (bind-release-type "") ; for patch release, use "-P"
(bind-release-version "1") ; for patch release, e.g. "6" (bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version (bind-version (string-append bind-major-version
"." "."
bind-minor-version bind-minor-version
@ -616,14 +621,14 @@ connection alive.")
bind-release-version))) bind-release-version)))
(package (package
(name "isc-dhcp") (name "isc-dhcp")
(version "4.3.6-P1") (version "4.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/dhcp/" (uri (string-append "http://ftp.isc.org/isc/dhcp/"
version "/dhcp-" version ".tar.gz")) version "/dhcp-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1hx3az6ckvgvybr1ag4k9kqr8zfcpzcww4vpw5gz0mi8y2z7gl9g")))) "025nfqx4zwdgv4b3rkw26ihcj312vir08jk6yi57ndmb4a4m08ia"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:parallel-build? #f `(#:parallel-build? #f
@ -669,16 +674,16 @@ connection alive.")
sh " SHELL=" sh)))) sh " SHELL=" sh))))
(let ((bind-directory (string-append "bind-" ,bind-version))) (let ((bind-directory (string-append "bind-" ,bind-version)))
(system* "tar" "xf" "bind.tar.gz") (invoke "tar" "xf" "bind.tar.gz")
(for-each patch-shebang (for-each patch-shebang
(find-files bind-directory ".*")) (find-files bind-directory ".*"))
(zero? (system* "tar" "cf" "bind.tar.gz" (invoke "tar" "cf" "bind.tar.gz"
bind-directory bind-directory
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--sort=name" "--sort=name"
"--mtime=@0" "--mtime=@0"
"--owner=root:0" "--owner=root:0"
"--group=root:0")))))) "--group=root:0")))))
(add-after 'install 'post-install (add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Install the dhclient script for GNU/Linux and make sure ;; Install the dhclient script for GNU/Linux and make sure
@ -704,7 +709,8 @@ connection alive.")
,(map (lambda (dir) ,(map (lambda (dir)
(string-append dir "/bin:" (string-append dir "/bin:"
dir "/sbin")) dir "/sbin"))
(list inetutils net-tools coreutils sed)))))))))) (list inetutils net-tools coreutils sed))))
#t))))))
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
@ -722,7 +728,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz")) "/bind-" bind-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1a4g6nzzrbmhngdgvgv1jjq4fm06m8fwc2a0gskkchplxl7dva20")))) "1xbnb2b11274z9frc9y7nvkyxr52qx09bwb97gf9qzzcn8adx78d"))))
;; When cross-compiling, we need the cross Coreutils and sed. ;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS. ;; Otherwise just use those from %FINAL-INPUTS.
@ -737,7 +743,7 @@ connection alive.")
"ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
reference implementation of all aspects of DHCP, through a suite of DHCP reference implementation of all aspects of DHCP, through a suite of DHCP
tools: server, client, and relay agent.") tools: server, client, and relay agent.")
(license license:isc) (license license:mpl2.0)
(properties '((cpe-name . "dhcp")))))) (properties '((cpe-name . "dhcp"))))))
(define-public libpcap (define-public libpcap
@ -898,13 +904,15 @@ at once based on a Perl regular expression.")
"0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7")) "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile.in" '(begin
(("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}") (substitute* "Makefile.in"
;; Don't try to chown root. (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
"") ;; Don't try to chown root.
(("mkdir -p \\$\\(ROTT_STATDIR\\)") "")
;; Don't attempt to create /var/lib/rottlog. (("mkdir -p \\$\\(ROTT_STATDIR\\)")
"true"))))) ;; Don't attempt to create /var/lib/rottlog.
"true"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
@ -955,7 +963,7 @@ system administrator.")
(define-public sudo (define-public sudo
(package (package
(name "sudo") (name "sudo")
(version "1.8.22") (version "1.8.23")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -965,10 +973,12 @@ system administrator.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj")) "0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(delete-file-recursively "lib/zlib")))) '(begin
(delete-file-recursively "lib/zlib")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -1255,7 +1265,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica (define-public acpica
(package (package
(name "acpica") (name "acpica")
(version "20180313") (version "20180531")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1263,7 +1273,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16galaadmr37q2pvk2gyxrm8d1xldzk31djfxfq9v1c9yq4i425h")))) "0q7vg1nr51f3rg16vjh4glz361a64r6gpm46fqkl2jf4fq7g43g5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("flex" ,flex) (native-inputs `(("flex" ,flex)
("bison" ,bison))) ("bison" ,bison)))
@ -1272,7 +1282,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
"CC=gcc" "CC=gcc"
"HOST=_LINUX" "HOST=_LINUX"
"OPT_CFLAGS=-Wall -fno-strict-aliasing") "OPT_CFLAGS=-Wall -fno-strict-aliasing")
#:tests? #f ; no 'check' target. #:tests? #f ; no 'check' target
#:phases (modify-phases %standard-phases (delete 'configure)))) #:phases (modify-phases %standard-phases (delete 'configure))))
(home-page "https://acpica.org/") (home-page "https://acpica.org/")
(synopsis "Tools for the development and debug of ACPI tables") (synopsis "Tools for the development and debug of ACPI tables")
@ -1284,7 +1294,7 @@ of ACPI meant to be directly integrated into the host OS as a kernel-resident
subsystem, and a small set of tools to assist in developing and debugging ACPI subsystem, and a small set of tools to assist in developing and debugging ACPI
tables. This package contains only the user-space tools needed for ACPI table tables. This package contains only the user-space tools needed for ACPI table
development, not the kernel implementation of ACPI.") development, not the kernel implementation of ACPI.")
(license license:gpl2))) ; Dual GPLv2/ACPICA Licence (license license:gpl2))) ; dual GPLv2/ACPICA Licence
(define-public stress (define-public stress
(package (package
@ -1407,9 +1417,11 @@ environment variable is set and output is to tty.")
(base32 (base32
"1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4")) "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(substitute* "tests/testsuite" (snippet '(begin
(("#![[:blank:]]?/bin/sh") (substitute* "tests/testsuite"
"#!$SHELL"))))) (("#![[:blank:]]?/bin/sh")
"#!$SHELL"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -1829,14 +1841,14 @@ done with the @code{auditctl} utility.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
(map delete-file-recursively (for-each delete-file-recursively
;; Remove bundled lua, pcap, and pcre libraries. ;; Remove bundled lua, pcap, and pcre libraries.
;; FIXME: Remove bundled liblinear once packaged. ;; FIXME: Remove bundled liblinear once packaged.
'("liblua" '("liblua"
"libpcap" "libpcap"
"libpcre" "libpcre"
;; Remove pre-compiled binares. ;; Remove pre-compiled binares.
"mswin32")) "mswin32"))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
@ -1941,7 +1953,7 @@ throughput (in the same interval).")
(define-public thefuck (define-public thefuck
(package (package
(name "thefuck") (name "thefuck")
(version "3.26") (version "3.27")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/nvbn/thefuck/archive/" (uri (string-append "https://github.com/nvbn/thefuck/archive/"
@ -1949,7 +1961,7 @@ throughput (in the same interval).")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ddlf25ik97z34bcpc52xyfhlfm6a3hdi43l6cz4ggwcawdwvn1p")) "0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96"))
(patches (search-patches "thefuck-test-environ.patch")))) (patches (search-patches "thefuck-test-environ.patch"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
@ -2141,7 +2153,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
(snippet (snippet
;; Remove binaries contained in the tarball which are only for the ;; Remove binaries contained in the tarball which are only for the
;; target and can be regenerated anyway. ;; target and can be regenerated anyway.
'(delete-file-recursively "bin")) '(begin
(delete-file-recursively "bin")
#t))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -2468,7 +2482,7 @@ make it a perfect utility on modern distros.")
(define-public thermald (define-public thermald
(package (package
(name "thermald") (name "thermald")
(version "1.7.1") (version "1.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2476,25 +2490,15 @@ make it a perfect utility on modern distros.")
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (base32 (sha256 (base32
"0isgmav3z3nb5bsdya8m3haqhzj1lyfjx7i812cqfjrh2a9msin4")))) "15a6vb67y5wsmf0irrq7sxam18yqpz64130k83ryf24mp40h661b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases
(add-after (modify-phases %standard-phases
'unpack 'autogen.sh-and-fix-paths (add-after 'unpack 'bootstrap
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (invoke "sh" "autogen.sh")
;; XXX this can probably be removed after version 1.7.1. #t)))
;; upstartconfir is hardcoded to /etc/init and the build
;; system tries to mkdir that. We don't even need upstart
;; files at all; this is a fast and kludgy workaround
(substitute* "data/Makefile.am"
(("upstartconfdir = /etc/init")
(string-append "upstartconfdir = "
out "/etc/init")))
;; Now run autogen
(invoke "sh" "autogen.sh")
#t))))
#:configure-flags #:configure-flags
(let ((out (assoc-ref %outputs "out"))) (let ((out (assoc-ref %outputs "out")))
(list (string-append "--sysconfdir=" (list (string-append "--sysconfdir="
@ -2516,7 +2520,7 @@ make it a perfect utility on modern distros.")
(synopsis "CPU scaling for thermal management") (synopsis "CPU scaling for thermal management")
(description "The Linux Thermal Daemon helps monitor and control temperature (description "The Linux Thermal Daemon helps monitor and control temperature
on systems running the Linux kernel.") on systems running the Linux kernel.")
;; arm and aarch64 don't have cpuid.h ;; arm and aarch64 don't have cpuid.h.
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(license license:gpl2+))) (license license:gpl2+)))
@ -2652,3 +2656,116 @@ Python loading in HPC environments.")
;; This package supports x86_64 and PowerPC64 ;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(license license:lgpl2.1))) (license license:lgpl2.1)))
(define-public inxi-minimal
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.0.11-1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/smxi/inxi")
(commit version)))
(sha256
(base32
"07wihl4gsamq98mhxvm6k4vpphym75467cxfa19b3g5ggpyq894g"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash)
("perl" ,perl)))
(native-inputs
`(("gzip" ,gzip)))
(arguments
`(#:modules
((guix build utils)
(ice-9 match)
(srfi srfi-26))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match)
(srfi srfi-26))
(setenv "PATH" (string-append
(assoc-ref %build-inputs "bash") "/bin" ":"
(assoc-ref %build-inputs "gzip") "/bin" ":"
(assoc-ref %build-inputs "perl") "/bin" ":"))
(copy-recursively (assoc-ref %build-inputs "source")
,(string-append real-name "-" version))
(with-directory-excursion ,(string-append real-name "-" version)
(with-fluids ((%default-port-encoding #f))
(substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
(let ((bin (string-append %output "/bin")))
(install-file "inxi" bin)
(wrap-program (string-append bin "/inxi")
`("PATH" ":" =
("$PATH"
,@(map (lambda (input)
(match input
((name . store)
(let ((store-append
(cut string-append store <>)))
(cond
((member name '("util-linux"))
(string-append (store-append "/bin") ":"
(store-append "/sbin")))
((member name '("dmidecode" "iproute2"))
(store-append "/sbin"))
(else (store-append "/bin")))))))
%build-inputs)))
`("PERL5LIB" ":" =
,(delete
""
(map (match-lambda
(((? (cut string-prefix? "perl-" <>) name) . dir)
(string-append dir "/lib/perl5/site_perl"))
(_ ""))
%build-inputs)))))
(invoke "gzip" "inxi.1")
(install-file "inxi.1.gz"
(string-append %output "/share/man/man1")))
#t)))
(home-page "https://smxi.org/docs/inxi.htm")
(synopsis "Full-featured system information script")
(description "Inxi is a system information script that can display
various things about your hardware and software to users in an IRC chatroom or
support forum. It runs with the @code{/exec} command in most IRC clients.")
(license license:gpl3+))))
(define-public inxi
(package
(inherit inxi-minimal)
(name "inxi")
(inputs
`(("dmidecode" ,dmidecode)
("file" ,file)
("bind:utils" ,isc-bind "utils") ; dig
("gzip" ,gzip)
("iproute2" ,iproute) ; ip
("kmod" ,kmod) ; modinfo
("lm-sensors" ,lm-sensors)
("mesa-utils" ,mesa-utils)
("pciutils" ,pciutils)
("procps" ,procps)
("tar" ,tar)
("tree" ,tree)
("util-linux" ,util-linux) ; lsblk
("usbutils" ,usbutils) ; lsusb
("wmctrl" ,wmctrl)
("xdpyinfo" ,xdpyinfo)
("xprop" ,xprop)
("xrandr" ,xrandr)
("coreutils" ,coreutils) ; uptime
("inetutils" ,inetutils) ; ifconfig
("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
("perl-http-tiny" ,perl-http-tiny)
("perl-io-socket-ssl" ,perl-io-socket-ssl)
("perl-json-xs" ,perl-json-xs)
("perl-time-hires" ,perl-time-hires)
;; TODO: Add more inputs:
;; ipmi-sensors
;; hddtemp
;; perl-xml-dumper
;; ipmitool
,@(package-inputs inxi-minimal)))))

View File

@ -51,15 +51,15 @@ formats.")
(define-public qrencode (define-public qrencode
(package (package
(name "qrencode") (name "qrencode")
(version "3.4.4") (version "4.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://fukuchi.org/works/qrencode/qrencode-" version "https://fukuchi.org/works/qrencode/qrencode-" version
".tar.gz")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577")))) "02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("libpng" ,libpng))) (inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -27,7 +27,9 @@
(define-module (gnu packages algebra) (define-module (gnu packages algebra)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages ed) #:use-module (gnu packages ed)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
@ -60,15 +62,15 @@
(define-public mpfrcx (define-public mpfrcx
(package (package
(name "mpfrcx") (name "mpfrcx")
(version "0.4.2") (version "0.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.multiprecision.org/mpfrcx/download/mpfrcx-" "http://www.multiprecision.org/downloads/mpfrcx-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0grw66b255r574lvll1bqccm5myj2m8ajzsjaygcyq9zjnnbnhhy")))) "1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("gmp" ,gmp) `(("gmp" ,gmp)
@ -82,7 +84,7 @@ on the rounding. For the time being, only the few functions needed to
implement the floating point approach to complex multiplication are implement the floating point approach to complex multiplication are
implemented. On the other hand, these comprise asymptotically fast implemented. On the other hand, these comprise asymptotically fast
multiplication routines such as ToomCook and the FFT.") multiplication routines such as ToomCook and the FFT.")
(license license:lgpl2.1+) (license license:lgpl3+)
(home-page "http://mpfrcx.multiprecision.org/"))) (home-page "http://mpfrcx.multiprecision.org/")))
(define-public cm (define-public cm
@ -211,7 +213,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(define-public giac-xcas (define-public giac-xcas
(package (package
(name "giac-xcas") (name "giac-xcas")
(version "1.4.9-45") (version "1.4.9-59")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly ;; "~parisse/giac" is not used because the maintainer regularly
@ -223,7 +225,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
"source/giac_" version ".tar.gz")) "source/giac_" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"11za5rznr2dgy6598y4iwrcyi86w7f601ci9i794kl8k22pqhcd8")))) "0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -519,31 +521,40 @@ a C program.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public fftw (define-public fftw
;; TODO: Make this 3.3.7 (see below) on the next upgrade cycle.
(package (package
(name "fftw") (name "fftw")
(version "3.3.5") (version "3.3.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-" (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
version".tar.gz")) version".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kwbx92ps0r7s2mqy7lxbxanslxdzj7dp7r7gmdkzv1j8yqf3kwf")))) "0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags `(#:configure-flags
'("--enable-shared" "--enable-openmp" "--enable-threads") '("--enable-shared" "--enable-openmp" "--enable-threads"
#:phases (alist-cons-before ,@(let ((system (or (%current-target-system) (%current-system))))
'build 'no-native ;; Enable SIMD extensions for codelets. See details at:
(lambda _ ;; <http://fftw.org/fftw3_doc/Installation-on-Unix.html>.
;; By default '-mtune=native' is used. However, that may (cond
;; cause the use of ISA extensions (SSE2, etc.) that are ((string-prefix? "x86_64" system)
;; not necessarily available on the user's machine when '("--enable-sse2" "--enable-avx" "--enable-avx2"
;; that package is built on a different machine. "--enable-avx512" "--enable-avx-128-fma"))
(substitute* (find-files "." "Makefile$") ((string-prefix? "i686" system)
(("-mtune=native") ""))) '("--enable-sse2"))
%standard-phases))) ((string-prefix? "aarch64" system)
;; Note that fftw supports NEON on 32-bit ARM only when
;; compiled for single-precision.
'("--enable-neon"))
(else
'())))
;; By default '-mtune=native' is used. However, that may cause the
;; use of ISA extensions (e.g. AVX) that are not necessarily
;; available on the user's machine when that package is built on a
;; different machine.
"ax_cv_c_flags__mtune_native=no")))
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
(home-page "http://fftw.org") (home-page "http://fftw.org")
(synopsis "Computing the discrete Fourier transform") (synopsis "Computing the discrete Fourier transform")
@ -559,8 +570,15 @@ cosine/ sine transforms or DCT/DST).")
(name "fftwf") (name "fftwf")
(arguments (arguments
(substitute-keyword-arguments (package-arguments fftw) (substitute-keyword-arguments (package-arguments fftw)
((#:configure-flags cf) ((#:configure-flags fftw-configure-flags)
`(cons "--enable-float" ,cf)))) `(cons* "--enable-single"
,@(if (string-prefix? "arm" (or (%current-target-system)
(%current-system)))
;; fftw supports NEON on 32-bit ARM only when compiled
;; for single-precision, so add it here.
'("--enable-neon")
'())
,fftw-configure-flags))))
(description (description
(string-append (package-description fftw) (string-append (package-description fftw)
" Single-precision version.")))) " Single-precision version."))))
@ -579,42 +597,6 @@ cosine/ sine transforms or DCT/DST).")
(string-append (package-description fftw) (string-append (package-description fftw)
" With OpenMPI parallelism support.")))) " With OpenMPI parallelism support."))))
(define-public fftw-3.3.7
;; TODO: Make this the default 'fftw' on the next upgrade cycle.
(package
(inherit fftw)
(version "3.3.7")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
version".tar.gz"))
(sha256
(base32
"0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v"))))))
(define-public fftw-avx
(package
(inherit fftw-3.3.7)
(name "fftw-avx")
(arguments
(substitute-keyword-arguments (package-arguments fftw-3.3.7)
((#:configure-flags flags ''())
;; Enable AVX & co. See details at:
;; <http://fftw.org/fftw3_doc/Installation-on-Unix.html>.
`(append '("--enable-avx" "--enable-avx2" "--enable-avx512"
"--enable-avx-128-fma")
,flags))
((#:substitutable? _ #f)
;; To run the tests, we must have a CPU that supports all these
;; extensions. Since we cannot be sure that machines in the build
;; farm support them, disable substitutes altogether.
#f)
((#:phases _)
;; Since we're not providing binaries, let '-mtune=native' through.
'%standard-phases)))
(synopsis "Computing the discrete Fourier transform (AVX2-optimized)")
(supported-systems '("x86_64-linux"))))
(define-public java-la4j (define-public java-la4j
(package (package
(name "java-la4j") (name "java-la4j")
@ -732,9 +714,10 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
;; but maintainers say it's a known issue and it's unsupported ;; but maintainers say it's a known issue and it's unsupported
;; anyway, so just skip them. ;; anyway, so just skip them.
'(begin '(begin
(substitute* "unsupported/CMakeLists.txt"
(("add_subdirectory\\(test.*")
"# Do not build the tests for unsupported features.\n"))
(substitute* "CMakeLists.txt" (substitute* "CMakeLists.txt"
(("add_subdirectory\\(unsupported\\)")
"# Do not build the tests for unsupported features.\n")
;; Work around ;; Work around
;; <http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1114>. ;; <http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1114>.
(("\"include/eigen3\"") (("\"include/eigen3\"")
@ -743,7 +726,8 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
;; See ;; See
;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d ;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d
((".*svd_preallocate[^\n]*" &) ((".*svd_preallocate[^\n]*" &)
(string-append "//" & " // Not supported by BDCSVD"))))))) (string-append "//" & " // Not supported by BDCSVD")))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(;; Turn off debugging symbols to save space. '(;; Turn off debugging symbols to save space.
@ -774,3 +758,37 @@ features, and more.")
;; Most of the code is MPLv2, with a few files under LGPLv2.1+ or BSD-3. ;; Most of the code is MPLv2, with a few files under LGPLv2.1+ or BSD-3.
;; See 'COPYING.README' for details. ;; See 'COPYING.README' for details.
(license license:mpl2.0))) (license license:mpl2.0)))
(define-public xtensor
(package
(name "xtensor")
(version "0.15.9")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/QuantStack/xtensor/archive/"
version ".tar.gz"))
(sha256
(base32
"0mlsw4p1w5mh7pscddfdamz27zq3wml5qla3vbzgvif34vsqc8ra"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(native-inputs
`(("googletest" ,googletest)
("xtl" ,xtl)))
(arguments
`(#:configure-flags
'("-DBUILD_TESTS=ON")
#:test-target "xtest"))
(home-page "http://quantstack.net/xtensor")
(synopsis "C++ tensors with broadcasting and lazy computing")
(description "xtensor is a C++ library meant for numerical analysis with
multi-dimensional array expressions.
xtensor provides:
@itemize
@item an extensible expression system enabling lazy broadcasting.
@item an API following the idioms of the C++ standard library.
@item tools to manipulate array expressions and build upon xtensor.
@end itemize")
(license license:bsd-3)))

View File

@ -27,18 +27,73 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system android-ndk)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages selinux)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages linux)) #:use-module (gnu packages linux))
(define-public android-make-stub
(package
(name "android-make-stub")
(version "0.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/daym/android-make-stub.git")
(commit (string-append "v" version))))
(file-name (string-append "android-make-stub-"
version "-checkout"))
(sha256
(base32
"0y1b2x96d37n6f1bp6dcx08bn08zac0cylmbfsx6mf2nahc02fhc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; None exist.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(invoke "make" (string-append "prefix=" out) "install")
#t))))))
(home-page "https://github.com/daym/android-make-stub")
(synopsis "Stubs for the @command{make} system of the Android platform")
(description "@code{android-make-stub} provides stubs for the
@command{make} system of the Android platform. This allows us to
use their packages mostly unmodified in our Android NDK build system.")
(license license:asl2.0)))
(define-public android-googletest
(package (inherit googletest)
(name "android-googletest")
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-host-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(symlink "libgtest.so"
(string-append lib "/libgtest_host.so"))
(symlink "libgmock.so"
(string-append lib "/libgmock_host.so"))
#t))))))))
;; The Makefiles that we add are largely based on the Debian ;; The Makefiles that we add are largely based on the Debian
;; packages. They are licensed under GPL-2 and have copyright: ;; packages. They are licensed under GPL-2 and have copyright:
;; 2012, Stefan Handschuh <handschuh.stefan@googlemail.com> ;; 2012, Stefan Handschuh <handschuh.stefan@googlemail.com>
@ -58,52 +113,69 @@
version "-checkout")) version "-checkout"))
(sha256 (sha256
(base32 (base32
"0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")))) "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg"))
(patches
(search-patches "libbase-use-own-logging.patch"
"libbase-fix-includes.patch"
"libutils-remove-damaging-includes.patch"
"libutils-add-includes.patch"
"adb-add-libraries.patch"
"libziparchive-add-includes.patch"))))
(define liblog (define (android-platform-system-extras version)
(origin
(method git-fetch)
(uri (git-reference
(url "https://android.googlesource.com/platform/system/extras")
(commit (string-append "android-" version))))
(file-name (string-append "android-platform-system-extras-"
version "-checkout"))
(sha256
(base32
"18130c23ybqcpgjc5v6f8kdbv2xn39hyiaj17dzldjb9rlwzcyy9"))))
(define (android-platform-bionic version)
(origin
(method git-fetch)
(uri (git-reference
(url "https://android.googlesource.com/platform/bionic")
(commit (string-append "android-" version))))
(file-name (string-append "android-platform-bionic-"
version "-checkout"))
(sha256
(base32
"0n9wkz3ynqw39if1ss9n32m66iga14nndf29hpm7g1aqn4wvvgzk"))))
(define (android-platform-external version subdirectory checksum)
(origin
(method git-fetch)
(uri (git-reference
(url
(string-append "https://android.googlesource.com/platform/external/"
subdirectory))
(commit (string-append "android-" version))))
(file-name (string-append "android-platform-system-external-" subdirectory "-"
version "-checkout"))
(sha256
(base32
checksum))))
(define android-liblog
(package (package
(name "liblog") (name "android-liblog")
(version (android-platform-version)) (version (android-platform-version))
(source (android-platform-system-core version)) (source (android-platform-system-core version))
(build-system gnu-build-system) (build-system android-ndk-build-system)
(arguments (arguments
`(#:tests? #f ; TODO. `(#:make-flags '("LDLIBS=-lpthread")
#:make-flags '("CC=gcc")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-source (add-after 'unpack 'enter-source
(lambda _ (chdir "liblog") #t)) (lambda _ (chdir "liblog") #t))
(add-after 'enter-source 'create-Makefile (add-after 'install 'ldconfig
(lambda _
;; No useful makefile is shipped, so we create one.
(with-output-to-file "Makefile"
(lambda _
(display
(string-append
"NAME = liblog\n"
"SOURCES = log_event_list.c log_event_write.c"
" logger_write.c config_write.c logger_name.c"
" logger_lock.c fake_log_device.c fake_writer.c"
" event_tag_map.c\n"
"CFLAGS += -fvisibility=hidden -fPIC\n"
"CPPFLAGS += -I../include -DFAKE_LOG_DEVICE=1"
;; Keep these two in sync with "liblog/Android.bp".
" -DLIBLOG_LOG_TAG=1005"
" -DSNET_EVENT_LOG_TAG=1397638484\n"
"LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread\n"
"build: $(SOURCES)\n"
" $(CC) $^ -o $(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)\n"))
#t))))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out")))
(lib (string-append out "/lib"))) (symlink "liblog.so.0" (string-append out "/lib/liblog.so"))
(install-file "liblog.so.0" lib)
(with-directory-excursion lib
(symlink "liblog.so.0" "liblog.so"))
#t)))))) #t))))))
(home-page "https://developer.android.com/") (home-page "https://developer.android.com/")
(synopsis "Logging library from the Android platform.") (synopsis "Logging library from the Android platform.")
@ -113,62 +185,29 @@ interfaces for either writing or reading logs. The log buffers are divided up
in Main, System, Radio and Events sub-logs.") in Main, System, Radio and Events sub-logs.")
(license license:asl2.0))) (license license:asl2.0)))
(define libbase (define android-libbase
(package (package
(name "libbase") (name "android-libbase")
(version (android-platform-version)) (version (android-platform-version))
(source (origin (source (android-platform-system-core version))
(inherit (android-platform-system-core version)) (build-system android-ndk-build-system)
(patches
(search-patches "libbase-use-own-logging.patch"
"libbase-fix-includes.patch"))))
(build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; TODO. `(#:tests? #f ; Test failure: logging.UNIMPLEMENTED
#:make-flags '("CXXFLAGS=-std=gnu++11")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-source (add-after 'unpack 'enter-source
(lambda _ (chdir "base") #t)) (lambda _ (chdir "base") #t)))))
(add-after 'enter-source 'create-Makefile (inputs `(("android-liblog" ,android-liblog)))
(lambda _
;; No useful makefile is shipped, so we create one.
(with-output-to-file "Makefile"
(lambda _
(display
(string-append
"NAME = libbase\n"
"SOURCES = file.cpp logging.cpp parsenetaddress.cpp"
" stringprintf.cpp strings.cpp errors_unix.cpp\n"
"CXXFLAGS += -std=gnu++11 -fPIC\n"
"CPPFLAGS += -Iinclude -I../include\n"
"LDFLAGS += -shared -Wl,-soname,$(NAME).so.0"
" -L.. -llog\n"
"build: $(SOURCES)\n"
" $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS)"
" $(LDFLAGS)\n"))
#t))))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(install-file "libbase.so.0" lib)
(with-directory-excursion lib
(symlink "libbase.so.0" "libbase.so"))
(copy-recursively "include" out)
#t))))))
(inputs `(("liblog" ,liblog)))
(home-page "https://developer.android.com/") (home-page "https://developer.android.com/")
(synopsis "Android platform base library") (synopsis "Android platform base library")
(description "@code{libbase} is a library in common use by the (description "@code{libbase} is a library in common use by the
various Android core host applications.") various Android core host applications.")
(license license:asl2.0))) (license license:asl2.0)))
(define libcutils (define android-libcutils
(package (package
(name "libcutils") (name "android-libcutils")
(version (android-platform-version)) (version (android-platform-version))
(source (android-platform-system-core version)) (source (android-platform-system-core version))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -206,10 +245,13 @@ various Android core host applications.")
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))) (lib (string-append out "/lib"))
(include (string-append out "/include")))
(install-file "libcutils.so.0" lib) (install-file "libcutils.so.0" lib)
(with-directory-excursion lib (with-directory-excursion lib
(symlink "libcutils.so.0" "libcutils.so")) (symlink "libcutils.so.0" "libcutils.so"))
(copy-recursively "../include/cutils"
(string-append include "/cutils"))
#t)))))) #t))))))
(home-page "https://developer.android.com/") (home-page "https://developer.android.com/")
(synopsis "Android platform c utils library") (synopsis "Android platform c utils library")
@ -217,90 +259,92 @@ various Android core host applications.")
various Android core host applications.") various Android core host applications.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public android-libsparse
(package
(name "android-libsparse")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(arguments
`(#:make-flags '("CFLAGS=-Wno-error"
"CXXFLAGS=-fpermissive -Wno-error")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "libsparse") #t)))))
(inputs
`(("zlib" ,zlib)))
(home-page "https://developer.android.com/")
(synopsis "Android platform sparse library")
(description "@code{android-libsparse} is a library in common use by the
various Android core host applications.")
(license license:asl2.0)))
(define-public android-libziparchive
(package
(name "android-libziparchive")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(arguments
`(#:make-flags '("CFLAGS=-Wno-error"
"CXXFLAGS=-fpermissive -Wno-error -std=gnu++11")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "libziparchive") #t))
(add-before 'check 'setenv
(lambda _
(setenv "ziparchive_tests_host_PARAMS" "--test_data_dir=testdata")
#t))
(add-after 'install 'install-headers
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively "../include/ziparchive"
(string-append out "/include/ziparchive"))
#t))))))
(inputs
`(("zlib" ,zlib)))
(native-inputs
`(("android-libbase" ,android-libbase)
("android-libutils" ,android-libutils)
("android-liblog" ,android-liblog)))
(home-page "https://developer.android.com/")
(synopsis "Android platform ZIP library")
(description "@code{android-libziparchive} is a library in common use by the
various Android core host applications.")
(license license:asl2.0)))
(define-public adb (define-public adb
(package (package
(name "adb") (name "adb")
(version (android-platform-version)) (version (android-platform-version))
(source (origin (source (android-platform-system-core version))
(inherit (android-platform-system-core version)) (build-system android-ndk-build-system)
(patches
(search-patches "libbase-use-own-logging.patch"
"libbase-fix-includes.patch"))))
(build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:tests? #f ; Test failure: sysdeps_poll.fd_count
#:make-flags
(list "CFLAGS=-Wno-error"
"CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ."
(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib "
"-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L ."))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-source (add-after 'unpack 'enter-source
(lambda _ (chdir "adb") #t)) (lambda _ (chdir "adb") #t))
(add-before 'build 'fix-clang (add-after 'enter-source 'make-libs-available
(lambda _ (lambda* (#:key inputs outputs #:allow-other-keys)
;; adb_client.h contains _Nonnull and _Nullable attributes, that (substitute* "Android.mk"
;; are not understood by gcc. (("libcrypto_static") "libcrypto"))
(substitute* "adb_client.h"
(("_Nonnull") "")
(("_Nullable") ""))
#t)) #t))
(add-before 'build 'fix-main (add-after 'install 'install-headers
(lambda _ (lambda* (#:key inputs outputs #:allow-other-keys)
;; main.cpp used to be adb_main.cpp in the current directory (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
;; rather than in its own subdirectory, but it was not fixed. #t)))))
;; This leads to some header files not being found anymore.
(copy-file "client/main.cpp" "adb_main.cpp")
#t))
(add-after 'enter-source 'create-Makefile
(lambda* (#:key outputs #:allow-other-keys)
;; No useful makefile is shipped, so we create one.
(with-output-to-file "Makefile"
(lambda _
(display
(string-append
;; Common for all components.
"CXXFLAGS += -std=gnu++14 -fpermissive\n"
"CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 "
"-DADB_REVISION='\"" ,version "\"' -fPIC\n"
"LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n"
;; Libadb specifics.
"LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp "
"adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp "
"sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp "
"get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp "
"adb_auth_host.cpp diagnose_usb.cpp services.cpp "
"shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n"
"LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 "
"-lcrypto -lpthread -lbase\n"
;; Adb specifics.
"ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp "
"adb_client.cpp file_sync_client.cpp\n"
"ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n"
"build: libadb $(ADB_SOURCES)\n"
" $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) "
"$(ADB_LDFLAGS) $(LDFLAGS)\n"
"libadb: $(LIBADB_SOURCES)\n"
" $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) "
"$(LIBADB_LDFLAGS)\n"
" ln -sv libadb.so.0 libadb.so\n"))
#t))))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(bin (string-append out "/bin")))
(install-file "libadb.so.0" lib)
(install-file "adb" bin)
(with-directory-excursion lib
(symlink "libadb.so.0" "libadb.so"))
#t))))
;; Test suite must be run with attached devices
#:tests? #f))
(inputs (inputs
`(("libbase" ,libbase) `(("android-libbase" ,android-libbase)
("libcutils" ,libcutils) ("android-libcutils" ,android-libcutils)
("android-liblog" ,android-liblog)
("openssl" ,openssl))) ("openssl" ,openssl)))
(home-page "https://developer.android.com/studio/command-line/adb.html") (home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Android Debug Bridge") (synopsis "Android Debug Bridge")
@ -329,8 +373,10 @@ to a Unix shell that can run commands on the connected device or emulator.")
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))) (bin (string-append out "/bin"))
(include (string-append out "/include")))
(install-file "mkbootimg" bin) (install-file "mkbootimg" bin)
(install-file "bootimg.h" include)
#t)))))) #t))))))
(home-page "https://developer.android.com/studio/command-line/adb.html") (home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Tool to create Android boot images") (synopsis "Tool to create Android boot images")
@ -338,6 +384,263 @@ to a Unix shell that can run commands on the connected device or emulator.")
Images.") Images.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public android-safe-iop
(package
(name "android-safe-iop")
(version (android-platform-version))
(source (android-platform-external version "safe-iop"
"1nyyrs463advjhlq8xx1lm37m4g5afv7gy0csxrj7biwwl0v13qw"))
(build-system android-ndk-build-system)
(arguments
`(#:make-flags '("CXXFLAGS=-fpermissive -Wno-error")
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-host
(lambda _
;; TODO: Cross-compile.
(substitute* "Android.mk"
(("BUILD_STATIC_LIBRARY") "BUILD_HOST_STATIC_LIBRARY"))
#t)))))
(home-page "https://developer.android.com/")
(synopsis "Safe integers in C")
(description "@code{android-safe-iop} provides a set of functions for
performing and checking safe integer operations. Ensure that integer
operations do not result in silent overflow.")
(license license:bsd-2)))
(define-public android-bionic-uapi
(package
(name "android-bionic-uapi")
(version (android-platform-version))
(source (android-platform-bionic version))
(build-system android-ndk-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "libc") #t))
(replace 'check
(const #t))
(replace 'build
(const #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out-sys (string-append out "/include/sys")))
(mkdir-p out-sys)
(install-file "include/sys/system_properties.h" out-sys)
(install-file "include/sys/_system_properties.h" out-sys)
(copy-recursively "kernel/uapi" (string-append out "/include"))
#t))))))
(home-page "https://developer.android.com/")
(synopsis "Android Linux API that is safe for user space")
(description "@code{android-bionic-uapi} provides the part of the Linux API
that is safe to use for user space. It also includes
@code{system_properties.h} and @code{_system_properties.h}.")
(license license:asl2.0)))
(define-public android-libselinux
(package
(name "android-libselinux")
(version (android-platform-version))
(source
(android-platform-external version "libselinux"
"13m2q32gzdcs5d0zj1nwasjy1j8vsxsgbjg7m5sa9lfcjaj7nkm7"))
(build-system android-ndk-build-system)
(arguments
;; See logd/Android.mk for the *_LOG_TAG values.
`(#:make-flags (list (string-append "CFLAGS=-Wno-error "
"-I core/include "
"-I core/libpackagelistparser/include "
"-DAUDITD_LOG_TAG=1003 "
"-DLOGD_LOG_TAG=1004 -D_GNU_SOURCE")
"LDFLAGS=-L . -lpcre")
#:phases
(modify-phases %standard-phases
(add-after 'unpack-core 'patch-HOST
(lambda _
;; gettid duplicates otherwise.
(substitute* "src/procattr.c"
(("#ifdef HOST") "#ifdef XXX"))
#t)))))
(inputs
`(("openssl" ,openssl)))
(native-inputs
`(("android-bionic-uapi" ,android-bionic-uapi)
;; pcre is inlined by our package.
("pcre" ,pcre)))
(home-page "https://developer.android.com/")
(synopsis (package-synopsis libselinux))
(description (package-description libselinux))
(license (package-license libselinux))))
(define-public android-ext4-utils
(package
(name "android-ext4-utils")
(version (android-platform-version))
(source (android-platform-system-extras version))
(build-system android-ndk-build-system)
(arguments
`(#:make-flags
(list (string-append "CPPFLAGS="
;"-Wno-error "
"-I "
(assoc-ref %build-inputs "android-libselinux")
"/include "
"-I " (assoc-ref %build-inputs "android-libsparse")
"/include "
"-I " (assoc-ref %build-inputs "android-libcutils")
"/include "
"-I " (assoc-ref %build-inputs "android-liblog") "/include "
"-I ../core/include")
"CFLAGS=-Wno-error"
"install-libext4_utils_host.a"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-core
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "core")
(with-directory-excursion "core"
(invoke "tar" "axf" (assoc-ref inputs "android-core")
"--strip-components=1"))
#t))
(add-after 'unpack-core 'enter-source
(lambda _ (chdir "ext4_utils") #t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively "." (string-append out "/include")))
#t)))))
(inputs
`(("android-libcutils" ,android-libcutils)
("android-liblog" ,android-liblog)
("android-libselinux" ,android-libselinux)
("android-libsparse" ,android-libsparse)
("zlib" ,zlib)))
(native-inputs
`(("android-core" ,(android-platform-system-core version))))
(home-page "https://developer.android.com/")
(synopsis "Android ext4 filesystem utils")
(description "@code{android-ext4-utils} is a library in common use by the
Android core.")
(license license:asl2.0)))
(define-public android-f2fs-utils
(package
(name "android-f2fs-utils")
(version (android-platform-version))
(source (android-platform-system-extras version))
(build-system android-ndk-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "f2fs_utils") #t))
(add-after 'install 'install-headers
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "." (string-append (assoc-ref outputs "out")
"/include"))
#t))
(add-after 'install 'install-shell-scripts
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(patch-shebang "mkf2fsuserimg.sh")
(substitute* "mkf2fsuserimg.sh"
(("make_f2fs") (string-append bin "/make_f2fs")))
(install-file "mkf2fsuserimg.sh" bin)
#t))))))
(inputs
`(("f2fs-tools" ,f2fs-tools-1.7)
("android-libselinux" ,android-libselinux)
("android-libsparse" ,android-libsparse)
("android-libcutils" ,android-libcutils)
("zlib" ,zlib)))
(home-page "https://developer.android.com/")
(synopsis "Android f2fs utils")
(description "@code{android-f2fs-utils} is a library in common use by the
Android core. It allows the user to create images for the @code{f2fs} Flash
file system.")
(license license:asl2.0)))
(define-public android-libutils
(package
(name "android-libutils")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(arguments
`(#:tests? #f ; TODO
#:make-flags '("CXXFLAGS=-std=gnu++11 -Wno-error")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "libutils") #t))
(add-after 'install 'install-headers
(lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils")))))))
(inputs
`(("android-safe-iop" ,android-safe-iop)
("android-libcutils" ,android-libcutils)))
(native-inputs
`(("android-bionic-uapi" ,android-bionic-uapi)
("android-liblog" ,android-liblog)))
(home-page "https://developer.android.com/")
(synopsis "Android utility library")
(description "@code{android-libutils} provides utilities for Android NDK developers.")
(license license:asl2.0)))
(define-public fastboot
(package
(name "fastboot")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(arguments
`(#:make-flags (list "CXXFLAGS=-std=gnu++11")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _
(chdir "fastboot")
#t))
(add-after 'enter-source 'patch-source
(lambda _
(substitute* "Android.mk"
(("libext4_utils_host") "libext4_utils_host libselinux libpcre"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(bin (string-append out "/bin")))
(install-file "fastboot" bin)
#t))))))
(inputs
`(("adb" ,adb)
("android-safe-iop" ,android-safe-iop)
("android-ext4-utils" ,android-ext4-utils)
("android-f2fs-utils" ,android-f2fs-utils)
("android-libbase" ,android-libbase)
("android-libcutils" ,android-libcutils)
("android-liblog" ,android-liblog)
("android-libutils" ,android-libutils)
("android-libsparse" ,android-libsparse)
("android-libziparchive" ,android-libziparchive)
("android-libselinux" ,android-libselinux)
("pcre" ,pcre)
("mkbootimg" ,mkbootimg)
("zlib" ,zlib)))
(native-inputs
`(("xz" ,xz)))
(home-page "https://developer.android.com/studio/command-line/")
(synopsis "Android image flasher")
(description
"This package provides @command{fastboot}, a tool to upload file system images to Android devices.")
(license license:asl2.0)))
(define-public android-udev-rules (define-public android-udev-rules
(package (package
(name "android-udev-rules") (name "android-udev-rules")
@ -360,7 +663,8 @@ Images.")
(use-modules (guix build utils)) (use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source"))) (let ((source (assoc-ref %build-inputs "source")))
(install-file (string-append source "/51-android.rules") (install-file (string-append source "/51-android.rules")
(string-append %output "/lib/udev/rules.d")))))) (string-append %output "/lib/udev/rules.d"))
#t))))
(home-page "https://github.com/M0Rf30/android-udev-rules") (home-page "https://github.com/M0Rf30/android-udev-rules")
(synopsis "udev rules for Android devices") (synopsis "udev rules for Android devices")
(description "Provides a set of udev rules to allow using Android devices (description "Provides a set of udev rules to allow using Android devices

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -87,11 +87,10 @@ around or take advantage of platform-specific deficiencies or features.")
(apr (assoc-ref inputs "apr")) (apr (assoc-ref inputs "apr"))
(expat (assoc-ref inputs "expat"))) (expat (assoc-ref inputs "expat")))
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))
(zero? (invoke "./configure"
(system* "./configure" (string-append "--prefix=" out)
(string-append "--prefix=" out) (string-append "--with-apr=" apr)
(string-append "--with-apr=" apr) (string-append "--with-expat=" expat))))))
(string-append "--with-expat=" expat)))))))
;; There are race conditions during 'make check'. Typically, the ;; There are race conditions during 'make check'. Typically, the
;; 'testall' executable is not built yet by the time 'make check' tries ;; 'testall' executable is not built yet by the time 'make check' tries

View File

@ -55,7 +55,8 @@
"/bin/aspell"))) "/bin/aspell")))
(wrap-program bin/aspell (wrap-program bin/aspell
'("ASPELL_CONF" "" = '("ASPELL_CONF" "" =
("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))))))))) ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}")))
#t))))))
(inputs `(("perl" ,perl))) (inputs `(("perl" ,perl)))
(native-search-paths (native-search-paths
@ -101,7 +102,7 @@ dictionaries, including personal ones.")
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure")))))) (invoke "./configure")))))
#:make-flags #:make-flags
(let ((out (assoc-ref %outputs "out"))) (let ((out (assoc-ref %outputs "out")))
(list (string-append "dictdir=" out "/lib/aspell") (list (string-append "dictdir=" out "/lib/aspell")

View File

@ -60,7 +60,7 @@
#t)) #t))
(add-after 'install 'install-info (add-after 'install 'install-info
(lambda _ (lambda _
(zero? (system* "make" "install_doc"))))))) (invoke "make" "install_doc"))))))
(home-page "http://www.nasm.us/") (home-page "http://www.nasm.us/")
(synopsis "80x86 and x86-64 assembler") (synopsis "80x86 and x86-64 assembler")
(description (description

View File

@ -35,7 +35,7 @@
(define-public cfitsio (define-public cfitsio
(package (package
(name "cfitsio") (name "cfitsio")
(version "3.420") (version "3.450")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -43,7 +43,7 @@
"http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
name (string-replace-substring version "." "") ".tar.gz")) name (string-replace-substring version "." "") ".tar.gz"))
(sha256 (sha256
(base32 "1f0nmki45h9kw7vxpxiav9cb6vs3qqi6zrp2lpci5yhqc5isl43c")))) (base32 "0bmrkw6w65zb0k3mszaaqy1f4zjm2hl7njww74nb5v38wvdi4q5z"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; XXX Building with curl currently breaks wcslib. It doesn't use ;; XXX Building with curl currently breaks wcslib. It doesn't use
;; pkg-config and hence won't link with -lcurl. ;; pkg-config and hence won't link with -lcurl.
@ -81,12 +81,17 @@ in FITS files.")
`(("cfitsio" ,cfitsio))) `(("cfitsio" ,cfitsio)))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases
(add-before 'configure 'patch-/bin/sh (modify-phases %standard-phases
(lambda _ (add-before 'configure 'patch-/bin/sh
(substitute* "makedefs.in" (lambda _
(("/bin/sh") "sh")) (substitute* "makedefs.in"
#t))))) (("/bin/sh") "sh"))
#t))
(delete 'install-license-files)) ; installed by make install
;; Both the build and tests fail randomly when run in parallel.
#:parallel-build? #f
#:parallel-tests? #f))
(home-page "https://www.atnf.csiro.au/people/mcalabre/WCS") (home-page "https://www.atnf.csiro.au/people/mcalabre/WCS")
(synopsis "Library which implements the FITS WCS standard") (synopsis "Library which implements the FITS WCS standard")
(description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard (description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard
@ -98,7 +103,7 @@ header.")
(define-public gnuastro (define-public gnuastro
(package (package
(name "gnuastro") (name "gnuastro")
(version "0.5") (version "0.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -106,12 +111,14 @@ header.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"10lxzxyrf30hj3bqdgprvaj9phzdi816khjmr0vmjf8pmsr8bqqr")))) "16a212j9ghdirm11d25s5q5qw32bkjrxsh3rblfyyv29djch34w6"))))
(inputs (inputs
`(("cfitsio" ,cfitsio) `(("cfitsio" ,cfitsio)
("gsl" ,gsl) ("gsl" ,gsl)
("libjpeg" ,libjpeg) ("libjpeg" ,libjpeg)
("wcslib" ,wcslib))) ("libtiff" ,libtiff)
("wcslib" ,wcslib)
("zlib" ,zlib)))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnuastro/") (home-page "https://www.gnu.org/software/gnuastro/")
(synopsis "Astronomy utilities") (synopsis "Astronomy utilities")

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -42,13 +43,14 @@
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'configure 'patch-makefile-SHELL (add-after 'configure 'patch-makefile-SHELL
(lambda _ (lambda _
(patch-makefile-SHELL "include/buildmacros"))) (patch-makefile-SHELL "include/buildmacros")
#t))
(replace 'install (replace 'install
(lambda _ (lambda _
(zero? (system* "make" (invoke "make"
"install" "install"
"install-lib" "install-lib"
"install-dev")))) "install-dev")))
(replace 'check (replace 'check
(lambda* (#:key target #:allow-other-keys) (lambda* (#:key target #:allow-other-keys)
;; Use the right shell. ;; Use the right shell.
@ -57,11 +59,14 @@
(which "sh"))) (which "sh")))
;; When building natively, run the tests. ;; When building natively, run the tests.
;;
;; Note that we use system* and unconditionally return #t here
;; to ignore the test result, because the tests will fail when
;; the build is performed on a file system without support for
;; extended attributes, and we wish to allow Guix to be built
;; on such systems.
(unless target (unless target
(system* "make" "tests" "-C" "test")) (system* "make" "tests" "-C" "test"))
;; XXX: Ignore the test result since this is
;; dependent on the underlying file system.
#t))))) #t)))))
(inputs (inputs
;; Perl is needed to run tests; remove it from cross builds. ;; Perl is needed to run tests; remove it from cross builds.

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -12,6 +12,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc> ;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -212,7 +213,8 @@ streams from live audio.")
"libs/ardour/revision.cc" "libs/ardour/revision.cc"
(lambda (port) (lambda (port)
(format port ,(string-append "#include \"ardour/revision.h\" (format port ,(string-append "#include \"ardour/revision.h\"
namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) namespace ARDOUR { const char* revision = \"" version "\" ; }"))
#t)))
(sha256 (sha256
(base32 (base32
"0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr")) "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
@ -514,7 +516,9 @@ tools (analyzer, mono/stereo tools, crossovers).")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; remove prebuilt binaries ;; remove prebuilt binaries
'(delete-file-recursively "linux_32bit")))) '(begin
(delete-file-recursively "linux_32bit")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@ -569,16 +573,7 @@ based on human speech recordings.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-compiler-flags (add-after 'unpack 'remove-compiler-flags
(lambda _ (lambda _
(substitute* '("src/casynth/CMakeLists.txt" (substitute* (find-files "." "CMakeLists.txt")
"src/cheapdist/CMakeLists.txt"
"src/duffer/CMakeLists.txt"
"src/envfollower/CMakeLists.txt"
"src/ewham/CMakeLists.txt"
"src/hip2b/CMakeLists.txt"
"src/lushlife/CMakeLists.txt"
"src/powercut/CMakeLists.txt"
"src/powerup/CMakeLists.txt"
"src/stuck/CMakeLists.txt")
(("-msse2 -mfpmath=sse") "")) (("-msse2 -mfpmath=sse") ""))
#t))))) #t)))))
(inputs (inputs
@ -1034,7 +1029,7 @@ follower.")
(define-public fluidsynth (define-public fluidsynth
(package (package
(name "fluidsynth") (name "fluidsynth")
(version "1.1.10") (version "1.1.11")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1043,7 +1038,7 @@ follower.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"04jlgq1d1hd8r9cnmkl3lgf1fgm7kgy4hh9nfddap41fm1wp121p")))) "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target
@ -1095,10 +1090,10 @@ also play midifiles using a Soundfont.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap (replace 'bootstrap
(lambda _ (lambda _
(substitute* "bootstrap" (("\r\n") "\n")) (substitute* "bootstrap" (("\r\n") "\n"))
(zero? (system* "sh" "bootstrap"))))))) (invoke "sh" "bootstrap"))))))
(home-page "http://www.audiocoding.com/faad2.html") (home-page "http://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder") (synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description (description
@ -1202,14 +1197,15 @@ PS, and DAB+.")
(setenv "PATH" (string-append (setenv "PATH" (string-append
(assoc-ref %build-inputs "bzip2") "/bin:" (assoc-ref %build-inputs "bzip2") "/bin:"
(assoc-ref %build-inputs "tar") "/bin")) (assoc-ref %build-inputs "tar") "/bin"))
(system* "tar" "xvf" (assoc-ref %build-inputs "source")) (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
(chdir "freepats") (chdir "freepats")
;; Use absolute pattern references ;; Use absolute pattern references
(substitute* "freepats.cfg" (substitute* "freepats.cfg"
(("Tone_000") (string-append out "/Tone_000")) (("Tone_000") (string-append out "/Tone_000"))
(("Drum_000") (string-append out "/Drum_000"))) (("Drum_000") (string-append out "/Drum_000")))
(mkdir-p out) (mkdir-p out)
(copy-recursively "." out))))) (copy-recursively "." out)
#t))))
(native-inputs (native-inputs
`(("tar" ,tar) `(("tar" ,tar)
("bzip2" ,bzip2))) ("bzip2" ,bzip2)))
@ -1730,7 +1726,8 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "LDFLAGS" (setenv "LDFLAGS"
(string-append "-Wl,-rpath=" (string-append "-Wl,-rpath="
(assoc-ref outputs "out") "/lib"))))))) (assoc-ref outputs "out") "/lib"))
#t)))))
;; required by lilv-0.pc ;; required by lilv-0.pc
(propagated-inputs (propagated-inputs
`(("serd" ,serd) `(("serd" ,serd)
@ -1997,14 +1994,14 @@ and ALSA.")
(define-public qjackctl (define-public qjackctl
(package (package
(name "qjackctl") (name "qjackctl")
(version "0.5.0") (version "0.5.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz")) version "/qjackctl-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s")))) "0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f)) ; no check target '(#:tests? #f)) ; no check target
@ -2041,9 +2038,9 @@ into various outputs and to start, stop and configure jackd")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "qmake" (invoke "qmake"
(string-append "PREFIX=" (string-append "PREFIX="
(assoc-ref outputs "out"))))))))) (assoc-ref outputs "out"))))))))
(native-inputs (native-inputs
`(("qtbase" ,qtbase))) ; for qmake `(("qtbase" ,qtbase))) ; for qmake
(inputs (inputs
@ -2073,6 +2070,7 @@ background file post-processing.")
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on" `(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
"-DSC_QT=off"
"-DSC_EL=off") ;scel is packaged individually as "-DSC_EL=off") ;scel is packaged individually as
;emacs-scel. ;emacs-scel.
#:modules ((guix build utils) #:modules ((guix build utils)
@ -2133,8 +2131,7 @@ set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\
external_libraries/yaml-cpp/include)")) external_libraries/yaml-cpp/include)"))
#t))))) #t)))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)))
("qttools" ,qttools)))
(inputs (inputs
`(("jack" ,jack-1) `(("jack" ,jack-1)
("libsndfile" ,libsndfile) ("libsndfile" ,libsndfile)
@ -2147,12 +2144,7 @@ external_libraries/yaml-cpp/include)"))
("icu4c" ,icu4c) ("icu4c" ,icu4c)
("boost" ,boost) ("boost" ,boost)
("boost-sync" ,boost-sync) ("boost-sync" ,boost-sync)
("yaml-cpp" ,yaml-cpp) ("yaml-cpp" ,yaml-cpp)))
("qtbase" ,qtbase) ;IDE support
("qtwebkit" ,qtwebkit)
("qtsensors" ,qtsensors)
("qtdeclarative" ,qtdeclarative)
("qtlocation" ,qtlocation)))
(home-page "https://github.com/supercollider/supercollider") (home-page "https://github.com/supercollider/supercollider")
(synopsis "Synthesis engine and programming language") (synopsis "Synthesis engine and programming language")
(description "SuperCollider is a synthesis engine (@code{scsynth} or (description "SuperCollider is a synthesis engine (@code{scsynth} or
@ -2595,12 +2587,6 @@ Tracker 3 S3M and Impulse Tracker IT files.")
("automake" ,automake) ("automake" ,automake)
("libtool" ,libtool) ("libtool" ,libtool)
("file" ,file))) ("file" ,file)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "sh" "bootstrap")))))))
(home-page "http://www.surina.net/soundtouch/") (home-page "http://www.surina.net/soundtouch/")
(synopsis (synopsis
"Audio processing library for changing tempo, pitch and playback rate") "Audio processing library for changing tempo, pitch and playback rate")
@ -2750,7 +2736,7 @@ interface.")
(define-public qsynth (define-public qsynth
(package (package
(name "qsynth") (name "qsynth")
(version "0.5.0") (version "0.5.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2758,7 +2744,7 @@ interface.")
"/qsynth-" version ".tar.gz")) "/qsynth-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584")))) "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" phase `(#:tests? #f ; no "check" phase
@ -2863,8 +2849,10 @@ result.")
version ".tar.bz2")) version ".tar.bz2"))
(snippet (snippet
;; Don't optimize for a specific processor architecture. ;; Don't optimize for a specific processor architecture.
'(substitute* "libs/Makefile" '(begin
(("^CXXFLAGS \\+= -march=native") ""))) (substitute* "libs/Makefile"
(("^CXXFLAGS \\+= -march=native") ""))
#t))
(modules '((guix build utils))) (modules '((guix build utils)))
(sha256 (sha256
(base32 (base32
@ -2908,8 +2896,10 @@ engine.")
version ".tar.bz2")) version ".tar.bz2"))
(snippet (snippet
;; Don't optimize for a specific processor architecture. ;; Don't optimize for a specific processor architecture.
'(substitute* '("apps/Makefile" "libs/Makefile") '(begin
(("^CXXFLAGS \\+= -march=native") ""))) (substitute* '("apps/Makefile" "libs/Makefile")
(("^CXXFLAGS \\+= -march=native") ""))
#t))
(modules '((guix build utils))) (modules '((guix build utils)))
(sha256 (sha256
(base32 (base32
@ -3003,12 +2993,6 @@ point audio data.")
"01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4")))) "01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; The source tarball is not bootstrapped. ;; The source tarball is not bootstrapped.
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vfi")))))))
;; Bootstrapping tools
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -3137,7 +3121,7 @@ code, used in @code{libtoxcore}.")
(define-public gsm (define-public gsm
(package (package
(name "gsm") (name "gsm")
(version "1.0.17") (version "1.0.18")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3146,7 +3130,7 @@ code, used in @code{libtoxcore}.")
"-" version ".tar.gz")) "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5")))) "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "tst" `(#:test-target "tst"
@ -3172,7 +3156,7 @@ code, used in @code{libtoxcore}.")
(mkdir-p (string-append out "/include/gsm")) (mkdir-p (string-append out "/include/gsm"))
(copy-recursively "inc" (copy-recursively "inc"
(string-append out "/include/gsm"))))) (string-append out "/include/gsm")))))
(delete 'configure)))) (delete 'configure)))) ; no configure script
(synopsis "GSM 06.10 lossy speech compression library") (synopsis "GSM 06.10 lossy speech compression library")
(description "This C library provides an encoder and a decoder for the GSM (description "This C library provides an encoder and a decoder for the GSM
06.10 RPE-LTP lossy speech compression algorithm.") 06.10 RPE-LTP lossy speech compression algorithm.")
@ -3221,12 +3205,6 @@ mixers.")
(base32 (base32
"1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x")))) "1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "autoreconf" "-vif")))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -3266,7 +3244,7 @@ on the ALSA software PCM plugin.")
"1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp")))) "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
'(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:out-of-source? #f ; for the 'install-doc' phase #:out-of-source? #f ; for the 'install-doc' phase
#:configure-flags #:configure-flags
(let* ((out (assoc-ref %outputs "out")) (let* ((out (assoc-ref %outputs "out"))
@ -3278,13 +3256,13 @@ on the ALSA software PCM plugin.")
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(docdir (string-append out "/share/doc/snd"))) (doc (string-append out "/share/doc/"
(mkdir-p docdir) ,name "-" ,version)))
(for-each (for-each
(lambda (f) (lambda (f)
(install-file f docdir)) (install-file f doc))
(find-files "." "\\.html$|COPYING")) (find-files "." "\\.html$|COPYING"))
(copy-recursively "pix" (string-append docdir "/pix")) (copy-recursively "pix" (string-append doc "/pix"))
#t)))))) #t))))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -3418,7 +3396,7 @@ representations.")
(define-public cava (define-public cava
(package (package
(name "cava") (name "cava")
(version "0.6.0") (version "0.6.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -3427,7 +3405,7 @@ representations.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p24lz3h4d0h82ffylqr7mq8a8x1c66flm2r2bsv1liw51n1rma2")))) "13d72swnjs894llf0paandmhf1lf90dz6ygkcdw4bv84wzkq1f4q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -3446,7 +3424,7 @@ representations.")
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib))) (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap (replace 'bootstrap
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "HOME" (getcwd)) (setenv "HOME" (getcwd))
(invoke "sh" "autogen.sh"))) (invoke "sh" "autogen.sh")))
@ -3492,7 +3470,8 @@ using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
(let ((file (assoc-ref %build-inputs "source")) (let ((file (assoc-ref %build-inputs "source"))
(out (string-append %output "/share/soundfonts"))) (out (string-append %output "/share/soundfonts")))
(mkdir-p out) (mkdir-p out)
(copy-file file (string-append out "/FluidR3Mono_GM.sf3")))))) (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))
#t))))
(home-page "https://github.com/musescore/MuseScore/tree/master/share/sound") (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
(synopsis "Pro-quality GM soundfont") (synopsis "Pro-quality GM soundfont")
(description "Fluid-3 is Frank Wen's pro-quality GM soundfont.") (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")

View File

@ -3,11 +3,12 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org> ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -120,9 +121,9 @@ know anything about Autoconf or M4.")
(out (assoc-ref outputs "out"))) (out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" bash) (setenv "CONFIG_SHELL" bash)
(setenv "SHELL" bash) (setenv "SHELL" bash)
(zero? (system* bash "./configure" (invoke bash "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--build=" build))))))))))) (string-append "--build=" build))))))))))
(define (make-autoconf-wrapper autoconf) (define (make-autoconf-wrapper autoconf)
@ -192,7 +193,8 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
(patch-shebang "configure")) (patch-shebang "configure"))
(exit (status:exit-val result)))) (exit (status:exit-val result))))
port))) port)))
(chmod (string-append bin "/autoconf") #o555))))) (chmod (string-append bin "/autoconf") #o555)
#t))))
;; Do not show it in the UI since it's meant for internal use. ;; Do not show it in the UI since it's meant for internal use.
(properties '((hidden? . #t))))) (properties '((hidden? . #t)))))
@ -248,14 +250,14 @@ output is indexed in many ways to simplify browsing.")
(define-public automake (define-public automake
(package (package
(name "automake") (name "automake")
(version "1.15.1") (version "1.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-" (uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg")) "08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax"))
(patches (patches
(search-patches "automake-skip-amhello-tests.patch")))) (search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -287,32 +289,33 @@ output is indexed in many ways to simplify browsing.")
(setenv "CONFIG_SHELL" sh) (setenv "CONFIG_SHELL" sh)
#t))) #t)))
;; Files like `install-sh', `mdate.sh', etc. must use ;; Files like `install-sh', `mdate.sh', etc. must use
;; #!/bin/sh, otherwise users could leak erroneous shebangs ;; #!/bin/sh, otherwise users could leak erroneous shebangs
;; in the wild. See <http://bugs.gnu.org/14201> for an ;; in the wild. See <http://bugs.gnu.org/14201> for an
;; example. ;; example.
(add-after 'install 'unpatch-shebangs (add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share"))) (dir (string-append out "/share")))
(define (starts-with-shebang? file) (define (starts-with-shebang? file)
(equal? (call-with-input-file file (equal? (call-with-input-file file
(lambda (p) (lambda (p)
(list (get-u8 p) (get-u8 p)))) (list (get-u8 p) (get-u8 p))))
(map char->integer '(#\# #\!)))) (map char->integer '(#\# #\!))))
(for-each (lambda (file) (for-each (lambda (file)
(when (and (starts-with-shebang? file) (when (and (starts-with-shebang? file)
(executable-file? file)) (executable-file? file))
(format #t "restoring shebang on `~a'~%" (format #t "restoring shebang on `~a'~%"
file) file)
(substitute* file (substitute* file
(("^#!.*/bin/sh") (("^#!.*/bin/sh")
"#!/bin/sh") "#!/bin/sh")
(("^#!.*/bin/env(.*)$" _ args) (("^#!.*/bin/env(.*)$" _ args)
(string-append "#!/usr/bin/env" (string-append "#!/usr/bin/env"
args))))) args)))))
(find-files dir ".*")))))))) (find-files dir ".*"))
#t))))))
(home-page "https://www.gnu.org/software/automake/") (home-page "https://www.gnu.org/software/automake/")
(synopsis "Making GNU standards-compliant Makefiles") (synopsis "Making GNU standards-compliant Makefiles")
(description (description
@ -322,21 +325,6 @@ intuitive format and then Automake works with Autoconf to produce a robust
Makefile, simplifying the entire process for the developer.") Makefile, simplifying the entire process for the developer.")
(license gpl2+))) ; some files are under GPLv3+ (license gpl2+))) ; some files are under GPLv3+
(define-public automake-1.16
;; Make this the default on the next rebuild cycle.
(package
(inherit automake)
(version "1.16.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))))
(define-public libtool (define-public libtool
(package (package
(name "libtool") (name "libtool")
@ -353,6 +341,9 @@ Makefile, simplifying the entire process for the developer.")
(propagated-inputs `(("m4" ,m4))) (propagated-inputs `(("m4" ,m4)))
(native-inputs `(("m4" ,m4) (native-inputs `(("m4" ,m4)
("perl" ,perl) ("perl" ,perl)
;; XXX: this shouldn't be necessary, but without it test
;; 102 fails because it cannot find ltdl/libltdl.la.
("libltdl" ,libltdl)
("help2man" ,help2man) ;because we modify ltmain.sh ("help2man" ,help2man) ;because we modify ltmain.sh
("automake" ,automake) ;some tests rely on 'aclocal' ("automake" ,automake) ;some tests rely on 'aclocal'
("autoconf" ,autoconf-wrapper))) ;others on 'autom4te' ("autoconf" ,autoconf-wrapper))) ;others on 'autom4te'

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,313 @@
/* GNU Guix --- Functional package management for GNU
Copyright (C) 2018 Ludovic Courtès <ludo@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/>. */
/* Make the given @WRAPPED_PROGRAM@ relocatable by executing it in a separate
mount namespace where the store is mounted in its right place.
We would happily do that in Scheme using 'call-with-container'. However,
this very program needs to be relocatable, so it needs to be statically
linked, which complicates things (Guile's modules can hardly be "linked"
into a single executable.) */
#define _GNU_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sched.h>
#include <sys/mount.h>
#include <errno.h>
#include <libgen.h>
#include <limits.h>
#include <string.h>
#include <assert.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <dirent.h>
#include <sys/syscall.h>
/* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the
caller must eventually free. */
static char *
concat (const char *directory, const char *file)
{
char *result = malloc (strlen (directory) + 2 + strlen (file));
assert (result != NULL);
strcpy (result, directory);
strcat (result, "/");
strcat (result, file);
return result;
}
static void
mkdir_p (const char *directory)
{
if (strcmp (directory, "/") != 0)
{
char *parent = dirname (strdupa (directory));
mkdir_p (parent);
int err = mkdir (directory, 0700);
if (err < 0 && errno != EEXIST)
assert_perror (errno);
}
}
static void
rm_rf (const char *directory)
{
DIR *stream = opendir (directory);
for (struct dirent *entry = readdir (stream);
entry != NULL;
entry = readdir (stream))
{
if (strcmp (entry->d_name, ".") == 0
|| strcmp (entry->d_name, "..") == 0)
continue;
char *full = concat (directory, entry->d_name);
int err = unlink (full);
if (err < 0)
{
if (errno == EISDIR)
/* Recurse (we expect a shallow directory structure so there's
little risk of stack overflow.) */
rm_rf (full);
else
assert_perror (errno);
}
free (full);
}
closedir (stream);
int err = rmdir (directory);
if (err < 0 && errno != ENOENT)
assert_perror (errno);
}
/* Bind mount all the top-level entries in SOURCE to TARGET. */
static void
bind_mount (const char *source, const char *target)
{
DIR *stream = opendir (source);
for (struct dirent *entry = readdir (stream);
entry != NULL;
entry = readdir (stream))
{
/* XXX: Some file systems may not report a useful 'd_type'. Ignore them
for now. */
assert (entry->d_type != DT_UNKNOWN);
if (strcmp (entry->d_name, ".") == 0
|| strcmp (entry->d_name, "..") == 0)
continue;
char *abs_source = concat (source, entry->d_name);
char *new_entry = concat (target, entry->d_name);
if (entry->d_type == DT_LNK)
{
char target[PATH_MAX];
ssize_t result = readlink (abs_source, target, sizeof target - 1);
if (result > 0)
{
target[result] = '\0';
int err = symlink (target, new_entry);
if (err < 0)
assert_perror (errno);
}
}
else
{
/* Create the mount point. */
if (entry->d_type == DT_DIR)
{
int err = mkdir (new_entry, 0700);
if (err != 0)
assert_perror (errno);
}
else
close (open (new_entry, O_WRONLY | O_CREAT));
int err = mount (abs_source, new_entry, "none",
MS_BIND | MS_REC | MS_RDONLY, NULL);
/* It used to be that only directories could be bind-mounted. Thus,
keep going if we fail to bind-mount a non-directory entry.
That's OK because regular files in the root file system are
usually uninteresting. */
if (err != 0 && entry->d_type != DT_DIR)
assert_perror (errno);
free (new_entry);
free (abs_source);
}
}
closedir (stream);
}
/* Write the user/group ID map for PID to FILE, mapping ID to itself. See
user_namespaces(7). */
static void
write_id_map (pid_t pid, const char *file, int id)
{
char id_map_file[100];
snprintf (id_map_file, sizeof id_map_file, "/proc/%d/%s", pid, file);
char id_map[100];
/* Map root and the current user. */
int len = snprintf (id_map, sizeof id_map, "%d %d 1\n", id, id);
int fd = open (id_map_file, O_WRONLY);
if (fd < 0)
assert_perror (errno);
int n = write (fd, id_map, len);
if (n < 0)
assert_perror (errno);
close (fd);
}
/* Disallow setgroups(2) for PID. */
static void
disallow_setgroups (pid_t pid)
{
char file[100];
snprintf (file, sizeof file, "/proc/%d/setgroups", pid);
int fd = open (file, O_WRONLY);
if (fd < 0)
assert_perror (errno);
int err = write (fd, "deny", 5);
if (err < 0)
assert_perror (errno);
close (fd);
}
int
main (int argc, char *argv[])
{
ssize_t size;
char self[PATH_MAX];
size = readlink ("/proc/self/exe", self, sizeof self - 1);
assert (size > 0);
/* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we
want to extract "/home/ludo/.local/gnu/store". */
size_t index = strlen (self)
- strlen ("@WRAPPED_PROGRAM@")
+ strlen ("@STORE_DIRECTORY@");
char *store = strdup (self);
store[index] = '\0';
struct stat statbuf;
/* If STORE is already at the "right" place, we can execute
@WRAPPED_PROGRAM@ right away. This is not just an optimization: it's
needed when running one of these wrappers from within an unshare'd
namespace, because 'unshare' fails with EPERM in that context. */
if (strcmp (store, "@STORE_DIRECTORY@") != 0
&& lstat ("@WRAPPED_PROGRAM@", &statbuf) != 0)
{
/* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is
bind-mounted in the right place. */
int err;
char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
char *new_store = concat (new_root, "@STORE_DIRECTORY@");
char *cwd = get_current_dir_name ();
/* Create a child with separate namespaces and set up bind-mounts from
there. That way, bind-mounts automatically disappear when the child
exits, which simplifies cleanup for the parent. Note: clone is more
convenient than fork + unshare since the parent can directly write
the child uid_map/gid_map files. */
pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER,
NULL, NULL, NULL);
switch (child)
{
case 0:
/* Note: Due to <https://bugzilla.kernel.org/show_bug.cgi?id=183461>
we cannot make NEW_ROOT a tmpfs (which would have saved the need
for 'rm_rf'.) */
bind_mount ("/", new_root);
mkdir_p (new_store);
err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY,
NULL);
if (err < 0)
assert_perror (errno);
chdir (new_root);
err = chroot (new_root);
if (err < 0)
assert_perror (errno);
/* Change back to where we were before chroot'ing. */
chdir (cwd);
break;
case -1:
fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]);
fprintf (stderr, "\
This may be because \"user namespaces\" are not supported on this system.\n\
Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\
unless you move it to the '@STORE_DIRECTORY@' directory.\n\
\n\
Please refer to the 'guix pack' documentation for more information.\n");
return EXIT_FAILURE;
default:
{
/* Map the current user/group ID in the child's namespace (the
default is to get the "overflow UID", i.e., the UID of
"nobody"). We must first disallow 'setgroups' for that
process. */
disallow_setgroups (child);
write_id_map (child, "uid_map", getuid ());
write_id_map (child, "gid_map", getgid ());
int status;
waitpid (child, &status, 0);
chdir ("/"); /* avoid EBUSY */
rm_rf (new_root);
free (new_root);
exit (status);
}
}
}
/* The executable is available under @STORE_DIRECTORY@, so we can now
execute it. */
int err = execv ("@WRAPPED_PROGRAM@", argv);
if (err < 0)
assert_perror (errno);
return EXIT_FAILURE;
}

View File

@ -77,7 +77,7 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
(define-public nss-mdns (define-public nss-mdns
(package (package
(name "nss-mdns") (name "nss-mdns")
(version "0.12") (version "0.14.1")
(home-page "https://github.com/lathiat/nss-mdns") (home-page "https://github.com/lathiat/nss-mdns")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -85,32 +85,13 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p2vj9fz4kzrjrj81ipf4qwgnr2n7a8cbzw4bpk18xyqhdx8h775")) "134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2"))))
(patches
(list (origin
;; See
;; <https://github.com/lathiat/nss-mdns/issues/26#issuecomment-364781799>.
(uri (string-append
home-page
"/commit/31ccbec3b4f054e590c7c880d8a8a50cfc97127d.patch"))
(sha256
(base32
"0b1jmhnkpsczbph4ala7x3rafwxdg93277s30iaxh37jnvgjnhsd"))
(method url-fetch))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases ;; The Avahi daemon socket is expected by 'configure.ac' to be at
(add-after 'unpack 'set-avahi-socket-name ;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in
(lambda _ ;; /run/avahi-daemon/socket. Remove the "$(localstatedir)" bit.
;; The Avahi daemon socket is expected by '(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket")))
;; src/Makefile.am to be at
;; "$(localstatedir)/run/avahi-daemon/socket", but
;; nowadays it lives in /run/avahi-daemon/socket.
;; Remove the "$(localstatedir)" bit.
(substitute* "src/Makefile.in"
(("\\$\\(localstatedir)/run/avahi-daemon/socket")
"/run/avahi-daemon/socket"))
#t)))))
(synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in") (synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in")
(description (description
"Nss-mdns is a plug-in for the GNU C Library's Name Service Switch "Nss-mdns is a plug-in for the GNU C Library's Name Service Switch

View File

@ -117,7 +117,7 @@ for use with GCC on Atmel AVR microcontrollers.")
(version (package-version avr-gcc)) (version (package-version avr-gcc))
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments '(#:builder (mkdir %output))) (arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs (propagated-inputs
`(("avrdude" ,avrdude) `(("avrdude" ,avrdude)
("binutils" ,avr-binutils) ("binutils" ,avr-binutils)

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -63,7 +64,7 @@
(define-public duplicity (define-public duplicity
(package (package
(name "duplicity") (name "duplicity")
(version "0.7.12") (version "0.7.17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -73,12 +74,13 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1rhgrz2lm9vbfdp2raykrih1c6n2lw5jd572z4dsz488m52avjqi")))) "0jmh3h09680xyf33hzxxxl74bwz66zqhzvjlj7j89r9rz3qwa91p"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("util-linux" ,util-linux) ;setsid command, for the tests `(("util-linux" ,util-linux) ;setsid command, for the tests
("par2cmdline" ,par2cmdline) ("par2cmdline" ,par2cmdline)
("python-pexpect" ,python2-pexpect) ("python-pexpect" ,python2-pexpect)
("python-fasteners" ,python2-fasteners)
("mock" ,python2-mock))) ("mock" ,python2-mock)))
(propagated-inputs (propagated-inputs
`(("lockfile" ,python2-lockfile) `(("lockfile" ,python2-lockfile)
@ -203,7 +205,6 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(base32 (base32
"1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd")))) "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO: Add -L/path/to/nettle in libarchive.pc.
(inputs (inputs
`(("zlib" ,zlib) `(("zlib" ,zlib)
("nettle" ,nettle) ("nettle" ,nettle)
@ -226,12 +227,33 @@ backups (called chunks) to allow easy burning to CD/DVD.")
;; the chroot's /etc/passwd doesn't have it. Turn off those tests. ;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
;; ;;
;; The tests allow one to disable tests matching a globbing pattern. ;; The tests allow one to disable tests matching a globbing pattern.
(and (zero? (system* "make" (invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
"libarchive_test" "bsdcpio_test" "bsdtar_test")) ;; XXX: This glob disables too much.
;; XXX: This glob disables too much. (invoke "./libarchive_test" "^test_*_disk*")
(zero? (system* "./libarchive_test" "^test_*_disk*")) (invoke "./bsdcpio_test" "^test_owner_parse")
(zero? (system* "./bsdcpio_test" "^test_owner_parse")) (invoke "./bsdtar_test")))
(zero? (system* "./bsdtar_test")))))) (add-after 'install 'add--L-in-libarchive-pc
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(nettle (assoc-ref inputs "nettle"))
(libxml2 (assoc-ref inputs "libxml2"))
(xz (assoc-ref inputs "xz"))
(zlib (assoc-ref inputs "zlib"))
(bzip2 (assoc-ref inputs "bzip2")))
(substitute* (string-append lib "/pkgconfig/libarchive.pc")
(("-lnettle")
(string-append "-L" nettle "/lib -lnettle"))
(("-lxml2")
(string-append "-L" libxml2 "/lib -lxml2"))
(("-llzma")
(string-append "-L" xz "/lib -llzma"))
(("-lz")
(string-append "-L" zlib "/lib -lz"))
(("-lbz2")
(string-append "-L" bzip2 "/lib -lbz2")))
#t))))
;; libarchive/test/test_write_format_gnutar_filenames.c needs to be ;; libarchive/test/test_write_format_gnutar_filenames.c needs to be
;; compiled with C99 or C11 or a gnu variant. ;; compiled with C99 or C11 or a gnu variant.
#:configure-flags '("CFLAGS=-O2 -g -std=c99"))) #:configure-flags '("CFLAGS=-O2 -g -std=c99")))
@ -278,9 +300,6 @@ random access nor for in-place modification.")
`(#:parallel-build? #f ;race conditions `(#:parallel-build? #f ;race conditions
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "autoreconf")))
(add-before 'build 'qualify-inputs (add-before 'build 'qualify-inputs
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; This script is full of pitfalls. Fix some that particularly ;; This script is full of pitfalls. Fix some that particularly
@ -468,7 +487,8 @@ detection, and lossless compression.")
;; Remove bundled shared libraries. ;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms" (with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively (for-each delete-file-recursively
(list "blake2" "lz4" "zstd"))))))) (list "blake2" "lz4" "zstd")))
#t))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:modules ((srfi srfi-26) ; for cut `(#:modules ((srfi srfi-26) ; for cut

View File

@ -2,16 +2,17 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -35,6 +36,7 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages ed) #:use-module (gnu packages ed)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
@ -126,14 +128,14 @@ including, for example, recursive directory searching.")
(define-public sed (define-public sed
(package (package
(name "sed") (name "sed")
(version "4.4") (version "4.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/sed/sed-" version (uri (string-append "mirror://gnu/sed/sed-" version
".tar.xz")) ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0fv88bcnraixc8jvpacvxshi30p5x9m7yb8ns1hfv07hmb2ypmnb")))) "0h3b2jfj57wmz680vkbyavlsrkak556qhvs7m7fdlawwhg477bbs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Stream editor") (synopsis "Stream editor")
(arguments (arguments
@ -147,15 +149,9 @@ including, for example, recursive directory searching.")
(substitute* "Makefile.in" (substitute* "Makefile.in"
(("^doc/sed\\.1:.*") (("^doc/sed\\.1:.*")
"doc/sed.1:\n")) "doc/sed.1:\n"))
#t))
(add-before 'patch-source-shebangs 'patch-test-suite
(lambda* (#:key inputs #:allow-other-keys)
(patch-makefile-SHELL "testsuite/Makefile.tests")
(substitute* '("testsuite/bsd.sh"
"testsuite/bug-regex9.c")
(("/bin/sh")
(which "sh")))
#t))))) #t)))))
(native-inputs
`(("perl" ,perl))) ;for tests
(description (description
"Sed is a non-interactive, text stream editor. It receives a text "Sed is a non-interactive, text stream editor. It receives a text
input from a file or from standard input and it then applies a series of text input from a file or from standard input and it then applies a series of text
@ -168,20 +164,20 @@ implementation offers several extensions over the standard utility.")
(define-public tar (define-public tar
(package (package
(name "tar") (name "tar")
(version "1.29") (version "1.30")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/tar/tar-" (uri (string-append "mirror://gnu/tar/tar-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0")) "1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi"))
(patches (search-patches "tar-CVE-2016-6321.patch" (patches (search-patches "tar-skip-unreliable-tests.patch"
"tar-skip-unreliable-tests.patch")))) "tar-remove-wholesparse-check.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space. ;; Note: test suite requires ~1GiB of disk space.
(arguments (arguments
'(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name (add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs. ;; Do not use "/bin/sh" to run programs.
@ -189,7 +185,27 @@ implementation offers several extensions over the standard utility.")
(substitute* "src/system.c" (substitute* "src/system.c"
(("/bin/sh") (("/bin/sh")
(string-append bash "/bin/sh"))) (string-append bash "/bin/sh")))
#t)))))) #t))))
;; Work around a cross-compilation bug whereby libgnu.a would provide
;; '__mktime_internal', which conflicts with the one in libc.a.
,@(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'())
;; Test #92 "link mismatch" expects "a/z: Not linked to a/y" but gets
;; "a/y: Not linked to a/z" and fails, presumably due to differences in
;; the order in which 'diff' traverses directories. That leads to a
;; test failure even though conceptually the test passes. Skip it.
;; Test 117 and 118 are prone to race conditions too, particularly
;; when cross-compiling, so we skip those as well. All issues have
;; been fixed upstream in these commits:
;; <https://git.savannah.gnu.org/cgit/tar.git/commit/?id=847a36f>
;; <https://git.savannah.gnu.org/cgit/tar.git/commit/?id=64b43fd>
#:make-flags (list (string-append
"TESTSUITEFLAGS= -k '!link mismatch,"
"!directory removed before reading,"
"!explicitly named directory removed before reading'"))))
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able ;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
;; to refer to the target Bash. ;; to refer to the target Bash.
@ -211,16 +227,22 @@ standard utility.")
(define-public patch (define-public patch
(package (package
(name "patch") (name "patch")
(version "2.7.5") (version "2.7.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/patch/patch-" (uri (string-append "mirror://gnu/patch/patch-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx")) "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
(patches (search-patches "patch-hurd-path-max.patch")))) (patches (search-patches "patch-hurd-path-max.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
;; Work around a cross-compilation bug whereby libpatch.a would provide
;; '__mktime_internal', which conflicts with the one in libc.a.
(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'()))
(native-inputs `(("ed" ,ed))) (native-inputs `(("ed" ,ed)))
(synopsis "Apply differences to originals, with optional backups") (synopsis "Apply differences to originals, with optional backups")
(description (description
@ -304,14 +326,14 @@ used to apply commands with arbitrarily long arguments.")
(define-public coreutils (define-public coreutils
(package (package
(name "coreutils") (name "coreutils")
(version "8.28") (version "8.29")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-" (uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi")))) "0plm1zs9il6bb5mk881qvbghq4glc8ybbgakk2lfzb0w64fgml4j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("acl" ,acl) ; TODO: add SELinux (inputs `(("acl" ,acl) ; TODO: add SELinux
("gmp" ,gmp) ;bignums in 'expr', yay! ("gmp" ,gmp) ;bignums in 'expr', yay!
@ -378,13 +400,17 @@ functionality beyond that which is outlined in the POSIX standard.")
(sha256 (sha256
(base32 (base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn")) "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))
(patches (search-patches "make-impure-dirs.patch")))) (patches (search-patches "make-impure-dirs.patch"
"make-glibc-compat.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile (native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
(inputs `(("guile" ,guile-2.0))) (inputs `(("guile" ,guile-2.0)))
(outputs '("out" "debug")) (outputs '("out" "debug"))
(arguments (arguments
'(#:phases '(;; Work around faulty glob detection with glibc 2.27. See
;; <https://lists.nongnu.org/archive/html/bug-make/2017-11/msg00027.html>.
#:configure-flags '("make_cv_sys_gnu_glob=yes")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'set-default-shell (add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -393,7 +419,8 @@ functionality beyond that which is outlined in the POSIX standard.")
(substitute* "job.c" (substitute* "job.c"
(("default_shell =.*$") (("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n" (format #f "default_shell = \"~a/bin/sh\";\n"
bash))))))))) bash)))
#t))))))
(synopsis "Remake files automatically") (synopsis "Remake files automatically")
(description (description
"Make is a program that is used to control the production of "Make is a program that is used to control the production of
@ -408,16 +435,15 @@ change. GNU make offers many powerful extensions over the standard utility.")
(define-public binutils (define-public binutils
(package (package
(name "binutils") (name "binutils")
(version "2.28.1") (version "2.30")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-" (uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939")) "028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg"))
(patches (search-patches "binutils-ld-new-dtags.patch" (patches (search-patches "binutils-loongson-workaround.patch"))))
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO: Add dependency on zlib + those for Gold. ;; TODO: Add dependency on zlib + those for Gold.
@ -426,6 +452,12 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; on GCC when bootstrapping. ;; on GCC when bootstrapping.
"LDFLAGS=-static-libgcc" "LDFLAGS=-static-libgcc"
;; Turn on --enable-new-dtags by default to make the
;; linker set RUNPATH instead of RPATH on binaries.
;; This is important because RUNPATH can be overriden
;; using LD_LIBRARY_PATH at runtime.
"--enable-new-dtags"
;; Don't search under /usr/lib & co. ;; Don't search under /usr/lib & co.
"--with-lib-path=/no-ld-lib-path" "--with-lib-path=/no-ld-lib-path"
@ -512,7 +544,8 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
target "-ld") target "-ld")
"/bin/ld")))) "/bin/ld"))))
(chmod ld #o555) (chmod ld #o555)
(compile-file ld #:output-file go)))))) (compile-file ld #:output-file go)
#t)))))
(synopsis "The linker wrapper") (synopsis "The linker wrapper")
(description (description
"The linker wrapper (or 'ld-wrapper') wraps the linker to add any "The linker wrapper (or 'ld-wrapper') wraps the linker to add any
@ -526,38 +559,31 @@ store.")
(define-public glibc/linux (define-public glibc/linux
(package (package
(name "glibc") (name "glibc")
;; Glibc has stable branches that continuously pick fixes for each supported
;; release. Unfortunately they do not do point-releases, so we are stuck
;; with copying almost all patches, or use a snapshot of the release branch.
;;
;; This version number corresponds to the output of `git describe` and the
;; archive can be generated by checking out the commit ID and running:
;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
;; See <https://bugs.gnu.org/29406> for details.
;;
;; Note: Always use a dot after the minor version since various places rely ;; Note: Always use a dot after the minor version since various places rely
;; on "version-major+minor" to determine where locales are found. ;; on "version-major+minor" to determine where locales are found.
(version "2.26.105-g0890d5379c") (version "2.27")
(replacement glibc-2.26-patched)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
"glibc-" (version-major+minor version) "-"
(caddr (string-split version #\.)) ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g")) "0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji"))
(snippet (snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so ;; required on LFS distros to avoid loading the distro's libc.so
;; instead of ours. ;; instead of ours.
'(substitute* "sysdeps/unix/sysv/linux/configure" '(begin
(("use_ldconfig=yes") (substitute* "sysdeps/unix/sysv/linux/configure"
"use_ldconfig=no"))) (("use_ldconfig=yes")
"use_ldconfig=no"))
#t))
(modules '((guix build utils))) (modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch" (patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-2.27-git-fixes.patch"
"glibc-hidden-visibility-ldconfig.patch"
"glibc-versioned-locpath.patch" "glibc-versioned-locpath.patch"
"glibc-o-largefile.patch")))) "glibc-allow-kernel-2.6.32.patch"
"glibc-reinstate-prlimit64-fallback.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@ -582,8 +608,7 @@ store.")
(guix build gnu-build-system)) (guix build gnu-build-system))
#:configure-flags #:configure-flags
(list "--enable-add-ons" (list "--sysconfdir=/etc"
"--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to ;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the ;; expensive (~100 MiB), so we rely on users to install the
@ -618,10 +643,7 @@ store.")
;; Use our Bash instead of /bin/sh. ;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL=" (string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash") (assoc-ref %build-inputs "bash")
"/bin/bash") "/bin/bash"))
;; XXX: Work around "undefined reference to `__stack_chk_guard'".
"libc_cv_ssp=no" "libc_cv_ssp_strong=no")
#:tests? #f ; XXX #:tests? #f ; XXX
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
@ -685,7 +707,9 @@ store.")
;; "bilingual" eval/exec magic at the top of the file. ;; "bilingual" eval/exec magic at the top of the file.
"") "")
(("exec @PERL@") (("exec @PERL@")
"exec perl"))))) "exec perl"))
#t)))
(add-after 'install 'move-static-libs (add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -732,6 +756,7 @@ store.")
;; install the message catalogs, with 'msgfmt'. ;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo) (native-inputs `(("texinfo" ,texinfo)
("perl" ,perl) ("perl" ,perl)
("bison" ,bison)
("gettext" ,gettext-minimal))) ("gettext" ,gettext-minimal)))
(native-search-paths (native-search-paths
@ -799,14 +824,13 @@ with the Linux kernel.")
;; Force mach/hurd/libpthread subdirs to build first in order to avoid ;; Force mach/hurd/libpthread subdirs to build first in order to avoid
;; linking errors. ;; linking errors.
;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html> ;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html>
(let ((-j (list "-j" (number->string (parallel-job-count))))) (let ((flags (list "-j" (number->string (parallel-job-count)))))
(let-syntax ((make (syntax-rules () (define (make target)
((_ target) (apply invoke "make" target flags))
(zero? (apply system* "make" target -j)))))) (make "mach/subdir_lib")
(and (make "mach/subdir_lib") (make "hurd/subdir_lib")
(make "hurd/subdir_lib") (make "libpthread/subdir_lib")
(make "libpthread/subdir_lib") (apply invoke "make" flags))))))
(zero? (apply system* "make" -j)))))))))
((#:configure-flags original-configure-flags) ((#:configure-flags original-configure-flags)
`(append (list "--host=i586-pc-gnu" `(append (list "--host=i586-pc-gnu"
@ -841,13 +865,25 @@ GLIBC/HURD for a Hurd host"
;; Below are old libc versions, which we use mostly to build locale data in ;; Below are old libc versions, which we use mostly to build locale data in
;; the old format (which the new libc cannot cope with.) ;; the old format (which the new libc cannot cope with.)
(define glibc-2.26-patched (define-public glibc-2.26
(package (package
(inherit glibc) (inherit glibc)
;; This version number corresponds to the output of `git describe` and the
;; archive can be generated by checking out the commit ID and running:
;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
;; See <https://bugs.gnu.org/29406> for why this was necessary.
(version "2.26.105-g0890d5379c")
(source (origin (source (origin
(inherit (package-source glibc)) (inherit (package-source glibc))
(patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch") (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
(origin-patches (package-source glibc)))))))) "glibc-" (version-major+minor version) "-"
(caddr (string-split version #\.)) ".tar.xz"))
(sha256
(base32
"1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"))))))
(define-public glibc-2.25 (define-public glibc-2.25
(package (package
@ -862,7 +898,6 @@ GLIBC/HURD for a Hurd host"
"1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6")) "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
(patches (search-patches "glibc-ldd-x86_64.patch" (patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch" "glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch" "glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch" "glibc-CVE-2017-1000366-pt2.patch"
@ -881,7 +916,6 @@ GLIBC/HURD for a Hurd host"
"1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r")) "1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r"))
(patches (search-patches "glibc-ldd-x86_64.patch" (patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch" "glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch" "glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch" "glibc-CVE-2015-5180.patch"
"glibc-CVE-2017-1000366-pt1.patch" "glibc-CVE-2017-1000366-pt1.patch"
@ -901,7 +935,6 @@ GLIBC/HURD for a Hurd host"
"1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")) "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl"))
(patches (search-patches "glibc-ldd-x86_64.patch" (patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch" "glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch" "glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch" "glibc-CVE-2015-5180.patch"
"glibc-CVE-2016-3075.patch" "glibc-CVE-2016-3075.patch"
@ -923,6 +956,7 @@ GLIBC/HURD for a Hurd host"
(base32 (base32
"0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb")) "0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb"))
(patches (search-patches "glibc-ldd-x86_64.patch" (patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch" "glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch" "glibc-CVE-2015-5180.patch"
"glibc-CVE-2015-7547.patch" "glibc-CVE-2015-7547.patch"
@ -965,8 +999,8 @@ the 'share/locale' sub-directory of this package.")
`(modify-phases ,phases `(modify-phases ,phases
(replace 'build (replace 'build
(lambda _ (lambda _
(zero? (system* "make" "localedata/install-locales" (invoke "make" "localedata/install-locales"
"-j" (number->string (parallel-job-count)))))) "-j" (number->string (parallel-job-count)))))
(delete 'install) (delete 'install)
(delete 'move-static-libs))) (delete 'move-static-libs)))
((#:configure-flags flags) ((#:configure-flags flags)
@ -987,8 +1021,7 @@ the 'share/locale' sub-directory of this package.")
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
#:builder (begin #:builder (begin
(use-modules (srfi srfi-1) (use-modules (guix build utils))
(guix build utils))
(let* ((libc (assoc-ref %build-inputs "glibc")) (let* ((libc (assoc-ref %build-inputs "glibc"))
(gzip (assoc-ref %build-inputs "gzip")) (gzip (assoc-ref %build-inputs "gzip"))
@ -999,27 +1032,27 @@ the 'share/locale' sub-directory of this package.")
(setenv "PATH" (string-append libc "/bin:" gzip "/bin")) (setenv "PATH" (string-append libc "/bin:" gzip "/bin"))
(mkdir-p localedir) (mkdir-p localedir)
(every (lambda (locale) (for-each (lambda (locale)
(define file (define file
;; Use the "normalized codeset" by ;; Use the "normalized codeset" by
;; default--e.g., "en_US.utf8". ;; default--e.g., "en_US.utf8".
(string-append localedir "/" locale ".utf8")) (string-append localedir "/" locale ".utf8"))
(and (zero? (system* "localedef" "--no-archive" (invoke "localedef" "--no-archive"
"--prefix" localedir "--prefix" localedir
"-i" locale "-i" locale
"-f" "UTF-8" file)) "-f" "UTF-8" file)
(begin
;; For backward compatibility with Guix
;; <= 0.8.3, add "xx_YY.UTF-8".
(symlink (string-append locale ".utf8")
(string-append localedir "/"
locale ".UTF-8"))
#t)))
;; These are the locales commonly used for ;; For backward compatibility with Guix
;; tests---e.g., in Guile's i18n tests. ;; <= 0.8.3, add "xx_YY.UTF-8".
'("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")))))) (symlink (string-append locale ".utf8")
(string-append localedir "/"
locale ".UTF-8")))
;; These are the locales commonly used for
;; tests---e.g., in Guile's i18n tests.
'("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR"))
#t))))
(inputs `(("glibc" ,glibc) (inputs `(("glibc" ,glibc)
("gzip" ,gzip))) ("gzip" ,gzip)))
(synopsis "Small sample of UTF-8 locales") (synopsis "Small sample of UTF-8 locales")
@ -1063,30 +1096,26 @@ command.")
"--host=i586-pc-gnu" "--host=i586-pc-gnu"
"--enable-obsolete-rpc")) "--enable-obsolete-rpc"))
((#:phases _) ((#:phases _)
'(alist-replace '(modify-phases %standard-phases
'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(and (zero? (system* "make" "install-headers")) (invoke "make" "install-headers")
;; Make an empty stubs.h to work around not being able to ;; Make an empty stubs.h to work around not being able to
;; produce a valid stubs.h and causing the build to fail. See ;; produce a valid stubs.h and causing the build to fail. See
;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>. ;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(close-port (close-port
(open-output-file (open-output-file
(string-append out "/include/gnu/stubs.h")))))) (string-append out "/include/gnu/stubs.h"))))
#t))
;; Nothing to build. (delete 'build) ; nothing to build
(alist-delete (add-before 'configure 'patch-configure-script
'build (lambda _
;; Use the right 'pwd'.
(alist-cons-before (substitute* "configure"
'configure 'pre-configure (("/bin/pwd") "pwd"))
(lambda _ #t))))))))
;; Use the right 'pwd'.
(substitute* "configure"
(("/bin/pwd") "pwd")))
%standard-phases))))))))
(define-public tzdata (define-public tzdata
(package (package
@ -1123,8 +1152,8 @@ command.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'unpack (replace 'unpack
(lambda* (#:key source inputs #:allow-other-keys) (lambda* (#:key source inputs #:allow-other-keys)
(and (zero? (system* "tar" "xvf" source)) (invoke "tar" "xvf" source)
(zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))) (invoke "tar" "xvf" (assoc-ref inputs "tzcode"))))
(add-after 'install 'post-install (add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Move data in the right place. ;; Move data in the right place.
@ -1139,7 +1168,8 @@ command.")
(copy-recursively (string-append out "/share/zoneinfo-leaps") (copy-recursively (string-append out "/share/zoneinfo-leaps")
(string-append out "/share/zoneinfo/right")) (string-append out "/share/zoneinfo/right"))
(delete-file-recursively (delete-file-recursively
(string-append out "/share/zoneinfo-leaps"))))) (string-append out "/share/zoneinfo-leaps"))
#t)))
(delete 'configure)))) (delete 'configure))))
(inputs `(("tzcode" ,(origin (inputs `(("tzcode" ,(origin
(method url-fetch) (method url-fetch)
@ -1164,63 +1194,7 @@ and daylight-saving rules.")
;;; will typically be obsolete and should never be referred to by a built ;;; will typically be obsolete and should never be referred to by a built
;;; package. ;;; package.
(define-public tzdata-for-tests (define-public tzdata-for-tests
(hidden-package (package (inherit tzdata) (hidden-package tzdata))
(version "2017c")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.iana.org/time-zones/repository"
"/releases/tzdata" version ".tar.gz"))
(sha256
(base32
"02yrrfj0p7ar885ja41ylijzbr8wc6kz6kzlw8c670i9m693ym6n"))))
(arguments
'(#:tests? #f
#:make-flags (let ((out (assoc-ref %outputs "out"))
(tmp (getenv "TMPDIR")))
(list (string-append "TOPDIR=" out)
(string-append "TZDIR=" out "/share/zoneinfo")
;; Discard zic, dump, and tzselect, already
;; provided by glibc.
(string-append "ETCDIR=" tmp "/etc")
;; Likewise for the C library routines.
(string-append "LIBDIR=" tmp "/lib")
(string-append "MANDIR=" tmp "/man")
"AWK=awk"
"CC=gcc"))
#:modules ((guix build utils)
(guix build gnu-build-system)
(srfi srfi-1))
#:phases
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source inputs #:allow-other-keys)
(and (zero? (system* "tar" "xvf" source))
(zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode"))))))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
;; Move data in the right place.
(let ((out (assoc-ref outputs "out")))
(symlink (string-append out "/share/zoneinfo")
(string-append out "/share/zoneinfo/posix"))
(delete-file-recursively
(string-append out "/share/zoneinfo-posix"))
(copy-recursively (string-append out "/share/zoneinfo-leaps")
(string-append out "/share/zoneinfo/right"))
(delete-file-recursively
(string-append out "/share/zoneinfo-leaps")))))
(delete 'configure))))
(inputs `(("tzcode" ,(origin
(method url-fetch)
(uri (string-append
"http://www.iana.org/time-zones/repository/releases/tzcode"
version ".tar.gz"))
(sha256
(base32
"1dvrq0b2hz7cjqdyd7x21wpy4qcng3rvysr61ij0c2g64fyb9s41")))))))))
(define-public libiconv (define-public libiconv
(package (package
@ -1237,9 +1211,11 @@ and daylight-saving rules.")
(snippet (snippet
;; Work around "declared gets" error on glibc systems (fixed by ;; Work around "declared gets" error on glibc systems (fixed by
;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.) ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.)
'(substitute* "srclib/stdio.in.h" '(begin
(("^#undef gets") "") (substitute* "srclib/stdio.in.h"
(("^_GL_WARN_ON_USE \\(gets.*") ""))))) (("^#undef gets") "")
(("^_GL_WARN_ON_USE \\(gets.*") ""))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Character set conversion library") (synopsis "Character set conversion library")
(description (description

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -72,7 +72,14 @@
(9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb") (9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb")
(10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4") (10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4")
(11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx") (11 "038p7mhnq9m65g505hi3827jkf9f35nd1cy00w8mwafpyxp44mnx")
(12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps"))) (12 "0gh6lbb1rwpk44pvbamm6vzdfi50xnwkqd9v7s8cjwk3pz973hps")
(13 "1djkx0w9v62q78gz3jsvamj1jq53i6hbfrfhhsw86ihwpjnfy98v")
(14 "0z5ikcq9zyxw79d0z36r5p0mspnb5piavbv03jmlan1wnknmrxx7")
(15 "09n307fi1j257abhm295k6ksmnzw47ka2zhnr0i5lbdnpvn04xnk")
(16 "1cgi1y6mifm8hsgv4avj5ih76535js3qba1sqwbfvp7si76927sh")
(17 "0w6jpj2giakji1ir83rpkx1y7n7xqppah3j748m6dm38hywr0gvp")
(18 "1k58h4wxbsg7r4rwhrvzx5hfbapba2nxjysbhh6qp6ki5ys99i2v")
(19 "07n1i5610lbs672x1s8g82qn3qfj06s0ip3z80sri0g8vxp0s5r7")))
(define (download-patches store count) (define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of "Download COUNT Bash patches into store. Return a list of
@ -93,9 +100,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
1)) 1))
(define-public bash (define-public bash
(let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'" (let* ((cppflags (string-join '("-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
"-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
"-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
"-DSTANDARD_UTILS_PATH='\"/no-such-path\"'" "-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
"-DNON_INTERACTIVE_LOGIN_SHELLS" "-DNON_INTERACTIVE_LOGIN_SHELLS"
"-DSSH_SOURCE_BASHRC") "-DSSH_SOURCE_BASHRC")
@ -160,7 +165,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
;; Add a `sh' -> `bash' link. ;; Add a `sh' -> `bash' link.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(with-directory-excursion (string-append out "/bin") (with-directory-excursion (string-append out "/bin")
(symlink "bash" "sh"))))) (symlink "bash" "sh")
#t))))
(add-after 'install 'move-development-files (add-after 'install 'move-development-files
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -30,14 +30,14 @@
(define-public libgc (define-public libgc
(package (package
(name "libgc") (name "libgc")
(version "7.6.0") (version "7.6.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.hboehm.info/gc/gc_source/gc-" (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1")))) "076dzsqqyxd3nlzs0z277vvhqjp8nv5dqi763s0m90zr6ljiyk5r"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -91,7 +91,7 @@ C or C++ programs, though that is not its primary goal.")
(define-public libatomic-ops (define-public libatomic-ops
(package (package
(name "libatomic-ops") (name "libatomic-ops")
(version "7.4.8") (version "7.6.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -99,13 +99,13 @@ C or C++ programs, though that is not its primary goal.")
version "/libatomic_ops-" version ".tar.gz")) version "/libatomic_ops-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sj3plzpbqgxrqpjq3w2zi3zxxqqps71ncdwk5s1k30i9d9da1f4")))) "0knxncsjhbknlyy6lx7ycxhpzfk3sykhvicgxyp0rmsxd1d3v0jv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "debug")) (outputs '("out" "debug"))
(synopsis "Accessing hardware atomic memory update operations") (synopsis "Accessing hardware atomic memory update operations")
(description (description
"This C library provides semi-portable access to hardware-provided atomic "This C library provides semi-portable access to hardware-provided atomic
memory update operations on a number architectures. These might allow you to memory update operations on a number of architectures. These might allow you to
write code that does more interesting things in signal handlers, write write code that does more interesting things in signal handlers, write
lock-free code, experiment with thread programming paradigms, etc.") lock-free code, experiment with thread programming paradigms, etc.")
(home-page "https://github.com/ivmai/libatomic_ops/") (home-page "https://github.com/ivmai/libatomic_ops/")

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org> ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,17 +29,49 @@
#:use-module (gnu packages statistics) #:use-module (gnu packages statistics)
#:use-module (gnu packages bioinformatics)) #:use-module (gnu packages bioinformatics))
(define-public r-bsgenome-dmelanogaster-ucsc-dm6
(package
(name "r-bsgenome-dmelanogaster-ucsc-dm6")
(version "1.4.1")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Dmelanogaster.UCSC.dm6_"
version ".tar.gz"))
(sha256
(base32
"1bhj0rdgf7lspw4xby9y9mf7v7jxxz8001bc8vw8kf04rjsx6060"))))
(properties
`((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm6")))
(build-system r-build-system)
;; As this package provides little more than a very large data file it
;; doesn't make sense to build substitutes.
(arguments `(#:substitutable? #f))
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
"https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm6/")
(synopsis "Full genome sequences for Fly")
(description
"This package provides full genome sequences for Drosophila
melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings
objects.")
(license license:artistic2.0)))
(define-public r-hpar (define-public r-hpar
(package (package
(name "r-hpar") (name "r-hpar")
(version "1.20.0") (version "1.22.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "hpar" version)) (uri (bioconductor-uri "hpar" version))
(sha256 (sha256
(base32 (base32
"0s5v79mgxdx862v1jrdf5pdap81nz5vjx25ni8s3sl97ldckf6j8")))) "1b72hvzasf6q739gmx6jblbzzyq22l7crrkbbfkihv3v7s94g388"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://bioconductor.org/packages/hpar/") (home-page "https://bioconductor.org/packages/hpar/")
(synopsis "Human Protein Atlas in R") (synopsis "Human Protein Atlas in R")
@ -49,14 +82,14 @@ the Human Protein Atlas project.")
(define-public r-regioner (define-public r-regioner
(package (package
(name "r-regioner") (name "r-regioner")
(version "1.10.0") (version "1.12.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "regioneR" version)) (uri (bioconductor-uri "regioneR" version))
(sha256 (sha256
(base32 (base32
"1vprp3l929hwzmvgskbhawfgnrymwc9n2rxd16rgagnv1dxnjxfp")))) "09bzlaqdgy7wmzly3zc9y2da50d07mlixlnpaxdxpiwdk8qmhxsb"))))
(properties `((upstream-name . "regioneR"))) (properties `((upstream-name . "regioneR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -65,7 +98,8 @@ the Human Protein Atlas project.")
("r-bsgenome" ,r-bsgenome) ("r-bsgenome" ,r-bsgenome)
("r-rtracklayer" ,r-rtracklayer) ("r-rtracklayer" ,r-rtracklayer)
("r-genomeinfodb" ,r-genomeinfodb) ("r-genomeinfodb" ,r-genomeinfodb)
("r-iranges" ,r-iranges))) ("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://bioconductor.org/packages/regioneR/") (home-page "https://bioconductor.org/packages/regioneR/")
(synopsis "Association analysis of genomic regions") (synopsis "Association analysis of genomic regions")
(description "This package offers a statistical framework based on (description "This package offers a statistical framework based on
@ -76,14 +110,14 @@ region sets and other genomic features.")
(define-public r-diffbind (define-public r-diffbind
(package (package
(name "r-diffbind") (name "r-diffbind")
(version "2.6.6") (version "2.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DiffBind" version)) (uri (bioconductor-uri "DiffBind" version))
(sha256 (sha256
(base32 (base32
"1sm5h6nq77hjfis6kr1nqyizcxgfz87dgpqc4fxlfqkmsd9n3vkp")))) "1w1hybzd732ccg3q8zhirwfilq8sx3frv1x98zfyj3svzw98fish"))))
(properties `((upstream-name . "DiffBind"))) (properties `((upstream-name . "DiffBind")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -95,6 +129,8 @@ region sets and other genomic features.")
("r-dplyr" ,r-dplyr) ("r-dplyr" ,r-dplyr)
("r-edger" ,r-edger) ("r-edger" ,r-edger)
("r-genomicalignments" ,r-genomicalignments) ("r-genomicalignments" ,r-genomicalignments)
("r-genomicranges" ,r-genomicranges)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel) ("r-ggrepel" ,r-ggrepel)
("r-gplots" ,r-gplots) ("r-gplots" ,r-gplots)
("r-iranges" ,r-iranges) ("r-iranges" ,r-iranges)
@ -105,6 +141,7 @@ region sets and other genomic features.")
("r-rcpp" ,r-rcpp) ("r-rcpp" ,r-rcpp)
("r-rsamtools" ,r-rsamtools) ("r-rsamtools" ,r-rsamtools)
("r-s4vectors" ,r-s4vectors) ("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-systempiper" ,r-systempiper) ("r-systempiper" ,r-systempiper)
("r-zlibbioc" ,r-zlibbioc))) ("r-zlibbioc" ,r-zlibbioc)))
(home-page "http://bioconductor.org/packages/DiffBind") (home-page "http://bioconductor.org/packages/DiffBind")
@ -118,14 +155,14 @@ occupancy (overlap) analysis and plotting functions.")
(define-public r-ripseeker (define-public r-ripseeker
(package (package
(name "r-ripseeker") (name "r-ripseeker")
(version "1.18.0") (version "1.20.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "RIPSeeker" version)) (uri (bioconductor-uri "RIPSeeker" version))
(sha256 (sha256
(base32 (base32
"0bqkzwrncww7il36273chkd3gfxmii7p566ycki9qij419pwr35y")))) "0y9cvzqslfxj3z9mnp47mknff0pky2g5x8x1z1s5yjcx35q89xfi"))))
(properties `((upstream-name . "RIPSeeker"))) (properties `((upstream-name . "RIPSeeker")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -151,14 +188,14 @@ processing to visualization and annotation.")
(define-public r-multtest (define-public r-multtest
(package (package
(name "r-multtest") (name "r-multtest")
(version "2.34.0") (version "2.36.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "multtest" version)) (uri (bioconductor-uri "multtest" version))
(sha256 (sha256
(base32 (base32
"0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j")))) "11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-survival" ,r-survival) `(("r-survival" ,r-survival)
@ -189,23 +226,27 @@ expressed genes in DNA microarray experiments.")
(define-public r-chippeakanno (define-public r-chippeakanno
(package (package
(name "r-chippeakanno") (name "r-chippeakanno")
(version "3.12.7") (version "3.14.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version)) (uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256 (sha256
(base32 (base32
"1zab489d7a6bh6ylc68x6yn47gdkmr7p3677grx9l2qafrryjr04")))) "1kcnc3cnmrhdk1x7q3y6zsz09pgd3xn9xy1hfbxz48cajlb18ad0"))))
(properties `((upstream-name . "ChIPpeakAnno"))) (properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics) `(("r-biocgenerics" ,r-biocgenerics)
("r-biostrings" ,r-biostrings)
("r-delayedarray" ,r-delayedarray)
("r-go-db" ,r-go-db) ("r-go-db" ,r-go-db)
("r-biomart" ,r-biomart) ("r-biomart" ,r-biomart)
("r-bsgenome" ,r-bsgenome) ("r-bsgenome" ,r-bsgenome)
("r-genomicfeatures" ,r-genomicfeatures) ("r-genomicfeatures" ,r-genomicfeatures)
("r-genomicranges" ,r-genomicranges)
("r-genomeinfodb" ,r-genomeinfodb) ("r-genomeinfodb" ,r-genomeinfodb)
("r-iranges" ,r-iranges)
("r-matrixstats" ,r-matrixstats) ("r-matrixstats" ,r-matrixstats)
("r-annotationdbi" ,r-annotationdbi) ("r-annotationdbi" ,r-annotationdbi)
("r-limma" ,r-limma) ("r-limma" ,r-limma)
@ -217,6 +258,7 @@ expressed genes in DNA microarray experiments.")
("r-dbi" ,r-dbi) ("r-dbi" ,r-dbi)
("r-ensembldb" ,r-ensembldb) ("r-ensembldb" ,r-ensembldb)
("r-biobase" ,r-biobase) ("r-biobase" ,r-biobase)
("r-s4vectors" ,r-s4vectors)
("r-seqinr" ,r-seqinr) ("r-seqinr" ,r-seqinr)
("r-idr" ,r-idr) ("r-idr" ,r-idr)
("r-genomicalignments" ,r-genomicalignments) ("r-genomicalignments" ,r-genomicalignments)
@ -239,16 +281,15 @@ enrichedGO (addGeneIDs).")
(define-public r-marray (define-public r-marray
(package (package
(name "r-marray") (name "r-marray")
(version "1.56.0") (version "1.58.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "marray" version)) (uri (bioconductor-uri "marray" version))
(sha256 (sha256
(base32 "14c93i86yc7jn4ax8p4l0z6v9xisw1bv7gzb4a0gbxhxn7mddaic")))) (base32 "0539flh3y1qy5b1bamkfwbskis765c5s33v1y9j51n33mxb9h08d"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biobase" ,r-biobase) `(("r-limma" ,r-limma)))
("r-limma" ,r-limma)))
(home-page "http://bioconductor.org/packages/marray") (home-page "http://bioconductor.org/packages/marray")
(synopsis "Exploratory analysis for two-color spotted microarray data") (synopsis "Exploratory analysis for two-color spotted microarray data")
(description "This package contains class definitions for two-color spotted (description "This package contains class definitions for two-color spotted
@ -259,12 +300,12 @@ normalization and quality checking.")
(define-public r-cghbase (define-public r-cghbase
(package (package
(name "r-cghbase") (name "r-cghbase")
(version "1.38.0") (version "1.40.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "CGHbase" version)) (uri (bioconductor-uri "CGHbase" version))
(sha256 (sha256
(base32 "0fynvcsjdbgp69i0nxrc8ni58rhb1kx9k5r3nb91n9i8s43gjqlm")))) (base32 "1hf44vma3kgwr61kjbszvfxkava8bjqnam1mdncqvczbypb2xwaq"))))
(properties `((upstream-name . "CGHbase"))) (properties `((upstream-name . "CGHbase")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -279,12 +320,12 @@ the @code{arrayCGH} packages.")
(define-public r-cghcall (define-public r-cghcall
(package (package
(name "r-cghcall") (name "r-cghcall")
(version "2.40.0") (version "2.42.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "CGHcall" version)) (uri (bioconductor-uri "CGHcall" version))
(sha256 (sha256
(base32 "11pi6awz3858yb4s0z3qf3kcmsdgp6d4aj41g4lfix1sv5amllch")))) (base32 "0y71vfxv9x0am3xvv520yr95cb7m7y92dhdx1vkqki80jrmf12dz"))))
(properties `((upstream-name . "CGHcall"))) (properties `((upstream-name . "CGHcall")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -302,16 +343,17 @@ the @code{arrayCGH} packages.")
(define-public r-qdnaseq (define-public r-qdnaseq
(package (package
(name "r-qdnaseq") (name "r-qdnaseq")
(version "1.14.0") (version "1.16.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "QDNAseq" version)) (uri (bioconductor-uri "QDNAseq" version))
(sha256 (sha256
(base32 "0lgbv4s0xqgrs7q6ynb3c273sf7pyrp51jnc8ravq1z5g0a2zshy")))) (base32 "1pj69mfyxwfd0d7h4kls9xq96sdc55y3rv20qpla50hw9libcwwd"))))
(properties `((upstream-name . "QDNAseq"))) (properties `((upstream-name . "QDNAseq")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biobase" ,r-biobase) `(("r-biobase" ,r-biobase)
("r-biocparallel" ,r-biocparallel)
("r-cghbase" ,r-cghbase) ("r-cghbase" ,r-cghbase)
("r-cghcall" ,r-cghcall) ("r-cghcall" ,r-cghcall)
("r-dnacopy" ,r-dnacopy) ("r-dnacopy" ,r-dnacopy)

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@ -62,7 +62,7 @@
(define-public transmission (define-public transmission
(package (package
(name "transmission") (name "transmission")
(version "2.93") (version "2.94")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -70,7 +70,7 @@
"master/transmission-" version ".tar.xz")) "master/transmission-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"02xrp49gsv4jkbzp37qrwlnb9nlja08s92dyvgdbr6a4187945c8")))) "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(outputs '("out" ; library and command-line interface (outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface "gui")) ; graphical user interface
@ -257,7 +257,7 @@ maintained upstream.")
(define-public aria2 (define-public aria2
(package (package
(name "aria2") (name "aria2")
(version "1.33.1") (version "1.34.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/tatsuhiro-t/aria2/" (uri (string-append "https://github.com/tatsuhiro-t/aria2/"
@ -265,7 +265,7 @@ maintained upstream.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"06syqxia701dk96rcbhnd4x0arjj6d22gm3aqksz38am9y2f8f95")))) "18vpgr430vxlwbcc3598rr1srfmwypls6wp1m4wf21hncc1ahi1s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--enable-libaria2" `(#:configure-flags (list "--enable-libaria2"

View File

@ -1,11 +1,13 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -41,7 +43,7 @@
(define-public boost (define-public boost
(package (package
(name "boost") (name "boost")
(version "1.64.0") (version "1.66.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -50,7 +52,8 @@
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0cikd35xfkpg9nnl76yqqnqxnf3hyfjjww8xjd4akflprsm5rk3v")))) "1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap"))
(patches (search-patches "boost-fix-icu-build.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("icu4c" ,icu4c) (inputs `(("icu4c" ,icu4c)
("zlib" ,zlib))) ("zlib" ,zlib)))
@ -65,22 +68,14 @@
;; Set the RUNPATH to $libdir so that the libs find each other. ;; Set the RUNPATH to $libdir so that the libs find each other.
(string-append "linkflags=-Wl,-rpath=" (string-append "linkflags=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib") (assoc-ref %outputs "out") "/lib"))
;; Boost's 'context' library is not yet supported on mips64, so
;; we disable it. The 'coroutine' library depends on 'context',
;; so we disable that too.
,@(if (string-prefix? "mips64" (or (%current-target-system)
(%current-system)))
'("--without-context"
"--without-coroutine" "--without-coroutine2")
'()))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace (delete 'bootstrap)
'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((icu (assoc-ref inputs "icu4c"))
(out (assoc-ref outputs "out")))
(substitute* '("libs/config/configure" (substitute* '("libs/config/configure"
"libs/spirit/classic/phoenix/test/runtest.sh" "libs/spirit/classic/phoenix/test/runtest.sh"
"tools/build/doc/bjam.qbk" "tools/build/doc/bjam.qbk"
@ -92,42 +87,29 @@
(setenv "SHELL" (which "sh")) (setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh"))
(zero? (system* "./bootstrap.sh" (invoke "./bootstrap.sh"
(string-append "--prefix=" out) (string-append "--prefix=" out)
"--with-toolset=gcc"))))) ;; Auto-detection looks for ICU only in traditional
(replace ;; install locations.
'build (string-append "--with-icu=" icu)
(lambda* (#:key outputs make-flags #:allow-other-keys) "--with-toolset=gcc"))))
(zero? (apply system* "./b2" (replace 'build
(format #f "-j~a" (parallel-job-count)) (lambda* (#:key make-flags #:allow-other-keys)
make-flags)))) (apply invoke "./b2"
(replace (format #f "-j~a" (parallel-job-count))
'install make-flags)))
(lambda* (#:key outputs make-flags #:allow-other-keys) (replace 'install
(zero? (apply system* "./b2" "install" make-flags))))))) (lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "./b2" "install" make-flags))))))
(home-page "http://boost.org") (home-page "https://www.boost.org")
(synopsis "Peer-reviewed portable C++ source libraries") (synopsis "Peer-reviewed portable C++ source libraries")
(description (description
"A collection of libraries intended to be widely useful, and usable "A collection of libraries intended to be widely useful, and usable
across a broad spectrum of applications.") across a broad spectrum of applications.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt" (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
"Some components have other similar licences.")))) "Some components have other similar licences."))))
(define-public boost-1.66
(package
(inherit boost)
(version "1.66.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/boost/boost/" version "/boost_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
".tar.bz2"))
(sha256
(base32
"1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap"))))))
(define-public boost-sync (define-public boost-sync
(let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709") (let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
(version "1.55") (version "1.55")
@ -158,7 +140,7 @@ across a broad spectrum of applications.")
(description "The Boost.Sync library provides mutexes, semaphores, locks (description "The Boost.Sync library provides mutexes, semaphores, locks
and events and other thread related facilities. Boost.Sync originated from and events and other thread related facilities. Boost.Sync originated from
Boost.Thread.") Boost.Thread.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))) (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))))
(define-public mdds (define-public mdds
(package (package

View File

@ -33,6 +33,7 @@
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages cdrom) #:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages cross-base) #:use-module (gnu packages cross-base)
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
#:use-module (gnu packages firmware) #:use-module (gnu packages firmware)
@ -49,6 +50,7 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
#:use-module (gnu packages virtualization) #:use-module (gnu packages virtualization)
#:use-module (gnu packages web) #:use-module (gnu packages web)
@ -338,7 +340,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(define u-boot (define u-boot
(package (package
(name "u-boot") (name "u-boot")
(version "2018.01") (version "2018.05")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -346,11 +348,15 @@ tree binary files. These are board description files used by Linux and BSD.")
"u-boot-" version ".tar.bz2")) "u-boot-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk")))) "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad"))))
(native-inputs (native-inputs
`(("bc" ,bc) `(("bc" ,bc)
;("dtc" ,dtc) ; they have their own incompatible copy. ("dtc" ,dtc)
("openssl" ,openssl)
("python-2" ,python-2) ("python-2" ,python-2)
("python2-coverage" ,python2-coverage)
("python2-pytest" ,python2-pytest)
("sdl" ,sdl)
("swig" ,swig))) ("swig" ,swig)))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.denx.de/wiki/U-Boot/") (home-page "http://www.denx.de/wiki/U-Boot/")
@ -359,6 +365,80 @@ tree binary files. These are board description files used by Linux and BSD.")
also initializes the boards (RAM etc).") also initializes the boards (RAM etc).")
(license license:gpl2+))) (license license:gpl2+)))
(define-public u-boot-tools
(package
(inherit u-boot)
(name "u-boot-tools")
(arguments
`(#:make-flags '("HOSTCC=gcc")
#:test-target "tests"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
(("/bin/pwd") (which "pwd"))
(("/bin/false") (which "false")))
(substitute* "tools/dtoc/fdt_util.py"
(("'cc'") "'gcc'"))
(substitute* "test/run"
;; Make it easier to find test failures.
(("#!/bin/bash") "#!/bin/bash -x")
;; pytest doesn't find it otherwise.
(("test/py/tests/test_ofplatdata.py")
"tests/test_ofplatdata.py")
;; This test would require git.
(("\\./tools/patman/patman") (which "true"))
;; This test would require internet access.
(("\\./tools/buildman/buildman") (which "true")))
(substitute* "test/py/tests/test_sandbox_exit.py"
(("def test_ctrl_c")
"@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c"))
(substitute* "tools/binman/binman.py"
(("100%") "99%")) ; TODO: Find out why that is needed.
#t))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(call-with-output-file "configs/tools_defconfig"
(lambda (port)
(display "CONFIG_SYS_TEXT_BASE=0\n" port)))
(apply invoke "make" "tools_defconfig" make-flags)))
(replace 'build
(lambda* (#:key inputs make-flags #:allow-other-keys)
(apply invoke "make" "tools-only" make-flags)
(apply invoke "make" "envtools" make-flags)))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(for-each (lambda (name)
(install-file name bin))
'("tools/netconsole"
"tools/jtagconsole"
"tools/gen_eth_addr"
"tools/gen_ethaddr_crc"
"tools/img2srec"
"tools/mkenvimage"
"tools/dumpimage"
"tools/mkimage"
"tools/proftool"
"tools/fdtgrep"
"tools/env/fw_printenv"))
#t)))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags)
(setenv "SDL_VIDEODRIVER" "dummy")
(setenv "PAGER" "cat")
(apply invoke "make" test-target make-flags)
(symlink "build-sandbox_spl" "sandbox")
(invoke "test/image/test-imagetools.sh"))))))
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc). This package provides its
board-independent tools.")))
(define (make-u-boot-package board triplet) (define (make-u-boot-package board triplet)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET." "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(let ((same-arch? (if (string-prefix? (%current-system) (let ((same-arch? (if (string-prefix? (%current-system)
@ -392,25 +472,29 @@ also initializes the boards (RAM etc).")
(if (file-exists? (string-append "configs/" config-name)) (if (file-exists? (string-append "configs/" config-name))
(zero? (apply system* "make" `(,@make-flags ,config-name))) (zero? (apply system* "make" `(,@make-flags ,config-name)))
(begin (begin
(display "Invalid board name. Valid board names are:") (display "Invalid board name. Valid board names are:"
(let ((suffix-len (string-length "_defconfig"))) (current-error-port))
(scandir "configs" (let ((suffix-len (string-length "_defconfig"))
(lambda (file-name) (entries (scandir "configs")))
(when (string-suffix? "_defconfig" file-name) (for-each (lambda (file-name)
(format #t (when (string-suffix? "_defconfig" file-name)
"- ~A\n" (format (current-error-port)
(string-drop-right file-name "- ~A\n"
suffix-len)))))) (string-drop-right file-name
suffix-len))))
(sort entries string-ci<)))
#f))))) #f)))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec")) (libexec (string-append out "/libexec"))
(uboot-files (append (uboot-files (append
(find-files "." ".*\\.(bin|efi|img|spl|itb|dtb)$") (find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$")
(find-files "." "^(MLO|SPL)$")))) (find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec) (mkdir-p libexec)
(install-file ".config" libexec) (install-file ".config" libexec)
;; Useful for "qemu -kernel".
(install-file "u-boot" libexec)
(for-each (for-each
(lambda (file) (lambda (file)
(let ((target-file (string-append libexec "/" file))) (let ((target-file (string-append libexec "/" file)))
@ -440,9 +524,10 @@ also initializes the boards (RAM etc).")
(let ((bl31 (string-append (assoc-ref inputs "firmware") (let ((bl31 (string-append (assoc-ref inputs "firmware")
"/bl31.bin"))) "/bl31.bin")))
(setenv "BL31" bl31) (setenv "BL31" bl31)
;; This is necessary while we're using the bundled dtc. ;; This is necessary when we're using the bundled dtc.
(setenv "PATH" (string-append (getenv "PATH") ":" ;(setenv "PATH" (string-append (getenv "PATH") ":"
"scripts/dtc"))) ; "scripts/dtc"))
)
#t)))))) #t))))))
(native-inputs (native-inputs
`(("firmware" ,arm-trusted-firmware-pine64-plus) `(("firmware" ,arm-trusted-firmware-pine64-plus)
@ -469,6 +554,43 @@ also initializes the boards (RAM etc).")
(define-public u-boot-mx6cuboxi (define-public u-boot-mx6cuboxi
(make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf")) (make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf"))
(define-public u-boot-novena
(make-u-boot-package "novena" "arm-linux-gnueabihf"))
(define-public u-boot-cubieboard
(make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
(define-public u-boot-puma-rk3399
(let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
(package
(inherit base)
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'set-environment
(lambda* (#:key inputs #:allow-other-keys)
;; Need to copy the firmware into u-boot build
;; directory.
(copy-file (string-append (assoc-ref inputs "firmware")
"/bl31.bin") "bl31-rk3399.bin")
(copy-file (string-append (assoc-ref inputs "firmware-m0")
"/rk3399m0.bin") "rk3399m0.bin")
#t))
(add-after 'build 'build-itb
(lambda* (#:key make-flags #:allow-other-keys)
;; The u-boot.itb is not built by default.
(apply invoke "make" `(,@make-flags ,"u-boot.itb"))))
(add-after 'build-itb 'build-rksd
(lambda* (#:key inputs #:allow-other-keys)
;; Build Rockchip SD card images.
(invoke "./tools/mkimage" "-T" "rksd" "-n" "rk3399" "-d"
"spl/u-boot-spl.bin" "u-boot-spl.rksd")))))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-puma-rk3399)
("firmware-m0" ,rk3399-cortex-m0)
,@(package-native-inputs base))))))
(define-public vboot-utils (define-public vboot-utils
(package (package
(name "vboot-utils") (name "vboot-utils")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -97,10 +97,10 @@
(define* (package-from-tarball name source program-to-test description (define* (package-from-tarball name source program-to-test description
#:key snippet) #:key snippet)
"Return a package that correspond to the extraction of SOURCE. "Return a package that correspond to the extraction of SOURCE.
PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to check
check whether everything is alright. If SNIPPET is provided, it is whether everything is alright. If SNIPPET is provided, it is evaluated after
evaluated after extracting SOURCE. SNIPPET should return true if extracting SOURCE. SNIPPET should raise an exception to signal an error; its
successful, or false to signal an error." return value is ignored."
(package (package
(name name) (name name)
(version "0") (version "0")
@ -117,14 +117,14 @@ successful, or false to signal an error."
(mkdir out) (mkdir out)
(copy-file tarball "binaries.tar.xz") (copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))) (let ((builddir (getcwd)))
(with-directory-excursion out (with-directory-excursion out
(and (zero? (system* tar "xvf" (invoke tar "xvf"
(string-append builddir "/binaries.tar"))) (string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '()) ,@(if snippet (list snippet) '())
(zero? (system* (string-append "bin/" ,program-to-test) (invoke (string-append "bin/" ,program-to-test)
"--version")))))))) "--version"))))))
(inputs (inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system))) `(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system)))
@ -389,8 +389,7 @@ $out/bin/guile --version~%"
(if (not (elf-file? "bin/egrep")) (if (not (elf-file? "bin/egrep"))
(substitute* '("bin/egrep" "bin/fgrep") (substitute* '("bin/egrep" "bin/fgrep")
(("^exec grep") (string-append (getcwd) "/bin/grep")))) (("^exec grep") (string-append (getcwd) "/bin/grep"))))
(chmod "bin" #o555) (chmod "bin" #o555))))
#t)))
(define %bootstrap-binutils (define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap" (package-from-tarball "binutils-bootstrap"
@ -445,18 +444,20 @@ $out/bin/guile --version~%"
(mkdir out) (mkdir out)
(copy-file tarball "binaries.tar.xz") (copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))) (let ((builddir (getcwd)))
(with-directory-excursion out (with-directory-excursion out
(system* tar "xvf" (invoke tar "xvf"
(string-append builddir (string-append builddir
"/binaries.tar")) "/binaries.tar"))
(chmod "lib" #o755) (chmod "lib" #o755)
;; Patch libc.so so it refers to the right path. ;; Patch libc.so so it refers to the right path.
(substitute* "lib/libc.so" (substitute* "lib/libc.so"
(("/[^ ]+/lib/(libc|ld)" _ prefix) (("/[^ ]+/lib/(libc|ld)" _ prefix)
(string-append out "/lib/" prefix)))))))) (string-append out "/lib/" prefix)))
#t)))))
(inputs (inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system))) `(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system)))
@ -517,12 +518,12 @@ $out/bin/guile --version~%"
(mkdir out) (mkdir out)
(copy-file tarball "binaries.tar.xz") (copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz") (invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)) (let ((builddir (getcwd))
(bindir (string-append out "/bin"))) (bindir (string-append out "/bin")))
(with-directory-excursion out (with-directory-excursion out
(system* tar "xvf" (invoke tar "xvf"
(string-append builddir "/binaries.tar"))) (string-append builddir "/binaries.tar")))
(with-directory-excursion bindir (with-directory-excursion bindir
(chmod "." #o755) (chmod "." #o755)
@ -537,7 +538,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
out libc libc libc out libc libc libc
,(glibc-dynamic-linker)))) ,(glibc-dynamic-linker))))
(chmod "gcc" #o555)))))) (chmod "gcc" #o555)
#t)))))
(inputs (inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system))) `(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system))) ("xz" ,(search-bootstrap-binary "xz" (%current-system)))

View File

@ -87,6 +87,8 @@ makes a few sacrifices to acquire fast full and incremental build times.")
(base32 (base32
"1m0w0wqnz983l7fpp5p9pdsqr7n3ybrzp8ywjcvn0rihsrzj65j6")))) "1m0w0wqnz983l7fpp5p9pdsqr7n3ybrzp8ywjcvn0rihsrzj65j6"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs
`(("python" ,python-wrapper)))
(home-page "https://github.com/rizsotto/Bear") (home-page "https://github.com/rizsotto/Bear")
(synopsis "Tool for generating a compilation database") (synopsis "Tool for generating a compilation database")
(description "A JSON compilation database is used in the Clang project to (description "A JSON compilation database is used in the Clang project to

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
@ -83,7 +83,7 @@ standard.")
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs '()) (native-inputs '())
(inputs `(("tcc" ,tcc) (inputs `(("tcc" ,tcc)
("guile" ,guile-2.0))) ("guile" ,guile-2.2)))
;; By default TCC does not honor any search path environment variable. ;; By default TCC does not honor any search path environment variable.
;; This wrapper adds them. ;; This wrapper adds them.

View File

@ -5,6 +5,7 @@
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at> ;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -95,13 +96,13 @@ data units.")
(define-public khal (define-public khal
(package (package
(name "khal") (name "khal")
(version "0.9.8") (version "0.9.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "khal" version)) (uri (pypi-uri "khal" version))
(sha256 (sha256
(base32 (base32
"1blx3gxnv7sj302biqphfw7i6ilzl2xlmvzp130n3113scg9w17y")))) "0dq9aqb9pqjfqrnfg43mhpb7m0szmychxy1ydb3lwzf3500c9rsh"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -110,24 +111,24 @@ data units.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Make installed package available for running the tests ;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(and (invoke "make" "--directory=doc/" "man")
(zero? (system* "make" "--directory=doc/" "man")) (install-file
(install-file "doc/build/man/khal.1"
"doc/build/man/khal.1" (string-append (assoc-ref outputs "out") "/share/man/man1"))
(string-append (assoc-ref outputs "out") "/share/man/man1"))))) #t))
(replace 'check (replace 'check
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; The tests require us to choose a timezone. ;; The tests require us to choose a timezone.
(setenv "TZ" (setenv "TZ"
(string-append (assoc-ref inputs "tzdata") (string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo/Zulu")) "/share/zoneinfo/Zulu"))
(zero? (system* "py.test" "tests" "-k" (invoke "py.test" "tests" "-k"
(string-append (string-append
;; These tests are known to fail in when not ;; These tests are known to fail in when not
;; running in a TTY: ;; running in a TTY:
;; https://github.com/pimutils/khal/issues/683 ;; https://github.com/pimutils/khal/issues/683
"not test_printics_read_from_stdin " "not test_printics_read_from_stdin "
"and not test_import_from_stdin")))))))) "and not test_import_from_stdin")))))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest) `(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov) ("python-pytest-cov" ,python-pytest-cov)

View File

@ -188,9 +188,11 @@ files.")
(patches (search-patches "cdparanoia-fpic.patch")) (patches (search-patches "cdparanoia-fpic.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Make libraries respect LDFLAGS. '(begin
'(substitute* '("paranoia/Makefile.in" "interface/Makefile.in") ;; Make libraries respect LDFLAGS.
(("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))))) (substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
(("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there is no check target `(#:tests? #f ; there is no check target
@ -449,9 +451,11 @@ the data.")
"0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz")) "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile" '(begin
(("/usr/bin/install") (substitute* "Makefile"
"install"))))) (("/usr/bin/install")
"install"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -479,11 +483,13 @@ from an audio CD.")
"1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h")) "1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile" '(begin
(("/usr/bin/install") (substitute* "Makefile"
"install") (("/usr/bin/install")
(("^etcdir = .*$") "install")
(string-append "etcdir = $(prefix)/etc\n")))))) (("^etcdir = .*$")
(string-append "etcdir = $(prefix)/etc\n")))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -63,7 +63,8 @@
(("crt") "pem")) (("crt") "pem"))
(mkdir-p bin) (mkdir-p bin)
(copy-file "certdata2pem.py" (copy-file "certdata2pem.py"
(string-append bin "/certdata2pem.py")))))) (string-append bin "/certdata2pem.py"))
#t))))
(synopsis "Python script to extract .pem data from certificate collection") (synopsis "Python script to extract .pem data from certificate collection")
(description (description
"certdata2pem.py is a Python script to transform X.509 certificate "certdata2pem.py is a Python script to transform X.509 certificate
@ -121,7 +122,7 @@
(mkdir-p certsdir) (mkdir-p certsdir)
(with-directory-excursion "nss/lib/ckfw/builtins/" (with-directory-excursion "nss/lib/ckfw/builtins/"
;; extract single certificates from blob ;; extract single certificates from blob
(system* "certdata2pem.py" "certdata.txt") (invoke "certdata2pem.py" "certdata.txt")
;; copy selected .pem files into the output ;; copy selected .pem files into the output
(for-each maybe-install-cert (for-each maybe-install-cert
(find-files "." ".*\\.pem"))) (find-files "." ".*\\.pem")))
@ -170,10 +171,9 @@ taken from the NSS package and thus ultimately from the Mozilla project.")
;; Create hash symlinks suitable for OpenSSL ('SSL_CERT_DIR' and ;; Create hash symlinks suitable for OpenSSL ('SSL_CERT_DIR' and
;; similar.) ;; similar.)
(chdir (string-append %output "/etc/ssl/certs")) (chdir (string-append %output "/etc/ssl/certs"))
(unless (zero? (system* (string-append perl "/bin/perl") (invoke (string-append perl "/bin/perl")
(string-append openssl "/bin/c_rehash") (string-append openssl "/bin/c_rehash")
".")) ".")))))
(error "'c_rehash' failed" openssl))))))
(native-inputs (native-inputs
`(("openssl" ,openssl) `(("openssl" ,openssl)
("perl" ,perl))) ;for 'c_rehash' ("perl" ,perl))) ;for 'c_rehash'

View File

@ -19,12 +19,12 @@
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@ -104,9 +104,11 @@ source code editors and IDEs.")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments '(#:phases (arguments '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'autoconf ;; XXX: The "bootstrap" phase detects the "bootstrap"
(lambda _ ;; script, but fails to execute it, so we bootstrap
(zero? (system* "autoreconf" "-vfi"))))))) ;; manually.
(replace 'bootstrap
(lambda _ (invoke "autoreconf" "-vfi"))))))
(native-inputs (native-inputs
`(("automake" ,automake) `(("automake" ,automake)
("autoconf" ,autoconf) ("autoconf" ,autoconf)
@ -161,6 +163,8 @@ supervised tests.")
(base32 (base32
"1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix")))))) "1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix"))))))
;; When dependent packages upgraded to use newer version of catch, this one should
;; be removed.
(define-public catch-framework (define-public catch-framework
(package (package
(name "catch") (name "catch")
@ -185,13 +189,13 @@ supervised tests.")
(incdir (string-append output "/include")) (incdir (string-append output "/include"))
(docdir (string-append output "/share/doc/catch-" (docdir (string-append output "/share/doc/catch-"
,version))) ,version)))
(begin (for-each mkdir-p (list incdir docdir))
(for-each mkdir-p (list incdir docdir)) (install-file (string-append source
(install-file (string-append source "/single_include/catch.hpp")
"/single_include/catch.hpp") incdir)
incdir) (copy-recursively (string-append source "/docs")
(copy-recursively (string-append source "/docs") docdir)
docdir)))))) #t))))
(home-page "http://catch-lib.net/") (home-page "http://catch-lib.net/")
(synopsis "Automated test framework for C++ and Objective-C") (synopsis "Automated test framework for C++ and Objective-C")
(description (description
@ -199,6 +203,24 @@ supervised tests.")
multi-paradigm automated test framework for C++ and Objective-C.") multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0))) (license license:boost1.0)))
(define-public catch-framework2
(package
(name "catch2")
(version "1.12.2")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method url-fetch)
(uri (string-append home-page "/archive/v" version ".tar.gz"))
(sha256
(base32
"0g2ysxc6adqca5wh7nsicnxb9wkxg75cd5izjsl39rcj0v903gr7"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(synopsis "Automated test framework for C++ and Objective-C")
(description "Catch2 stands for C++ Automated Test Cases in Headers and is
a multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0)))
(define-public cmdtest (define-public cmdtest
(package (package
(name "cmdtest") (name "cmdtest")
@ -394,6 +416,8 @@ test coverage and has a web user interface that will refresh automatically.")
(home-page "https://github.com/smartystreets/goconvey") (home-page "https://github.com/smartystreets/goconvey")
(license license:expat))) (license license:expat)))
;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
;; switched back to simply using (PACKAGE-SOURCE ...).
(define-public googletest (define-public googletest
(package (package
(name "googletest") (name "googletest")
@ -595,14 +619,14 @@ standard library.")
(define-public python-pytest (define-public python-pytest
(package (package
(name "python-pytest") (name "python-pytest")
(version "3.2.3") (version "3.5.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pytest" version)) (uri (pypi-uri "pytest" version))
(sha256 (sha256
(base32 (base32
"0g6w86ks73fnrnsyib9ii2rbyx830vn7aglsjqz9v1n2xwbndyi7")))) "1q832zd07zak2lyxbycxjydh0jp7y3hvawjqzlvra6aghz8r3r7s"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -620,7 +644,11 @@ standard library.")
line))) line)))
#t))))) #t)))))
(propagated-inputs (propagated-inputs
`(("python-py" ,python-py))) `(("python-attrs" ,python-attrs-bootstrap)
("python-more-itertools" ,python-more-itertools)
("python-pluggy" ,python-pluggy)
("python-py" ,python-py)
("python-six" ,python-six-bootstrap)))
(native-inputs (native-inputs
`(;; Tests need the "regular" bash since 'bash-final' lacks `compgen`. `(;; Tests need the "regular" bash since 'bash-final' lacks `compgen`.
("bash" ,bash) ("bash" ,bash)
@ -634,20 +662,33 @@ standard library.")
"Pytest is a testing tool that provides auto-discovery of test modules "Pytest is a testing tool that provides auto-discovery of test modules
and functions, detailed info on failing assert statements, modular fixtures, and functions, detailed info on failing assert statements, modular fixtures,
and many external plugins.") and many external plugins.")
(license license:expat))) (license license:expat)
(properties `((python2-variant . ,(delay python2-pytest))))))
(define-public python2-pytest (define-public python2-pytest
(package-with-python2 python-pytest)) (let ((pytest (package-with-python2
(strip-python2-variant python-pytest))))
(package
(inherit pytest)
(propagated-inputs
`(("python2-funcsigs" ,python2-funcsigs)
,@(package-propagated-inputs pytest))))))
(define-public python-pytest-bootstrap (define-public python-pytest-bootstrap
(package (package
(inherit python-pytest) (inherit (strip-python2-variant python-pytest))
(name "python-pytest-bootstrap") (name "python-pytest-bootstrap")
(native-inputs `(("python-setuptools-scm" ,python-setuptools-scm))) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm)))
(arguments `(#:tests? #f)))) (arguments `(#:tests? #f))
(properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
(define-public python2-pytest-bootstrap (define-public python2-pytest-bootstrap
(package-with-python2 python-pytest-bootstrap)) (let ((pytest (package-with-python2
(strip-python2-variant python-pytest-bootstrap))))
(package (inherit pytest)
(propagated-inputs
`(("python2-funcsigs" ,python2-funcsigs-bootstrap)
,@(package-propagated-inputs pytest))))))
(define-public python-pytest-cov (define-public python-pytest-cov
(package (package
@ -1356,23 +1397,26 @@ normally the case.")
(define-public python-hypothesis (define-public python-hypothesis
(package (package
(name "python-hypothesis") (name "python-hypothesis")
(version "3.1.0") (version "3.52.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "hypothesis" version)) (uri (pypi-uri "hypothesis" version))
(sha256 (sha256
(base32 (base32
"0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw")))) "0g54cypfi5qj6cgxfr7l1nb41r1cqhhngx4qxn4ga9h720rcsbr8"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-flake8" ,python-flake8) `(("python-flake8" ,python-flake8)
("python-pytest" ,python-pytest-bootstrap))) ("python-pytest" ,python-pytest-bootstrap)))
(propagated-inputs
`(("python-attrs" ,python-attrs-bootstrap)
("python-coverage" ,python-coverage)))
(synopsis "Library for property based testing") (synopsis "Library for property based testing")
(description "Hypothesis is a library for testing your Python code against a (description "Hypothesis is a library for testing your Python code against a
much larger range of examples than you would ever want to write by hand. Its much larger range of examples than you would ever want to write by hand. Its
based on the Haskell library, Quickcheck, and is designed to integrate based on the Haskell library, Quickcheck, and is designed to integrate
seamlessly into your existing Python unit testing work flow.") seamlessly into your existing Python unit testing work flow.")
(home-page "https://github.com/DRMacIver/hypothesis") (home-page "https://github.com/HypothesisWorks/hypothesis-python")
(license license:mpl2.0) (license license:mpl2.0)
(properties `((python2-variant . ,(delay python2-hypothesis)))))) (properties `((python2-variant . ,(delay python2-hypothesis))))))

View File

@ -74,8 +74,10 @@
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Fix compilation with glibc >= 2.26, which removed xlocale.h. ;; Fix compilation with glibc >= 2.26, which removed xlocale.h.
'(substitute* "c/expeditor.c" '(begin
(("xlocale\\.h") "locale.h"))))) (substitute* "c/expeditor.c"
(("xlocale\\.h") "locale.h"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses) `(("ncurses" ,ncurses)

View File

@ -147,9 +147,6 @@
(string-append "--docdir=" %output (string-append "--docdir=" %output
"/doc/hydra-" ,version))) "/doc/hydra-" ,version)))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after
'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vfi"))))
(add-before (add-before
'check 'check-setup 'check 'check-setup
(lambda _ (setenv "LOGNAME" "test.log"))) (lambda _ (setenv "LOGNAME" "test.log")))
@ -221,8 +218,6 @@ their dependencies.")
(substitute* "build-aux/git-version-gen" (substitute* "build-aux/git-version-gen"
(("#!/bin/sh") (string-append "#!" (which "sh")))) (("#!/bin/sh") (string-append "#!" (which "sh"))))
#t)) #t))
(add-after 'patch-/bin/sh 'bootstrap
(lambda _ (zero? (system* "sh" "bootstrap"))))
(add-after 'install 'wrap-program (add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules. ;; Wrap the 'cuirass' command to refer to the right modules.

87
gnu/packages/cluster.scm Normal file
View File

@ -0,0 +1,87 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.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 cluster)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls))
(define-public keepalived
(package
(name "keepalived")
(version "2.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.keepalived.org/software/keepalived-"
version ".tar.gz"))
(sha256
(base32
"0hp8i56zkf0398bmpi32a85f05cv2fy9wizkdfbxk7gav4z6yx18"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-configure
(lambda _
;; XXX: The 'configure' script doesn't handle '-L' flags in the
;; output of 'pkg-config'.
(substitute* "configure"
(("PKG_CONFIG --libs") "PKG_CONFIG --libs-only-l"))
#t))
(add-after 'build 'build-info
(lambda _
(invoke "make" "-C" "doc" "texinfo")
;; Put images in a subdirectory as recommended by 'texinfo'.
(install-file "doc/build/texinfo/software_design.png"
"doc/build/texinfo/keepalived-figures")
(substitute* "doc/build/texinfo/keepalived.texi"
(("@image\\{software_design,")
"@image{keepalived-figures/software_design,"))
(invoke "make" "-C" "doc/build/texinfo")))
(add-after 'install 'install-info
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(infodir (string-append out "/share/info")))
(install-file "doc/build/texinfo/keepalived.info" infodir)
(install-file "doc/build/texinfo/software_design.png"
(string-append infodir "/keepalived-figures"))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("texinfo" ,texinfo)))
(inputs
`(("openssl" ,openssl)
("libnfnetlink" ,libnfnetlink)
("libnl" ,libnl)))
(home-page "http://www.keepalived.org/")
(synopsis "Loadbalancing and high-availability frameworks")
(description
"Keepalived provides frameworks for both load balancing and high
availability. The load balancing framework relies on the Linux Virtual
Server (IPVS) kernel module. High availability is achieved by the Virtual
Redundancy Routing Protocol (VRRP). Each Keepalived framework can be used
independently or together to provide resilient infrastructures.")
(license license:gpl2+)))

View File

@ -6,6 +6,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,6 +29,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system emacs)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages backup) #:use-module (gnu packages backup)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -41,57 +43,66 @@
(define-public cmake (define-public cmake
(package (package
(name "cmake") (name "cmake")
(version "3.7.2") (version "3.11.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.cmake.org/files/v" (uri (string-append "https://www.cmake.org/files/v"
(version-major+minor version) (version-major+minor version)
"/cmake-" version ".tar.gz")) "/cmake-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw")) "0sv5k9q6braa8hhw0y3w19avqn0xn5czv5jf5fz5blnlf7ivw4y3"))
(patches (search-patches "cmake-fix-tests.patch")) (modules '((guix build utils)))
(modules '((guix build utils))) (snippet
(snippet '(begin
'(begin ;; Drop bundled software.
;; Drop bundled software. (with-directory-excursion "Utilities"
(with-directory-excursion "Utilities" (for-each delete-file-recursively
(for-each delete-file-recursively '("cmbzip2"
'("cmbzip2" ;; "cmcompress"
;"cmcompress" "cmcurl"
"cmcurl" "cmexpat"
"cmexpat" ;; "cmjsoncpp"
;"cmjsoncpp" ;; "cmlibarchive"
;"cmlibarchive" "cmliblzma"
"cmliblzma" ;; "cmlibuv"
"cmlibuv" "cmzlib"))
"cmzlib")) #t)))))
#t)))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:make-flags
(let ((skipped-tests
(list "BundleUtilities" ; This test fails on Guix.
"CTestTestSubdir" ; This test fails to build 2 of the 3 tests.
;; These tests requires network access.
"CTestCoverageCollectGCOV"
"CTestTestUpload")))
(list
(string-append
;; These arguments apply for the tests only.
"ARGS=-j " (number->string (parallel-job-count))
" --output-on-failure"
" --exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'patch-bin-sh (add-before 'configure 'patch-bin-sh
(lambda _ (lambda _
;; Replace "/bin/sh" by the right path in... a lot of ;; Replace "/bin/sh" by the right path in... a lot of
;; files. ;; files.
(substitute* (substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in" '("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in" "Modules/CPack.RuntimeScript.in"
"Modules/CompilerId/Xcode-2.pbxproj.in" "Source/cmakexbuild.cxx"
"Modules/CPack.RuntimeScript.in" "Source/cmGlobalXCodeGenerator.cxx"
"Source/cmakexbuild.cxx" "Source/cmLocalUnixMakefileGenerator3.cxx"
"Source/cmGlobalXCodeGenerator.cxx" "Source/cmExecProgramCommand.cxx"
"Source/CTest/cmCTestBatchTestHandler.cxx" "Utilities/Release/release_cmake.cmake"
"Source/cmLocalUnixMakefileGenerator3.cxx" "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Source/cmExecProgramCommand.cxx" "Tests/CMakeLists.txt"
"Utilities/Release/release_cmake.cmake" "Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Tests/CMakeLists.txt"
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
#t)) #t))
(add-before 'configure 'set-paths (add-before 'configure 'set-paths
(lambda _ (lambda _
;; Help cmake's bootstrap process to find system libraries ;; Help cmake's bootstrap process to find system libraries
@ -102,43 +113,37 @@
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* (invoke
"./configure" "./configure" "--verbose"
(string-append "--prefix=" out) (string-append "--parallel=" (number->string (parallel-job-count)))
"--system-libs" (string-append "--prefix=" out)
"--no-system-jsoncpp" ; FIXME: Circular dependency. "--system-libs"
;; By default, the man pages and other docs land "--no-system-jsoncpp" ; FIXME: Circular dependency.
;; in PREFIX/man and PREFIX/doc, but we want them ;; By default, the man pages and other docs land
;; in share/{man,doc}. Note that unlike ;; in PREFIX/man and PREFIX/doc, but we want them
;; autoconf-generated configure scripts, cmake's ;; in share/{man,doc}. Note that unlike
;; configure prepends "PREFIX/" to what we pass ;; autoconf-generated configure scripts, cmake's
;; to --mandir and --docdir. ;; configure prepends "PREFIX/" to what we pass
"--mandir=share/man" ;; to --mandir and --docdir.
,(string-append "--mandir=share/man"
"--docdir=share/doc/cmake-" ,(string-append
(version-major+minor version))))))) "--docdir=share/doc/cmake-"
(add-before 'check 'set-test-environment (version-major+minor version)))))))))
(lambda _
;; Get verbose output from failed tests.
(setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE")
;; Run tests in parallel.
(setenv "CTEST_PARALLEL_LEVEL"
(number->string (parallel-job-count)))
#t)))))
(inputs (inputs
`(("file" ,file) `(("bzip2" ,bzip2)
("curl" ,curl) ("curl" ,curl)
("zlib" ,zlib) ("expat" ,expat)
("expat" ,expat) ("file" ,file)
("bzip2" ,bzip2) ("libarchive" ,libarchive)
("ncurses" ,ncurses) ; required for ccmake ("libuv" ,libuv)
("libuv" ,libuv) ("ncurses" ,ncurses) ; required for ccmake
("libarchive" ,libarchive))) ("rhash" ,rhash)
("zlib" ,zlib)))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "CMAKE_PREFIX_PATH") (variable "CMAKE_PREFIX_PATH")
(files '(""))))) (files '("")))))
(home-page "https://www.cmake.org/") (home-page "https://cmake.org/")
(synopsis "Cross-platform build system") (synopsis "Cross-platform build system")
(description (description
"CMake is a family of tools designed to build, test and package software. "CMake is a family of tools designed to build, test and package software.
@ -151,58 +156,19 @@ and workspaces that can be used in the compiler environment of your choice.")
license:expat ; cmjsoncpp is dual MIT/public domain license:expat ; cmjsoncpp is dual MIT/public domain
license:public-domain)))) ; cmlibarchive/archive_getdate.c license:public-domain)))) ; cmlibarchive/archive_getdate.c
;; Recent Ceph requires Boost 1.66, which in turn requires CMake 3.11 for (define-public emacs-cmake-mode
;; its updated "FindBoost.cmake" facility.
(define-public cmake-3.11
(package (package
(inherit cmake) (inherit cmake)
(version "3.11.0-rc2") (name "emacs-cmake-mode")
(source (origin (build-system emacs-build-system)
(inherit (package-source cmake))
(uri (string-append "https://www.cmake.org/files/v"
(version-major+minor version)
"/cmake-" version ".tar.gz"))
(sha256
(base32
"14p6ais19nfcwl914n4n5rbzaqwafv3qkg6nd8jw54ykn6lz6mf3"))
(snippet
'(begin
;; Drop bundled software.
(with-directory-excursion "Utilities"
(for-each delete-file-recursively
'("cmbzip2"
"cmcurl"
"cmexpat"
"cmliblzma"
"cmzlib"))
#t)))))
(build-system gnu-build-system)
(arguments (arguments
(substitute-keyword-arguments (package-arguments cmake) `(#:phases
((#:make-flags flags ''()) `(cons (string-append (modify-phases %standard-phases
"ARGS=-j " (add-after 'unpack 'chdir-elisp
(number->string (parallel-job-count)) ;; Elisp directory is not in root of the source.
" --output-on-failure") (lambda _
,flags)) (chdir "Auxiliary"))))))
((#:phases phases) (synopsis "Emacs major mode for editing Cmake expressions")
`(modify-phases ,phases (description "@code{cmakeos-mode} provides an Emacs major mode for editing
(replace 'patch-bin-sh Cmake files. It supports syntax highlighting, indenting and refilling of
(lambda _ comments.")))
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CPack.RuntimeScript.in"
"Source/cmakexbuild.cxx"
"Source/cmGlobalXCodeGenerator.cxx"
"Source/cmLocalUnixMakefileGenerator3.cxx"
"Source/cmExecProgramCommand.cxx"
"Utilities/Release/release_cmake.cmake"
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
"Tests/CMakeLists.txt"
"Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
(("/bin/sh") (which "sh")))
#t))
;; This is now passed through #:make-flags.
(delete 'set-test-environment)))))
(inputs
`(("rhash" ,rhash)
,@(package-inputs cmake)))))

View File

@ -7,6 +7,10 @@
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,12 +30,16 @@
(define-module (gnu packages code) (define-module (gnu packages code)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -39,15 +47,13 @@
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz) #:use-module (gnu packages graphviz)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages autogen)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages autotools)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages lua) #:use-module (gnu packages lua))
#:use-module (gnu packages bash))
;;; Tools to deal with source code: metrics, cross-references, etc. ;;; Tools to deal with source code: metrics, cross-references, etc.
@ -414,7 +420,8 @@ functionality such as HTML output.")
(let ((files (find-files "." ".*\\.cpp|.*\\.h"))) (let ((files (find-files "." ".*\\.cpp|.*\\.h")))
(substitute* files (substitute* files
(("#include ?\"rct/(.*.h)\"" all header) (("#include ?\"rct/(.*.h)\"" all header)
(string-append "#include <rct/" header ">")))))) (string-append "#include <rct/" header ">")))
#t)))
(sha256 (sha256
(base32 (base32
"0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2")))) "0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2"))))
@ -492,7 +499,8 @@ importantly we give you proper follow-symbol and find-references support.")
(install-files '("AUTHORS" "BUGS" "ChangeLog" "README") doc) (install-files '("AUTHORS" "BUGS" "ChangeLog" "README") doc)
(install-files '("colormake" "colormake-short" "clmake" (install-files '("colormake" "colormake-short" "clmake"
"clmake-short" "colormake.pl") "clmake-short" "colormake.pl")
bin))))) bin)
#t))))
(home-page "http://bre.klaki.net/programs/colormake/") (home-page "http://bre.klaki.net/programs/colormake/")
(synopsis "Wrapper around @command{make} to produce colored output") (synopsis "Wrapper around @command{make} to produce colored output")
(description "This package provides a wrapper around @command{make} to (description "This package provides a wrapper around @command{make} to
@ -527,3 +535,164 @@ produce colored output.")
output is a graphviz-dot file, a Gexf-XML file or a list of the deepest output is a graphviz-dot file, a Gexf-XML file or a list of the deepest
independent targets.") independent targets.")
(license license:expat))) (license license:expat)))
(define-public uncrustify
(package
(name "uncrustify")
(version "0.67")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/uncrustify/uncrustify/archive/"
"uncrustify-" version ".zip"))
(sha256
(base32
"0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp"))))
(build-system cmake-build-system)
(native-inputs
`(("unzip" ,unzip)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-etc
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Configuration samples are not installed by default.
(let* ((output (assoc-ref outputs "out"))
(etcdir (string-append output "/etc")))
(for-each (lambda (l)
(install-file l etcdir))
(find-files "etc" "\\.cfg$")))
#t)))))
(home-page "http://uncrustify.sourceforge.net/")
(synopsis "Code formatter for C and other related languages")
(description
"Beautify source code in many languages of the C family (C, C++, C#,
Objective@tie{}C, D, Java, Pawn, and Vala). Features:
@itemize
@item Indent and align code.
@item Reformat comments (a little bit).
@item Fix inter-character spacing.
@item Add or remove parens / braces.
@item Supports embedded SQL @code{EXEC SQL} stuff.
@item Highly configurable - More than 600 configurable options.
@end itemize\n")
(license license:gpl2+)))
(define-public astyle
(package
(name "astyle")
(version "2.05")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20"
version "/astyle_" version "_linux.tar.gz"))
(sha256
(base32
"0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
#:make-flags (list (string-append "prefix=" %output)
"INSTALL=install"
"all")
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _ (chdir "build/gcc") #t))
(add-after 'install 'install-libs
(lambda* (#:key outputs #:allow-other-keys)
;; Libraries are not installed by default
(let* ((output (assoc-ref outputs "out"))
(libdir (string-append output "/lib")))
(begin
(mkdir-p libdir)
(for-each (lambda (l)
(copy-file
l (string-append libdir "/" (basename l))))
(find-files "bin" "lib*"))))
#t)))))
(home-page "http://astyle.sourceforge.net/")
(synopsis "Source code indenter, formatter, and beautifier")
(description
"Artistic Style is a source code indenter, formatter, and beautifier for
the C, C++, C++/CLI, ObjectiveC, C#, and Java programming languages.")
(license license:lgpl3+)))
(define-public indent
(package
(name "indent")
(version "2.2.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/indent/indent-" version
".tar.gz"))
(sha256 (base32
"0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-docdir
(lambda _
;; Although indent uses a modern autoconf in which docdir
;; defaults to PREFIX/share/doc, the doc/Makefile.am
;; overrides this to be in PREFIX/doc. Fix this.
(substitute* "doc/Makefile.in"
(("^docdir = .*$") "docdir = @docdir@\n"))
#t)))))
(synopsis "Code reformatter")
(description
"Indent is a program that makes source code easier to read by
reformatting it in a consistent style. It can change the style to one of
several different styles such as GNU, BSD or K&R. It has some flexibility to
deal with incomplete or malformed syntax. GNU indent offers several
extensions over the standard utility.")
(license license:gpl3+)
(home-page "https://www.gnu.org/software/indent/")))
(define-public amalgamate
(let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package
(name "amalgamate")
(version version)
(home-page "https://github.com/edlund/amalgamate")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"0cllaraw8mxs8q2nr28nhgzkb417gj2wcklqg59w84f4lc78k3yb"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
'(substitute* "test.sh"
(("test_command \"cc -Wall -Wextra -o source.out source.c\"" all)
"test_command \"gcc -Wall -Wextra -o source.out source.c\"")))))
(build-system gnu-build-system)
(inputs
`(("python" ,python-wrapper)))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "amalgamate.py" bin))))
(replace 'check
(lambda _
(invoke "./test.sh"))))))
(synopsis "Tool for amalgamating C source and header files")
;; The package is indeed a script file, and the term "amalgamate.py" is
;; used by upstream.
(description "amalgamate.py aims to make it easy to use SQLite-style C
source and header amalgamation in projects.")
(license license:bsd-3))))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -29,7 +30,7 @@
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages indent) #:use-module (gnu packages code)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages gawk) #:use-module (gnu packages gawk)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
@ -90,12 +91,14 @@
`(modify-phases ,phases `(modify-phases ,phases
(replace 'build (replace 'build
(lambda _ (lambda _
(zero? (system* "./build.sh")))) (invoke "./build.sh")
#t))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))) (bin (string-append out "/bin")))
(install-file "make" bin))))))))) (install-file "make" bin)
#t))))))))
(native-inputs '()) ; no need for 'pkg-config' (native-inputs '()) ; no need for 'pkg-config'
(inputs %bootstrap-inputs)))) (inputs %bootstrap-inputs))))
@ -183,28 +186,12 @@
,cf))))) ,cf)))))
(inputs %boot0-inputs)))) (inputs %boot0-inputs))))
;; gcc-4.9 was fixed late in the core-update cycle and so this GCC is only
;; needed to prevent a full world rebuild, and can be replaced with gcc-4.9.
(define gcc-for-libstdc++
(package (inherit gcc-4.9)
(version "4.9.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
version "/gcc-" version ".tar.bz2"))
(sha256
(base32
"14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"))
(patches (search-patches "gcc-arm-bug-71399.patch"
"gcc-libvtv-runpath.patch"
"gcc-fix-texi2pod.patch"))))))
(define libstdc++-boot0 (define libstdc++-boot0
;; GCC's libcc1 is always built as a shared library (the top-level ;; GCC's libcc1 is always built as a shared library (the top-level
;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer ;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer
;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on ;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on
;; C++14 features missing in some of our bootstrap compilers. ;; C++14 features missing in some of our bootstrap compilers.
(let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++)))) (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9))))
(package (package
(inherit lib) (inherit lib)
(name "libstdc++-boot0") (name "libstdc++-boot0")
@ -262,42 +249,40 @@
"--(with-system-zlib|enable-languages.*)" <>) "--(with-system-zlib|enable-languages.*)" <>)
,flags))) ,flags)))
((#:phases phases) ((#:phases phases)
`(alist-cons-after `(modify-phases ,phases
'unpack 'unpack-gmp&co (add-after 'unpack 'unpack-gmp&co
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((gmp (assoc-ref %build-inputs "gmp-source")) (let ((gmp (assoc-ref %build-inputs "gmp-source"))
(mpfr (assoc-ref %build-inputs "mpfr-source")) (mpfr (assoc-ref %build-inputs "mpfr-source"))
(mpc (assoc-ref %build-inputs "mpc-source"))) (mpc (assoc-ref %build-inputs "mpc-source")))
;; To reduce the set of pre-built bootstrap inputs, build ;; To reduce the set of pre-built bootstrap inputs, build
;; GMP & co. from GCC. ;; GMP & co. from GCC.
(for-each (lambda (source) (for-each (lambda (source)
(or (zero? (system* "tar" "xvf" source)) (invoke "tar" "xvf" source))
(error "failed to unpack tarball" (list gmp mpfr mpc))
source)))
(list gmp mpfr mpc))
;; Create symlinks like `gmp' -> `gmp-x.y.z'. ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
,@(map (lambda (lib) ,@(map (lambda (lib)
;; Drop trailing letters, as gmp-6.0.0a unpacks ;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0. ;; into gmp-6.0.0.
`(symlink ,(string-trim-right `(symlink ,(string-trim-right
(package-full-name lib) (package-full-name lib "-")
char-set:letter) char-set:letter)
,(package-name lib))) ,(package-name lib)))
(list gmp-6.0 mpfr mpc)))) (list gmp-6.0 mpfr mpc))
(alist-cons-after #t)))
'install 'symlink-libgcc_eh (add-after 'install 'symlink-libgcc_eh
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "lib"))) (let ((out (assoc-ref outputs "lib")))
;; Glibc wants to link against libgcc_eh, so provide ;; Glibc wants to link against libgcc_eh, so provide
;; it. ;; it.
(with-directory-excursion (with-directory-excursion
(string-append out "/lib/gcc/" (string-append out "/lib/gcc/"
,(boot-triplet) ,(boot-triplet)
"/" ,(package-version gcc)) "/" ,(package-version gcc))
(symlink "libgcc.a" "libgcc_eh.a")))) (symlink "libgcc.a" "libgcc_eh.a"))
,phases)))))) #t))))))))
(inputs `(("gmp-source" ,(package-source gmp-6.0)) (inputs `(("gmp-source" ,(package-source gmp-6.0))
("mpfr-source" ,(package-source mpfr)) ("mpfr-source" ,(package-source mpfr))
@ -332,7 +317,8 @@
(lambda _ (lambda _
(substitute* "Configure" (substitute* "Configure"
(("^libswanted=(.*)pthread" _ before) (("^libswanted=(.*)pthread" _ before)
(string-append "libswanted=" before))))))) (string-append "libswanted=" before)))
#t))))
;; Do not configure with '-Dusethreads' since pthread ;; Do not configure with '-Dusethreads' since pthread
;; support is missing. ;; support is missing.
((#:configure-flags configure-flags) ((#:configure-flags configure-flags)
@ -512,32 +498,33 @@ the bootstrap environment."
"--enable-obsolete-rpc") "--enable-obsolete-rpc")
,flags)) ,flags))
((#:phases phases) ((#:phases phases)
`(alist-cons-before `(modify-phases ,phases
'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Don't clobber CPATH with the bootstrap libc. ;; Don't clobber CPATH with the bootstrap libc.
(setenv "NATIVE_CPATH" (getenv "CPATH")) (setenv "NATIVE_CPATH" (getenv "CPATH"))
(unsetenv "CPATH") (unsetenv "CPATH")
;; Tell 'libpthread' where to find 'libihash' on Hurd systems. ;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
,@(if (hurd-triplet? (%current-system)) ,@(if (hurd-triplet? (%current-system))
`((substitute* "libpthread/Makefile" `((substitute* "libpthread/Makefile"
(("LDLIBS-pthread.so =.*") (("LDLIBS-pthread.so =.*")
(string-append "LDLIBS-pthread.so = " (string-append "LDLIBS-pthread.so = "
(assoc-ref %build-inputs "kernel-headers") (assoc-ref %build-inputs "kernel-headers")
"/lib/libihash.a\n")))) "/lib/libihash.a\n"))))
'()) '())
;; 'rpcgen' needs native libc headers to be built. ;; 'rpcgen' needs native libc headers to be built.
(substitute* "sunrpc/Makefile" (substitute* "sunrpc/Makefile"
(("sunrpc-CPPFLAGS =.*" all) (("sunrpc-CPPFLAGS =.*" all)
(string-append "CPATH = $(NATIVE_CPATH)\n" (string-append "CPATH = $(NATIVE_CPATH)\n"
"export CPATH\n" "export CPATH\n"
all "\n")))) all "\n")))
,phases))))) #t)))))))
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
(native-inputs (native-inputs
`(("texinfo" ,texinfo-boot0) `(("bison" ,bison-boot0)
("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0))) ("perl" ,perl-boot0)))
(inputs (inputs
`(;; The boot inputs. That includes the bootstrap libc. We don't want `(;; The boot inputs. That includes the bootstrap libc. We don't want
@ -599,7 +586,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
triplet "-" tool) triplet "-" tool)
tool)) tool))
'("ar" "ranlib")) '("ar" "ranlib"))
(for-each wrap-program '("gcc" "g++"))))))) (for-each wrap-program '("gcc" "g++")))
#t))))
(native-inputs (native-inputs
`(("binutils" ,binutils) `(("binutils" ,binutils)
("gcc" ,gcc) ("gcc" ,gcc)
@ -652,7 +641,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; Build only the tools. ;; Build only the tools.
(add-after 'unpack 'chdir (add-after 'unpack 'chdir
(lambda _ (lambda _
(chdir "gettext-tools"))) (chdir "gettext-tools")
#t))
;; Some test programs require pthreads, which we don't have. ;; Some test programs require pthreads, which we don't have.
(add-before 'configure 'no-test-programs (add-before 'configure 'no-test-programs
@ -923,14 +913,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define grep-final (define grep-final
;; The final grep. Gzip holds a reference to it (via zgrep), so it must be ;; The final grep. Gzip holds a reference to it (via zgrep), so it must be
;; built before gzip. ;; built before gzip.
(package-with-bootstrap-guile (let ((grep (package-with-bootstrap-guile
(package-with-explicit-inputs (package (package-with-explicit-inputs grep %boot5-inputs
(inherit grep) (current-source-location)
(inputs '()) ;no PCRE support #:guile guile-final))))
(native-inputs `(("perl" ,perl-boot0)))) (package/inherit grep
%boot5-inputs (inputs (alist-delete "pcre" (package-inputs grep)))
(current-source-location) (native-inputs `(("perl" ,perl-boot0))))))
#:guile guile-final)))
(define %boot6-inputs (define %boot6-inputs
;; Now use the final Coreutils. ;; Now use the final Coreutils.
@ -938,6 +927,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("grep" ,grep-final) ("grep" ,grep-final)
,@%boot5-inputs)) ,@%boot5-inputs))
(define sed-final
;; The final sed.
(let ((sed (package-with-bootstrap-guile
(package-with-explicit-inputs sed %boot6-inputs
(current-source-location)
#:guile guile-final))))
(package/inherit sed (native-inputs `(("perl" ,perl-boot0))))))
(define-public %final-inputs (define-public %final-inputs
;; Final derivations used as implicit inputs by 'gnu-build-system'. We ;; Final derivations used as implicit inputs by 'gnu-build-system'. We
;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
@ -956,9 +953,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("file" ,file) ("file" ,file)
("diffutils" ,diffutils) ("diffutils" ,diffutils)
("patch" ,patch) ("patch" ,patch)
("sed" ,sed)
("findutils" ,findutils) ("findutils" ,findutils)
("gawk" ,gawk))) ("gawk" ,gawk)))
("sed" ,sed-final)
("grep" ,grep-final) ("grep" ,grep-final)
("coreutils" ,coreutils-final) ("coreutils" ,coreutils-final)
("make" ,gnu-make-final) ("make" ,gnu-make-final)
@ -1029,7 +1026,8 @@ COREUTILS-FINAL vs. COREUTILS, etc."
"libc-debug"))) "libc-debug")))
(union-build (assoc-ref %outputs "static") (union-build (assoc-ref %outputs "static")
(list (assoc-ref %build-inputs (list (assoc-ref %build-inputs
"libc-static"))))))) "libc-static")))
#t))))
(native-search-paths (package-native-search-paths gcc)) (native-search-paths (package-native-search-paths gcc))
(search-paths (package-search-paths gcc)) (search-paths (package-search-paths gcc))

View File

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
@ -13,7 +13,7 @@
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
@ -22,6 +22,7 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -97,9 +98,8 @@
,@(if (%current-target-system) ,@(if (%current-target-system)
`((setenv "CHOST" ,(%current-target-system))) `((setenv "CHOST" ,(%current-target-system)))
'()) '())
(zero? (invoke "./configure"
(system* "./configure" (string-append "--prefix=" out))))))))
(string-append "--prefix=" out)))))))))
(home-page "https://zlib.net/") (home-page "https://zlib.net/")
(synopsis "Compression library") (synopsis "Compression library")
(description (description
@ -127,7 +127,7 @@ in compression.")
(lambda _ (chdir "contrib/minizip") #t)) (lambda _ (chdir "contrib/minizip") #t))
(add-after 'enter-source 'autoreconf (add-after 'enter-source 'autoreconf
(lambda _ (lambda _
(zero? (system* "autoreconf" "-vif"))))))) (invoke "autoreconf" "-vif"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -184,7 +184,7 @@ utility. Instead of being written in Java, FastJar is written in C.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autoconf (add-after 'unpack 'autoconf
(lambda _ (zero? (system* "sh" "autoreconf" "-vfi"))))))) (lambda _ (invoke "sh" "autoreconf" "-vfi"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -201,14 +201,14 @@ adding and extracting files to/from a tar archive.")
(define-public gzip (define-public gzip
(package (package
(name "gzip") (name "gzip")
(version "1.8") (version "1.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gzip/gzip-" (uri (string-append "mirror://gnu/gzip/gzip-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1lxv3p4iyx7833mlihkn5wfwmz4cys5nybwpz3dfawag8kn6f5zz")))) "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "General file (de)compression (using lzw)") (synopsis "General file (de)compression (using lzw)")
(arguments (arguments
@ -251,35 +251,48 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key target #:allow-other-keys) (lambda* (#:key target #:allow-other-keys)
(if ,(%current-target-system) (when ,(%current-target-system)
;; Cross-compilation: use the cross tools. ;; Cross-compilation: use the cross tools.
(substitute* (find-files "." "Makefile") (substitute* (find-files "." "Makefile")
(("CC=.*$") (("CC=.*$")
(string-append "CC = " target "-gcc\n")) (string-append "CC = " target "-gcc\n"))
(("AR=.*$") (("AR=.*$")
(string-append "AR = " target "-ar\n")) (string-append "AR = " target "-ar\n"))
(("RANLIB=.*$") (("RANLIB=.*$")
(string-append "RANLIB = " target "-ranlib\n")) (string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites) (("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency. ;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n"))) (string-append "all:" prerequisites "\n"))))
#t))) #t))
(add-before 'build 'build-shared-lib (add-before 'build 'build-shared-lib
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(patch-makefile-SHELL "Makefile-libbz2_so") (patch-makefile-SHELL "Makefile-libbz2_so")
(zero? (system* "make" "-f" "Makefile-libbz2_so")))) (invoke "make" "-f" "Makefile-libbz2_so")))
(add-after 'install 'install-shared-lib (add-after 'install 'install-shared-lib
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; The Makefile above does not have an 'install' target, nor does
;; it create all the (un)versioned symlinks, so we handle it here.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib"))) (libdir (string-append out "/lib"))
(for-each (lambda (file) ;; Find the actual library (e.g. "libbz2.so.1.0.6").
(let ((base (basename file))) (lib (string-drop
(format #t "installing `~a' to `~a'~%" (car (find-files
base libdir) "."
(copy-file file (lambda (file stat)
(string-append libdir "/" base)))) (and (string-prefix? "./libbz2.so" file)
(find-files "." "^libbz2\\.so"))) (eq? 'regular (stat:type stat))))))
#t)) 2))
(soversion (string-drop lib (string-length "libbz2.so."))))
(install-file lib libdir)
(with-directory-excursion libdir
;; Create symlinks libbz2.so.1 -> libbz2.so.1.0, etc.
(let loop ((base "libbz2.so")
(numbers (string-split soversion #\.)))
(unless (null? numbers)
(let ((so-file (string-append base "." (car numbers))))
(symlink so-file base)
(loop so-file (cdr numbers))))))
#t)))
(add-after 'install-shared-lib 'patch-scripts (add-after 'install-shared-lib 'patch-scripts
(lambda* (#:key outputs inputs #:allow-other-keys) (lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))) (let* ((out (assoc-ref outputs "out")))
@ -476,14 +489,14 @@ some compression ratio).")
(define-public lzip (define-public lzip
(package (package
(name "lzip") (name "lzip")
(version "1.19") (version "1.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://savannah/lzip/lzip-" (uri (string-append "mirror://savannah/lzip/lzip-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz")))) "0319q59kb8g324wnj7xzbr7vvlx5bcs13lr34j0zb3kqlyjq2fy9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.nongnu.org/lzip/lzip.html") (home-page "https://www.nongnu.org/lzip/lzip.html")
(synopsis "Lossless data compressor based on the LZMA algorithm") (synopsis "Lossless data compressor based on the LZMA algorithm")
@ -647,7 +660,7 @@ decompression of some loosely related file formats used by Microsoft.")
(define-public perl-compress-raw-bzip2 (define-public perl-compress-raw-bzip2
(package (package
(name "perl-compress-raw-bzip2") (name "perl-compress-raw-bzip2")
(version "2.074") (version "2.081")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -655,7 +668,7 @@ decompression of some loosely related file formats used by Microsoft.")
"Compress-Raw-Bzip2-" version ".tar.gz")) "Compress-Raw-Bzip2-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0b5jwqf15zr787acnx8sfyy2zavdd7gfkd98n1dgy8fs6r8yb8a4")))) "081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6"))))
(build-system perl-build-system) (build-system perl-build-system)
;; TODO: Use our bzip2 package. ;; TODO: Use our bzip2 package.
(home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2") (home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2")
@ -667,7 +680,7 @@ compression library.")
(define-public perl-compress-raw-zlib (define-public perl-compress-raw-zlib
(package (package
(name "perl-compress-raw-zlib") (name "perl-compress-raw-zlib")
(version "2.076") (version "2.081")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -675,7 +688,7 @@ compression library.")
"Compress-Raw-Zlib-" version ".tar.gz")) "Compress-Raw-Zlib-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1al2h0i6mspldmlf5c09fy5a4j8swsxd31v6zi8zx9iyqk1lw7in")))) "06rsm9ahp20xfyvd3jc69sd0k8vqysryxc6apzdbn96jbcsdwmp1"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs (inputs
`(("zlib" ,zlib))) `(("zlib" ,zlib)))
@ -702,7 +715,7 @@ compression library.")
(define-public perl-io-compress (define-public perl-io-compress
(package (package
(name "perl-io-compress") (name "perl-io-compress")
(version "2.074") (version "2.081")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -710,11 +723,11 @@ compression library.")
"IO-Compress-" version ".tar.gz")) "IO-Compress-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1wlpy2026djfmq0bjync531yq6s695jf7bcnpvjphrasi776igdl")))) "1na66ns1g3nni0m9q5494ym4swr21hfgpv88mw8wbj2daiswf4aj"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.074 `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.081
("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.074 ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.081
(home-page "http://search.cpan.org/dist/IO-Compress") (home-page "http://search.cpan.org/dist/IO-Compress")
(synopsis "IO Interface to compressed files/buffers") (synopsis "IO Interface to compressed files/buffers")
(description "IO-Compress provides a Perl interface to allow reading and (description "IO-Compress provides a Perl interface to allow reading and
@ -742,7 +755,7 @@ writing of compressed data created with the zlib and bzip2 libraries.")
(string-append "prefix=" (assoc-ref %outputs "out"))) (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure)))) ; no configure script (delete 'configure)))) ; no configure script
(home-page "http://www.lz4.org") (home-page "https://www.lz4.org")
(synopsis "Compression algorithm focused on speed") (synopsis "Compression algorithm focused on speed")
(description "LZ4 is a lossless compression algorithm, providing (description "LZ4 is a lossless compression algorithm, providing
compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an
@ -843,6 +856,23 @@ systems where low overhead is needed. This package allows you to create and
extract such file systems.") extract such file systems.")
(license license:gpl2+))) (license license:gpl2+)))
;; We need this for building squashfs images with symlinks.
(define-public squashfs-tools-next
(let ((commit "fb33dfc32b131a1162dcf0e35bd88254ae10e265")
(revision "1"))
(package (inherit squashfs-tools)
(name "squashfs-tools-next")
(version (string-append "4.3-" revision (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/plougher/squashfs-tools.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1x2skf8hxzfch978nzx5mh46d4hhi6gl22270hiarjszsjk3bnsx")))))))
(define-public pigz (define-public pigz
(package (package
(name "pigz") (name "pigz")
@ -925,10 +955,11 @@ tarballs.")
(base32 (base32
"1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n")) "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet '(begin
;; This is a recursive submodule that is unnecessary for this ;; This is a recursive submodule that is
;; package, so delete it. ;; unnecessary for this package, so delete it.
'(delete-file-recursively "brotli/terryfy")))) (delete-file-recursively "brotli/terryfy")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -939,7 +970,7 @@ tarballs.")
(add-after 'unpack 'autogen (add-after 'unpack 'autogen
(lambda _ (lambda _
(mkdir "m4") (mkdir "m4")
(zero? (system* "autoreconf" "-vfi"))))))) (invoke "autoreconf" "-vfi"))))))
(home-page "https://github.com/bagder/libbrotli/") (home-page "https://github.com/bagder/libbrotli/")
(synopsis "Implementation of the Brotli compression algorithm") (synopsis "Implementation of the Brotli compression algorithm")
(description (description
@ -987,7 +1018,9 @@ respectively, based on the reference implementation from Google.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(snippet (snippet
;; This file isn't freely distributable and has no effect on building. ;; This file isn't freely distributable and has no effect on building.
'(delete-file "xdelta3/draft-korn-vcdiff.txt")))) '(begin
(delete-file "xdelta3/draft-korn-vcdiff.txt")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -996,9 +1029,9 @@ respectively, based on the reference implementation from Google.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-build-directory (add-after 'unpack 'enter-build-directory
(lambda _ (chdir "xdelta3"))) (lambda _ (chdir "xdelta3") #t))
(add-after 'enter-build-directory 'autoconf (add-after 'enter-build-directory 'autoconf
(lambda _ (zero? (system* "autoreconf" "-vfi"))))))) (lambda _ (invoke "autoreconf" "-vfi"))))))
(home-page "http://xdelta.org") (home-page "http://xdelta.org")
(synopsis "Delta encoder for binary files") (synopsis "Delta encoder for binary files")
(description "xdelta encodes only the differences between two binary files (description "xdelta encodes only the differences between two binary files
@ -1159,7 +1192,7 @@ install: libbitshuffle.so
(add-before 'build 'build-jni (add-before 'build 'build-jni
(lambda _ (lambda _
;; Rebuild one of the binaries we removed earlier ;; Rebuild one of the binaries we removed earlier
(system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java" (invoke "javac" "src/main/java/org/xerial/snappy/OSInfo.java"
"-d" "lib") "-d" "lib")
;; Link to the dynamic bitshuffle and snappy, not the static ones ;; Link to the dynamic bitshuffle and snappy, not the static ones
(substitute* "Makefile.common" (substitute* "Makefile.common"
@ -1246,7 +1279,7 @@ compresser/decompresser.")
(add-before 'build 'build-jni (add-before 'build 'build-jni
(lambda _ (lambda _
;; Rebuild one of the binaries we removed earlier ;; Rebuild one of the binaries we removed earlier
(system* "javac" "src/main/java/org/xerial/snappy/OSInfo.java" (invoke "javac" "src/main/java/org/xerial/snappy/OSInfo.java"
"-d" "lib") "-d" "lib")
;; Link to the dynamic snappy, not the static ones ;; Link to the dynamic snappy, not the static ones
(substitute* "Makefile.common" (substitute* "Makefile.common"
@ -1263,7 +1296,7 @@ compresser/decompresser.")
(("NAME\\): \\$\\(SNAPPY_OBJ\\)") (("NAME\\): \\$\\(SNAPPY_OBJ\\)")
"NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)")) "NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)"))
;; Finally we can run the Makefile to build the dynamic library. ;; Finally we can run the Makefile to build the dynamic library.
(zero? (system* "make" "native")))) (invoke "make" "native")))
;; Once we have built the shared library, we need to place it in the ;; Once we have built the shared library, we need to place it in the
;; "build" directory so it can be added to the jar file. ;; "build" directory so it can be added to the jar file.
(add-after 'build-jni 'copy-jni (add-after 'build-jni 'copy-jni
@ -1302,16 +1335,15 @@ compresser/decompresser.")
(replace 'check (replace 'check
(lambda _ (lambda _
(define (test class) (define (test class)
(zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
":build/classes" ":build/classes"
":build/test-classes") ":build/test-classes")
"-Dtest.resources.dir=src/test/resources" "-Dtest.resources.dir=src/test/resources"
"org.testng.TestNG" "-testclass" "org.testng.TestNG" "-testclass"
class))) class))
(system* "ant" "compile-tests") (invoke "ant" "compile-tests")
(and (test "org.iq80.snappy.SnappyFramedStreamTest")
(test "org.iq80.snappy.SnappyFramedStreamTest") (test "org.iq80.snappy.SnappyStreamTest")))
(test "org.iq80.snappy.SnappyStreamTest"))))
(add-before 'build 'remove-hadoop-dependency (add-before 'build 'remove-hadoop-dependency
(lambda _ (lambda _
;; We don't have hadoop ;; We don't have hadoop
@ -1407,22 +1439,22 @@ It can be used as a replacement for the Apache @code{CBZip2InputStream} /
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key system outputs #:allow-other-keys) (lambda* (#:key system outputs #:allow-other-keys)
(zero? (system* "cp" (invoke "cp"
(let ((system ,(or (%current-target-system) (let ((system ,(or (%current-target-system)
(%current-system)))) (%current-system))))
(cond (cond
((string-prefix? "x86_64" system) ((string-prefix? "x86_64" system)
"makefile.linux_amd64_asm") "makefile.linux_amd64_asm")
((string-prefix? "i686" system) ((string-prefix? "i686" system)
"makefile.linux_x86_asm_gcc_4.X") "makefile.linux_x86_asm_gcc_4.X")
(else (else
"makefile.linux_any_cpu_gcc_4.X"))) "makefile.linux_any_cpu_gcc_4.X")))
"makefile.machine")))) "makefile.machine")))
(replace 'check (replace 'check
(lambda _ (lambda _
(and (zero? (system* "make" "test")) (invoke "make" "test")
(zero? (system* "make" "test_7z")) (invoke "make" "test_7z")
(zero? (system* "make" "test_7zr")))))))) (invoke "make" "test_7zr"))))))
(inputs (inputs
(let ((system (or (%current-target-system) (let ((system (or (%current-target-system)
(%current-system)))) (%current-system))))
@ -1455,7 +1487,9 @@ handles the 7z format which features very high compression ratios.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove pre-compiled object. ;; Remove pre-compiled object.
'(delete-file "gzstream.o")))) '(begin
(delete-file "gzstream.o")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
@ -1492,7 +1526,9 @@ functionality in a C++ iostream.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Delete irrelevant pre-compiled binaries. ;; Delete irrelevant pre-compiled binaries.
'(for-each delete-file (find-files "." "\\.exe$"))))) '(begin
(for-each delete-file (find-files "." "\\.exe$"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -1601,7 +1637,7 @@ or junctions, and always follows hard links.")
#t)) #t))
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "./run-tests.sh"))))))) (invoke "./run-tests.sh"))))))
(home-page "https://github.com/twogood/unshield") (home-page "https://github.com/twogood/unshield")
(synopsis "Extract CAB files from InstallShield installers") (synopsis "Extract CAB files from InstallShield installers")
(description (description
@ -1667,7 +1703,7 @@ speed.")
(delete 'configure) ; no configure script (delete 'configure) ; no configure script
(add-before 'check 'compile-tests (add-before 'check 'compile-tests
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "tests" make-flags)))) (apply invoke "make" "tests" make-flags)))
(add-after 'install 'install-documentation (add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -1711,14 +1747,11 @@ the actual decompression, the other input and output.")
(list "-f" "unix/Makefile" (list "-f" "unix/Makefile"
(string-append "prefix=" out) (string-append "prefix=" out)
(string-append "MANDIR=" out "/share/man/man1"))) (string-append "MANDIR=" out "/share/man/man1")))
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'build (replace 'build
(lambda* (#:key (make-flags '()) #:allow-other-keys) (lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "generic_gcc" make-flags)))) (apply invoke "make" "generic_gcc" make-flags)))
(delete 'configure)))) (delete 'configure))))
(home-page "http://www.info-zip.org/Zip.html") (home-page "http://www.info-zip.org/Zip.html")
(synopsis "Compression and file packing utility") (synopsis "Compression and file packing utility")
@ -1740,7 +1773,6 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
(define-public unzip (define-public unzip
(package (inherit zip) (package (inherit zip)
(name "unzip") (name "unzip")
(replacement unzip/fixed)
(version "6.0") (version "6.0")
(source (source
(origin (origin
@ -1768,13 +1800,20 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-after 'unpack 'fortify
(lambda _
;; Mitigate CVE-2018-1000035, an exploitable buffer overflow.
;; This environment variable is recommended in 'unix/Makefile'
;; for passing flags to the C compiler.
(setenv "LOCAL_UNZIP" "-D_FORTIFY_SOURCE=1")
#t))
(replace 'build (replace 'build
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" (apply invoke "make"
`("-j" ,(number->string `("-j" ,(number->string
(parallel-job-count)) (parallel-job-count))
,@make-flags ,@make-flags
"generic_gcc")))))) "generic_gcc")))))
#:make-flags (list "-f" "unix/Makefile" #:make-flags (list "-f" "unix/Makefile"
(string-append "prefix=" %output) (string-append "prefix=" %output)
(string-append "MANDIR=" %output "/share/man/man1")))) (string-append "MANDIR=" %output "/share/man/man1"))))
@ -1791,20 +1830,6 @@ recreates the stored directory structure by default.")
(license (license:non-copyleft "file://LICENSE" (license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution.")))) "See LICENSE in the distribution."))))
(define unzip/fixed
(package/inherit unzip
(arguments
(substitute-keyword-arguments (package-arguments unzip)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'fortify
(lambda _
;; Mitigate CVE-2018-1000035, an exploitable buffer overflow.
;; This environment variable is recommended in 'unix/Makefile'
;; for passing flags to the C compiler.
(setenv "LOCAL_UNZIP" "-D_FORTIFY_SOURCE=1")
#t))))))))
(define-public zziplib (define-public zziplib
(package (package
(name "zziplib") (name "zziplib")
@ -2151,3 +2176,75 @@ with @code{deflate} but offers more dense compression.
The specification of the Brotli Compressed Data Format is defined in RFC 7932.") The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
(license license:expat))) (license license:expat)))
(define-public ucl
(package
(name "ucl")
(version "1.03")
(source (origin
(method url-fetch)
(uri (string-append "http://www.oberhumer.com/opensource/"
name "/download/" name "-" version ".tar.gz"))
(sha256
(base32
"0j036lkwsxvm15gr29n8wn07cqq79dswjs9k54939ms5zngjjrdq"))))
(build-system gnu-build-system)
(home-page "http://www.oberhumer.com/opensource/ucl/")
(synopsis "Portable lossless data compression library")
(description "UCL implements a number of compression algorithms that
achieve an excellent compression ratio while allowing fast decompression.
Decompression requires no additional memory.
Compared to LZO, the UCL algorithms achieve a better compression ratio but
decompression is a little bit slower.")
(license license:gpl2+)))
(define-public upx
(package
(name "upx")
(version "3.94")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/upx/upx/releases/download/v"
version "/" name "-" version "-src.tar.xz"))
(sha256
(base32
"08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("ucl" ,ucl)))
(inputs `(("zlib" ,zlib)))
(arguments
`(#:make-flags
(list "all"
;; CHECK_WHITESPACE does not seem to work.
;; See https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/upx.
"CHECK_WHITESPACE=true")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(delete 'install)
(add-before 'build 'patch-exec-bin-sh
(lambda _
(substitute* (find-files "Makefile")
(("/bin/sh") (which "sh")))
(substitute* "src/Makefile"
(("/bin/sh") (which "sh")))
#t))
(add-after 'build 'install-upx
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(copy-file "src/upx.out" (string-append bin "/upx")))
#t))
)))
(home-page "https://upx.github.io/")
(synopsis "Compression tool for executables")
(description
"The Ultimate Packer for eXecutables (UPX) is an executable file
compressor. UPX typically reduces the file size of programs and shared
libraries by around 50%--70%, thus reducing disk space, network load times,
download times, and other distribution and storage costs.")
(license license:gpl2+)))

View File

@ -67,7 +67,7 @@
("libdrm" ,libdrm) ("libdrm" ,libdrm)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python" ,python) ("python" ,python)
("xproto" ,xproto))) ("xorgproto" ,xorgproto)))
(arguments (arguments
`(#:make-flags (list `(#:make-flags (list
"CC=gcc" "CC=gcc"

View File

@ -3,7 +3,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -43,7 +43,7 @@
(define-public connman (define-public connman
(package (package
(name "connman") (name "connman")
(version "1.35") (version "1.36")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -51,7 +51,7 @@
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1apj5j25kj7v1bsfv3nh54aiq873nfrsjfbj85p5qm3ihfwxxmv6")))) "0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -29,7 +29,9 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls)) #:use-module (gnu packages tls))
@ -124,3 +126,148 @@ unified access to TCP/UDP sockets, serial ports, console, and files streams.
It also allows a server application to wait for any activity on any It also allows a server application to wait for any activity on any
combination of these streams.") combination of these streams.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public xsimd
(package
(name "xsimd")
(version "4.1.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/QuantStack/xsimd/archive/"
version ".tar.gz"))
(sha256
(base32
"0x05l4xpqr9b66sm6lkf48n6x7999ks921x6k2hzkkg6mh3gqd46"))
(file-name (string-append name "-" version ".tar.gz"))))
(home-page "https://github.com/QuantStack/xsimd")
(build-system cmake-build-system)
(arguments
`(#:test-target "xtest"))
(native-inputs
`(("googletest" ,googletest)))
(synopsis "C++ wrappers for SIMD intrinsics and math implementations")
(description "xsimd provides a unified means for using SIMD features for
library authors. Namely, it enables manipulation of batches of numbers with
the same arithmetic operators as for single values. It also provides
accelerated implementation of common mathematical functions operating on
batches.")
(license license:bsd-3)))
(define-public fifo-map
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package
(name "fifo-map")
(version version)
(home-page "https://github.com/nlohmann/fifo_map")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196"))
(patches (search-patches "fifo-map-remove-catch.hpp.patch"
"fifo-map-fix-flags-for-gcc.patch"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "./test/thirdparty"))))
(native-inputs
`(("catch2" ,catch-framework2)))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./unit")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(inc (string-append out "/include/fifo_map")))
(with-directory-excursion
(string-append "../" ,name "-" ,version "-checkout")
(install-file "src/fifo_map.hpp" inc)
#t)))))))
(synopsis "FIFO-ordered associative container for C++")
(description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container
as ordering relation.")
(license license:expat))))
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
(version "3.1.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/nlohmann/json/archive/v" version ".tar.gz"))
(sha256
(base32
"0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8"))
(file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "./third_party")
(delete-file-recursively "./test/thirdparty")
(delete-file-recursively "./benchmarks/thirdparty")
;; Splits catch and fifo_map
(with-directory-excursion "test/src"
(let ((files (find-files "." ".*\\.cpp")))
(substitute* files
(("#include ?\"(catch.hpp)\"" all catch-hpp)
(string-append "#include <catch/" catch-hpp ">")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))))))
(native-inputs
`(("amalgamate" ,amalgamate)))
(inputs
`(("catch2" ,catch-framework2)
("fifo-map" ,fifo-map)))
(home-page "https://github.com/nlohmann/json")
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
intutive syntax and trivial integration.")
(license license:expat)))
(define-public xtl
(package
(name "xtl")
(version "0.4.8")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/QuantStack/xtl/archive/"
version ".tar.gz"))
(sha256
(base32
"05bcz9y590b77bxcip0k31rgsapmkwqi1smvsvc84zz7m87d4jvy"))
(file-name (string-append name "-" version ".tar.gz"))))
(native-inputs
`(("googletest" ,googletest)
("json-modern-cxx" ,json-modern-cxx)))
(arguments
`(#:configure-flags
'("-DBUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* _
(with-directory-excursion "test"
(invoke "./test_xtl")
#t))))))
(home-page "https://github.com/QuantStack/xtl")
(build-system cmake-build-system)
(synopsis "C++ template library providing some basic tools")
(description "xtl is a C++ header-only template library providing basic
tools (containers, algorithms) used by other QuantStack packages.")
(license license:bsd-3)))

View File

@ -36,7 +36,9 @@
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics) #:use-module (gnu packages statistics)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)) #:use-module (gnu packages web))
(define-public r-tidyverse (define-public r-tidyverse
@ -167,21 +169,18 @@ such as copy/paste from an R session.")
(define-public r-callr (define-public r-callr
(package (package
(name "r-callr") (name "r-callr")
(version "2.0.3") (version "2.0.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "callr" version)) (uri (cran-uri "callr" version))
(sha256 (sha256
(base32 (base32
"1k3mflgn10hcvy74y4pbigpv74zb66fz1phfd3c8isqmn88xbxzi")))) "1053qqq632z94pqq2v5dynjpgyv1b1c8zvidmcllw7zn8zha8gqf"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-r6" ,r-r6)
("r-crayon" ,r-crayon) ("r-processx" ,r-processx)))
("r-debugme" ,r-debugme)
("r-r6" ,r-r6)
("r-testthat" ,r-testthat)))
(home-page "https://github.com/r-lib/callr#readme") (home-page "https://github.com/r-lib/callr#readme")
(synopsis "Call R from R") (synopsis "Call R from R")
(description (description
@ -219,14 +218,14 @@ the embedded @code{RapidXML} C++ library.")
(define-public r-modelr (define-public r-modelr
(package (package
(name "r-modelr") (name "r-modelr")
(version "0.1.1") (version "0.1.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "modelr" version)) (uri (cran-uri "modelr" version))
(sha256 (sha256
(base32 (base32
"1rqw0b583vp107zqp4h3wj51dvv4hb3wszfr1f5f48xassc53f95")))) "09whg3q5xq6csbqwgwfwav09vda8vgady5j70sk52xcn232k363a"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-broom" ,r-broom) `(("r-broom" ,r-broom)
@ -271,13 +270,13 @@ embedded @url{https://github.com/WizardMac/ReadStat,ReadStat} C library.")
(define-public r-amap (define-public r-amap
(package (package
(name "r-amap") (name "r-amap")
(version "0.8-14") (version "0.8-16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "amap" version)) (uri (cran-uri "amap" version))
(sha256 (sha256
(base32 (base32
"1dz37z9v4zvyvqrs4xvpfv468jwvpxav60qn2w0049bw8llj6xdl")))) "1qnl2x98x64iaipkx5126rsddq2sx5ml43h75xyiyn30yvbmlxyk"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
`(("gfortran" ,gfortran))) `(("gfortran" ,gfortran)))
@ -316,14 +315,14 @@ and several other tools.")
(define-public r-abbyyr (define-public r-abbyyr
(package (package
(name "r-abbyyr") (name "r-abbyyr")
(version "0.5.1") (version "0.5.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "abbyyR" version)) (uri (cran-uri "abbyyR" version))
(sha256 (sha256
(base32 (base32
"1s8zf18sh0s89vk3dl09fzrq50csmmfvmsanf5vfkv9n5lx6pklg")))) "1jh1c1ad6mgw7brdh2isnza1qpjlfxnqr7jl76yd93axyfl76xjx"))))
(properties `((upstream-name . "abbyyR"))) (properties `((upstream-name . "abbyyR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -427,13 +426,13 @@ error stream.")
(define-public r-rcpp (define-public r-rcpp
(package (package
(name "r-rcpp") (name "r-rcpp")
(version "0.12.16") (version "0.12.17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "Rcpp" version)) (uri (cran-uri "Rcpp" version))
(sha256 (sha256
(base32 "1rm8hcy72p1jvxikvmkwg20pjqmvmfvqb45lfghmddp2adp67qfl")))) (base32 "08xg8h3w25sdb3xr18g9pa0x8cirkdgljqapxmw56ss1j9fc89s2"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://www.rcpp.org") (home-page "http://www.rcpp.org")
(synopsis "Seamless R and C++ integration") (synopsis "Seamless R and C++ integration")
@ -653,14 +652,14 @@ rows, dropping names) to see if the modified versions are identical.")
(define-public r-dendextend (define-public r-dendextend
(package (package
(name "r-dendextend") (name "r-dendextend")
(version "1.7.0") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "dendextend" version)) (uri (cran-uri "dendextend" version))
(sha256 (sha256
(base32 (base32
"1krvqadnnh53xx5ql7bwzxaif6a317jzbs1m00gnc6jnj03rfl5d")))) "1virn3c232xwcq3d0hhkgjh5gpzl01s39iwii5gxcm9mnsxjzdrh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-fpc" ,r-fpc) `(("r-fpc" ,r-fpc)
@ -729,14 +728,14 @@ any subsequent lookup as it keeps the hash table in memory.")
(define-public r-ff (define-public r-ff
(package (package
(name "r-ff") (name "r-ff")
(version "2.2-13") (version "2.2-14")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ff" version)) (uri (cran-uri "ff" version))
(sha256 (sha256
(base32 (base32
"1nvd6kx46xzyc99a44mgynd94pvd2h495m5a7b1g67k5w2phiywb")))) "1w724q4jpzbvzpilb2ifviaxkjgk9lzwxz9gksnvicbmfa20fqqw"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-bit" ,r-bit))) (propagated-inputs `(("r-bit" ,r-bit)))
(home-page "http://ff.r-forge.r-project.org/") (home-page "http://ff.r-forge.r-project.org/")
@ -843,23 +842,26 @@ package also provides a C++ API, that works with or without Rcpp.")
(define-public r-ggally (define-public r-ggally
(package (package
(name "r-ggally") (name "r-ggally")
(version "1.3.2") (version "1.4.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "GGally" version)) (uri (cran-uri "GGally" version))
(sha256 (sha256
(base32 (base32
"02px7j28wzbhcgcwm2m0pxb6g7s5zvphl64ix55pkvag4m2ky57l")))) "1zjmcc5bzagvy7c5cmdcl39xmx07fwi98yrj4i05w7y40kqcsiws"))))
(properties `((upstream-name . "GGally"))) (properties `((upstream-name . "GGally")))
(build-system r-build-system) (build-system r-build-system)
(inputs
`(("libressl" ,libressl)))
(propagated-inputs (propagated-inputs
`(("r-ggplot2" ,r-ggplot2) `(("r-ggplot2" ,r-ggplot2)
("r-gtable" ,r-gtable) ("r-gtable" ,r-gtable)
("r-plyr" ,r-plyr) ("r-plyr" ,r-plyr)
("r-progress" ,r-progress) ("r-progress" ,r-progress)
("r-rcolorbrewer" ,r-rcolorbrewer) ("r-rcolorbrewer" ,r-rcolorbrewer)
("r-reshape" ,r-reshape))) ("r-reshape" ,r-reshape)
("r-rlang" ,r-rlang)))
(home-page "https://ggobi.github.io/ggally") (home-page "https://ggobi.github.io/ggally")
(synopsis "Extension to ggplot2") (synopsis "Extension to ggplot2")
(description (description
@ -1077,13 +1079,13 @@ by Li, Brown, Huang, and Bickel")
(define-public r-inline (define-public r-inline
(package (package
(name "r-inline") (name "r-inline")
(version "0.3.14") (version "0.3.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "inline" version)) (uri (cran-uri "inline" version))
(sha256 (sha256
(base32 (base32
"0cf9vya9h4znwgp6s1nayqqmh6mwyw7jl0isk1nx4j2ijszxcd7x")))) "0s4wssvpan189fijahknxq5s22ww9bzmdlmyhnra748r7khky17z"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/inline") (home-page "https://cran.r-project.org/web/packages/inline")
(synopsis "Functions to inline C, C++, Fortran function calls from R") (synopsis "Functions to inline C, C++, Fortran function calls from R")
@ -1122,14 +1124,14 @@ classes in the @code{stats4} package.")
(define-public r-emdbook (define-public r-emdbook
(package (package
(name "r-emdbook") (name "r-emdbook")
(version "1.3.9") (version "1.3.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "emdbook" version)) (uri (cran-uri "emdbook" version))
(sha256 (sha256
(base32 (base32
"09xbdyw8a4pvrsg3ryr8drby0njy4avc5wsjj4ffibdaicpchy69")))) "0880cx6rqm9vgd2zxnd2k0igfl80gy7ak15w36clwlzavab59hmv"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bbmle" ,r-bbmle) `(("r-bbmle" ,r-bbmle)
@ -1234,14 +1236,14 @@ data). Weighted versions of MLE, MME and QME are available.")
(define-public r-energy (define-public r-energy
(package (package
(name "r-energy") (name "r-energy")
(version "1.7-2") (version "1.7-4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "energy" version)) (uri (cran-uri "energy" version))
(sha256 (sha256
(base32 (base32
"19c7bgjnm4ggf7w5mk64c5shkma3sa9wc8x117iqv7pk1bvvyy3p")))) "12skvlridfq4jd5mh0yxl79ps0zi2xnlh4hsdgxad0gm7qky8awd"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-boot" ,r-boot) `(("r-boot" ,r-boot)
@ -1287,14 +1289,14 @@ George Marsaglia are included.")
(define-public r-ksamples (define-public r-ksamples
(package (package
(name "r-ksamples") (name "r-ksamples")
(version "1.2-7") (version "1.2-8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "kSamples" version)) (uri (cran-uri "kSamples" version))
(sha256 (sha256
(base32 (base32
"0f19rjngk0lg6s8c6h5l55qpxp8sl4vxj3kpi05cizzncny9b9bj")))) "15d5q5vpp4wx5rk5kjxjdxpwc8mkq5sbdz8gi07iscrvhzb5rzfr"))))
(properties `((upstream-name . "kSamples"))) (properties `((upstream-name . "kSamples")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1315,14 +1317,14 @@ samples.")
(define-public r-cvst (define-public r-cvst
(package (package
(name "r-cvst") (name "r-cvst")
(version "0.2-1") (version "0.2-2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "CVST" version)) (uri (cran-uri "CVST" version))
(sha256 (sha256
(base32 (base32
"17xacyi8cf37rr2xswx96qy7pwkaqq394awdlswykz3qlyzx4zx2")))) "05l3yzkfrbds09ah9cdwn2sn4ryhq78lz33ryzrgkv176jc8qjw5"))))
(properties `((upstream-name . "CVST"))) (properties `((upstream-name . "CVST")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1537,14 +1539,14 @@ Delaunay triangulation and convex hull computation.")
(define-public r-ddalpha (define-public r-ddalpha
(package (package
(name "r-ddalpha") (name "r-ddalpha")
(version "1.3.2") (version "1.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ddalpha" version)) (uri (cran-uri "ddalpha" version))
(sha256 (sha256
(base32 (base32
"1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r")))) "0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bh" ,r-bh) `(("r-bh" ,r-bh)
@ -1774,14 +1776,14 @@ for certain use cases.")
(define-public r-ggrepel (define-public r-ggrepel
(package (package
(name "r-ggrepel") (name "r-ggrepel")
(version "0.7.0") (version "0.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ggrepel" version)) (uri (cran-uri "ggrepel" version))
(sha256 (sha256
(base32 (base32
"0g0qfm6g71rv27423c1x846ipilnj213knyzrcr09vrpxc87l618")))) "1m3p84d6nh9mzzvxb82vgig3ngcvkz86rjwzl9a66ckdf5p611k3"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ggplot2" ,r-ggplot2) `(("r-ggplot2" ,r-ggplot2)
@ -1841,23 +1843,98 @@ can be computed between character vectors while taking proper care of encoding
or between integer vectors representing generic sequences.") or between integer vectors representing generic sequences.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public r-jomo
(package
(name "r-jomo")
(version "2.6-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "jomo" version))
(sha256
(base32
"0zyqwa2y08asj9xqwnngh6da1b9cqcx8pzc9cxwrmgnxd5nnsjb7"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lme4" ,r-lme4)
("r-survival" ,r-survival)))
(home-page "https://cran.r-project.org/web/packages/jomo/")
(synopsis "Multilevel Joint Modelling Multiple Imputation")
(description
"Similarly to Schafer's package pan, jomo is a package for multilevel
joint modelling multiple imputation @url{Carpenter and Kenward (2013),
http://doi.org/10.1002/9781119942283}. Novel aspects of jomo are the
possibility of handling binary and categorical data through latent normal
variables, the option to use cluster-specific covariance matrices and to
impute compatibly with the substantive model.")
(license license:gpl2)))
(define-public r-pan
(package
(name "r-pan")
(version "1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "pan" version))
(sha256
(base32
"1p3nigmhrnlch86g89hn7l0wvkifx3k9n59g0psi95yck43kza76"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "https://cran.r-project.org/web/packages/pan/")
(synopsis "Multiple imputation for multivariate panel or clustered data")
(description
"This package implements multiple imputation for multivariate panel or
clustered data.")
(license license:gpl3)))
(define-public r-mitml
(package
(name "r-mitml")
(version "0.3-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "mitml" version))
(sha256
(base32
"1s888r9y2ri39b48h1iypps6lddqkqv3g31l2sjmi2pvyccfpkwb"))))
(build-system r-build-system)
(propagated-inputs
`(("r-haven" ,r-haven)
("r-jomo" ,r-jomo)
("r-pan" ,r-pan)))
(home-page "https://cran.r-project.org/web/packages/mitml/")
(synopsis "Tools for multiple imputation in multilevel modeling")
(description
"This package provides tools for multiple imputation of missing data in
multilevel modeling. It includes a user-friendly interface to the packages
pan and jomo, and several functions for visualization, data management and the
analysis of multiply imputed data sets.")
(license license:gpl2+)))
(define-public r-mice (define-public r-mice
(package (package
(name "r-mice") (name "r-mice")
(version "2.46.0") (version "3.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "mice" version)) (uri (cran-uri "mice" version))
(sha256 (sha256
(base32 (base32
"1gjvlk67zvgipfczsca8zqk97vg3sivv82hblsdwp14s7smhjcax")))) "1p8a5ham90iaak4w17114pdnw535r2l9sxr402yrkc4gbwfbpdlq"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-lattice" ,r-lattice) `(("r-broom" ,r-broom)
("r-dplyr" ,r-dplyr)
("r-lattice" ,r-lattice)
("r-mass" ,r-mass) ("r-mass" ,r-mass)
("r-mitml" ,r-mitml)
("r-nnet" ,r-nnet) ("r-nnet" ,r-nnet)
("r-rcpp" ,r-rcpp) ("r-rcpp" ,r-rcpp)
("r-rlang" ,r-rlang)
("r-rpart" ,r-rpart) ("r-rpart" ,r-rpart)
("r-survival" ,r-survival))) ("r-survival" ,r-survival)))
(home-page "https://cran.r-project.org/web/packages/mice/") (home-page "https://cran.r-project.org/web/packages/mice/")
@ -1923,14 +2000,14 @@ programming} (SQP) based solver).")
(define-public r-hardyweinberg (define-public r-hardyweinberg
(package (package
(name "r-hardyweinberg") (name "r-hardyweinberg")
(version "1.5.9") (version "1.6.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "HardyWeinberg" version)) (uri (cran-uri "HardyWeinberg" version))
(sha256 (sha256
(base32 (base32
"0qk3lly5qczn61rj0q9xzscppspvk238yjgr4p71pkzkjhiv40jz")))) "16n8qanxx0p5ny5zqxafn8hwb1xv94y1wig1iql8as5a5qh8lwcz"))))
(properties `((upstream-name . "HardyWeinberg"))) (properties `((upstream-name . "HardyWeinberg")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1955,14 +2032,14 @@ acceptance regions, log-ratio plots and Q-Q plots.")
(define-public r-sm (define-public r-sm
(package (package
(name "r-sm") (name "r-sm")
(version "2.2-5.4") (version "2.2-5.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "sm" version)) (uri (cran-uri "sm" version))
(sha256 (sha256
(base32 (base32
"0hnq5s2fv94gaj0nyqc1vjdjd64vsp9z23nqa8hxvjcaf996rwj9")))) "1rw2mxygxsmk8mn4wag1ppjgzk0rlvh6zd8q02qrhjrn9jhi5qj3"))))
(build-system r-build-system) (build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran))) (native-inputs `(("gfortran" ,gfortran)))
(home-page "http://www.stats.gla.ac.uk/~adrian/sm/") (home-page "http://www.stats.gla.ac.uk/~adrian/sm/")
@ -2146,14 +2223,14 @@ Analysis with R\" by Michael Friendly and David Meyer (2015).")
(define-public r-ica (define-public r-ica
(package (package
(name "r-ica") (name "r-ica")
(version "1.0-1") (version "1.0-2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ica" version)) (uri (cran-uri "ica" version))
(sha256 (sha256
(base32 (base32
"1bkl4a72l0k6gm82l3jxnib898z20cw17zg81jj39l9dn65rlmcq")))) "0ya1nph1zwhad0bfz4yxs27kl45yk1dhnphdlrq34p8pqrpmj8g7"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/ica/") (home-page "https://cran.r-project.org/web/packages/ica/")
(synopsis "Independent component analysis") (synopsis "Independent component analysis")
@ -2166,14 +2243,14 @@ of Eigenmatrices} (JADE).")
(define-public r-dtw (define-public r-dtw
(package (package
(name "r-dtw") (name "r-dtw")
(version "1.18-1") (version "1.20-1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "dtw" version)) (uri (cran-uri "dtw" version))
(sha256 (sha256
(base32 (base32
"1b91vahba09cqlb8b1ry4dlv4rbldb4s2p6w52gmyw31vxdv5nnr")))) "1w301xwizncy5r8v9rwwdxfshydgp3l1pnjla1fjn6n8lx3imjj3"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-proxy" ,r-proxy))) (propagated-inputs `(("r-proxy" ,r-proxy)))
(home-page "http://dtw.r-forge.r-project.org/") (home-page "http://dtw.r-forge.r-project.org/")
@ -2256,14 +2333,14 @@ plots in @code{ggplot2}.")
(define-public r-ggjoy (define-public r-ggjoy
(package (package
(name "r-ggjoy") (name "r-ggjoy")
(version "0.4.0") (version "0.4.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "ggjoy" version)) (uri (cran-uri "ggjoy" version))
(sha256 (sha256
(base32 (base32
"1s24zn7gmk52bvjjhanxby7rxbnc2yfl0nx5nv7x7z0zja8gg7nb")))) "012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ggplot2" ,r-ggplot2) `(("r-ggplot2" ,r-ggplot2)
@ -2341,20 +2418,20 @@ constants, and control debugging of packages via environment variables.")
(define-public r-processx (define-public r-processx
(package (package
(name "r-processx") (name "r-processx")
(version "2.0.0.1") (version "3.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "processx" version)) (uri (cran-uri "processx" version))
(sha256 (sha256
(base32 (base32
"0yw23lp9xjvbpswzghkmjiayw7p19hbvmgv58k3i6b8g5nav4qcg")))) "0wjr3cqwvnjxbvln25szffmkns5w0xysivdjr6chxap4nh515b0i"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-assertthat" ,r-assertthat)
("r-crayon" ,r-crayon) ("r-crayon" ,r-crayon)
("r-debugme" ,r-debugme) ("r-r6" ,r-r6)
("r-r6" ,r-r6))) ("r-testthat" ,r-testthat)))
(home-page "https://github.com/r-lib/processx3") (home-page "https://github.com/r-lib/processx3")
(synopsis "Execute and control system processes") (synopsis "Execute and control system processes")
(description (description
@ -2370,14 +2447,14 @@ timeout. It can also poll several processes at once.")
(define-public r-tsp (define-public r-tsp
(package (package
(name "r-tsp") (name "r-tsp")
(version "1.1-5") (version "1.1-6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "TSP" version)) (uri (cran-uri "TSP" version))
(sha256 (sha256
(base32 (base32
"03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w")))) "1ym97xl2icjpfkrici0wig29w06bb704hp51v7h5liygjlwpkhlc"))))
(properties `((upstream-name . "TSP"))) (properties `((upstream-name . "TSP")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-foreach" ,r-foreach))) (propagated-inputs `(("r-foreach" ,r-foreach)))
@ -2489,46 +2566,6 @@ dissimilarity plots, and visual assessment of cluster tendency plots (VAT and
iVAT).") iVAT).")
(license license:gpl3))) (license license:gpl3)))
(define-public r-heatmaply
(package
(name "r-heatmaply")
(version "0.14.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "heatmaply" version))
(sha256
(base32
"03p2caclhfgqgpx3wwck5h06jy3mxgs05gjmwkb7hmwghkjh41jc"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-colorspace" ,r-colorspace)
("r-dendextend" ,r-dendextend)
("r-ggplot2" ,r-ggplot2)
("r-gplots" ,r-gplots)
("r-htmlwidgets" ,r-htmlwidgets)
("r-magrittr" ,r-magrittr)
("r-plotly" ,r-plotly)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-reshape2" ,r-reshape2)
("r-scales" ,r-scales)
("r-seriation" ,r-seriation)
("r-viridis" ,r-viridis)
("r-webshot" ,r-webshot)))
(home-page "https://cran.r-project.org/package=heatmaply")
(synopsis "Interactive cluster heat maps using plotly")
(description "Heatmaps are used in many fields for visualizing
observations, correlations, missing values patterns, and more. Interactive
heatmaps allow the inspection of specific value by hovering the mouse over a
cell, as well as zooming into a region of the heatmap by dragging a rectangle
around the relevant area. This work is based on the @code{ggplot2} and
@code{plotly.js} engine. It produces similar heatmaps as @code{heatmap.2} or
@code{d3heatmap}, with the advantage of speed, the ability to zoom from the
dendrogram panes, and the placing of factor variables in the sides of the
heatmap.")
(license (list license:gpl2 license:gpl3))))
(define-public r-xfun (define-public r-xfun
(package (package
(name "r-xfun") (name "r-xfun")
@ -2551,14 +2588,14 @@ packages maintained by Yihui Xie.")
(define-public r-utf8 (define-public r-utf8
(package (package
(name "r-utf8") (name "r-utf8")
(version "1.1.3") (version "1.1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "utf8" version)) (uri (cran-uri "utf8" version))
(sha256 (sha256
(base32 (base32
"03s4j6059q0nly68vpk6wy3p3f5ypakw93fj35kzd82b4z1r9cs3")))) "0m0ywg8k3blfiahxvh1i4zn9dksrlc937d2lbza5fc38zjnrrnpn"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/patperry/r-utf8") (home-page "https://github.com/patperry/r-utf8")
(synopsis "Unicode text processing") (synopsis "Unicode text processing")
@ -2571,14 +2608,14 @@ display.")
(define-public r-pillar (define-public r-pillar
(package (package
(name "r-pillar") (name "r-pillar")
(version "1.2.2") (version "1.2.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "pillar" version)) (uri (cran-uri "pillar" version))
(sha256 (sha256
(base32 (base32
"1kmqvny3rw4p5kgxz6mhqfpp7j3nnpp22dfai4kjrr2cfmj6wvb7")))) "1rzhssprqgam1nq3s0f5rzxhxsq02azcghvxf6k8kmsmddf1n7f8"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-cli" ,r-cli) `(("r-cli" ,r-cli)
@ -2859,14 +2896,14 @@ financial trading strategies.")
(define-public r-tseries (define-public r-tseries
(package (package
(name "r-tseries") (name "r-tseries")
(version "0.10-44") (version "0.10-45")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "tseries" version)) (uri (cran-uri "tseries" version))
(sha256 (sha256
(base32 (base32
"0nz6v76hsxcprpgf84al5r0p08sr9qacqal4adndz9wmg604l4ag")))) "14s1glh5zzdvdl05a2z7ymhgf962svxf8xircghg5sc649lb33n0"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-quadprog" ,r-quadprog) `(("r-quadprog" ,r-quadprog)
@ -3125,18 +3162,19 @@ creation and manipulation of WAVE audio files.")
(define-public r-np (define-public r-np
(package (package
(name "r-np") (name "r-np")
(version "0.60-6") (version "0.60-8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "np" version)) (uri (cran-uri "np" version))
(sha256 (sha256
(base32 (base32
"1y72x5j9j9mcgcy2xizk31gl843hfkngxdn8s4qw7yhw2qj79hsr")))) "17h67a510wh83800ri6g02wvznrlhigxni8shyijz1iaxcpk8k4j"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-boot" ,r-boot) `(("r-boot" ,r-boot)
("r-cubature" ,r-cubature) ("r-cubature" ,r-cubature)
("r-quadprog" ,r-quadprog)
("r-quantreg" ,r-quantreg))) ("r-quantreg" ,r-quantreg)))
(home-page "https://github.com/JeffreyRacine/R-Package-np") (home-page "https://github.com/JeffreyRacine/R-Package-np")
(synopsis "Non-parametric kernel smoothing methods for mixed data types") (synopsis "Non-parametric kernel smoothing methods for mixed data types")
@ -3190,6 +3228,7 @@ exponentiation.")
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-gplots" ,r-gplots) ("r-gplots" ,r-gplots)
("r-htmlwidgets" ,r-htmlwidgets) ("r-htmlwidgets" ,r-htmlwidgets)
("r-knitr" ,r-knitr) ; needed for vignettes
("r-magrittr" ,r-magrittr) ("r-magrittr" ,r-magrittr)
("r-plotly" ,r-plotly) ("r-plotly" ,r-plotly)
("r-rcolorbrewer" ,r-rcolorbrewer) ("r-rcolorbrewer" ,r-rcolorbrewer)
@ -3262,18 +3301,19 @@ files.")
(define-public r-shinyace (define-public r-shinyace
(package (package
(name "r-shinyace") (name "r-shinyace")
(version "0.2.1") (version "0.3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "shinyAce" version)) (uri (cran-uri "shinyAce" version))
(sha256 (sha256
(base32 (base32
"0ycka8rsw0178q9klfid97vdn5cbyx3r778nis5s3dqipdyazdm9")))) "1hqgszbiv99dibhwr21v21ll4s2hjn3ccqdicsm0z3gk77bh8iyb"))))
(properties `((upstream-name . "shinyAce"))) (properties `((upstream-name . "shinyAce")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-shiny" ,r-shiny))) `(("r-shiny" ,r-shiny)
("r-jsonlite" ,r-jsonlite)))
(home-page "http://cran.r-project.org/web/packages/shinyAce") (home-page "http://cran.r-project.org/web/packages/shinyAce")
(synopsis "Ace editor bindings for Shiny") (synopsis "Ace editor bindings for Shiny")
(description (description
@ -3383,14 +3423,14 @@ It also includes interpolation functions.")
(define-public r-psych (define-public r-psych
(package (package
(name "r-psych") (name "r-psych")
(version "1.8.3.3") (version "1.8.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "psych" version)) (uri (cran-uri "psych" version))
(sha256 (sha256
(base32 (base32
"1zhp8j81nkzd65168zdw9ylypb9n07ajan21x0wqcn8jdbg970sg")))) "1kzv9nc7rwn1sj1zxd8xrbs6c7qlka7j2c8lsr4f20znkd3qx8gf"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-foreign" ,r-foreign) `(("r-foreign" ,r-foreign)
@ -3765,19 +3805,41 @@ measuring the accuracy of ABC estimates, and to calculate the
misclassification probabilities of different models.") misclassification probabilities of different models.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public r-zip
(package
(name "r-zip")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "zip" version))
(sha256
(base32
"0rgr9pcdhdq3k8n29h2ircp3ri1ibhrx81gja1y7331v15xyrabg"))))
(build-system r-build-system)
(home-page "https://github.com/gaborcsardi/zip")
(synopsis "Cross-platform Zip compression")
(description
"This package provides a cross-platform Zip compression library for R.
It is a replacement for the @code{zip} function, that does not require any
additional external tools on any platform.")
(license license:cc0)))
(define-public r-openxlsx (define-public r-openxlsx
(package (package
(name "r-openxlsx") (name "r-openxlsx")
(version "4.0.17") (version "4.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "openxlsx" version)) (uri (cran-uri "openxlsx" version))
(sha256 (sha256
(base32 (base32
"1mq4lasp12kc30sxcsmz9gskd114l8s7z7wd6svv2nm8qllrhsqi")))) "1n7z22pm78xa77fvn77kdn68az6xzxk36y11sqf0w6h6adri4yxb"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-rcpp" ,r-rcpp))) (propagated-inputs
`(("r-rcpp" ,r-rcpp)
("r-zip" ,r-zip)))
(home-page "https://github.com/awalker89/openxlsx") (home-page "https://github.com/awalker89/openxlsx")
(synopsis "Read, write and edit XLSX files") (synopsis "Read, write and edit XLSX files")
(description (description
@ -3853,14 +3915,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later (define-public r-later
(package (package
(name "r-later") (name "r-later")
(version "0.7.1") (version "0.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "later" version)) (uri (cran-uri "later" version))
(sha256 (sha256
(base32 (base32
"0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz")))) "0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bh" ,r-bh) `(("r-bh" ,r-bh)
@ -3973,3 +4035,158 @@ including the ability to summarize or get a high-level view of code,
determining dependencies between variables, code improvement suggestions.") determining dependencies between variables, code improvement suggestions.")
;; Any version of the GPL ;; Any version of the GPL
(license (list license:gpl2+ license:gpl3+)))) (license (list license:gpl2+ license:gpl3+))))
(define-public r-rappdirs
(package
(name "r-rappdirs")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "rappdirs" version))
(sha256
(base32
"0ji6sg3bdn5gazkq14xmmcq7jnbsyxw4lzmmbgv6526j2vn93n1g"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/rappdirs/")
(synopsis "Determine where to save data, caches, and logs")
(description
"This package provides an easy way to determine which directories on the
user's computer should be used to save data, caches and logs. It is a port of
Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(license license:expat)))
(define-public r-learnr
(package
(name "r-learnr")
(version "0.9.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "learnr" version))
(sha256
(base32
"1z04c1djg7ghsl7p9ypc6k5m7snahnmjy10xmrzqfayx1wkfkn9n"))))
(build-system r-build-system)
(propagated-inputs
`(("r-evaluate" ,r-evaluate)
("r-htmltools" ,r-htmltools)
("r-htmlwidgets" ,r-htmlwidgets)
("r-jsonlite" ,r-jsonlite)
("r-knitr" ,r-knitr)
("r-markdown" ,r-markdown)
("r-rappdirs" ,r-rappdirs)
("r-rmarkdown" ,r-rmarkdown)
("r-rprojroot" ,r-rprojroot)
("r-shiny" ,r-shiny)
("r-withr" ,r-withr)))
(home-page "https://rstudio.github.io/learnr/")
(synopsis "Interactive tutorials for R")
(description
"This package provides tools to create interactive tutorials using R
Markdown. Use a combination of narrative, figures, videos, exercises, and
quizzes to create self-paced tutorials for learning about R and R packages.")
(license license:asl2.0)))
(define-public r-analytics
(package
(name "r-analytics")
(version "2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "analytics" version))
(sha256
(base32
"1jkdjqc3fnvvsgi6x9ncf36rxzq0a55cmgkcv92mfmpcramg2lk6"))))
(build-system r-build-system)
(propagated-inputs
`(("r-car" ,r-car)
("r-cluster" ,r-cluster)
("r-fractal" ,r-fractal)
("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass)
("r-np" ,r-np)
("r-powerplus" ,r-powerplus)
("r-robust" ,r-robust)
("r-trend" ,r-trend)
("r-tsa" ,r-tsa)
("r-urca" ,r-urca)))
(home-page "https://cran.r-project.org/web/packages/analytics/")
(synopsis "Collection of data analysis tools")
(description
"This package is a collection of data analysis tools. It includes tools
for regression outlier detection in a fitted linear model, stationary
bootstrap using a truncated geometric distribution, a comprehensive test for
weak stationarity, column means by group, weighted biplots, and a heuristic to
obtain a better initial configuration in non-metric MDS.")
(license license:gpl2)))
(define-public r-reticulate
(package
(name "r-reticulate")
(version "1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
"1ghhc4hbmwpp79ilbdbshynhs61i8sv8z6p1al04jy7ij0lcglxy"))))
(build-system r-build-system)
(inputs `(("python" ,python)))
(propagated-inputs
`(("r-jsonlite" ,r-jsonlite)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)))
(home-page "https://github.com/rstudio/reticulate")
(synopsis "R interface to Python")
(description
"This package provides an interface from R to Python modules, classes,
and functions. When calling into Python, R data types are automatically
converted to their equivalent Python types. When values are returned from
Python to R they are converted back to R types.")
(license license:asl2.0)))
(define-public r-bibtex
(package
(name "r-bibtex")
(version "0.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "bibtex" version))
(sha256
(base32
"0wl3925ryd54g1nv3ncwllc493d39dpgy5md61940h69c0van1hz"))))
(build-system r-build-system)
(propagated-inputs `(("r-stringr" ,r-stringr)))
(home-page "https://github.com/romainfrancois/bibtex")
(synopsis "Bibtex parser")
(description "This package provides a utility for R to parse a bibtex
file.")
(license license:gpl2+)))
(define-public r-ggseqlogo
(package
(name "r-ggseqlogo")
(version "0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggseqlogo" version))
(sha256
(base32
"13q6kcpxrqxqbji889fx63p0nsi08lk5yymkchig75r5k1d18ky1"))))
(build-system r-build-system)
(propagated-inputs `(("r-ggplot2" ,r-ggplot2)))
(home-page "https://github.com/omarwagih/ggseqlogo")
(synopsis "ggplot2 extension for drawing genetic sequence logos")
(description
"The range of functions provided by this package makes it possible to
draw highly versatile genomic sequence logos. Features include, but are not
limited to, modifying colour schemes and fonts used to draw the logo,
generating multiple logo plots, and aiding the visualisation with annotations.
Sequence logos can easily be combined with other ggplot2 plots.")
;; Unspecified version of the LGPL.
(license license:lgpl3+)))

View File

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -181,8 +182,10 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
(define (cross-gcc-snippet target) (define (cross-gcc-snippet target)
"Return GCC snippet needed for TARGET." "Return GCC snippet needed for TARGET."
(cond ((target-mingw? target) (cond ((target-mingw? target)
'(copy-recursively "libstdc++-v3/config/os/mingw32-w64" '(begin
"libstdc++-v3/config/os/newlib")) (copy-recursively "libstdc++-v3/config/os/mingw32-w64"
"libstdc++-v3/config/os/newlib")
#t))
(else #f))) (else #f)))
(define* (cross-gcc target (define* (cross-gcc target
@ -291,8 +294,8 @@ target that libc."
(setenv "ARCH" ,(system->linux-architecture target)) (setenv "ARCH" ,(system->linux-architecture target))
(format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH")) (format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH"))
(and (zero? (system* "make" ,(system->defconfig target))) (invoke "make" ,(system->defconfig target))
(zero? (system* "make" "mrproper" "headers_check")))) (invoke "make" "mrproper" "headers_check"))
,phases)))) ,phases))))
(native-inputs `(("cross-gcc" ,xgcc) (native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils) ("cross-binutils" ,xbinutils)
@ -314,14 +317,14 @@ target that libc."
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(srfi srfi-26)) (srfi srfi-26))
#:phases (alist-cons-before #:phases (modify-phases %standard-phases
'configure 'set-cross-headers-path (add-before 'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "cross-gnumach-headers")) (let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
(cpath (string-append mach "/include"))) (cpath (string-append mach "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths))) ',%gcc-cross-include-paths)
%standard-phases) #t))))
#:configure-flags (list ,(string-append "--target=" target)) #:configure-flags (list ,(string-append "--target=" target))
,@(package-arguments mig))) ,@(package-arguments mig)))
@ -352,16 +355,16 @@ target that libc."
(srfi srfi-26)) (srfi srfi-26))
,@(package-arguments glibc/hurd-headers)) ,@(package-arguments glibc/hurd-headers))
((#:phases phases) ((#:phases phases)
`(alist-cons-before `(modify-phases ,phases
'pre-configure 'set-cross-headers-path (add-before 'pre-configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers")) (let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers")) (hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:" (cpath (string-append mach "/include:"
hurd "/include"))) hurd "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths))) ',%gcc-cross-include-paths)
,phases)))) #t)))))))
(propagated-inputs `(("gnumach-headers" ,xgnumach-headers) (propagated-inputs `(("gnumach-headers" ,xgnumach-headers)
("hurd-headers" ,xhurd-headers))) ("hurd-headers" ,xhurd-headers)))
@ -382,14 +385,14 @@ target that libc."
(srfi srfi-26)) (srfi srfi-26))
,@(package-arguments hurd-minimal)) ,@(package-arguments hurd-minimal))
((#:phases phases) ((#:phases phases)
`(alist-cons-before `(modify-phases ,phases
'configure 'set-cross-headers-path (add-before 'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers")) (let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers"))
(cpath (string-append glibc-headers "/include"))) (cpath (string-append glibc-headers "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths))) ',%gcc-cross-include-paths)
,phases)))) #t)))))))
(inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers))) (inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)))
@ -456,17 +459,16 @@ XBINUTILS and the cross tool chain."
`(cons ,(string-append "--host=" target) `(cons ,(string-append "--host=" target)
,flags)) ,flags))
((#:phases phases) ((#:phases phases)
`(alist-cons-before `(modify-phases ,phases
'configure 'set-cross-kernel-headers-path (add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers")) (let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include"))) (cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths) ',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH" (setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ;for Hurd's libihash (string-append kernel "/lib")) ; for Hurd's libihash
#t)) #t)))))))
,phases))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the ;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing. ;; "kernel-headers" input to point to the right thing.

View File

@ -183,7 +183,8 @@ OpenBSD tool of the same name.")
(substitute* "src/crypto.cpp" (substitute* "src/crypto.cpp"
(("argon2/argon2.h") "argon2.h")) (("argon2/argon2.h") "argon2.h"))
(substitute* "configure.ac" (substitute* "configure.ac"
(("src/argon2/Makefile") "")))) (("src/argon2/Makefile") ""))
#t))
(sha256 (sha256
(base32 (base32
"09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x")))) "09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x"))))
@ -228,9 +229,11 @@ communication.")
"1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837")) "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Remove bundled dependencies in favour of proper inputs. ;; Remove bundled dependencies in favour of proper inputs.
(snippet '(for-each delete-file-recursively (snippet '(begin
(find-files "internal" "^tinyxml2-[0-9]" (for-each delete-file-recursively
#:directories? #t))))) (find-files "internal" "^tinyxml2-[0-9]"
#:directories? #t))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
@ -272,8 +275,10 @@ the wrong hands.")
"1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i")) "1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Create relative symbolic links instead of absolute ones to /lib/* ;; Create relative symbolic links instead of absolute ones to /lib/*
(snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/") (snippet '(begin
"$(LNS) "))))) (substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
"$(LNS) "))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -358,14 +363,14 @@ no man page, refer to the home page for usage details.")
(define-public tomb (define-public tomb
(package (package
(name "tomb") (name "tomb")
(version "2.4") (version "2.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://files.dyne.org/tomb/" (uri (string-append "https://files.dyne.org/tomb/"
"Tomb-" version ".tar.gz")) "Tomb-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr")))) "12c6qldngaw520gvb02inzkhnxbl4k0dwmddrgnaf7xashy6j0wc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase (native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase
(inputs (inputs
@ -377,7 +382,8 @@ no man page, refer to the home page for usage details.")
("mlocate" ,mlocate) ("mlocate" ,mlocate)
("pinentry" ,pinentry) ("pinentry" ,pinentry)
("qrencode" ,qrencode) ("qrencode" ,qrencode)
("steghide" ,steghide))) ("steghide" ,steghide)
("util-linux" ,util-linux)))
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
;; TODO: Build and install gtk and qt trays ;; TODO: Build and install gtk and qt trays
@ -400,7 +406,7 @@ no man page, refer to the home page for usage details.")
(error "program not found:" program))) (error "program not found:" program)))
'("seq" "mkfs.ext4" "pinentry" "sudo" '("seq" "mkfs.ext4" "pinentry" "sudo"
"gpg" "cryptsetup" "gettext" "gpg" "cryptsetup" "gettext"
"qrencode" "steghide"))))) "qrencode" "steghide" "findmnt")))))
#t))) #t)))
(delete 'check) (delete 'check)
(add-after 'wrap 'check (add-after 'wrap 'check
@ -648,12 +654,7 @@ data on your platform, so the seed itself will be as random as possible.
;; fat only checks for Intel optimisations ;; fat only checks for Intel optimisations
'("--enable-fat") '("--enable-fat")
'()) '())
"--disable-native") ; don't optimise at build time. "--disable-native"))) ;don't optimise at build time
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "sh" "autogen.sh"))))))
(home-page "https://blake2.net/") (home-page "https://blake2.net/")
(synopsis "Library implementing the BLAKE2 family of hash functions") (synopsis "Library implementing the BLAKE2 family of hash functions")
(description (description
@ -671,7 +672,7 @@ BLAKE.")
(define-public rhash (define-public rhash
(package (package
(name "rhash") (name "rhash")
(version "1.3.5") (version "1.3.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -680,32 +681,27 @@ BLAKE.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0bhz3xdl6r06k1bqigdjz42l31iqz2qdpg7zk316i7p2ra56iq4q")))) "14ngzfgmd1lfp7m78sn49x8ymf2s37nrr67c6p5vas85nrrgjkcn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "CC=gcc" `(#:make-flags
(string-append "PREFIX=" %output)) ;; The binaries in /bin need some help finding librhash.so.0.
#:test-target "test" (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:test-target "test" ; make check just checks the sources
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
;; ./configure is not GNU autotools' and doesn't gracefully handle
;; unrecognized options, so we must call it manually.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile" (invoke "./configure"
(("\\$\\(DESTDIR\\)/etc") (string-append "--prefix=" (assoc-ref outputs "out")))))
(string-append (assoc-ref outputs "out") "/etc"))) (add-after 'install 'install-library-extras
#t))
(add-after 'build 'build-library
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "lib-shared" make-flags)))
(add-after 'install 'install-library
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "install-lib-shared" make-flags)
(apply invoke (apply invoke
"make" "-C" "librhash" "install-headers" "make" "-C" "librhash"
"install-so-link" make-flags))) "install-headers" "install-so-link"
(add-after 'check 'check-library make-flags))))))
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "test-shared-lib" make-flags))))))
(home-page "https://sourceforge.net/projects/rhash/") (home-page "https://sourceforge.net/projects/rhash/")
(synopsis "Utility for computing hash sums") (synopsis "Utility for computing hash sums")
(description "RHash is a console utility for calculation and verification (description "RHash is a console utility for calculation and verification

View File

@ -50,7 +50,7 @@
(define-public cups-filters (define-public cups-filters
(package (package
(name "cups-filters") (name "cups-filters")
(version "1.17.9") (version "1.20.1")
(source(origin (source(origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -58,7 +58,7 @@
"cups-filters-" version ".tar.xz")) "cups-filters-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0i7mvvnq7ayhxn1ajci8h7l3cijzwr9d50p58h0rbsh9hf63zblq")) "0qix1whz5n4ijnl6d44f1v8nzkpv99wqjyrby8vx6xnpskw5hsxk"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; install backends, banners and filters to cups-filters output ;; install backends, banners and filters to cups-filters output
@ -79,7 +79,8 @@
;; output directory, not CUPS's prefix. ;; output directory, not CUPS's prefix.
(substitute* "configure" (substitute* "configure"
(("\\{CUPS_DATADIR\\}/data") (("\\{CUPS_DATADIR\\}/data")
"{prefix}/share/cups/data")))))) "{prefix}/share/cups/data"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output)) `(#:make-flags (list (string-append "PREFIX=" %output))
@ -197,7 +198,8 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(lambda _ (lambda _
(substitute* "Makedefs.in" (substitute* "Makedefs.in"
(("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@")
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))
#t))
;; Make the compressed manpages writable so that the ;; Make the compressed manpages writable so that the
;; reset-gzip-timestamps phase does not error out. ;; reset-gzip-timestamps phase does not error out.
(add-before 'reset-gzip-timestamps 'make-manpages-writable (add-before 'reset-gzip-timestamps 'make-manpages-writable
@ -205,12 +207,14 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man"))) (man (string-append out "/share/man")))
(for-each (lambda (file) (chmod file #o644)) (for-each (lambda (file) (chmod file #o644))
(find-files man "\\.gz"))))) (find-files man "\\.gz"))
#t)))
(add-before 'build 'patch-tests (add-before 'build 'patch-tests
(lambda _ (lambda _
(substitute* "test/ippserver.c" (substitute* "test/ippserver.c"
(("# else /\\* HAVE_AVAHI \\*/") (("# else /\\* HAVE_AVAHI \\*/")
"#elif defined(HAVE_AVAHI)"))))))) "#elif defined(HAVE_AVAHI)"))
#t)))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
@ -248,7 +252,8 @@ device-specific programs to convert and print many types of files.")
(lambda _ (lambda _
(substitute* "Makedefs.in" (substitute* "Makedefs.in"
(("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@")
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))
#t))
(add-before 'check 'patch-tests (add-before 'check 'patch-tests
(lambda _ (lambda _
(let ((filters (assoc-ref %build-inputs "cups-filters")) (let ((filters (assoc-ref %build-inputs "cups-filters"))
@ -306,7 +311,8 @@ device-specific programs to convert and print many types of files.")
(("cupsFileFind\\(\"cat\", \"/bin\"") (("cupsFileFind\\(\"cat\", \"/bin\"")
(string-append "cupsFileFind(\"cat\", \"" catpath "\"")) (string-append "cupsFileFind(\"cat\", \"" catpath "\""))
(("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"") (("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"")
(string-append "cupsFileFind(\"cat\", \"" catpath "\"")))))) (string-append "cupsFileFind(\"cat\", \"" catpath "\"")))
#t)))
;; Make the compressed manpages writable so that the ;; Make the compressed manpages writable so that the
;; reset-gzip-timestamps phase does not error out. ;; reset-gzip-timestamps phase does not error out.
(add-before 'reset-gzip-timestamps 'make-manpages-writable (add-before 'reset-gzip-timestamps 'make-manpages-writable
@ -314,7 +320,8 @@ device-specific programs to convert and print many types of files.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man"))) (man (string-append out "/share/man")))
(for-each (lambda (file) (chmod file #o644)) (for-each (lambda (file) (chmod file #o644))
(find-files man "\\.gz"))))) (find-files man "\\.gz"))
#t)))
(add-after 'install 'install-cups-filters-symlinks (add-after 'install 'install-cups-filters-symlinks
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out"))
@ -360,7 +367,9 @@ device-specific programs to convert and print many types of files.")
(let ((data "/share/cups/data")) (let ((data "/share/cups/data"))
(delete-file-recursively (string-append out data)) (delete-file-recursively (string-append out data))
(symlink (string-append cups-filters data) (symlink (string-append cups-filters data)
(string-append out data))))))))) (string-append out data)))
#t))))))
(inputs (inputs
`(("avahi" ,avahi) `(("avahi" ,avahi)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
@ -381,8 +390,10 @@ device-specific programs to convert and print many types of files.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Fix type mismatch. ;; Fix type mismatch.
'(substitute* "prnt/hpcups/genPCLm.cpp" '(begin
(("boolean") "bool"))))) (substitute* "prnt/hpcups/genPCLm.cpp"
(("boolean") "bool"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://hplipopensource.com/") (home-page "http://hplipopensource.com/")
(synopsis "HP Printer Drivers") (synopsis "HP Printer Drivers")

View File

@ -6,7 +6,7 @@
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org> ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -44,20 +44,21 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages tls)) #:use-module (gnu packages tls)
#:use-module (gnu packages web))
(define-public curl (define-public curl
(package (package
(name "curl") (name "curl")
(version "7.57.0") (version "7.59.0")
(replacement curl-7.59.0) (replacement curl-7.60.0)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-" (uri (string-append "https://curl.haxx.se/download/curl-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0y3qbjjcxhcvm1yawp3spfssjbskv0g6gyzld6ckif5pf8ygvxpm")))) "1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ;1.2 MiB of man3 pages "doc")) ;1.2 MiB of man3 pages
@ -66,6 +67,7 @@
("libidn" ,libidn) ("libidn" ,libidn)
("libssh2" ,libssh2) ("libssh2" ,libssh2)
("openldap" ,openldap) ("openldap" ,openldap)
("nghttp2" ,nghttp2 "lib")
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(("perl" ,perl) `(("perl" ,perl)
@ -125,7 +127,7 @@
;; The top-level "make check" does "make -C tests quiet-test", which ;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more ;; is too quiet. Use the "test" target instead, which is more
;; verbose. ;; verbose.
(zero? (system* "make" "-C" "tests" "test"))))))) (invoke "make" "-C" "tests" "test"))))))
(synopsis "Command line tool for transferring data with URL syntax") (synopsis "Command line tool for transferring data with URL syntax")
(description (description
"curl is a command line tool for transferring data with URL syntax, "curl is a command line tool for transferring data with URL syntax,
@ -139,10 +141,10 @@ tunneling, and so on.")
"See COPYING in the distribution.")) "See COPYING in the distribution."))
(home-page "https://curl.haxx.se/"))) (home-page "https://curl.haxx.se/")))
(define-public curl-7.59.0 (define-public curl-7.60.0
(package (package
(inherit curl) (inherit curl)
(version "7.59.0") (version "7.60.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -150,7 +152,7 @@ tunneling, and so on.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1z310hrjm2vmbcpkyp81dcmj9rk127zkjyawpy2pah0nz6yslkp4")))))) "1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7"))))))
(define-public kurly (define-public kurly
(package (package

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
@ -28,7 +28,7 @@
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com> ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
@ -163,14 +163,14 @@ either single machines or networked clusters.")
(define-public gdbm (define-public gdbm
(package (package
(name "gdbm") (name "gdbm")
(version "1.13") (version "1.14.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gdbm/gdbm-" (uri (string-append "mirror://gnu/gdbm/gdbm-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0lx201q20dvc70f8a3c9s7s18z15inlxvbffph97ngvrgnyjq9cx")))) "0pxwz3jlwvglq2mrbxvrjgr8pa0aj73p3v9sxmdlj570zw0gzknd"))))
(arguments `(#:configure-flags '("--enable-libgdbm-compat"))) (arguments `(#:configure-flags '("--enable-libgdbm-compat")))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.gnu.org.ua/software/gdbm") (home-page "http://www.gnu.org.ua/software/gdbm")
@ -254,23 +254,22 @@ standard Go idioms.")
(("docdir[[:blank:]]*=.*") (("docdir[[:blank:]]*=.*")
(string-append "docdir = " doc "/share/doc/bdb"))) (string-append "docdir = " doc "/share/doc/bdb")))
(zero? (invoke "./dist/configure"
(system* "./dist/configure" (string-append "--prefix=" out)
(string-append "--prefix=" out) (string-append "CONFIG_SHELL=" (which "bash"))
(string-append "CONFIG_SHELL=" (which "bash")) (string-append "SHELL=" (which "bash"))
(string-append "SHELL=" (which "bash"))
;; Remove 7 MiB of .a files. ;; Remove 7 MiB of .a files.
"--disable-static" "--disable-static"
;; The compatibility mode is needed by some packages, ;; The compatibility mode is needed by some packages,
;; notably iproute2. ;; notably iproute2.
"--enable-compat185" "--enable-compat185"
;; The following flag is needed so that the inclusion ;; The following flag is needed so that the inclusion
;; of db_cxx.h into C++ files works; it leads to ;; of db_cxx.h into C++ files works; it leads to
;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
"--enable-cxx")))))))) "--enable-cxx")))))))
(synopsis "Berkeley database") (synopsis "Berkeley database")
(description (description
"Berkeley DB is an embeddable database allowing developers the choice of "Berkeley DB is an embeddable database allowing developers the choice of
@ -308,28 +307,27 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(("docdir[[:blank:]]*=.*") (("docdir[[:blank:]]*=.*")
(string-append "docdir = " doc "/share/doc/bdb"))) (string-append "docdir = " doc "/share/doc/bdb")))
(zero? (invoke "./dist/configure"
(system* "./dist/configure" (string-append "--prefix=" out)
(string-append "--prefix=" out) (string-append "CONFIG_SHELL=" (which "bash"))
(string-append "CONFIG_SHELL=" (which "bash")) (string-append "SHELL=" (which "bash"))
(string-append "SHELL=" (which "bash"))
;; Bdb doesn't recognize aarch64 as an architecture. ;; Bdb doesn't recognize aarch64 as an architecture.
,@(if (string=? "aarch64-linux" (%current-system)) ,@(if (string=? "aarch64-linux" (%current-system))
'("--build=aarch64-unknown-linux-gnu") '("--build=aarch64-unknown-linux-gnu")
'()) '())
;; Remove 7 MiB of .a files. ;; Remove 7 MiB of .a files.
"--disable-static" "--disable-static"
;; The compatibility mode is needed by some packages, ;; The compatibility mode is needed by some packages,
;; notably iproute2. ;; notably iproute2.
"--enable-compat185" "--enable-compat185"
;; The following flag is needed so that the inclusion ;; The following flag is needed so that the inclusion
;; of db_cxx.h into C++ files works; it leads to ;; of db_cxx.h into C++ files works; it leads to
;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
"--enable-cxx")))))))))) "--enable-cxx")))))))))
(define-public es-dump-restore (define-public es-dump-restore
(package (package
@ -439,7 +437,8 @@ applications.")
(string-append "src/third_party/" dir))) (string-append "src/third_party/" dir)))
'("pcre-8.41" "scons-2.5.0" "snappy-1.1.3" '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3"
"valgrind-3.11.0" "wiredtiger" "valgrind-3.11.0" "wiredtiger"
"yaml-cpp-0.5.3" "zlib-1.2.8")))) "yaml-cpp-0.5.3" "zlib-1.2.8"))
#t))
(patches (patches
(list (list
(search-patch "mongodb-support-unknown-linux-distributions.patch"))))) (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
@ -596,7 +595,8 @@ RDBMS systems (which are deep in functionality).")
(substitute* "cmake/boost.cmake" (substitute* "cmake/boost.cmake"
(("59") (("59")
,(match (string-split (package-version boost) #\.) ,(match (string-split (package-version boost) #\.)
((_ minor . _) minor)))))) ((_ minor . _) minor))))
#t))
(add-after (add-after
'install 'remove-extra-binaries 'install 'remove-extra-binaries
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -627,7 +627,7 @@ Language.")
(define-public mariadb (define-public mariadb
(package (package
(name "mariadb") (name "mariadb")
(version "10.1.29") (version "10.1.33")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://downloads.mariadb.org/f/" (uri (string-append "https://downloads.mariadb.org/f/"
@ -635,7 +635,7 @@ Language.")
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1m3ya6c3snnsyscd0waklayqfv0vhws52iizv2j5masj5xhdbfvk")))) "0bax748j4srsyhw5cs5jvwigndh0zwmf4r2cjvhja31ckx8jqccl"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -682,7 +682,8 @@ Language.")
(with-directory-excursion out (with-directory-excursion out
(for-each delete-file-recursively (for-each delete-file-recursively
'("data" "mysql-test" "sql-bench" '("data" "mysql-test" "sql-bench"
"share/man/man1/mysql-test-run.pl.1"))))))))) "share/man/man1/mysql-test-run.pl.1")))
#t))))))
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
("perl" ,perl))) ("perl" ,perl)))
@ -1007,7 +1008,7 @@ for example from a shell script.")
(define-public sqlite (define-public sqlite
(package (package
(name "sqlite") (name "sqlite")
(version "3.21.0") (version "3.23.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((numeric-version (uri (let ((numeric-version
@ -1019,11 +1020,11 @@ for example from a shell script.")
(map (cut string-pad <> 2 #\0) (map (cut string-pad <> 2 #\0)
other-digits)) other-digits))
6 #\0)))))) 6 #\0))))))
(string-append "https://sqlite.org/2017/sqlite-autoconf-" (string-append "https://sqlite.org/2018/sqlite-autoconf-"
numeric-version ".tar.gz"))) numeric-version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1qxvzdjwzw6k0kqjfabj86rnq87xdbwbca7laxxdhnh0fmkm3pfp")))) "0jbf78g3cm5wq77k7sfg8fb6rz44hnp9hs7p5d66fwd000c1lwdp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("readline" ,readline))) (inputs `(("readline" ,readline)))
(arguments (arguments
@ -1124,7 +1125,7 @@ extremely small.")
(define-public perl-dbix-class (define-public perl-dbix-class
(package (package
(name "perl-dbix-class") (name "perl-dbix-class")
(version "0.082840") (version "0.082841")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1132,7 +1133,7 @@ extremely small.")
"DBIx-Class-" version ".tar.gz")) "DBIx-Class-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1vw1f756g8m5hq11nqf5dk2cw2y4mqq91ca5p75fn5g3fp8syja0")))) "1gf3hgv8f9rnr8bl4ljgsqk4aliphmvljhsk4282kvdc4mcgh1fp"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-dbd-sqlite" ,perl-dbd-sqlite) `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
@ -1232,7 +1233,7 @@ introspected and examined.")
(define-public perl-dbix-class-schema-loader (define-public perl-dbix-class-schema-loader
(package (package
(name "perl-dbix-class-schema-loader") (name "perl-dbix-class-schema-loader")
(version "0.07047") (version "0.07049")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1240,7 +1241,7 @@ introspected and examined.")
"DBIx-Class-Schema-Loader-" version ".tar.gz")) "DBIx-Class-Schema-Loader-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"06s2q6xj95600sdlfph57spjk2z1gjs4zwq5b7mz7d5izcxgnwb6")))) "0r57fv71ypxafb85cpxph1hdqii7ipjwvc19yb6fpkvq2ggcssg8"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-config-any" ,perl-config-any) `(("perl-config-any" ,perl-config-any)
@ -1486,14 +1487,14 @@ similar to BerkeleyDB, LevelDB, etc.")
(define-public redis (define-public redis
(package (package
(name "redis") (name "redis")
(version "4.0.2") (version "4.0.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-" (uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz")) version".tar.gz"))
(sha256 (sha256
(base32 (base32
"04s8cgvwjj1979s3hg8zkwc9pyn3jkjpz5zidp87kfcipifr385i")))) "0465bv6yxnwmas3wzg07vmrprv2pxhnr56hn5pxrybwf66y76kyz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; tests related to master/slave and replication fail '(#:tests? #f ; tests related to master/slave and replication fail
@ -1628,12 +1629,7 @@ trees (LSM), for sustained throughput under random insert workloads.")
#:configure-flags #:configure-flags
(list (string-append "--with-libwiredtiger-prefix=" (list (string-append "--with-libwiredtiger-prefix="
(assoc-ref %build-inputs "wiredtiger"))) (assoc-ref %build-inputs "wiredtiger")))
#:make-flags '("GUILE_AUTO_COMPILE=0") #:make-flags '("GUILE_AUTO_COMPILE=0")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "sh" "bootstrap"))))))
;; TODO: Remove microkanren.scm when we have a separate package ;; TODO: Remove microkanren.scm when we have a separate package
;; for it. ;; for it.
(native-inputs (native-inputs
@ -1931,20 +1927,22 @@ etc., and an SQL engine for performing simple SQL queries.")
(define-public python-lmdb (define-public python-lmdb
(package (package
(name "python-lmdb") (name "python-lmdb")
(version "0.93") (version "0.94")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "lmdb" version)) (uri (pypi-uri "lmdb" version))
(sha256 (sha256
(base32 (base32
"0xdpb298fyl68acadbwv5801wcwfpnhc7sm4bnrq1x4bd5dhhsql")) "1zh38gvkqw1jm5105if6rr7ccbgyxr7k2rm5ygb9ab3bq82pyaww"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Delete bundled lmdb source files. ;; Delete bundled lmdb source files.
'(for-each delete-file (list "lib/lmdb.h" '(begin
"lib/mdb.c" (for-each delete-file (list "lib/lmdb.h"
"lib/midl.c" "lib/mdb.c"
"lib/midl.h"))))) "lib/midl.c"
"lib/midl.h"))
#t))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("lmdb" ,lmdb))) `(("lmdb" ,lmdb)))
@ -2063,14 +2061,14 @@ and web services platform functionality.")
(define-public r-rmysql (define-public r-rmysql
(package (package
(name "r-rmysql") (name "r-rmysql")
(version "0.10.14") (version "0.10.15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RMySQL" version)) (uri (cran-uri "RMySQL" version))
(sha256 (sha256
(base32 (base32
"01891kn263b02y6addgpy3gn5axg7m10bqbqv7dg9yx9k85am590")))) "0bmc7w5fnkjaf333sgc0hskiy332m9gmfaxg0yzkjxscpizdw43n"))))
(properties `((upstream-name . "RMySQL"))) (properties `((upstream-name . "RMySQL")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs

View File

@ -112,7 +112,7 @@ contains the archive keys used for that.")
(define-public debootstrap (define-public debootstrap
(package (package
(name "debootstrap") (name "debootstrap")
(version "1.0.95") (version "1.0.101")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -120,7 +120,7 @@ contains the archive keys used for that.")
name "_" version ".tar.gz")) name "_" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1xpd1yblcgwhri64hzgxhalpf5j8gqbmkrsm1fs0pbwiy0wdz0ry")))) "1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -129,6 +129,7 @@ contains the archive keys used for that.")
(add-after 'unpack 'patch-source (add-after 'unpack 'patch-source
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out"))
(coreutils (assoc-ref inputs "coreutils"))
(wget (assoc-ref inputs "wget")) (wget (assoc-ref inputs "wget"))
(debian (assoc-ref inputs "debian-keyring")) (debian (assoc-ref inputs "debian-keyring"))
(ubuntu (assoc-ref inputs "ubuntu-keyring"))) (ubuntu (assoc-ref inputs "ubuntu-keyring")))
@ -141,6 +142,7 @@ contains the archive keys used for that.")
(substitute* "scripts/gutsy" (substitute* "scripts/gutsy"
(("/usr") ubuntu)) (("/usr") ubuntu))
(substitute* "debootstrap" (substitute* "debootstrap"
(("chroot ") (string-append coreutils "/bin/chroot "))
(("=/usr") (string-append "=" out))) (("=/usr") (string-append "=" out)))
(substitute* "functions" (substitute* "functions"
(("wget ") (string-append wget "/bin/wget "))) (("wget ") (string-append wget "/bin/wget ")))
@ -154,7 +156,8 @@ contains the archive keys used for that.")
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:tests? #f)) ; no tests #:tests? #f)) ; no tests
(inputs (inputs
`(("debian-keyring" ,debian-archive-keyring) `(("coreutils" ,coreutils)
("debian-keyring" ,debian-archive-keyring)
("ubuntu-keyring" ,ubuntu-keyring) ("ubuntu-keyring" ,ubuntu-keyring)
("wget" ,wget))) ("wget" ,wget)))
;; The following are required for debootstrap to work correctly ;; The following are required for debootstrap to work correctly

View File

@ -31,7 +31,7 @@
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages indent) #:use-module (gnu packages code)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pretty-print) #:use-module (gnu packages pretty-print)
@ -300,10 +300,7 @@ down the road.")
(which "sh")))))) (which "sh"))))))
(add-before 'configure 'repack-make (add-before 'configure 'repack-make
(lambda _ (lambda _
(zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir)))) (zero? (system* "tar" "cJf" "./make.tar.xz" ,make-dir))))))))
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "autoreconf" "-vfi"))))))))
(home-page "https://github.com/losalamos/stress-make") (home-page "https://github.com/losalamos/stress-make")
(synopsis "Expose race conditions in Makefiles") (synopsis "Expose race conditions in Makefiles")
(description (description

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flasher.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flasher.co.il>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -57,11 +58,10 @@
;; The test-suite needs to have a non-empty stdin: ;; The test-suite needs to have a non-empty stdin:
;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>. ;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>.
(zero? (unless (zero? (system "make check < /dev/zero"))
(system "make check < /dev/zero"))) (error "make check failed")))
(begin (display "test suite cannot be run, skipping\n"))
(display "test suite cannot be run, skipping\n") #t))
#t))))
(add-after 'install 'post-install (add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Use the right `expect' binary. ;; Use the right `expect' binary.
@ -71,7 +71,8 @@
(("^mypath.*$" all) (("^mypath.*$" all)
(string-append all (string-append all
"export PATH=" "export PATH="
expect "/bin:$PATH\n"))))))))) expect "/bin:$PATH\n")))
#t))))))
(home-page (home-page
"https://www.gnu.org/software/dejagnu/") "https://www.gnu.org/software/dejagnu/")
(synopsis "GNU software testing framework") (synopsis "GNU software testing framework")

View File

@ -63,7 +63,7 @@
(gz (assoc-ref %build-inputs "gzip")) (gz (assoc-ref %build-inputs "gzip"))
(texi (assoc-ref %build-inputs "texinfo"))) (texi (assoc-ref %build-inputs "texinfo")))
(setenv "PATH" (string-append gz "/bin")) (setenv "PATH" (string-append gz "/bin"))
(system* (string-append tar "/bin/tar") "xvf" source) (invoke (string-append tar "/bin/tar") "xvf" source)
(chdir (string-append "vera-" ,version)) (chdir (string-append "vera-" ,version))
(mkdir-p info) (mkdir-p info)
@ -71,14 +71,12 @@
;; XXX: Use '--force' because the document is unhappy ;; XXX: Use '--force' because the document is unhappy
;; with Texinfo 5 (yes, documents can be unhappy.) ;; with Texinfo 5 (yes, documents can be unhappy.)
(and (zero? (invoke (string-append texi "/bin/makeinfo")
(system* (string-append texi "/bin/makeinfo") "vera.texi" "--force" "-o"
"vera.texi" "--force" "-o" (string-append info "/vera.info"))
(string-append info "/vera.info"))) (invoke (string-append texi "/bin/makeinfo")
(zero? "vera.texi" "--force" "--html" "-o"
(system* (string-append texi "/bin/makeinfo") (string-append html "/vera.html"))))
"vera.texi" "--force" "--html" "-o"
(string-append html "/vera.html"))))))
#:modules ((guix build utils)))) #:modules ((guix build utils))))
(native-inputs `(("texinfo" ,texinfo) (native-inputs `(("texinfo" ,texinfo)
("tar" ,tar) ("tar" ,tar)
@ -113,9 +111,9 @@ acronyms distributed as an info document.")
(set-path-environment-variable "PATH" '("bin") (set-path-environment-variable "PATH" '("bin")
(list tar xz)) (list tar xz))
(mkdir-p datadir) (mkdir-p datadir)
(zero? (system* "tar" "-C" datadir (invoke "tar" "-C" datadir
"--strip-components=1" "--strip-components=1"
"-xvf" src)))) "-xvf" src)))
#:modules ((guix build utils)))) #:modules ((guix build utils))))
(native-inputs (native-inputs
`(("tar" ,tar) `(("tar" ,tar)

View File

@ -11,6 +11,7 @@
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +54,7 @@
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages vim) #:use-module (gnu packages vim)
#:use-module (gnu packages w3m)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
(define-public parted (define-public parted
@ -464,15 +466,15 @@ a card with a smaller capacity than stated.")
(define-public duperemove (define-public duperemove
(package (package
(name "duperemove") (name "duperemove")
(version "v0.11.beta4") (version "0.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/markfasheh/duperemove/archive/" "https://github.com/markfasheh/duperemove/archive/v"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1h5nk03kflfnzihvn2rvfz1h623x1zpkn9hp29skd7n3f2bc5k7x")) "0rjmmh42yqw9a5j6sp31cqwxk3s97dsi4xz0wpxpllj7bsp3aiw5"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
@ -481,11 +483,10 @@ a card with a smaller capacity than stated.")
`(("glib" ,glib) `(("glib" ,glib)
("sqlite" ,sqlite))) ("sqlite" ,sqlite)))
(arguments (arguments
`(#:tests? #f ;no test suite `(#:tests? #f ; no test suite
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; no configure script (delete 'configure)) ; no configure script
(delete 'configure))
#:make-flags (list (string-append "PREFIX=" %output) #:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc"))) "CC=gcc")))
(home-page "https://github.com/markfasheh/duperemove") (home-page "https://github.com/markfasheh/duperemove")
@ -517,12 +518,28 @@ Duperemove can also take input from the @command{fdupes} program.")
(base32 (base32
"1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0")))) "1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0"))))
(build-system python-build-system) (build-system python-build-system)
(inputs
`(("w3m" ,w3m)))
(native-inputs ;for tests (native-inputs ;for tests
`(("python-pytest" ,python-pytest) `(("python-pytest" ,python-pytest)
("python-pylint" ,python-pylint) ("python-pylint" ,python-pylint)
("python-flake8" ,python-flake8) ("python-flake8" ,python-flake8)
("which" ,which))) ("which" ,which)))
(arguments '(#:test-target "test")) (arguments
'(#:test-target "test"
#:phases
(modify-phases %standard-phases
(add-after 'configure 'wrap-program
;; Tell 'ranger' where 'w3mimgdisplay' is.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(ranger (string-append out "/bin/ranger"))
(w3m (assoc-ref inputs "w3m"))
(w3mimgdisplay (string-append w3m
"/libexec/w3m/w3mimgdisplay")))
(wrap-program ranger
`("W3MIMGDISPLAY_PATH" ":" prefix (,w3mimgdisplay)))
#t))))))
(home-page "https://ranger.github.io/") (home-page "https://ranger.github.io/")
(synopsis "Console file manager") (synopsis "Console file manager")
(description "ranger is a console file manager with Vi key bindings. It (description "ranger is a console file manager with Vi key bindings. It

View File

@ -6,6 +6,7 @@
;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -143,7 +144,8 @@ Qt-style API for Wayland clients.")
"sddm-" version ".tar.xz")) "sddm-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")))) "0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k"))
(patches (search-patches "sddm-fix-build-with-qt-5.11-1024.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules) `(("extra-cmake-modules" ,extra-cmake-modules)

View File

@ -98,7 +98,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind (define-public isc-bind
(package (package
(name "bind") (name "bind")
(version "9.12.1") (version "9.12.1-P2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -106,7 +106,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"043mjcw405qa0ghm5dkhfsq35gsy279724fz3mjqpr1mbi14dr0n")))) "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -176,7 +176,9 @@ high-volume and high-reliability applications. The name BIND stands for
(snippet (snippet
;; Delete bundled libltdl. XXX: This package also bundles ;; Delete bundled libltdl. XXX: This package also bundles
;; a modified libevent that cannot currently be removed. ;; a modified libevent that cannot currently be removed.
'(delete-file-recursively "libltdl")))) '(begin
(delete-file-recursively "libltdl")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -490,14 +492,14 @@ Extensions} (DNSSEC).")
(define-public knot (define-public knot
(package (package
(name "knot") (name "knot")
(version "2.6.6") (version "2.6.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/" (uri (string-append "https://secure.nic.cz/files/knot-dns/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci")) "0hr2m664ckjicv3pq2lk16m61pscknywxv2ydnrzfqf10m5h0ahw"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -58,11 +58,12 @@
(dtd (string-append out "/xml/dtd/docbook"))) (dtd (string-append out "/xml/dtd/docbook")))
(mkdir-p dtd) (mkdir-p dtd)
(with-directory-excursion dtd (with-directory-excursion dtd
(system* unzip source)) (invoke unzip source))
(substitute* (string-append out "/xml/dtd/docbook/catalog.xml") (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
(("uri=\"") (("uri=\"")
(string-append (string-append
"uri=\"file://" dtd "/"))))) "uri=\"file://" dtd "/")))
#t))
#:modules ((guix build utils)))) #:modules ((guix build utils))))
(native-inputs `(("unzip" ,unzip))) (native-inputs `(("unzip" ,unzip)))
(home-page "http://docbook.org") (home-page "http://docbook.org")
@ -127,7 +128,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(dtd (string-append (assoc-ref %outputs "out") (dtd (string-append (assoc-ref %outputs "out")
"/xml/dtd/docbook"))) "/xml/dtd/docbook")))
(mkdir-p dtd) (mkdir-p dtd)
(zero? (system* unzip source "-d" dtd)))))))) (invoke unzip source "-d" dtd)))))))
(define-public docbook-xsl (define-public docbook-xsl
(package (package
@ -154,7 +155,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(out (assoc-ref %outputs "out")) (out (assoc-ref %outputs "out"))
(xsl (string-append out "/xml/xsl"))) (xsl (string-append out "/xml/xsl")))
(setenv "PATH" (string-append bzip2 "/bin" ":" xz "/bin")) (setenv "PATH" (string-append bzip2 "/bin" ":" xz "/bin"))
(system* (string-append tar "/bin/tar") "xvf" source) (invoke (string-append tar "/bin/tar") "xvf" source)
(mkdir-p xsl) (mkdir-p xsl)
(copy-recursively name-version (copy-recursively name-version
@ -163,8 +164,9 @@ by no means limited to these applications.) This package provides XML DTDs.")
(substitute* (string-append xsl "/" name-version "/catalog.xml") (substitute* (string-append xsl "/" name-version "/catalog.xml")
(("rewritePrefix=\"./") (("rewritePrefix=\"./")
(string-append "rewritePrefix=\"file://" xsl "/" (string-append "rewritePrefix=\"file://" xsl "/"
name-version "/"))))) name-version "/")))
#:modules ((guix build utils)))) #t))
#:modules ((guix build utils))))
(native-inputs `(("bzip2" ,bzip2) (native-inputs `(("bzip2" ,bzip2)
("xz" ,xz) ("xz" ,xz)
("tar" ,tar))) ("tar" ,tar)))
@ -236,19 +238,19 @@ by no means limited to these applications.) This package provides XML DTDs.")
#:use-setuptools? #f #:use-setuptools? #f
#:tests? #f ;no 'test' command #:tests? #f ;no 'test' command
#:phases #:phases
(alist-cons-after (modify-phases %standard-phases
'wrap 'set-path (add-after 'wrap 'set-path
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
;; dblatex executes helper programs at runtime. ;; dblatex executes helper programs at runtime.
(wrap-program (string-append out "/bin/dblatex") (wrap-program (string-append out "/bin/dblatex")
`("PATH" ":" prefix `("PATH" ":" prefix
,(map (lambda (input) ,(map (lambda (input)
(string-append (assoc-ref inputs input) (string-append (assoc-ref inputs input)
"/bin")) "/bin"))
'("libxslt" "texlive" '("libxslt" "texlive"
"imagemagick" "inkscape")))))) "imagemagick" "inkscape"))))
%standard-phases))) #t))))))
(home-page "http://dblatex.sourceforge.net") (home-page "http://dblatex.sourceforge.net")
(synopsis "DocBook to LaTeX Publishing") (synopsis "DocBook to LaTeX Publishing")
(description (description

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@ -59,7 +59,7 @@
`(#:tests? #f ; no 'check' target `(#:tests? #f ; no 'check' target
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap (replace 'bootstrap
(lambda _ (lambda _
(invoke "autoconf"))) (invoke "autoconf")))
;; Some XML-related binaries are required for asciidoc's proper usage. ;; Some XML-related binaries are required for asciidoc's proper usage.
@ -139,10 +139,23 @@ markup) can be customized and extended by the user.")
("libxml2" ,libxml2) ; provides xmllint for the tests ("libxml2" ,libxml2) ; provides xmllint for the tests
("python" ,python-2))) ; for creating the documentation ("python" ,python-2))) ; for creating the documentation
(inputs (inputs
`(("bash" ,bash-minimal))) `(("bash" ,bash-minimal)
,@(if (string-prefix? "armhf-" (%current-system))
`(("gcc-ice-patch" ,@(search-patches "doxygen-gcc-ice.patch")))
'())))
(arguments (arguments
`(#:test-target "tests" `(#:test-target "tests"
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
;; Work around an ICE that shows up on native compiles for
;; armhf-linux.
,@(if (string-prefix? "armhf-" (%current-system))
`((add-after 'unpack 'apply-gcc-patch
(lambda* (#:key inputs #:allow-other-keys)
(let ((patch (assoc-ref inputs "gcc-ice-patch")))
(invoke "patch" "-p1" "--force"
"--input" patch)))))
'())
(add-before 'configure 'patch-sh (add-before 'configure 'patch-sh
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/portable.cpp" (substitute* "src/portable.cpp"

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017, 2018 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2017, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,7 +33,7 @@
(define-public dunst (define-public dunst
(package (package
(name "dunst") (name "dunst")
(version "1.3.1") (version "1.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -41,7 +42,7 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mkdp1vqc376z8clwm5s9070jq1g92j8hv2rr231jr2468fnwaga")))) "12nj8qw3y3nl8sm24wizy2a7k06v1p88bnz1xr9l39h527xyidma"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target

View File

@ -3,6 +3,8 @@
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,27 +24,33 @@
(define-module (gnu packages education) (define-module (gnu packages education)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages qt) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages javascript)
#:use-module (gnu packages kde-frameworks) ; extra-cmake-modules #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download) #:use-module (guix svn-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public gcompris (define-public gcompris
@ -107,7 +115,7 @@ of categories with some of the activities available in that category.
(define-public gcompris-qt (define-public gcompris-qt
(package (package
(name "gcompris-qt") (name "gcompris-qt")
(version "0.90") (version "0.91")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -116,11 +124,18 @@ of categories with some of the activities available in that category.
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1i5adxnhig849qxwi3c4v7r84q6agx1zxkd69fh4y7lcmq2qiaza")))) "09h098w9q79hnzla1pcpqlnnr6dbafm4q6zmdp7wlk11ym8n9kvg"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-for-qt5.11
(lambda _
(substitute* "src/core/CMakeLists.txt"
(("qt5_use_modules") "target_link_libraries")
(("Qml Quick Gui Multimedia Network XmlPatterns Svg Xml Sensors Core")
"Qt5::Qml Qt5::Quick Qt5::Gui Qt5::Multimedia Qt5::Core Qt5::Svg Qt5::Xml Qt5::XmlPatterns Qt5::Sensors"))
#t))
(add-after 'install 'wrap-executable (add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
@ -209,7 +224,7 @@ Currently available boards include:
(substitute* "def/defines.h" (substitute* "def/defines.h"
(("\"/usr/") (string-append "\"" out "/"))) (("\"/usr/") (string-append "\"" out "/")))
;; Recreate Makefile ;; Recreate Makefile
(zero? (system* "qmake")))))))) (invoke "qmake")))))))
(inputs (inputs
`(("qt4" ,qt-4) `(("qt4" ,qt-4)
("sqlite" ,sqlite))) ("sqlite" ,sqlite)))
@ -224,3 +239,65 @@ Useful support functions and an extensive progress tracker, topical lessons
and the ability to create your own practice lessons make learning to type and the ability to create your own practice lessons make learning to type
easy.") easy.")
(license license:gpl2))) (license license:gpl2)))
(define-public snap
(package
(name "snap")
(version "4.1.2.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0cy3jhqqpmivqnfm9kmlnh3fhf3m3y4xqhikblk8vfjprh6vmcvd"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(share (string-append out "/share/snap")))
(copy-recursively source share)
;; Replace the sole minified file in the package.
(with-directory-excursion share
(delete-file "FileSaver.min.js")
(symlink (string-append (assoc-ref %build-inputs "js-filesaver")
"/share/javascript/FileSaver.min.js")
"FileSaver.min.js"))
;; Create a "snap" executable.
(let* ((bin (string-append out "/bin"))
(script (string-append bin "/snap"))
(snap (string-append share "/snap.html"))
(bash (string-append (assoc-ref %build-inputs "bash")
"/bin/sh"))
(xdg-open (string-append (assoc-ref %build-inputs "xdg-utils")
"/bin/xdg-open")))
(mkdir-p bin)
(call-with-output-file script
(lambda (port)
(format port "#!~a\n~a '~a'" bash xdg-open snap)))
(chmod script #o555)))
#t)))
(inputs
`(("bash" ,bash-minimal)
("js-filesaver" ,js-filesaver)
("xdg-utils" ,xdg-utils)))
(home-page "https://snap.berkeley.edu")
(synopsis "Visual, blocks based programming language")
(description "Snap! (formerly BYOB) is a visual, drag-and-drop
programming language. It is an extended reimplementation of Scratch (a
project of the Lifelong Kindergarten Group at the MIT Media Lab) that
allows you to Build Your Own Blocks. It also features first class
lists, first class procedures, and continuations. These added
capabilities make it suitable for a serious introduction to computer
science for high school or college students.
This package provides a @command{snap} executable calling @command{xdg-open}
to open the application in a web browser, for offline usage.")
(license license:agpl3+)))

View File

@ -56,6 +56,14 @@
`(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib")) "/lib"))
;; Disable tests on MIPS (without changing
;; the arguments list on other systems).
,@(if (string-prefix? "mips" (or (%current-target-system)
(%current-system)))
'(#:tests? #f)
'())
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; No reason has been found for this test to reliably fail on aarch64-linux. ;; No reason has been found for this test to reliably fail on aarch64-linux.
@ -98,13 +106,12 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
;; variables passed as arguments. ;; variables passed as arguments.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))
(zero? (invoke "./configure"
(system* "./configure" (string-append "--prefix=" out)
(string-append "--prefix=" out)
,@(if (string=? "aarch64-linux" ,@(if (string=? "aarch64-linux"
(%current-system)) (%current-system))
'("--host=aarch64-unknown-linux-gnu") '("--host=aarch64-unknown-linux-gnu")
'()))))))))) '()))))))))
(home-page "http://www.mr511.de/software/english.html") (home-page "http://www.mr511.de/software/english.html")
(synopsis "ELF object file access library") (synopsis "ELF object file access library")
(description "Libelf is a C library to access ELF object files.") (description "Libelf is a C library to access ELF object files.")

File diff suppressed because it is too large Load Diff

View File

@ -251,7 +251,8 @@ library variant NEWLIB."
(match %build-inputs (match %build-inputs
(((names . directories) ...) (((names . directories) ...)
(union-build (assoc-ref %outputs "out") (union-build (assoc-ref %outputs "out")
directories)))))) directories)
#t)))))
(propagated-inputs (propagated-inputs
`(("binutils" ,(cross-binutils "arm-none-eabi")) `(("binutils" ,(cross-binutils "arm-none-eabi"))
("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc)) ("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc))
@ -610,7 +611,7 @@ micro-controller.")
(version (package-version propeller-gcc)) (version (package-version propeller-gcc))
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments '(#:builder (mkdir %output))) (arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs (propagated-inputs
`(("binutils" ,propeller-binutils) `(("binutils" ,propeller-binutils)
("libc" ,proplib) ("libc" ,proplib)
@ -785,7 +786,7 @@ two-thirds of the opcodes in the P2 instruction set.")
(version (package-version propeller-gcc)) (version (package-version propeller-gcc))
(source #f) (source #f)
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments '(#:builder (mkdir %output))) (arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs (propagated-inputs
`(("toolchain" ,propeller-toolchain) `(("toolchain" ,propeller-toolchain)
("openspin" ,openspin) ("openspin" ,openspin)
@ -830,7 +831,7 @@ simulator.")
(lambda _ (lambda _
(substitute* "opcodes/Makefile.in" (substitute* "opcodes/Makefile.in"
(("guile\\{,-\\}1.8") "guile")) (("guile\\{,-\\}1.8") "guile"))
(zero? (system* "which" "guile"))))))) (invoke "which" "guile"))))))
(native-inputs (native-inputs
`(("cgen" `(("cgen"
,(origin ,(origin

View File

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; ;;;
@ -33,6 +33,7 @@
#:use-module (guix svn-download) #:use-module (guix svn-download)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio) #:use-module (gnu packages audio)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
@ -45,6 +46,7 @@
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development) #:use-module (gnu packages game-development)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
@ -54,12 +56,19 @@
#:use-module (gnu packages libedit) #:use-module (gnu packages libedit)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
#:use-module (gnu packages music)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages upnp) #:use-module (gnu packages upnp)
#:use-module (gnu packages video) #:use-module (gnu packages video)
@ -69,6 +78,7 @@
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages web)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
@ -107,8 +117,8 @@
;; Building from recent Git because the official 5.0 release no longer builds. ;; Building from recent Git because the official 5.0 release no longer builds.
(define-public dolphin-emu (define-public dolphin-emu
(let ((commit "d04b179111f8d863f360839474cb82c766f762b8") (let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136")
(revision "0")) (revision "1"))
(package (package
(name "dolphin-emu") (name "dolphin-emu")
(version (git-version "5.0" revision commit)) (version (git-version "5.0" revision commit))
@ -134,7 +144,7 @@
#t)) #t))
(sha256 (sha256
(base32 (base32
"0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) "1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -143,13 +153,17 @@
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'fixgcc7
(lambda _
(unsetenv "C_INCLUDE_PATH")
(unsetenv "CPLUS_INCLUDE_PATH")))
(add-before 'configure 'generate-fonts&hardcore-libvulkan-path (add-before 'configure 'generate-fonts&hardcore-libvulkan-path
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((fontfile (let ((fontfile
(string-append (assoc-ref inputs "font-wqy-microhei") (string-append (assoc-ref inputs "font-wqy-microhei")
"/share/fonts/truetype/wqy-microhei.ttc")) "/share/fonts/truetype/wqy-microhei.ttc"))
(libvulkan (libvulkan
(string-append (assoc-ref inputs "vulkan-icd-loader") (string-append (assoc-ref inputs "vulkan-loader")
"/lib/libvulkan.so"))) "/lib/libvulkan.so")))
(chdir "docs") (chdir "docs")
(invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \ (invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \
@ -179,6 +193,7 @@
"-DX11_FOUND=1"))) "-DX11_FOUND=1")))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("gcc" ,gcc-7) ; Building with gcc@5 doesn't work anymore.
("gettext" ,gnu-gettext))) ("gettext" ,gnu-gettext)))
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
@ -211,7 +226,7 @@
("sfml" ,sfml) ("sfml" ,sfml)
("soil" ,soil) ("soil" ,soil)
("soundtouch" ,soundtouch) ("soundtouch" ,soundtouch)
("vulkan-icd-loader" ,vulkan-icd-loader) ("vulkan-loader" ,vulkan-loader)
("wxwidgets" ,wxwidgets-gtk2-3.1) ("wxwidgets" ,wxwidgets-gtk2-3.1)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://dolphin-emu.org/") (home-page "https://dolphin-emu.org/")
@ -410,11 +425,13 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Make sure we don't use the bundled software. ;; Make sure we don't use the bundled software.
'(for-each '(begin
(lambda (subdir) (for-each
(let ((lib-subdir (string-append "src/third-party/" subdir))) (lambda (subdir)
(delete-file-recursively lib-subdir))) (let ((lib-subdir (string-append "src/third-party/" subdir)))
'("libpng" "lzma" "sqlite3" "zlib"))))) (delete-file-recursively lib-subdir)))
'("libpng" "lzma" "sqlite3" "zlib"))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ;no "test" target `(#:tests? #f ;no "test" target
@ -1007,7 +1024,8 @@ towards a working Mupen64Plus for casual users.")
(snippet (snippet
'(begin '(begin
;; We don't need libretro for the GNU/Linux build. ;; We don't need libretro for the GNU/Linux build.
(delete-file-recursively "libretro"))))) (delete-file-recursively "libretro")
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -1043,7 +1061,7 @@ emulation community. It provides highly accurate emulation.")
(define-public retroarch (define-public retroarch
(package (package
(name "retroarch") (name "retroarch")
(version "1.7.2") (version "1.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1051,7 +1069,7 @@ emulation community. It provides highly accurate emulation.")
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "1y9fakr41h6xpddpkj12mcw1kgldvy76nzvxm5jk5v7iyiks4c6k")))) (base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no tests '(#:tests? #f ; no tests
@ -1061,7 +1079,7 @@ emulation community. It provides highly accurate emulation.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(etc (string-append out "/etc")) (etc (string-append out "/etc"))
(vulkan (assoc-ref inputs "vulkan-icd-loader"))) (vulkan (assoc-ref inputs "vulkan-loader")))
;; Hard-code the path to libvulkan.so. ;; Hard-code the path to libvulkan.so.
(substitute* "gfx/common/vulkan_common.c" (substitute* "gfx/common/vulkan_common.c"
(("libvulkan.so") (string-append vulkan "/lib/libvulkan.so"))) (("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
@ -1085,9 +1103,10 @@ emulation community. It provides highly accurate emulation.")
("openal" ,openal) ("openal" ,openal)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("python" ,python) ("python" ,python)
("qtbase" ,qtbase)
("sdl" ,sdl2) ("sdl" ,sdl2)
("udev" ,eudev) ("udev" ,eudev)
("vulkan-icd-loader" ,vulkan-icd-loader) ("vulkan-loader" ,vulkan-loader)
("wayland" ,wayland) ("wayland" ,wayland)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
@ -1102,3 +1121,243 @@ straight into any libretro-compatible frontend. RetroArch is the official
reference frontend for the libretro API, currently used by most as a modular reference frontend for the libretro API, currently used by most as a modular
multi-system game/emulator system.") multi-system game/emulator system.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public scummvm
(package
(name "scummvm")
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.scummvm.org/frs/scummvm/" version
"/scummvm-" version ".tar.xz"))
(sha256
(base32
"0q6aiw97wsrf8cjw9vjilzhqqsr2rw2lll99s8i5i9svan6l314p"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;require "git"
#:configure-flags (list "--enable-release") ;for optimizations
#:phases
(modify-phases %standard-phases
(replace 'configure
;; configure does not work followed by both "SHELL=..." and
;; "CONFIG_SHELL=..."; set environment variables instead
(lambda* (#:key outputs configure-flags #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (which "bash"))
(flags `(,(string-append "--prefix=" out)
,@configure-flags)))
(setenv "SHELL" bash)
(setenv "CONFIG_SHELL" bash)
(apply invoke "./configure" flags)))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
("faad2" ,faad2)
("fluidsynth" ,fluidsynth)
("freetype" ,freetype)
("libflac" ,flac)
("libjpeg-turbo" ,libjpeg-turbo)
("libmad" ,libmad)
("libmpeg2" ,libmpeg2)
("libogg" ,libogg)
("libpng" ,libpng)
("libtheora" ,libtheora)
("libvorbis" ,libvorbis)
("nasm" ,nasm)
("sdl2" ,sdl2)
("zlib" ,zlib)))
(home-page "https://www.scummvm.org/")
(synopsis "Engine for several graphical adventure games")
(description "ScummVM is a program which allows you to run certain
classic graphical point-and-click adventure games, provided you
already have their data files. The clever part about this: ScummVM
just replaces the executables shipped with the games, allowing you to
play them on systems for which they were never designed!")
(license license:gpl2+)))
(define-public mame
(package
(name "mame")
(version "0.198")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mamedev/mame.git")
(commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version))
(sha256
(base32
"0kl7qll8d6xlx7bj5920ljs888a6nc1fj2kfw1fz0r8za3m7wiq9"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
'(begin
(with-directory-excursion "3rdparty"
(for-each delete-file-recursively
'("asio" "expat" "glm" "libflac" "libjpeg" "lua"
"portaudio" "portmidi" "pugixml" "rapidjson" "SDL2"
"SDL2-override" "sqlite3" "utf8proc" "zlib")))
#t))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(cons*
(string-append "QT_HOME=" (assoc-ref %build-inputs "qtbase"))
(string-append "SDL_INI_PATH="
(assoc-ref %outputs "out")
"/share/mame/ini")
(map (lambda (lib)
(string-append "USE_SYSTEM_LIB_" (string-upcase lib) "=1"))
'("asio" "expat" "flac" "glm" "jpeg" "lua" "portaudio" "portmidi"
"pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib")))
#:tests? #f ;no test in regular release
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'build 'build-documentation
(lambda _ (invoke "make" "-C" "docs" "man" "info")))
(replace 'install
;; Upstream does not provide an installation phase.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/mame")))
;; Install data.
(for-each (lambda (dir)
(copy-recursively dir (string-append share "/" dir)))
'("artwork" "bgfx" "ctrlr" "hash" "ini" "language"
"plugins" "samples"))
(let ((keymaps (string-append share "/keymaps")))
(for-each (lambda (file) (install-file file keymaps))
(find-files "keymaps" ".*LINUX\\.map")))
(let ((fonts (string-append share "/fonts")))
(install-file "uismall.bdf" fonts))
(rename-file "mame64" "mame")
(install-file "mame" (string-append out "/bin")))
#t))
(add-after 'install 'install-documentation
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1"))
(info (string-append out "/share/info")))
(install-file "docs/build/man/MAME.1" man)
(install-file "docs/build/texinfo/MAME.info" info))
#t))
(add-after 'install 'install-ini-file
;; Generate an ini file so as to set some directories (e.g., roms)
;; to a writable location, i.e., "$HOME/.mame/" and "$HOME/mame/".
;;
;; XXX: We need to insert absolute references to the store. It can
;; be an issue if they leak into user's home directory, e.g., with
;; "mame -createconfig" and the package is later GC'ed.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/mame"))
(ini (string-append share "/ini")))
(with-output-to-file (string-append ini "/mame.ini")
(lambda _
(format #t
"inipath $HOME/.mame;~a/ini~@
homepath $HOME/mame~@
rompath $HOME/mame/roms~@
samplepath $HOME/mame/samples;~a/samples~@
cheatpath $HOME/mame/cheat~@
artpath $HOME/mame/artwork;~a/artwork~@
crosshairpath $HOME/mame/crosshair~@
snapshot_directory $HOME/mame/snapshots~@
hashpath ~a/hash~@
fontpath $HOME/mame/fonts;~a/fonts~@
ctrlrpath $HOME/mame/ctrlr;~a/ctrlr~@
bgfx_path ~a/bgfx~@
pluginspath $HOME/mame/plugins;~a/plugins~@
languagepath ~a/language~@
cfg_directory $HOME/.mame/cfg~@
nvram_directory $HOME/.mame/nvram~@
input_directory $HOME/.mame/inp~@
state_directory $HOME/.mame/sta~@
diff_directory $HOME/.mame/diff~@
comment_directory $HOME/.mame/comments~%"
share share share share share share share share
share)))
(with-output-to-file (string-append ini "/ui.ini")
(lambda _
(format #t
"historypath $HOME/mame/history~@
categorypath $HOME/mame/folders~@
cabinets_directory $HOME/mame/cabinets~@
cpanels_directory $HOME/mame/cpanel~@
pcbs_directory $HOME/mame/pcb~@
flyers_directory $HOME/mame/flyers~@
titles_directory $HOME/mame/titles~@
ends_directory $HOME/mame/ends~@
marquees_directory $HOME/mame/marquees~@
artwork_preview_directory $HOME/mame/artpreview~@
bosses_directory $HOME/mame/bosses~@
logos_directory $HOME/mame/logo~@
scores_directory $HOME/mame/scores~@
versus_directory $HOME/mame/versus~@
gameover_directory $HOME/mame/gameover~@
howto_directory $HOME/mame/howto~@
select_directory $HOME/mame/select~@
icons_directory $HOME/mame/icons~@
covers_directory $HOME/mame/covers~@
ui_path $HOME/.mame/ui~%")))
#t)))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(desktop (string-append out "/share/applications"))
(executable (string-append out "/bin/mame")))
(mkdir-p desktop)
(with-output-to-file (string-append desktop "/mame.desktop")
(lambda _
(format #t
"[Desktop Entry]~@
Name=mame~@
Comment=Multi-purpose emulation framework~@
Exec=~a~@
TryExec=~@*~a~@
Terminal=false~@
Type=Application~@
Categories=Game;Emulator;~@
Keywords=Game;Emulator;Arcade;~%"
executable)))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("pugixml" ,pugixml)
("python-sphinx" ,python-sphinx)
("texinfo" ,texinfo)))
(inputs
`(("alsa-lib" ,alsa-lib)
("asio" ,asio)
("expat" ,expat)
("flac" ,flac)
("fontconfig" ,fontconfig)
("glm" ,glm)
("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
("libxinerama" ,libxinerama)
("lua" ,lua)
("portaudio" ,portaudio)
("portmidi" ,portmidi)
("python-wrapper" ,python-wrapper)
("qtbase" ,qtbase)
("rapidjson" ,rapidjson)
("sdl" ,(sdl-union (list sdl2 sdl2-ttf)))
("sqlite" ,sqlite)
("utf8proc" ,utf8proc)
("zlib" ,zlib)))
(home-page "http://mamedev.org/")
(synopsis "Multi-purpose emulation framework")
(description "MAME's purpose is to preserve decades of software
history. As electronic technology continues to rush forward, MAME
prevents this important @emph{vintage} software from being lost and
forgotten. This is achieved by documenting the hardware and how it
functions. The source code to MAME serves as this documentation.")
;; The MAME project as a whole is distributed under the terms of GPL2+.
;; However, over 90% of the files are under Expat license. Also, artwork,
;; keymaps, languages and samples are under CC0.
(license (list license:gpl2+ license:expat license:cc0))))

View File

@ -4,9 +4,10 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -110,6 +111,13 @@
(string-append "#include <boost/serialization/array_wrapper.hpp>\n" (string-append "#include <boost/serialization/array_wrapper.hpp>\n"
line))) line)))
#t)) #t))
;; Fix build against Qt 5.11.
(add-after 'unpack 'add-missing-headers
(lambda _
(substitute* "librecad/src/ui/generic/widgetcreator.cpp"
(("#include <QPushButton>") "#include <QPushButton>
#include <QActionGroup>"))
#t))
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
@ -329,7 +337,9 @@ featuring various improvements and bug fixes.")))
"0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k")) "0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k"))
(snippet (snippet
;; Remove a non-free file. ;; Remove a non-free file.
'(delete-file "doc/psfig.sty")) '(begin
(delete-file "doc/psfig.sty")
#t))
(patches (search-patches "fastcap-mulSetup.patch" (patches (search-patches "fastcap-mulSetup.patch"
"fastcap-mulGlobal.patch")))) "fastcap-mulGlobal.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -523,35 +533,17 @@ ready for production.")
(define-public gerbv (define-public gerbv
(package (package
(name "gerbv") (name "gerbv")
(version "2.6.1") (version "2.6.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-" (uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
version "/gerbv-" version ".tar.gz")) version "/gerbv-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks")))) "1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autoconf
(lambda _
;; Build rules contain references to Russian translation, but the
;; needed files are missing; see
;; http://sourceforge.net/p/gerbv/bugs/174/
(delete-file "po/LINGUAS")
(substitute* "man/Makefile.am"
(("PO_FILES= gerbv.ru.1.in.po") "")
(("man_MANS = gerbv.1 gerbv.ru.1") "man_MANS = gerbv.1"))
(zero? (system* "autoreconf" "-vfi")))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("pkg-config" ,pkg-config)))
("automake" ,automake)
("libtool" ,libtool)
("gettext" ,gettext-minimal)
("po4a" ,po4a)
("pkg-config" ,pkg-config)))
(inputs (inputs
`(("cairo" ,cairo) `(("cairo" ,cairo)
("gtk" ,gtk+-2) ("gtk" ,gtk+-2)
@ -769,7 +761,7 @@ render model libraries.")
(define-public linsmith (define-public linsmith
(package (package
(name "linsmith") (name "linsmith")
(version "0.99.30") (version "0.99.31")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -777,13 +769,13 @@ render model libraries.")
version "/linsmith-" version ".tar.gz")) version "/linsmith-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18qslhr2r45rhpj4v6bjcqx189vs0bflvsj271wr7w8kvh69qwvn")))) "13qj7n9826qc9shkkgd1p6vcpj78v4h9d67wbg45prg7rbnzkzds"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("gtk" ,gtk+-2) ("gtk" ,gtk+-2)
("libgnome" ,libgnomeui))) ("libgnome" ,libgnomeui)))
(home-page "http://jcoppens.com/soft/linsmith/index.en.php") (home-page "https://jcoppens.com/soft/linsmith/index.en.php")
(synopsis "Smith Charting program") (synopsis "Smith Charting program")
(description "LinSmith is a Smith Charting program, mainly designed for (description "LinSmith is a Smith Charting program, mainly designed for
educational use. As such, there is an emphasis on capabilities that improve educational use. As such, there is an emphasis on capabilities that improve
@ -1080,14 +1072,14 @@ bindings for Python, Java, OCaml and more.")
(define-public radare2 (define-public radare2
(package (package
(name "radare2") (name "radare2")
(version "1.6.0") (version "2.5.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://radare.mikelloc.com/get/" version "/" (uri (string-append "http://radare.mikelloc.com/get/" version "/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm")) "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -1096,7 +1088,8 @@ bindings for Python, Java, OCaml and more.")
(substitute* "libr/parse/p/Makefile" (substitute* "libr/parse/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")) (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
(substitute* "libr/bin/p/Makefile" (substitute* "libr/bin/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) ")))))) (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f; tests require git and network access '(#:tests? #f; tests require git and network access
@ -1182,14 +1175,14 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>. ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
(package (package
(name "libngspice") (name "libngspice")
(version "26") (version "28")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
version "/ngspice-" version ".tar.gz")) version "/ngspice-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"02019ndcl057nq9z41nxycqba7wxlb081ibvfj9jv010nz431qji")) "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; We remove the non-free cider and build without it. ;; We remove the non-free cider and build without it.
(snippet (snippet
@ -1201,7 +1194,8 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
(("src/ciderlib/input/Makefile") "") (("src/ciderlib/input/Makefile") "")
(("src/ciderlib/support/Makefile") "") (("src/ciderlib/support/Makefile") "")
(("src/ciderlib/oned/Makefile") "") (("src/ciderlib/oned/Makefile") "")
(("src/ciderlib/twod/Makefile") "")))))) (("src/ciderlib/twod/Makefile") ""))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; No tests for libngspice exist. `(;; No tests for libngspice exist.
@ -1212,7 +1206,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
(add-after 'unpack 'patch-timestamps (add-after 'unpack 'patch-timestamps
(lambda _ (lambda _
(substitute* "configure" (substitute* "configure"
(("`date`") "Do 1. Jan 00:00:00 UTC 1970")) (("`date`") "Thu Jan 1 00:00:01 UTC 1970"))
#t)) #t))
(add-after 'unpack 'delete-program-manuals (add-after 'unpack 'delete-program-manuals
(lambda _ (lambda _
@ -1285,17 +1279,27 @@ an embedded event driven algorithm.")
;; TODO: Remove when we have modular Trilinos packages? ;; TODO: Remove when we have modular Trilinos packages?
(package (package
(name "trilinos-serial-xyce") (name "trilinos-serial-xyce")
(version "12.6.3") (version "12.12.1")
(source (source
(origin (method url-fetch) (origin (method url-fetch)
(uri (string-append "https://trilinos.org/oldsite/download/files/trilinos-" (uri (string-append "https://trilinos.org/oldsite/download/files/trilinos-"
version "-Source.tar.gz")) version "-Source.tar.gz"))
(sha256 (sha256
(base32 (base32
"07jd1qpsbf31cmbyyngr4l67xzwyan24dyx5wlcahgbw7x6my3wn")))) "1zgrcksrcbmyy79mbdv0j4j4sh0chpigxk8vcrrwgaxyxwxxhrvw"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:out-of-source? #t `(#:out-of-source? #t
#:phases
(modify-phases %standard-phases
;; Delete unneeded tribits(build system) directory which makes validate-runpath
;; phase to fail.
(add-before 'validate-runpath 'delete-tribits
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively
(string-append (assoc-ref outputs "out")
"/lib/cmake/tribits"))
#t)))
#:configure-flags #:configure-flags
(list "-DCMAKE_CXX_FLAGS=-O3 -fPIC" (list "-DCMAKE_CXX_FLAGS=-O3 -fPIC"
"-DCMAKE_C_FLAGS=-O3 -fPIC" "-DCMAKE_C_FLAGS=-O3 -fPIC"
@ -1328,7 +1332,7 @@ an embedded event driven algorithm.")
("swig" ,swig))) ("swig" ,swig)))
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("lapack" ,lapack-3.5) ("lapack" ,lapack)
("suitesparse" ,suitesparse))) ("suitesparse" ,suitesparse)))
(home-page "https://trilinos.org") (home-page "https://trilinos.org")
(synopsis "Engineering and scientific problems algorithms") (synopsis "Engineering and scientific problems algorithms")
@ -1343,14 +1347,14 @@ unique design feature of Trilinos is its focus on packages.")
(define-public xyce-serial (define-public xyce-serial
(package (package
(name "xyce-serial") (name "xyce-serial")
(version "6.7") (version "6.8")
(source (source
(origin (method url-fetch) (origin (method url-fetch)
(uri (string-append "https://archive.org/download/Xyce-" (uri (string-append "https://archive.org/download/Xyce-"
version "/Xyce-" version ".tar.gz")) version "/Xyce-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"02k952mnvrnc5kv7r65fdrn7khwq1lbyhwyvd7jznafzdpsvgm4x")))) "09flp1xywbb2laayd9rg8vd0fjsh115y6k1p71jacy0nrbdvvlcg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f
@ -1366,7 +1370,7 @@ unique design feature of Trilinos is its focus on packages.")
(inputs (inputs
`(("fftw" ,fftw) `(("fftw" ,fftw)
("suitesparse" ,suitesparse) ("suitesparse" ,suitesparse)
("lapack" ,lapack-3.5) ("lapack" ,lapack)
("trilinos" ,trilinos-serial-xyce))) ("trilinos" ,trilinos-serial-xyce)))
(home-page "https://xyce.sandia.gov/") (home-page "https://xyce.sandia.gov/")
(synopsis "High-performance analog circuit simulator") (synopsis "High-performance analog circuit simulator")
@ -1401,8 +1405,6 @@ parallel computing platforms. It also supports serial execution.")
"CC=mpicc" "CC=mpicc"
"F77=mpif77" "F77=mpif77"
"--enable-mpi" "--enable-mpi"
"--enable-isorropia=no"
"--enable-zoltan=no"
(string-append (string-append
"ARCHDIR=" "ARCHDIR="
(assoc-ref %build-inputs "trilinos"))))))) (assoc-ref %build-inputs "trilinos")))))))
@ -1509,116 +1511,134 @@ parallel computing platforms. It also supports serial execution.")
license:lgpl2.0+)))) ; freehdl's libraries license:lgpl2.0+)))) ; freehdl's libraries
(define-public qucs (define-public qucs
(package ;; Qucs 0.0.19 segfaults when using glibc-2.26. Temporarily build from git.
(name "qucs") ;; TODO: When qucs-0.0.20 is released, revert the commit that introduced this
(version "0.0.19") ;; comment and update the package.
(source (origin (let ((commit "b4f27d9222568066cd59e4c387c51a35056c99d8")
(method url-fetch) (revision "0"))
(uri (package
(string-append (name "qucs")
"https://sourceforge.net/projects/qucs/files/qucs/" version (version (git-version "0.0.19" revision commit))
"/qucs-" version ".tar.gz")) (source (origin
(sha256 (method git-fetch)
(base32 (uri (git-reference
"0giv9gfyfdizvjhq56x2pdncrlyv3k15lrsh6pk37i94vr7l7ij5")))) (url "https://github.com/Qucs/qucs")
(build-system gnu-build-system) (commit commit)))
(arguments (sha256
`(#:phases (base32 "10bclay9xhkffmsh4j4l28kj1qpxx0pnxja5vx6305cllnq4r3gb"))
(modify-phases %standard-phases (file-name (string-append name "-" version "-checkout"))))
(add-before 'configure 'patch-configure (build-system gnu-build-system)
(lambda* (#:key inputs #:allow-other-keys) (arguments
(substitute* "qucs/configure" `(#:phases
(("\\$QTDIR") (assoc-ref inputs "qt4"))) (modify-phases %standard-phases
#t)) (add-before 'bootstrap 'patch-bootstrap
(add-after 'patch-configure 'patch-scripts (lambda _
(lambda* (#:key inputs outputs #:allow-other-keys) (for-each patch-shebang
(substitute* '("qucs/qucs/qucsdigi" '("bootstrap"
"qucs/qucs/qucsdigilib" "qucs/bootstrap"
"qucs/qucs/qucsveri") "qucs-doc/bootstrap"
(("\\$BINDIR") "qucs-core/bootstrap"))
(string-append (assoc-ref outputs "out") "/bin")) #t))
(("freehdl-config") (add-before 'configure 'patch-configure
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config")) (lambda* (#:key inputs #:allow-other-keys)
(("freehdl-v2cc") (substitute* "qucs/configure"
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc")) (("\\$QTDIR") (assoc-ref inputs "qt4")))
(("cp ") #t))
(string-append (assoc-ref inputs "coreutils") "/bin/cp ")) (add-after 'patch-configure 'patch-scripts
(("glibtool") (lambda* (#:key inputs outputs #:allow-other-keys)
(string-append (assoc-ref inputs "libtool") "/bin/libtool")) (substitute* '("qucs/qucs/qucsdigi"
(("sed") "qucs/qucs/qucsdigilib"
(string-append (assoc-ref inputs "sed") "/bin/sed")) "qucs/qucs/qucsveri")
(("iverilog") (("\\$BINDIR")
(string-append (assoc-ref inputs "iverilog") "/bin/iverilog")) (string-append (assoc-ref outputs "out") "/bin"))
(("vvp") (("freehdl-config")
(string-append (assoc-ref inputs "iverilog") "/bin/vvp"))) (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
#t)) (("freehdl-v2cc")
(add-before 'check 'pre-check (string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
(lambda _ (("cp ")
;; The test suite requires a running X server. (string-append (assoc-ref inputs "coreutils") "/bin/cp "))
(system "Xvfb :1 &") (("glibtool")
(setenv "DISPLAY" ":1") (string-append (assoc-ref inputs "libtool") "/bin/libtool"))
#t)) (("sed")
(add-after 'install 'make-wrapper (string-append (assoc-ref inputs "sed") "/bin/sed"))
(lambda* (#:key inputs outputs #:allow-other-keys) (("iverilog")
(let ((out (assoc-ref outputs "out"))) (string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
;; 'qucs' directly invokes gcc, hence this wrapping. (("vvp")
(wrap-program (string-append out "/bin/qucs") (string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
`("CPLUS_INCLUDE_PATH" ":" prefix #t))
(,(string-append (assoc-ref inputs "gcc-toolchain") (add-before 'check 'pre-check
"/include"))) (lambda _
`("PATH" ":" prefix ;; The test suite requires a running X server.
(,(string-append (assoc-ref inputs "gcc-toolchain") (system "Xvfb :1 &")
"/bin"))) (setenv "DISPLAY" ":1")
`("LIBRARY_PATH" ":" prefix #t))
(,(string-append (assoc-ref inputs "gcc-toolchain") (add-after 'install 'make-wrapper
"/lib"))) (lambda* (#:key inputs outputs #:allow-other-keys)
`("ADMSXMLBINDIR" ":" prefix (let ((out (assoc-ref outputs "out")))
(,(string-append (assoc-ref inputs "adms") "/bin"))) ;; 'qucs' directly invokes gcc, hence this wrapping.
`("ASCOBINDIR" ":" prefix (wrap-program (string-append out "/bin/qucs")
(,(string-append (assoc-ref inputs "asco") "/bin"))) `("CPLUS_INCLUDE_PATH" ":" prefix
`("QUCS_OCTAVE" ":" prefix (,(string-append (assoc-ref inputs "gcc-toolchain")
(,(string-append (assoc-ref inputs "octave") "/bin/octave"))))) "/include")))
#t))) `("PATH" ":" prefix
#:parallel-build? #f ; race condition (,(string-append (assoc-ref inputs "gcc-toolchain")
#:configure-flags '("--disable-doc"))) ; we need octave-epstk "/bin")))
(native-inputs `("LIBRARY_PATH" ":" prefix
`(("gperf" ,gperf) (,(string-append (assoc-ref inputs "gcc-toolchain")
("libtool-native" ,libtool) "/lib")))
("python" ,python-2) ; for tests `("ADMSXMLBINDIR" ":" prefix
("matplotlib" ,python2-matplotlib) ; for tests (,(string-append (assoc-ref inputs "adms") "/bin")))
("numpy" ,python2-numpy) ; for tests `("ASCOBINDIR" ":" prefix
("xorg-server" ,xorg-server))) ; for tests (,(string-append (assoc-ref inputs "asco") "/bin")))
(inputs `("QUCS_OCTAVE" ":" prefix
`(("adms" ,adms) (,(string-append (assoc-ref inputs "octave") "/bin/octave")))))
("asco" ,asco) #t)))
("coreutils" ,coreutils) #:parallel-build? #f ; race condition
("freehdl" ,freehdl) #:configure-flags '("--disable-doc"))) ; we need octave-epstk
("gcc-toolchain" ,gcc-toolchain) (native-inputs
("iverilog" ,iverilog) `(("autoconf" ,autoconf)
("libtool" ,libtool) ("automake" ,automake)
("octave" ,octave) ("bison" ,bison)
("qt4" ,qt-4) ("flex" ,flex)
("sed" ,sed))) ("gperf" ,gperf)
(home-page "http://qucs.sourceforge.net/") ("libtool-native" ,libtool)
(synopsis "Circuit simulator with graphical user interface") ("pkg-config" ,pkg-config)
(description ("python" ,python-2) ; for tests
"Qucs is a circuit simulator with graphical user interface. The software ("matplotlib" ,python2-matplotlib) ; for tests
("numpy" ,python2-numpy) ; for tests
("xorg-server" ,xorg-server))) ; for tests
(inputs
`(("adms" ,adms)
("asco" ,asco)
("coreutils" ,coreutils)
("freehdl" ,freehdl)
("gcc-toolchain" ,gcc-toolchain)
("iverilog" ,iverilog)
("libtool" ,libtool)
("octave" ,octave)
("qt4" ,qt-4)
("sed" ,sed)))
(home-page "http://qucs.sourceforge.net/")
(synopsis "Circuit simulator with graphical user interface")
(description
"Qucs is a circuit simulator with graphical user interface. The software
aims to support all kinds of circuit simulation types---e.g. DC, AC, aims to support all kinds of circuit simulation types---e.g. DC, AC,
S-parameter, transient, noise and harmonic balance analysis. Pure digital S-parameter, transient, noise and harmonic balance analysis. Pure digital
simulations are also supported.") simulations are also supported.")
(license license:gpl2+))) (license license:gpl2+))))
(define-public qucs-s (define-public qucs-s
(package (package
(name "qucs-s") (name "qucs-s")
(version "0.0.19S") (version "0.0.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/ra3xdh/qucs/releases/download/" (uri (string-append "https://github.com/ra3xdh/qucs_s/archive/"
version "/qucs-" version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bhahvdqmayaw0306fxz1ghmjhd4fq05yk3rk7zi0z703w5imgjv")))) "01dizf4rjciqc8x7bmv3kbhdlz90bm6n9m9fz7dbzqcwvszcs1hx"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
@ -1653,19 +1673,21 @@ simulations are also supported.")
"\\+ \"qucsator\" \\+ executableSuffix")) "\\+ \"qucsator\" \\+ executableSuffix"))
(string-append "}{ QucsSettings.Qucsator = \"" (string-append "}{ QucsSettings.Qucsator = \""
(assoc-ref inputs "qucs") "/bin/qucsator\"")) (assoc-ref inputs "qucs") "/bin/qucsator\""))
(((string-append "else QucsSettings\\.XyceExecutable = " (((string-append "QucsSettings\\.XyceExecutable = "
"\"/usr/local/Xyce-Release-6.2.0-OPENSOURCE/bin/runxyce")) "\"/usr/local/Xyce-Release-6.8.0-OPENSOURCE/bin/Xyce"))
(string-append "QucsSettings.XyceExecutable = \"" (string-append "}{ QucsSettings.XyceExecutable = \""
(assoc-ref inputs "xyce-serial") "/bin/Xyce")) (assoc-ref inputs "xyce-serial") "/bin/Xyce"))
(((string-append "else QucsSettings\\.XyceParExecutable = \"/usr/local" (((string-append "else QucsSettings\\.XyceParExecutable = "
"/Xyce-Release-6.2.0-OPENMPI-OPENSOURCE/bin/xmpirun")) "\"mpirun -np %p /usr/local"
"/Xyce-Release-6.8.0-OPENMPI-OPENSOURCE/bin/Xyce"))
(string-append "QucsSettings.XyceParExecutable = \"" (string-append "QucsSettings.XyceParExecutable = \""
(assoc-ref inputs "mpi") "/bin/mpirun")) (assoc-ref inputs "mpi") "/bin/mpirun -np %p "
(("%p") (assoc-ref inputs "xyce-parallel") "/bin/Xyce"))
(string-append "%p "(assoc-ref inputs "xyce-parallel") "/bin/Xyce"))
(("else QucsSettings\\.NgspiceExecutable = \"ngspice\"") (("else QucsSettings\\.NgspiceExecutable = \"ngspice\"")
(string-append "QucsSettings.NgspiceExecutable = " "\"" (string-append "QucsSettings.NgspiceExecutable = " "\""
(assoc-ref inputs "ngspice") "/bin/ngspice\""))) (assoc-ref inputs "ngspice") "/bin/ngspice\"")))
(substitute* "qucs/extsimkernels/ngspice.cpp"
(("share/qucs/xspice_cmlib") "share/qucs-s/xspice_cmlib"))
(substitute* "qucs/qucs_actions.cpp" (substitute* "qucs/qucs_actions.cpp"
(("qucstrans") (("qucstrans")
(string-append (assoc-ref inputs "qucs") "/bin/qucstrans")) (string-append (assoc-ref inputs "qucs") "/bin/qucstrans"))
@ -1678,7 +1700,7 @@ simulations are also supported.")
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(for-each (for-each
(lambda (script) (lambda (script)
(let ((file (string-append "../qucs-" ,version (let ((file (string-append "../qucs_s-" ,version
"/qucs/" script)) "/qucs/" script))
(out (assoc-ref outputs "out"))) (out (assoc-ref outputs "out")))
(install-file file (string-append out "/bin")) (install-file file (string-append out "/bin"))

View File

@ -78,7 +78,6 @@
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
("compositeproto" ,compositeproto)
("curl" ,curl) ("curl" ,curl)
("ghostscript" ,ghostscript) ("ghostscript" ,ghostscript)
("giflib" ,giflib) ("giflib" ,giflib)
@ -110,12 +109,10 @@
("openjpeg" ,openjpeg-1) ("openjpeg" ,openjpeg-1)
("poppler" ,poppler) ("poppler" ,poppler)
("printproto" ,printproto) ("printproto" ,printproto)
("scrnsaverproto" ,scrnsaverproto)
("wayland-protocols" ,wayland-protocols) ("wayland-protocols" ,wayland-protocols)
("xextproto" ,xextproto)
("xinput" ,xinput) ("xinput" ,xinput)
("xpr" ,xpr) ("xpr" ,xpr)
("xproto" ,xproto))) ("xorgproto" ,xorgproto)))
(propagated-inputs (propagated-inputs
;; All these inputs are in package config files in section ;; All these inputs are in package config files in section
;; Requires.private. ;; Requires.private.
@ -180,7 +177,7 @@ removable devices or support for multimedia.")
(define-public terminology (define-public terminology
(package (package
(name "terminology") (name "terminology")
(version "1.2.0") (version "1.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -188,7 +185,7 @@ removable devices or support for multimedia.")
"terminology/terminology-" version ".tar.xz")) "terminology/terminology-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0kw34l5lahn1qaks3ah6x8k41d6hfywpqfak2p7qq1z87zj506mx")) "1ii8332bl88l8md3gvz5dhi9bjpm6shyf14ck9kfyy7d56hp71mc"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Remove the bundled fonts. ;; Remove the bundled fonts.
;; TODO: Remove bundled lz4. ;; TODO: Remove bundled lz4.
@ -262,11 +259,11 @@ Libraries with some extra bells and whistles.")
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad")))) "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))
(patches (search-patches "enlightenment-fix-setuid-path.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--enable-mount-eeze") `(#:phases
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'set-system-actions (add-before 'configure 'set-system-actions
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -278,6 +275,8 @@ Libraries with some extra bells and whistles.")
(("/usr/share/X11/xkb/rules/xorg.lst") (("/usr/share/X11/xkb/rules/xorg.lst")
(string-append xkeyboard (string-append xkeyboard
"/share/X11/xkb/rules/base.lst"))) "/share/X11/xkb/rules/base.lst")))
(substitute* "src/modules/everything/evry_plug_apps.c"
(("/usr/bin/") ""))
(substitute* "configure" (substitute* "configure"
(("/bin/mount") (string-append utils "/bin/mount")) (("/bin/mount") (string-append utils "/bin/mount"))
(("/bin/umount") (string-append utils "/bin/umount")) (("/bin/umount") (string-append utils "/bin/umount"))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
@ -107,17 +107,17 @@ single file can be mounted.")
(define-public disorderfs (define-public disorderfs
(package (package
(name "disorderfs") (name "disorderfs")
(version "0.5.2") (version "0.5.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/ReproducibleBuilds/disorderfs.git") (url "https://salsa.debian.org/reproducible-builds/disorderfs.git")
(commit "0.5.2"))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1j028dq3d4m64mn9xmfamcnnc7i2drmra4pdmxdmqdsi8p7yj4sv")))) "1nmhfvxpvz3xsfxl9wqnh6r2l5m7hjq6n0vpblsl5xdcvwaqcf50"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -209,7 +209,8 @@ by the b43-open driver of Linux-libre.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(fmw (string-append out "/share/firmware"))) (fmw (string-append out "/share/firmware")))
(mkdir-p fmw) (mkdir-p fmw)
(copy-file "out/bios.bin" (string-append fmw "/bios.bin")))))))) (copy-file "out/bios.bin" (string-append fmw "/bios.bin"))
#t))))))
(home-page "https://www.seabios.org/SeaBIOS") (home-page "https://www.seabios.org/SeaBIOS")
(synopsis "x86 BIOS implementation") (synopsis "x86 BIOS implementation")
(description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS (description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS
@ -262,36 +263,26 @@ coreboot.")
(setenv "PATH" (string-append (getenv "PATH") ":" bin)) (setenv "PATH" (string-append (getenv "PATH") ":" bin))
; FIXME: The below script errors out. When using 'invoke' instead ; FIXME: The below script errors out. When using 'invoke' instead
; of 'system*' this causes the build to fail. ; of 'system*' this causes the build to fail.
(system* "bash" "edksetup.sh" "BaseTools") (system* "bash" "edksetup.sh")
(substitute* "Conf/target.txt" (substitute* "Conf/target.txt"
(("^TARGET[ ]*=.*$") "TARGET = RELEASE\n") (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
(("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n")
(("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$") (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
(format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%" (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
(number->string (parallel-job-count))))) (number->string (parallel-job-count)))))
;; Build build support. ;; Build build support.
(setenv "BUILD_CC" "gcc") (setenv "BUILD_CC" "gcc")
(invoke "make" "-C" (string-append tools "/Source/C")) (invoke "make" "-C" tools)
#t))) #t)))
(add-after 'build 'build-ia32 (replace 'build
(lambda _ (lambda _
(substitute* "Conf/target.txt" (invoke "build" "-a" "IA32" "-t" "GCC49"
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n") "-p" "OvmfPkg/OvmfPkgIa32.dsc")))
(("^ACTIVE_PLATFORM[ ]*=.*$")
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n"))
(invoke "build")
#t))
,@(if (string=? "x86_64-linux" (%current-system)) ,@(if (string=? "x86_64-linux" (%current-system))
'((add-after 'build 'build-x64 '((add-after 'build 'build-x64
(lambda _ (lambda _
(substitute* "Conf/target.txt" (invoke "build" "-a" "X64" "-t" "GCC49"
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n") "-p" "OvmfPkg/OvmfPkgX64.dsc"))))
(("^ACTIVE_PLATFORM[ ]*=.*$")
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n"))
(invoke "build")
#t)))
'()) '())
(delete 'build)
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -312,6 +303,76 @@ Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.")
(license (list license:expat (license (list license:expat
license:bsd-2 license:bsd-3 license:bsd-4)))) license:bsd-2 license:bsd-3 license:bsd-4))))
(define-public ovmf-aarch64
(package
(inherit ovmf)
(name "ovmf-aarch64")
(native-inputs
`(,@(package-native-inputs ovmf)
,@(if (not (string-prefix? "aarch64" (%current-system)))
`(("cross-gcc" ,(cross-gcc "aarch64-linux-gnu"))
("cross-binutils" ,(cross-binutils "aarch64-linux-gnu")))
'())))
(arguments
(substitute-keyword-arguments (package-arguments ovmf)
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-env
(lambda _
,@(if (not (string-prefix? "aarch64" (%current-system)))
`((setenv "GCC49_AARCH64_PREFIX" "aarch64-linux-gnu-"))
'())
#t))
(replace 'build
(lambda _
(invoke "build" "-a" "AARCH64" "-t" "GCC49"
"-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
(delete 'build-x64)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(fmw (string-append out "/share/firmware")))
(mkdir-p fmw)
(copy-file "Build/ArmVirtQemu-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd"
(string-append fmw "/ovmf_aarch64.bin"))
#t)))))))
(supported-systems %supported-systems)))
(define-public ovmf-arm
(package
(inherit ovmf)
(name "ovmf-arm")
(native-inputs
`(,@(package-native-inputs ovmf)
,@(if (not (string-prefix? "armhf" (%current-system)))
`(("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"))
("cross-binutils" ,(cross-binutils "arm-linux-gnueabihf")))
'())))
(arguments
(substitute-keyword-arguments (package-arguments ovmf)
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-env
(lambda _
,@(if (not (string-prefix? "armhf" (%current-system)))
`((setenv "GCC49_ARM_PREFIX" "arm-linux-gnueabihf-"))
'())
#t))
(replace 'build
(lambda _
(invoke "build" "-a" "ARM" "-t" "GCC49"
"-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
(delete 'build-x64)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(fmw (string-append out "/share/firmware")))
(mkdir-p fmw)
(copy-file "Build/ArmVirtQemu-ARM/RELEASE_GCC49/FV/QEMU_EFI.fd"
(string-append fmw "/ovmf_arm.bin"))
#t)))))))
(supported-systems %supported-systems)))
(define* (make-arm-trusted-firmware platform #:optional (arch "aarch64")) (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
(package (package
(name (string-append "arm-trusted-firmware-" platform)) (name (string-append "arm-trusted-firmware-" platform))
@ -404,3 +465,66 @@ such as:
(sha256 (sha256
(base32 (base32
"0r4xnlq7v9khjfcg6gqp7nmrmnw4z1r8bipwdr07png1dcbb8214"))))))) "0r4xnlq7v9khjfcg6gqp7nmrmnw4z1r8bipwdr07png1dcbb8214")))))))
(define-public arm-trusted-firmware-puma-rk3399
(let ((base (make-arm-trusted-firmware "rk3399"))
;; Vendor's arm trusted firmware branch hasn't been upstreamed yet.
(commit "d71e6d83612df896774ec4c03d49500312d2c324")
(revision "1"))
(package
(inherit base)
(name "arm-trusted-firmware-puma-rk3399")
(version (git-version "1.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.theobroma-systems.com/arm-trusted-firmware.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0vqhwqqh8h9qlkpybg2v94911091c1418bc4pnzq5fd7zf0fjkf8")))))))
(define-public rk3399-cortex-m0
(package
(name "rk3399-cortex-m0")
(version "1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.theobroma-systems.com/rk3399-cortex-m0.git")
(commit (string-append "v" version))))
(file-name (git-file-name "rk3399-cortex-m0" version))
(sha256
(base32
"02wz1vkf4j3zc8rx289z76xhrf71jhb2p05lvmygky393a9gjh9w"))))
(home-page "https://git.theobroma-systems.com/rk3399-cortex-m0.git/about/")
(synopsis "PMU Cortex M0 firmware for RK3399 Q7 (Puma)")
(description
"Cortex-M0 firmware used with the RK3399 to implement
power-management functionality and helpers (e.g. DRAM frequency
switching support).\n")
(license license:bsd-3)
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(mzerofiles (find-files "." "rk3399m0.(elf|bin)$")))
(for-each
(lambda (file)
(install-file file out))
mzerofiles))
#t))
(add-before 'build 'setenv
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CROSS_COMPILE" "arm-none-eabi-")
#t)))))
(native-inputs `(("cross-gcc" ,(cross-gcc "arm-none-eabi" #:xgcc gcc-7))
("cross-binutils" ,(cross-binutils "arm-none-eabi"))))))

View File

@ -26,7 +26,7 @@
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages indent) #:use-module (gnu packages code)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public flex (define-public flex

View File

@ -137,8 +137,9 @@ TrueType (TTF) files.")
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((conf-dir (string-append (assoc-ref outputs "out") (let ((conf-dir (string-append (assoc-ref outputs "out")
"/share/fontconfig/conf.avail"))) "/share/fontconfig/conf.avail")))
(copy-recursively "fontconfig" conf-dir))))))) (copy-recursively "fontconfig" conf-dir)
(home-page "http://dejavu-fonts.org/") #t))))))
(home-page "https://dejavu-fonts.github.io/")
(synopsis "Vera font family derivate with additional characters") (synopsis "Vera font family derivate with additional characters")
(description "DejaVu provides an expanded version of the Vera font family (description "DejaVu provides an expanded version of the Vera font family
aiming for quality and broader Unicode coverage while retaining the original aiming for quality and broader Unicode coverage while retaining the original
@ -406,14 +407,15 @@ for long periods of working with computers (8 or more hours per day).")
(string-append (assoc-ref %outputs out) (string-append (assoc-ref %outputs out)
"/share/fonts/opentype"))))) "/share/fonts/opentype")))))
(setenv "PATH" PATH) (setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source")) (invoke tar "xvf" (assoc-ref %build-inputs "source"))
(chdir (string-append "source-han-sans-" ,version "R")) (chdir (string-append "source-han-sans-" ,version "R"))
(install-opentype-fonts "OTC" "out") (install-opentype-fonts "OTC" "out")
(install-opentype-fonts "SubsetOTF/CN" "cn") (install-opentype-fonts "SubsetOTF/CN" "cn")
(install-opentype-fonts "SubsetOTF/JP" "jp") (install-opentype-fonts "SubsetOTF/JP" "jp")
(install-opentype-fonts "SubsetOTF/KR" "kr") (install-opentype-fonts "SubsetOTF/KR" "kr")
(install-opentype-fonts "SubsetOTF/TW" "tw") (install-opentype-fonts "SubsetOTF/TW" "tw")
(for-each delete-file (find-files %output "\\.zip$")))))) (for-each delete-file (find-files %output "\\.zip$"))
#t))))
(native-inputs (native-inputs
`(("gzip" ,gzip) `(("gzip" ,gzip)
("tar" ,tar))) ("tar" ,tar)))
@ -948,7 +950,7 @@ vector graphics.")
(src-pcf-dir (string-append "tamzen-font-Tamzen-" (src-pcf-dir (string-append "tamzen-font-Tamzen-"
,version "/pcf"))) ,version "/pcf")))
(setenv "PATH" PATH) (setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source")) (invoke tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir) (mkdir-p font-dir)
(mkdir-p psf-dir) (mkdir-p psf-dir)
(chdir src-pcf-dir) (chdir src-pcf-dir)
@ -1167,7 +1169,7 @@ itself."))))
(otf-dir (string-append %output (otf-dir (string-append %output
"/share/fonts/opentype"))) "/share/fonts/opentype")))
(setenv "PATH" PATH) (setenv "PATH" PATH)
(system* "unzip" (assoc-ref %build-inputs "source")) (invoke "unzip" (assoc-ref %build-inputs "source"))
(mkdir-p ttf-dir) (mkdir-p ttf-dir)
(mkdir-p otf-dir) (mkdir-p otf-dir)
@ -1176,7 +1178,8 @@ itself."))))
(find-files "." "\\.ttf$")) (find-files "." "\\.ttf$"))
(for-each (lambda (otf) (for-each (lambda (otf)
(install-file otf otf-dir)) (install-file otf otf-dir))
(find-files "." "\\.otf$")))))) (find-files "." "\\.otf$"))
#t))))
(native-inputs `(("unzip" ,unzip))) (native-inputs `(("unzip" ,unzip)))
(home-page "http://www.impallari.com/dosis") (home-page "http://www.impallari.com/dosis")
(synopsis "Very simple, rounded, sans serif family") (synopsis "Very simple, rounded, sans serif family")

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