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 'wrap-program '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 '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
maintainer(s)" refers to maintainer(s) of GNU Guix.
As contributors and maintainers of this project, and in the interest of
fostering an open and welcoming community, we pledge to respect all
people who contribute through reporting issues, posting feature
requests, updating documentation, submitting pull requests or patches,
and other activities.
Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
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:
* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing other's private information, such as physical or electronic
addresses, without explicit permission
* Other unethical or unprofessional conduct
* Publishing others private information, such as a physical or electronic
address, without explicit permission
* 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
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.
Our Responsibilities
This Code of Conduct applies both within project spaces and in public
spaces when an individual is representing the project or its community.
Project maintainers are responsible for clarifying the standards of acceptable
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
be reported by contacting a project maintainer 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. Maintainers are obligated to maintain confidentiality
with regard to the reporter of an incident.
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.
This Code of Conduct is adapted from the Contributor Covenant
(http://contributor-covenant.org), version 1.3.0, available at
http://contributor-covenant.org/version/1/3/0/
Scope
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/zlib.scm \
guix/build-system.scm \
guix/build-system/android-ndk.scm \
guix/build-system/ant.scm \
guix/build-system/cargo.scm \
guix/build-system/cmake.scm \
@ -128,6 +129,7 @@ MODULES = \
guix/svn-download.scm \
guix/i18n.scm \
guix/ui.scm \
guix/build/android-ndk-build-system.scm \
guix/build/ant-build-system.scm \
guix/build/download.scm \
guix/build/download-nar.scm \
@ -255,15 +257,27 @@ MODULES += \
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.
dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
# Auxiliary files for packages.
AUX_FILES = \
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.16-i686.conf \
gnu/packages/aux-files/linux-libre/4.16-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.17-arm.conf \
gnu/packages/aux-files/linux-libre/4.17-arm64.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-i686.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-x86_64.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.
EXAMPLES = \
@ -375,6 +390,14 @@ SCM_TESTS += \
endif
if HAVE_GUILE_SQLITE3
SCM_TESTS += \
tests/store-database.scm \
tests/store-deduplication.scm
endif
SH_TESTS = \
tests/guix-build.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.
* 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)
** Package management

View File

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

View File

@ -25,7 +25,8 @@
(and=> (or (getenv "XDG_CONFIG_HOME")
(and=> (getenv "HOME")
(cut string-append <> "/.config")))
(cut string-append <> "/guix/latest")))
(cute string-append <> "/guix/current/share/guile/site/"
(effective-version))))
(use-modules (guix) (guix ui)
(guix git-download)
@ -43,7 +44,7 @@
(mlet* %store-monad ((source (interned-file source "guix-source"
#:select? git?
#:recursive? #t))
(drv (build source)))
(drv (build source #:pull-version 1)))
(mbegin %store-monad
(show-what-to-build* (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
;; Return the name of a package's job.
(compose string->symbol package-full-name))
(compose string->symbol
(cut package-full-name <> "-")))
(define package->job
(let ((base-packages

View File

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

View File

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

View File

@ -124,6 +124,11 @@ dnl Guile-JSON is used in various places.
GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
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.
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
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
rapports de bogues, les correctifs et tout ce qui pourrait aider le
projet. Nous apprécions particulièrement toute aide sur la création de
paquets (@pxref{Consignes d'empaquetage}).
@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 projet.
Nous apprécions particulièrement toute aide sur la création de paquets
(@pxref{Consignes d'empaquetage}).
@cindex code de conduite, des contributeurs
@cindex convention de contribution
Nous souhaitons fournir un environnement chaleureux, amical et sans
harcèlement pour que tout le monde puisse contribuer au mieux de ses
capacités. Pour cela notre projet a une « Convention de contribution »
adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une
capacités. Pour cela notre projet a une « Convention de contribution »
adaptée de @url{http://contributor-covenant.org/}. Vous pouvez trouver une
version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence
des sources.
@ -22,7 +22,7 @@ correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe
quel nom ou pseudonyme de leur choix.
@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.
* La configuration parfaite:: Les bons outils.
* Style de code:: Hygiène du contributeur.
@ -62,7 +62,7 @@ guix environment guix
@end example
@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} :
@example
@ -70,7 +70,7 @@ guix environment guix --ad-hoc help2man git strace
@end example
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
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
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
disponible. C'est aussi vrai pour l'ensemble de macros de @file{guile.m4}
fournies par Guile. Par exemple, si vous avez installé Automake dans
@file{/usr/local}, il ne cherchera pas les fichiers @file{.m4} dans
@file{/usr/share}. Dans ce case vous devez invoquer la commande suivante :
est fournit par pkg-config. Assurez-vous que @file{pkg.m4} est disponible.
C'est aussi vrai pour l'ensemble de macros de @file{guile.m4} fournies par
Guile. Par exemple, si vous avez installé Automake dans @file{/usr/local},
il ne cherchera pas les fichiers @file{.m4} dans @file{/usr/share}. Dans ce
case vous devez invoquer la commande suivante :
@example
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
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
valeur @code{localstatedir} utilisée par votre installation actuelle
(@pxref{Le dépôt} pour plus d'informations à ce propos).
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
à 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é
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
couleur de « développeur ».
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
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
@ -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
l'arborescence des sources locale ; il met seulement à jour le lien
symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}). Lancez
@command{git pull} à la place si vous voulez mettre à jour votre
symbolique @file{~/.config/guix/latest} (@pxref{Invoquer guix pull}).
Lancez @command{git pull} à la place si vous voulez mettre à jour votre
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
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}
vers @file{~/.config/guix/latest} ; comme ça root aura toujours la même
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
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
@url{http://www.gnu.org/software/emacs, Emacs}, amélioré par le superbe
@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
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
code, et bien plus (@pxref{Introduction,,, geiser, Geiser User
Manual}). Pour travailler confortablement sur Guix, assurez-vous de modifier
le chemin de chargement de Guile pour qu'il trouve les fichiers source de
votre dépôt :
code, et bien plus (@pxref{Introduction,,, geiser, Geiser User Manual}).
Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin
de chargement de Guile pour qu'il trouve les fichiers source de votre dépôt
:
@lisp
;; @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"))
@end lisp
To actually edit the code, Emacs already has a neat Scheme mode. But in
addition to that, you must not miss
@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides
facilities to directly operate on the syntax tree, such as raising an
s-expression or wrapping it, swallowing or rejecting the following
s-expression, etc.
Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme.
Mais en plus de ça, vous ne devez pas rater
@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}. Il fournit des
fonctionnalités pour opérer directement sur l'arbre de syntaxe, comme
relever une s-expression ou l'envelopper, absorber ou rejeter la
s-expression suivante, etc.
@cindex extraits de code
@cindex modèles
@cindex réduire la quantité de code commun
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/,
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.
@lisp
@ -220,14 +220,14 @@ variables @var{yas-snippet-dirs} d'Emacs.
@end lisp
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
message de commit, tapez @code{add} suivi de @kbd{TAB} pour insérer un
Magit} pour afficher les fichiers sélectionnés. Lors de la modification
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}
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
@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
@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
@code{origin} lui-même peut aussi insérer des chaînes de déclenchement qui
finissent sur @code{…}, qui peuvent aussi être étendues.
@ -236,7 +236,7 @@ finissent sur @code{…}, qui peuvent aussi être étendues.
@section Style de code
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.
@menu
@ -250,7 +250,7 @@ voici quelques règles supplémentaires.
@node 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
procédures qui implémentent des concepts bas-niveau comme la procédure
@code{memoize}.
@ -259,8 +259,8 @@ procédures qui implémentent des concepts bas-niveau comme la procédure
@subsection Modules
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 pas se référer à d'autres modules Guix ou GNU. Cependant il est
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
correct pour un module « côté hôte » de dépendre d'un module coté
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
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
rapports d'erreur bien typés.
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
plus, il devrait utiliser la recherche de motifs, via le module Guile
exemple, avec @code{define-record-type*}) plutôt que d'abuser des listes.
En plus, il devrait utiliser la recherche de motifs, via le module Guile
@code{(ice-9 match)}, surtout pour rechercher dans des listes.
@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 style de code
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
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.
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.
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
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
(@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual}).
@cindex indentation, du code
@cindex formatage, du code
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 :
@example
@ -311,16 +311,24 @@ aussi lancer :
@noindent
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 :
@example
./etc/indent-code.el gnu/services/@var{file}.scm
@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
chaîne de documentation. Ce pré-requis peut être relâché pour les procédures
privées simples dans l'espace de nom @code{(guix build @dots{})} cependant.
chaîne de documentation. Ce pré-requis peut être relâché pour les
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
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
@section Envoyer des correctifs
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
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
contributions sous forme de correctifs produits par @code{git format-patch}
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 à
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
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}).
@ -352,13 +360,13 @@ paquet, veuillez vérifier cette check-list :
@enumerate
@item
Si les auteurs du paquet logiciel fournissent une signature cryptographique
pour l'archive, faîtes un effort pour vérifier l'authenticité de
l'archive. Pour un fichier de signature GPG détaché, cela se fait avec la
commande @code{gpg --verify}.
pour l'archive, faîtes un effort pour vérifier l'authenticité de l'archive.
Pour un fichier de signature GPG détaché, cela se fait avec la commande
@code{gpg --verify}.
@item
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.
@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é.
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 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
qu'une seule fois) et permet à la distribution de faire des changements
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.
@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
qui ont été retenus. Il peut aussi aider à déterminer s'il faut découper le
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
paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance
facultative utiliser.
@ -413,27 +421,27 @@ principes :
branche @code{master} (changements non-disruptifs).
@item entre 300 et 1200 paquets dépendants
branche @code{staging} (changemets non-disruptifs). Cette branche devrait
être fusionnées dans @code{master} tous les 3 semaines. Les changements par
branche @code{staging} (changemets non-disruptifs). Cette branche devrait
ê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
branche spécifique (disons, @code{gnome-updates}).
@item plus de 1200 paquets dépendants
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.
@end table
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
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
binaires pré-construits ne sont pas disponibles.
@item
@cindex déterminisme, du processus de construction
@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
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.
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
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
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
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
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
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
et plus lente.
liés. Grouper des changements non liés ensemble rend la revue plus
difficile et plus lente.
Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections
dans ce paquet sont des exemples de changements sans rapport.
@ -480,10 +488,10 @@ du code}).
@end enumerate
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
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
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
attention si votre client de courriel change par exemple les retours à la
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}
@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 à
@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
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.

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}.
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
you want to upgrade your local source tree.@footnote{If you would like
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.}
you want to upgrade your local source tree.
@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{} 2018 Rutger Helling@*
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
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -235,6 +236,7 @@ Services
* X Window:: Graphical display.
* Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that.
* 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
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
versa@footnote{Under the hood, @command{guix pull} updates the
@file{~/.config/guix/latest} symbolic link to point to the latest Guix,
and the @command{guix} command loads code from there. Currently, the
only way to roll back an invocation of @command{guix pull} is to
manually update this symlink to point to the previous Guix.}.
versa.
The result of running @command{guix pull} is a @dfn{profile} available
under @file{~/.config/guix/current} containing the latest Guix. Thus,
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,
but it supports the following options:
@ -2833,6 +2863,16 @@ guix pack -S /opt/gnu/bin=bin guile emacs geiser
@noindent
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
the following command:
@ -2846,6 +2886,22 @@ command. See the
@uref{https://docs.docker.com/engine/reference/commandline/load/, Docker
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:
@table @code
@ -2864,8 +2920,46 @@ specified binaries and symlinks.
This produces a tarball that follows the
@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
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
@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}
@itemx -e @var{expr}
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
@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
@defvrx {Scheme Variable} asdf-build-system/sbcl
@defvrx {Scheme Variable} asdf-build-system/ecl
@ -4979,6 +5092,23 @@ headers, which comes in handy in this case:
@dots{})))
@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.
@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{}.
@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}
Return @code{#t} if @var{obj} is a G-expression.
@end deffn
@ -5076,6 +5218,7 @@ information about monads.)
[#:hash #f] [#:hash-algo #f] @
[#:recursive? #f] [#:env-vars '()] [#:modules '()] @
[#:module-path @var{%load-path}] @
[#:effective-version "2.2"] @
[#:references-graphs #f] [#:allowed-references #f] @
[#:disallowed-references #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
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
applicable.
@ -5793,9 +5939,16 @@ information on cross-compilation.
An example use of this is on Linux-based systems, which can emulate
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.
@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}
is enabled (@pxref{Virtualization Services,
@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}
identifier.
@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
@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
@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
uses, as in this example:
name and version of the package when they differ from the name or version
that Guix uses, as in this example:
@example
(package
(name "grub")
;; @dots{}
;; 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
@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
@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
example:
@example
$ guix size coreutils
store item total self
/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8%
/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6%
/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7%
/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5%
/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4%
/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1%
/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1%
/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6%
/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0%
/gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4%
/gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9%
/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
@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.
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
large fraction of the closure is not a problem @i{per se} because it is
always available on the system anyway.)
79@tie{}MiB, most of which is taken by libc and GCC's run-time support
libraries. (That libc and GCC's libraries represent a large fraction of
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
store, @command{guix size} queries the daemon to determine its
When the package(s) passed to @command{guix size} are available in the
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
-ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU
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
(@pxref{Substitutes}). This makes it possible it to profile disk usage of
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.
@item @code{device}
This names the ``source'' of the file system. By default it is the name
of a node under @file{/dev}, but its meaning depends on the @code{title}
field described below.
This names the ``source'' of the file system. It can be one of three
things: a file system label, a file system UUID, or the name of a
@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})
This is a symbol that specifies how the @code{device} field is to be
interpreted.
@findex file-system-label
File system labels are created using the @code{file-system-label}
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
interpreted as a file name; when it is @code{label}, then @code{device}
is interpreted as a file system label name; when it is @code{uuid},
@code{device} is interpreted as a file system unique identifier (UUID).
@example
(file-system
(mount-point "/home")
(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
@code{uuid} form expects 16-byte UUIDs as defined in
@uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the
@ -9140,22 +9336,13 @@ like this:
(file-system
(mount-point "/home")
(type "ext4")
(title 'uuid)
(device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
@end example
The @code{label} and @code{uuid} options 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.}.
However, when the source of a file system is a mapped device (@pxref{Mapped
When the source of a file system is a mapped device (@pxref{Mapped
Devices}), its @code{device} field @emph{must} refer to the mapped
device name---e.g., @file{/dev/mapper/root-partition}---and consequently
@code{title} must be set to @code{'device}. This is required so that
device name---e.g., @file{"/dev/mapper/root-partition"}.
This is required so that
the system knows that mounting the file system depends on having the
corresponding device mapping established.
@ -9697,6 +9884,7 @@ declaration.
* X Window:: Graphical display.
* Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services.
* Sound Services:: ALSA and Pulseaudio services.
* Database Services:: SQL databases, key-value stores, etc.
* Mail Services:: IMAP, POP3, SMTP, and all that.
* 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")})
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.
@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
configuration file. It is used to pass extra text to be
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
@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}}).
Additionally, the @code{gnome-desktop-service},
@code{xfce-desktop-service} and @code{mate-desktop-service}
procedures can add GNOME, XFCE and/or MATE to a system.
To ``add GNOME'' means that system-level services like the
backlight adjustment helpers and the power management utilities are
added to the system, extending @code{polkit} and @code{dbus}
@code{xfce-desktop-service}, @code{mate-desktop-service} and
@code{enlightenment-desktop-service-type} procedures can add GNOME, XFCE, MATE
and/or Enlightenment to a system. To ``add GNOME'' means that system-level
services like the backlight adjustment helpers and the power management
utilities are added to the system, extending @code{polkit} and @code{dbus}
appropriately, allowing GNOME to operate with elevated privileges on a
limited number of special-purpose system interfaces. Additionally,
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
limited number of special-purpose system interfaces. Additionally,
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
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}.
@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,
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
@code{%desktop-services} in the @code{services} field of your
@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.
@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
@subsubsection Database Services
@ -14880,6 +15163,9 @@ networking interface.
@item @code{package} (default: @code{bitlbee})
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{""})
Configuration snippet added as-is to the BitlBee configuration file.
@end table
@ -15979,6 +16265,64 @@ A simple setup for cat-avatar-generator can look like this:
%base-services))
@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
@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
@dfn{domain name system} (DNS). It provides a server service for hosting
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
and one slave, is:
@ -16528,6 +16876,59 @@ The list of knot-zone-configuration used by this configuration.
@end table
@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
@subsubsection VPN Services
@ -19100,7 +19501,7 @@ Defaults to @samp{#f}.
@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
to it, that should loaded as Git repositories. An empty list means that
all subdirectories will be loaded.

View File

@ -86,9 +86,7 @@ chk_require()
_debug "--- [ $FUNCNAME ] ---"
for c in ${cmds[@]}; do
command -v "$c" &>/dev/null
[ "$?" -eq "1" ] &&
warn+=("$c")
command -v "$c" &>/dev/null || warn+=("$c")
done
[ "${#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
# will be lost upon reconfiguration.
UI menu.c32
MENU TITLE GuixSD Boot Options
PROMPT ~a
TIMEOUT ~a~%"
(if (> timeout 0) 1 0)

View File

@ -1,5 +1,5 @@
;;; 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 © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@ -31,6 +31,7 @@
#:use-module (gnu system)
#:use-module (gnu bootloader)
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages compression) (gzip)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
@ -120,25 +121,14 @@ otherwise."
(define* (svg->png svg #:key width height)
"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.
;; TODO: Remove #:guile-for-build when 2.2 has become the default.
(mlet %store-monad ((guile (package->derivation guile-2.2 #:graft? #f)))
(gexp->derivation "grub-image.png"
(with-imported-modules '((gnu build svg))
(gexp->derivation "grub-image.png"
(with-imported-modules '((gnu build svg))
(with-extensions (list guile-rsvg guile-cairo)
#~(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))
(svg->png #+svg #$output
#:width #$width
#:height #$height)))
#:guile-for-build guile)))
#:height #$height))))))
(define* (grub-background-image config #:key (width 1024) (height 768))
"Return the GRUB background image defined in CONFIG with a ratio of
@ -303,9 +293,10 @@ code."
((? uuid? uuid)
(format #f "search --fs-uuid --set ~a"
(uuid->string device)))
((? string? label)
(format #f "search --label --set ~a" label))
(#f
((? file-system-label? label)
(format #f "search --label --set ~a"
(file-system-label->string label)))
((or #f (? string?))
#~(format #f "search --file --set ~a" #$file)))))
(define* (grub-configuration-file config entries

View File

@ -33,7 +33,12 @@
u-boot-a20-olinuxino-micro-bootloader
u-boot-banana-pi-m2-ultra-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
#~(lambda (bootloader device mount-point)
@ -62,6 +67,33 @@
(write-file-on-device u-boot (stat:size (stat u-boot))
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)
(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
(bootloader
(inherit u-boot-allwinner-bootloader)
@ -110,3 +152,29 @@
(bootloader
(inherit u-boot-allwinner-bootloader)
(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
;;; 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 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;;
@ -119,7 +119,7 @@ C_*INCLUDE_PATH."
;; libc is false, so we are building xgcc-sans-libc.
;; Add essential headers from mingw-w64.
(let ((mingw-source (assoc-ref inputs "mingw-source")))
(system* "tar" "xvf" mingw-source)
(invoke "tar" "xvf" mingw-source)
(let ((mingw-headers (unpacked-mingw-dir)))
;; We need _mingw.h which will gets built from _mingw.h.in by
;; mingw-w64's configure. We cannot configure mingw-w64 until we
@ -160,7 +160,7 @@ C_*INCLUDE_PATH."
"Install a stripped GCC."
;; Unlike our 'strip' phase, this will do the right thing for
;; cross-compilers.
(zero? (system* "make" "install-strip")))
(invoke "make" "install-strip"))
(define* (cross-gcc-build-phases target
#:optional (phases %standard-phases))

View File

@ -1,5 +1,5 @@
;;; 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 © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
@ -473,17 +473,9 @@ were found."
(find-partition luks-partition-uuid-predicate))
(define* (canonicalize-device-spec spec #:optional (title 'any))
"Return the device name corresponding to SPEC. TITLE is a symbol, one of
the following:
'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 (canonicalize-device-spec spec)
"Return the device name corresponding to SPEC, which can be a <uuid>, a
<file-system-label>, or a string (typically a /dev file name)."
(define max-trials
;; Number of times we retry partition label resolution, 1 second per
;; trial. Note: somebody reported a delay of 16 seconds (!) before their
@ -491,19 +483,6 @@ the following:
;; this long.
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)
(let loop ((count 0))
(let ((device (find-partition spec)))
@ -518,23 +497,19 @@ the following:
(sleep 1)
(loop (+ 1 count))))))))
(case canonical-title
((device)
;; Nothing to do.
spec)
((label)
(match spec
((? string?)
;; Nothing to do, but wait until SPEC shows up.
(resolve identity spec identity))
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label spec identity))
((uuid)
(resolve find-partition-by-label
(file-system-label->string spec)
identity))
((? uuid?)
(resolve find-partition-by-uuid
(cond ((string? spec)
(string->uuid spec))
((uuid? spec)
(uuid-bytevector spec))
(else spec))
uuid->string))
(else
(error "unknown device title" title))))
(uuid-bytevector spec)
uuid->string))))
(define (check-file-system device type)
"Run a file system check of TYPE on DEVICE."
@ -615,8 +590,7 @@ run a file system check."
"")))))
(let ((type (file-system-type fs))
(options (file-system-options fs))
(source (canonicalize-device-spec (file-system-device fs)
(file-system-title fs)))
(source (canonicalize-device-spec (file-system-device fs)))
(mount-point (string-append root "/"
(file-system-mount-point fs)))
(flags (mount-flags->bit-mask (file-system-flags fs))))

View File

@ -507,9 +507,15 @@ upon error."
(error "pre-mount actions failed")))
(if root
(mount-root-file-system (canonicalize-device-spec root)
root-fs-type
#:volatile-root? volatile-root?)
;; 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.
(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 the specified file systems.

View File

@ -26,6 +26,7 @@
make-marionette
marionette-eval
wait-for-file
wait-for-tcp-port
marionette-control
marionette-screen-text
wait-for-screen-text
@ -187,6 +188,32 @@ FILE has not shown up after TIMEOUT seconds, raise an error."
('failure
(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)
"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)

View File

@ -1,5 +1,5 @@
;;; 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.
;;;
@ -55,7 +55,6 @@
(define (tmpfs directory)
(file-system
(device "none")
(title 'device)
(mount-point directory)
(type "tmpfs")
(check? #f)))

View File

@ -1,5 +1,5 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -18,16 +18,11 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build svg)
#:use-module (rsvg)
#:use-module (cairo)
#:use-module (srfi srfi-11)
#: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
#:key
source-width source-height

View File

@ -106,11 +106,16 @@ the #:references-graphs parameter of 'derivation'."
(not target-arm32?))
'("-enable-kvm")
'())
;; Pass "panic=1" so that the guest dies upon error.
"-append"
;; The serial port name differs between emulated architectures/machines.
,@(if target-arm32?
`(,(string-append "console=ttyAMA0 --load=" builder))
`(,(string-append "console=ttyS0 --load=" builder)))
,(string-append "panic=1 --load=" builder
;; The serial port name differs between emulated
;; architectures/machines.
" console="
(if target-arm32? "ttyAMA0" "ttyS0"))
;; NIC is not supported on ARM "virt" machine, so use a user mode
;; network stack instead.
,@(if target-arm32?
@ -265,7 +270,8 @@ actual /dev name based on DEVICE."
#:key label uuid)
"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."
(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)
"-F" partition
`(,@(if label

View File

@ -1,6 +1,6 @@
# GNU Guix --- Functional package management for GNU
# 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 © 2013, 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@ -96,6 +96,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/chez.scm \
%D%/packages/ci.scm \
%D%/packages/cinnamon.scm \
%D%/packages/cluster.scm \
%D%/packages/cmake.scm \
%D%/packages/cobol.scm \
%D%/packages/code.scm \
@ -202,6 +203,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/graphics.scm \
%D%/packages/graphviz.scm \
%D%/packages/groff.scm \
%D%/packages/groovy.scm \
%D%/packages/gsasl.scm \
%D%/packages/gstreamer.scm \
%D%/packages/gtk.scm \
@ -225,7 +227,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/image-processing.scm \
%D%/packages/image-viewers.scm \
%D%/packages/imagemagick.scm \
%D%/packages/indent.scm \
%D%/packages/inklingreader.scm \
%D%/packages/inkscape.scm \
%D%/packages/irc.scm \
@ -343,6 +344,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/plotutils.scm \
%D%/packages/polkit.scm \
%D%/packages/popt.scm \
%D%/packages/printers.scm \
%D%/packages/profiling.scm \
%D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \
@ -480,6 +482,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/networking.scm \
%D%/services/nfs.scm \
%D%/services/shepherd.scm \
%D%/services/sound.scm \
%D%/services/herd.scm \
%D%/services/pm.scm \
%D%/services/rsync.scm \
@ -551,12 +554,15 @@ dist_patch_DATA = \
%D%/packages/patches/abiword-black-drawing-with-gtk322.patch \
%D%/packages/patches/acl-fix-perl-regex.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-perl-tempdir1.patch \
%D%/packages/patches/aegis-perl-tempdir2.patch \
%D%/packages/patches/aegis-test-fixup-1.patch \
%D%/packages/patches/aegis-test-fixup-2.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/antiword-CVE-2014-8123.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/bash-completion-directories.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/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/cairo-CVE-2016-9082.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/clucene-pkgconfig.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/cool-retro-term-dont-check-uninit-member.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/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/doxygen-gcc-ice.patch \
%D%/packages/patches/doxygen-test.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/elfutils-tests-ptrace.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/emacs-browse-at-remote-cgit-gnu.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-scheme-complete-scheme-r5rs-info.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/eudev-rules-directory.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/fcgi-2.4.0-gcc44-fixes.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/findutils-localstatedir.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/foomatic-filters-CVE-2015-8327.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-2016-5684.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-fix-tests-on-i686.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/geoclue-config.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-runpath.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-respect-datadir.patch \
%D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.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-allow-kernel-2.6.32.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-locales.patch \
%D%/packages/patches/glibc-memchr-overflow-i686.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-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/glog-gcc-5-demangling.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-tweak-tool-search-paths.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-pkgconfig-test.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/gpsbabel-minizip.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/groff-source-date-epoch.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-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-present-coding.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-fix-szip.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/higan-remove-march-native-flag.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hydra-disable-darcs-test.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-harfbuzz.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/kdbusaddons-kinit-file-name.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-makefile.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-graphics-window-signed-char.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-1.7.0-disable-phobos-tests.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/libgnome-encoding.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/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.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/liblxqt-include.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.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-CVE-2017-8361-8363-8365.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/libssh2-fix-build-failure-with-gcrypt.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/libtiff-CVE-2017-9935.patch \
%D%/packages/patches/libtiff-CVE-2017-18013.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libusb-0.1-disable-tests.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/libvorbis-CVE-2017-14632.patch \
%D%/packages/patches/libvorbis-CVE-2017-14633.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/libxt-guix-search-paths.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/lyx-2.2.3-fix-test.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/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.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/mcrypt-CVE-2012-4409.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-tracelogger.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/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-video-z64-glew-correct-path.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/netcdf-date-time.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/openocd-nrf52.patch \
%D%/packages/patches/openscenegraph-ffmpeg3.patch \
%D%/packages/patches/opensmtpd-fix-crash.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1.0-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/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/pcre2-CVE-2017-7186.patch \
%D%/packages/patches/pcre2-CVE-2017-8786.patch \
%D%/packages/patches/perf-gcc-ice.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.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-system-ltdl.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/plink-1.07-unclobber-i.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-repro.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/pycairo-wscript.patch \
%D%/packages/patches/pybugz-encode-error.patch \
%D%/packages/patches/pybugz-stty.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-pillow-fix-failing-tests.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-configobj-setuptools.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-remove-argparse.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/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.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/rapicorn-isnan.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-graph-diam-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/seq24-rename-mutex.patch \
%D%/packages/patches/shadow-CVE-2018-7169.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shishi-fix-libgcrypt-detection.patch \
%D%/packages/patches/slim-session.patch \
@ -1100,6 +1111,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.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/swish-e-search.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-2011-0764.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/tclxml-3.2-install.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-remove-build-date.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/upower-builddir.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/wxmaxima-do-not-use-old-gnuplot-parameters.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/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-ast-remove-mibstore.patch \

View File

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

View File

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

View File

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -47,8 +48,20 @@
(build-system gnu-build-system)
(arguments
`(#:test-target "tests"
#:modules ((ice-9 ftw)
,@%gnu-build-system-modules)
#: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
(lambda _
(substitute* "test/run"
@ -64,10 +77,11 @@
;; this user does not exist within Guix's build environment.
(for-each (lambda (file)
(delete-file (string-append "test/" file)))
'("setfacl-X.test" "cp.test" "misc.test"))))
'("setfacl-X.test" "cp.test" "misc.test"))
#t))
(replace 'install
(lambda _
(zero? (system* "make" "install" "install-lib" "install-dev")))))))
(invoke "make" "install" "install-lib" "install-dev"))))))
(inputs `(("attr" ,attr)))
(native-inputs
`(("gettext" ,gettext-minimal)

View File

@ -50,8 +50,11 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#: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 readline)
#:use-module (gnu packages linux)
@ -70,6 +73,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@ -97,7 +101,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
#:use-module (gnu packages mpi))
#:use-module (gnu packages mpi)
#:use-module (gnu packages web))
(define-public aide
(package
@ -358,16 +363,15 @@ hostname.")
(define-public shadow
(package
(name "shadow")
(version "4.5")
(version "4.6")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/shadow-maint/shadow/releases/"
"download/" version "/shadow-" version ".tar.xz"))
(patches (search-patches "shadow-CVE-2018-7169.patch"))
(sha256
(base32
"0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w"))))
"10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
(build-system gnu-build-system)
(arguments
`(;; Assume System V `setpgrp (void)', which is the default on GNU
@ -386,7 +390,8 @@ hostname.")
"libc"))))
(substitute* "lib/nscd.c"
(("/usr/sbin/nscd")
(string-append libc "/sbin/nscd"))))))
(string-append libc "/sbin/nscd")))
#t)))
(add-after 'install 'remove-groups
(lambda* (#:key outputs #:allow-other-keys)
;; Remove `groups', which is already provided by Coreutils.
@ -486,8 +491,8 @@ allow automatic login and starting any app.")
(output (assoc-ref %outputs "out"))
(etc (string-append output "/etc")))
(setenv "PATH" (string-append xz "/bin"))
(system* (string-append tar "/bin/tar") "xvf"
source)
(invoke (string-append tar "/bin/tar") "xvf"
source)
(chdir ,(string-append "netbase-" version))
(mkdir-p etc)
(for-each copy-file
@ -603,10 +608,10 @@ connection alive.")
(define-public isc-dhcp
(let* ((bind-major-version "9")
(bind-minor-version "9")
(bind-patch-version "11")
(bind-release-type "-P") ; for patch release, use "-P"
(bind-release-version "1") ; for patch release, e.g. "6"
(bind-minor-version "11")
(bind-patch-version "3")
(bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version
"."
bind-minor-version
@ -616,14 +621,14 @@ connection alive.")
bind-release-version)))
(package
(name "isc-dhcp")
(version "4.3.6-P1")
(version "4.4.1")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/dhcp/"
version "/dhcp-" version ".tar.gz"))
(sha256
(base32
"1hx3az6ckvgvybr1ag4k9kqr8zfcpzcww4vpw5gz0mi8y2z7gl9g"))))
"025nfqx4zwdgv4b3rkw26ihcj312vir08jk6yi57ndmb4a4m08ia"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
@ -669,16 +674,16 @@ connection alive.")
sh " SHELL=" sh))))
(let ((bind-directory (string-append "bind-" ,bind-version)))
(system* "tar" "xf" "bind.tar.gz")
(invoke "tar" "xf" "bind.tar.gz")
(for-each patch-shebang
(find-files bind-directory ".*"))
(zero? (system* "tar" "cf" "bind.tar.gz"
bind-directory
;; avoid non-determinism in the archive
"--sort=name"
"--mtime=@0"
"--owner=root:0"
"--group=root:0"))))))
(invoke "tar" "cf" "bind.tar.gz"
bind-directory
;; avoid non-determinism in the archive
"--sort=name"
"--mtime=@0"
"--owner=root:0"
"--group=root:0")))))
(add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Install the dhclient script for GNU/Linux and make sure
@ -704,7 +709,8 @@ connection alive.")
,(map (lambda (dir)
(string-append dir "/bin:"
dir "/sbin"))
(list inetutils net-tools coreutils sed))))))))))
(list inetutils net-tools coreutils sed))))
#t))))))
(native-inputs `(("perl" ,perl)))
@ -722,7 +728,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz"))
(sha256
(base32
"1a4g6nzzrbmhngdgvgv1jjq4fm06m8fwc2a0gskkchplxl7dva20"))))
"1xbnb2b11274z9frc9y7nvkyxr52qx09bwb97gf9qzzcn8adx78d"))))
;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS.
@ -737,7 +743,7 @@ connection alive.")
"ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
reference implementation of all aspects of DHCP, through a suite of DHCP
tools: server, client, and relay agent.")
(license license:isc)
(license license:mpl2.0)
(properties '((cpe-name . "dhcp"))))))
(define-public libpcap
@ -898,13 +904,15 @@ at once based on a Perl regular expression.")
"0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile.in"
(("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
;; Don't try to chown root.
"")
(("mkdir -p \\$\\(ROTT_STATDIR\\)")
;; Don't attempt to create /var/lib/rottlog.
"true")))))
'(begin
(substitute* "Makefile.in"
(("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
;; Don't try to chown root.
"")
(("mkdir -p \\$\\(ROTT_STATDIR\\)")
;; Don't attempt to create /var/lib/rottlog.
"true"))
#t))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
@ -955,7 +963,7 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
(version "1.8.22")
(version "1.8.23")
(source (origin
(method url-fetch)
(uri
@ -965,10 +973,12 @@ system administrator.")
version ".tar.gz")))
(sha256
(base32
"00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj"))
"0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "lib/zlib"))))
'(begin
(delete-file-recursively "lib/zlib")
#t))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -1255,7 +1265,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20180313")
(version "20180531")
(source (origin
(method url-fetch)
(uri (string-append
@ -1263,7 +1273,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz"))
(sha256
(base32
"16galaadmr37q2pvk2gyxrm8d1xldzk31djfxfq9v1c9yq4i425h"))))
"0q7vg1nr51f3rg16vjh4glz361a64r6gpm46fqkl2jf4fq7g43g5"))))
(build-system gnu-build-system)
(native-inputs `(("flex" ,flex)
("bison" ,bison)))
@ -1272,7 +1282,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
"CC=gcc"
"HOST=_LINUX"
"OPT_CFLAGS=-Wall -fno-strict-aliasing")
#:tests? #f ; no 'check' target.
#:tests? #f ; no 'check' target
#:phases (modify-phases %standard-phases (delete 'configure))))
(home-page "https://acpica.org/")
(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
tables. This package contains only the user-space tools needed for ACPI table
development, not the kernel implementation of ACPI.")
(license license:gpl2))) ; Dual GPLv2/ACPICA Licence
(license license:gpl2))) ; dual GPLv2/ACPICA Licence
(define-public stress
(package
@ -1407,9 +1417,11 @@ environment variable is set and output is to tty.")
(base32
"1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
(modules '((guix build utils)))
(snippet '(substitute* "tests/testsuite"
(("#![[:blank:]]?/bin/sh")
"#!$SHELL")))))
(snippet '(begin
(substitute* "tests/testsuite"
(("#![[:blank:]]?/bin/sh")
"#!$SHELL"))
#t))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -1829,14 +1841,14 @@ done with the @code{auditctl} utility.")
(modules '((guix build utils)))
(snippet
'(begin
(map delete-file-recursively
;; Remove bundled lua, pcap, and pcre libraries.
;; FIXME: Remove bundled liblinear once packaged.
'("liblua"
"libpcap"
"libpcre"
;; Remove pre-compiled binares.
"mswin32"))
(for-each delete-file-recursively
;; Remove bundled lua, pcap, and pcre libraries.
;; FIXME: Remove bundled liblinear once packaged.
'("liblua"
"libpcap"
"libpcre"
;; Remove pre-compiled binares.
"mswin32"))
#t))))
(build-system gnu-build-system)
(inputs
@ -1941,7 +1953,7 @@ throughput (in the same interval).")
(define-public thefuck
(package
(name "thefuck")
(version "3.26")
(version "3.27")
(source (origin
(method url-fetch)
(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"))
(sha256
(base32
"0ddlf25ik97z34bcpc52xyfhlfm6a3hdi43l6cz4ggwcawdwvn1p"))
"0my32n2x8x0f0wr8ql7qgk9qhb6ibv5b1rqs5b2r4nadv0gpiv96"))
(patches (search-patches "thefuck-test-environ.patch"))))
(build-system python-build-system)
(arguments
@ -2141,7 +2153,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
(snippet
;; Remove binaries contained in the tarball which are only for the
;; target and can be regenerated anyway.
'(delete-file-recursively "bin"))
'(begin
(delete-file-recursively "bin")
#t))
(file-name (string-append name "-" version ".tar.gz"))))
(native-inputs
`(("pkg-config" ,pkg-config)
@ -2468,7 +2482,7 @@ make it a perfect utility on modern distros.")
(define-public thermald
(package
(name "thermald")
(version "1.7.1")
(version "1.7.2")
(source
(origin
(method url-fetch)
@ -2476,25 +2490,15 @@ make it a perfect utility on modern distros.")
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (base32
"0isgmav3z3nb5bsdya8m3haqhzj1lyfjx7i812cqfjrh2a9msin4"))))
"15a6vb67y5wsmf0irrq7sxam18yqpz64130k83ryf24mp40h661b"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after
'unpack 'autogen.sh-and-fix-paths
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; XXX this can probably be removed after version 1.7.1.
;; 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))))
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "sh" "autogen.sh")
#t)))
#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "--sysconfdir="
@ -2516,7 +2520,7 @@ make it a perfect utility on modern distros.")
(synopsis "CPU scaling for thermal management")
(description "The Linux Thermal Daemon helps monitor and control temperature
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"))
(license license:gpl2+)))
@ -2652,3 +2656,116 @@ Python loading in HPC environments.")
;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux"))
(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
(package
(name "qrencode")
(version "3.4.4")
(version "4.0.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://fukuchi.org/works/qrencode/qrencode-" version
".tar.gz"))
".tar.bz2"))
(sha256
(base32
"0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577"))))
"02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069"))))
(build-system gnu-build-system)
(inputs `(("libpng" ,libpng)))
(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 © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; 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 © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -27,7 +27,9 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages documentation)
#:use-module (gnu packages ed)
#:use-module (gnu packages flex)
@ -60,15 +62,15 @@
(define-public mpfrcx
(package
(name "mpfrcx")
(version "0.4.2")
(version "0.5")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.multiprecision.org/mpfrcx/download/mpfrcx-"
"http://www.multiprecision.org/downloads/mpfrcx-"
version ".tar.gz"))
(sha256
(base32
"0grw66b255r574lvll1bqccm5myj2m8ajzsjaygcyq9zjnnbnhhy"))))
"1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs"))))
(build-system gnu-build-system)
(propagated-inputs
`(("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
implemented. On the other hand, these comprise asymptotically fast
multiplication routines such as ToomCook and the FFT.")
(license license:lgpl2.1+)
(license license:lgpl3+)
(home-page "http://mpfrcx.multiprecision.org/")))
(define-public cm
@ -211,7 +213,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(define-public giac-xcas
(package
(name "giac-xcas")
(version "1.4.9-45")
(version "1.4.9-59")
(source (origin
(method url-fetch)
;; "~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"))
(sha256
(base32
"11za5rznr2dgy6598y4iwrcyi86w7f601ci9i794kl8k22pqhcd8"))))
"0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -519,31 +521,40 @@ a C program.")
(license license:bsd-3)))
(define-public fftw
;; TODO: Make this 3.3.7 (see below) on the next upgrade cycle.
(package
(name "fftw")
(version "3.3.5")
(version "3.3.7")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
version".tar.gz"))
(sha256
(base32
"1kwbx92ps0r7s2mqy7lxbxanslxdzj7dp7r7gmdkzv1j8yqf3kwf"))))
"0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
'("--enable-shared" "--enable-openmp" "--enable-threads")
#:phases (alist-cons-before
'build 'no-native
(lambda _
;; By default '-mtune=native' is used. However, that may
;; cause the use of ISA extensions (SSE2, etc.) that are
;; not necessarily available on the user's machine when
;; that package is built on a different machine.
(substitute* (find-files "." "Makefile$")
(("-mtune=native") "")))
%standard-phases)))
`(#:configure-flags
'("--enable-shared" "--enable-openmp" "--enable-threads"
,@(let ((system (or (%current-target-system) (%current-system))))
;; Enable SIMD extensions for codelets. See details at:
;; <http://fftw.org/fftw3_doc/Installation-on-Unix.html>.
(cond
((string-prefix? "x86_64" system)
'("--enable-sse2" "--enable-avx" "--enable-avx2"
"--enable-avx512" "--enable-avx-128-fma"))
((string-prefix? "i686" system)
'("--enable-sse2"))
((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)))
(home-page "http://fftw.org")
(synopsis "Computing the discrete Fourier transform")
@ -559,8 +570,15 @@ cosine/ sine transforms or DCT/DST).")
(name "fftwf")
(arguments
(substitute-keyword-arguments (package-arguments fftw)
((#:configure-flags cf)
`(cons "--enable-float" ,cf))))
((#:configure-flags fftw-configure-flags)
`(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
(string-append (package-description fftw)
" Single-precision version."))))
@ -579,42 +597,6 @@ cosine/ sine transforms or DCT/DST).")
(string-append (package-description fftw)
" 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
(package
(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
;; anyway, so just skip them.
'(begin
(substitute* "unsupported/CMakeLists.txt"
(("add_subdirectory\\(test.*")
"# Do not build the tests for unsupported features.\n"))
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(unsupported\\)")
"# Do not build the tests for unsupported features.\n")
;; Work around
;; <http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1114>.
(("\"include/eigen3\"")
@ -743,7 +726,8 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
;; See
;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d
((".*svd_preallocate[^\n]*" &)
(string-append "//" & " // Not supported by BDCSVD")))))))
(string-append "//" & " // Not supported by BDCSVD")))
#t))))
(build-system cmake-build-system)
(arguments
'(;; 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.
;; See 'COPYING.README' for details.
(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 git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system android-ndk)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python)
#:use-module (gnu packages selinux)
#:use-module (gnu packages ssh)
#:use-module (gnu packages version-control)
#:use-module (gnu packages tls)
#: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
;; packages. They are licensed under GPL-2 and have copyright:
;; 2012, Stefan Handschuh <handschuh.stefan@googlemail.com>
@ -58,52 +113,69 @@
version "-checkout"))
(sha256
(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
(name "liblog")
(name "android-liblog")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system gnu-build-system)
(build-system android-ndk-build-system)
(arguments
`(#:tests? #f ; TODO.
#:make-flags '("CC=gcc")
`(#:make-flags '("LDLIBS=-lpthread")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "liblog") #t))
(add-after 'enter-source 'create-Makefile
(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
(add-after 'install 'ldconfig
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(install-file "liblog.so.0" lib)
(with-directory-excursion lib
(symlink "liblog.so.0" "liblog.so"))
(let ((out (assoc-ref outputs "out")))
(symlink "liblog.so.0" (string-append out "/lib/liblog.so"))
#t))))))
(home-page "https://developer.android.com/")
(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.")
(license license:asl2.0)))
(define libbase
(define android-libbase
(package
(name "libbase")
(name "android-libbase")
(version (android-platform-version))
(source (origin
(inherit (android-platform-system-core version))
(patches
(search-patches "libbase-use-own-logging.patch"
"libbase-fix-includes.patch"))))
(build-system gnu-build-system)
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(arguments
`(#:tests? #f ; TODO.
`(#:tests? #f ; Test failure: logging.UNIMPLEMENTED
#:make-flags '("CXXFLAGS=-std=gnu++11")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "base") #t))
(add-after 'enter-source 'create-Makefile
(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)))
(lambda _ (chdir "base") #t)))))
(inputs `(("android-liblog" ,android-liblog)))
(home-page "https://developer.android.com/")
(synopsis "Android platform base library")
(description "@code{libbase} is a library in common use by the
various Android core host applications.")
(license license:asl2.0)))
(define libcutils
(define android-libcutils
(package
(name "libcutils")
(name "android-libcutils")
(version (android-platform-version))
(source (android-platform-system-core version))
(build-system gnu-build-system)
@ -206,10 +245,13 @@ various Android core host applications.")
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(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)
(with-directory-excursion lib
(symlink "libcutils.so.0" "libcutils.so"))
(copy-recursively "../include/cutils"
(string-append include "/cutils"))
#t))))))
(home-page "https://developer.android.com/")
(synopsis "Android platform c utils library")
@ -217,90 +259,92 @@ various Android core host applications.")
various Android core host applications.")
(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
(package
(name "adb")
(version (android-platform-version))
(source (origin
(inherit (android-platform-system-core version))
(patches
(search-patches "libbase-use-own-logging.patch"
"libbase-fix-includes.patch"))))
(build-system gnu-build-system)
(source (android-platform-system-core version))
(build-system android-ndk-build-system)
(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
(add-after 'unpack 'enter-source
(lambda _ (chdir "adb") #t))
(add-before 'build 'fix-clang
(lambda _
;; adb_client.h contains _Nonnull and _Nullable attributes, that
;; are not understood by gcc.
(substitute* "adb_client.h"
(("_Nonnull") "")
(("_Nullable") ""))
(add-after 'enter-source 'make-libs-available
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "Android.mk"
(("libcrypto_static") "libcrypto"))
#t))
(add-before 'build 'fix-main
(lambda _
;; main.cpp used to be adb_main.cpp in the current directory
;; rather than in its own subdirectory, but it was not fixed.
;; 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))
(add-after 'install 'install-headers
(lambda* (#:key inputs outputs #:allow-other-keys)
(install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include"))
#t)))))
(inputs
`(("libbase" ,libbase)
("libcutils" ,libcutils)
`(("android-libbase" ,android-libbase)
("android-libcutils" ,android-libcutils)
("android-liblog" ,android-liblog)
("openssl" ,openssl)))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Android Debug Bridge")
@ -329,8 +373,10 @@ to a Unix shell that can run commands on the connected device or emulator.")
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(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 "bootimg.h" include)
#t))))))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(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.")
(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
(package
(name "android-udev-rules")
@ -360,7 +663,8 @@ Images.")
(use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source")))
(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")
(synopsis "udev rules for 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
;;; 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.
;;;
@ -87,11 +87,10 @@ around or take advantage of platform-specific deficiencies or features.")
(apr (assoc-ref inputs "apr"))
(expat (assoc-ref inputs "expat")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(string-append "--with-apr=" apr)
(string-append "--with-expat=" expat)))))))
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--with-apr=" apr)
(string-append "--with-expat=" expat))))))
;; There are race conditions during 'make check'. Typically, the
;; 'testall' executable is not built yet by the time 'make check' tries

View File

@ -55,7 +55,8 @@
"/bin/aspell")))
(wrap-program bin/aspell
'("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)))
(native-search-paths
@ -101,7 +102,7 @@ dictionaries, including personal ones.")
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"))))))
(invoke "./configure")))))
#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "dictdir=" out "/lib/aspell")

View File

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

View File

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

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.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.
;;;
@ -42,13 +43,14 @@
(modify-phases %standard-phases
(add-after 'configure 'patch-makefile-SHELL
(lambda _
(patch-makefile-SHELL "include/buildmacros")))
(patch-makefile-SHELL "include/buildmacros")
#t))
(replace 'install
(lambda _
(zero? (system* "make"
"install"
"install-lib"
"install-dev"))))
(invoke "make"
"install"
"install-lib"
"install-dev")))
(replace 'check
(lambda* (#:key target #:allow-other-keys)
;; Use the right shell.
@ -57,11 +59,14 @@
(which "sh")))
;; 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
(system* "make" "tests" "-C" "test"))
;; XXX: Ignore the test result since this is
;; dependent on the underlying file system.
#t)))))
(inputs
;; 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 Alex Kost <alezost@gmail.com>
;;; 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 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -12,6 +12,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -212,7 +213,8 @@ streams from live audio.")
"libs/ardour/revision.cc"
(lambda (port)
(format port ,(string-append "#include \"ardour/revision.h\"
namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
namespace ARDOUR { const char* revision = \"" version "\" ; }"))
#t)))
(sha256
(base32
"0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
@ -514,7 +516,9 @@ tools (analyzer, mono/stereo tools, crossovers).")
(modules '((guix build utils)))
(snippet
;; remove prebuilt binaries
'(delete-file-recursively "linux_32bit"))))
'(begin
(delete-file-recursively "linux_32bit")
#t))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@ -569,16 +573,7 @@ based on human speech recordings.")
(modify-phases %standard-phases
(add-after 'unpack 'remove-compiler-flags
(lambda _
(substitute* '("src/casynth/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")
(substitute* (find-files "." "CMakeLists.txt")
(("-msse2 -mfpmath=sse") ""))
#t)))))
(inputs
@ -1034,7 +1029,7 @@ follower.")
(define-public fluidsynth
(package
(name "fluidsynth")
(version "1.1.10")
(version "1.1.11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1043,7 +1038,7 @@ follower.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"04jlgq1d1hd8r9cnmkl3lgf1fgm7kgy4hh9nfddap41fm1wp121p"))))
"0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@ -1095,10 +1090,10 @@ also play midifiles using a Soundfont.")
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(replace 'bootstrap
(lambda _
(substitute* "bootstrap" (("\r\n") "\n"))
(zero? (system* "sh" "bootstrap")))))))
(invoke "sh" "bootstrap"))))))
(home-page "http://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description
@ -1202,14 +1197,15 @@ PS, and DAB+.")
(setenv "PATH" (string-append
(assoc-ref %build-inputs "bzip2") "/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")
;; Use absolute pattern references
(substitute* "freepats.cfg"
(("Tone_000") (string-append out "/Tone_000"))
(("Drum_000") (string-append out "/Drum_000")))
(mkdir-p out)
(copy-recursively "." out)))))
(copy-recursively "." out)
#t))))
(native-inputs
`(("tar" ,tar)
("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)
(setenv "LDFLAGS"
(string-append "-Wl,-rpath="
(assoc-ref outputs "out") "/lib")))))))
(assoc-ref outputs "out") "/lib"))
#t)))))
;; required by lilv-0.pc
(propagated-inputs
`(("serd" ,serd)
@ -1997,14 +1994,14 @@ and ALSA.")
(define-public qjackctl
(package
(name "qjackctl")
(version "0.5.0")
(version "0.5.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"0lx81dfwanc10vrny1vzi0wx73ph82dlz99ffjzsigj3cqzz6x4s"))))
"0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f)) ; no check target
@ -2041,9 +2038,9 @@ into various outputs and to start, stop and configure jackd")
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out")))))))))
(invoke "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out"))))))))
(native-inputs
`(("qtbase" ,qtbase))) ; for qmake
(inputs
@ -2073,6 +2070,7 @@ background file post-processing.")
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
"-DSC_QT=off"
"-DSC_EL=off") ;scel is packaged individually as
;emacs-scel.
#:modules ((guix build utils)
@ -2133,8 +2131,7 @@ set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\
external_libraries/yaml-cpp/include)"))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
`(("pkg-config" ,pkg-config)))
(inputs
`(("jack" ,jack-1)
("libsndfile" ,libsndfile)
@ -2147,12 +2144,7 @@ external_libraries/yaml-cpp/include)"))
("icu4c" ,icu4c)
("boost" ,boost)
("boost-sync" ,boost-sync)
("yaml-cpp" ,yaml-cpp)
("qtbase" ,qtbase) ;IDE support
("qtwebkit" ,qtwebkit)
("qtsensors" ,qtsensors)
("qtdeclarative" ,qtdeclarative)
("qtlocation" ,qtlocation)))
("yaml-cpp" ,yaml-cpp)))
(home-page "https://github.com/supercollider/supercollider")
(synopsis "Synthesis engine and programming language")
(description "SuperCollider is a synthesis engine (@code{scsynth} or
@ -2595,12 +2587,6 @@ Tracker 3 S3M and Impulse Tracker IT files.")
("automake" ,automake)
("libtool" ,libtool)
("file" ,file)))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "sh" "bootstrap")))))))
(home-page "http://www.surina.net/soundtouch/")
(synopsis
"Audio processing library for changing tempo, pitch and playback rate")
@ -2750,7 +2736,7 @@ interface.")
(define-public qsynth
(package
(name "qsynth")
(version "0.5.0")
(version "0.5.1")
(source
(origin
(method url-fetch)
@ -2758,7 +2744,7 @@ interface.")
"/qsynth-" version ".tar.gz"))
(sha256
(base32
"1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584"))))
"0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" phase
@ -2863,8 +2849,10 @@ result.")
version ".tar.bz2"))
(snippet
;; Don't optimize for a specific processor architecture.
'(substitute* "libs/Makefile"
(("^CXXFLAGS \\+= -march=native") "")))
'(begin
(substitute* "libs/Makefile"
(("^CXXFLAGS \\+= -march=native") ""))
#t))
(modules '((guix build utils)))
(sha256
(base32
@ -2908,8 +2896,10 @@ engine.")
version ".tar.bz2"))
(snippet
;; Don't optimize for a specific processor architecture.
'(substitute* '("apps/Makefile" "libs/Makefile")
(("^CXXFLAGS \\+= -march=native") "")))
'(begin
(substitute* '("apps/Makefile" "libs/Makefile")
(("^CXXFLAGS \\+= -march=native") ""))
#t))
(modules '((guix build utils)))
(sha256
(base32
@ -3003,12 +2993,6 @@ point audio data.")
"01xi3rvdmil9nawsha04iagjylqr1l9v9vlzk99scs8c207l58i4"))))
(build-system gnu-build-system)
;; 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
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -3137,7 +3121,7 @@ code, used in @code{libtoxcore}.")
(define-public gsm
(package
(name "gsm")
(version "1.0.17")
(version "1.0.18")
(source
(origin
(method url-fetch)
@ -3146,7 +3130,7 @@ code, used in @code{libtoxcore}.")
"-" version ".tar.gz"))
(sha256
(base32
"00bns0d4wwrvc60lj2w7wz4yk49q1f6rpdrwqzrxsha9d78mfnl5"))))
"041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "tst"
@ -3172,7 +3156,7 @@ code, used in @code{libtoxcore}.")
(mkdir-p (string-append out "/include/gsm"))
(copy-recursively "inc"
(string-append out "/include/gsm")))))
(delete 'configure))))
(delete 'configure)))) ; no configure script
(synopsis "GSM 06.10 lossy speech compression library")
(description "This C library provides an encoder and a decoder for the GSM
06.10 RPE-LTP lossy speech compression algorithm.")
@ -3221,12 +3205,6 @@ mixers.")
(base32
"1qinf41wl2ihx54zmmhanycihwjkn7dn1cicq6pp4rqbiv79b95x"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "autoreconf" "-vif")))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -3266,7 +3244,7 @@ on the ALSA software PCM plugin.")
"1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:tests? #f ; no tests
`(#:tests? #f ; no tests
#:out-of-source? #f ; for the 'install-doc' phase
#:configure-flags
(let* ((out (assoc-ref %outputs "out"))
@ -3278,13 +3256,13 @@ on the ALSA software PCM plugin.")
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(docdir (string-append out "/share/doc/snd")))
(mkdir-p docdir)
(doc (string-append out "/share/doc/"
,name "-" ,version)))
(for-each
(lambda (f)
(install-file f docdir))
(install-file f doc))
(find-files "." "\\.html$|COPYING"))
(copy-recursively "pix" (string-append docdir "/pix"))
(copy-recursively "pix" (string-append doc "/pix"))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -3418,7 +3396,7 @@ representations.")
(define-public cava
(package
(name "cava")
(version "0.6.0")
(version "0.6.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -3427,7 +3405,7 @@ representations.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1p24lz3h4d0h82ffylqr7mq8a8x1c66flm2r2bsv1liw51n1rma2"))))
"13d72swnjs894llf0paandmhf1lf90dz6ygkcdw4bv84wzkq1f4q"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -3446,7 +3424,7 @@ representations.")
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(replace 'bootstrap
(lambda* (#:key outputs #:allow-other-keys)
(setenv "HOME" (getcwd))
(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"))
(out (string-append %output "/share/soundfonts")))
(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")
(synopsis "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 © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; 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 © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -120,9 +121,9 @@ know anything about Autoconf or M4.")
(out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" bash)
(setenv "SHELL" bash)
(zero? (system* bash "./configure"
(string-append "--prefix=" out)
(string-append "--build=" build)))))))))))
(invoke bash "./configure"
(string-append "--prefix=" out)
(string-append "--build=" build))))))))))
(define (make-autoconf-wrapper autoconf)
@ -192,7 +193,8 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
(patch-shebang "configure"))
(exit (status:exit-val result))))
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.
(properties '((hidden? . #t)))))
@ -248,14 +250,14 @@ output is indexed in many ways to simplify browsing.")
(define-public automake
(package
(name "automake")
(version "1.15.1")
(version "1.16.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg"))
"08g979ficj18i1w6w5219bgmns7czr03iadf20mk3lrzl8wbn1ax"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
@ -287,32 +289,33 @@ output is indexed in many ways to simplify browsing.")
(setenv "CONFIG_SHELL" sh)
#t)))
;; Files like `install-sh', `mdate.sh', etc. must use
;; #!/bin/sh, otherwise users could leak erroneous shebangs
;; in the wild. See <http://bugs.gnu.org/14201> for an
;; example.
(add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share")))
(define (starts-with-shebang? file)
(equal? (call-with-input-file file
(lambda (p)
(list (get-u8 p) (get-u8 p))))
(map char->integer '(#\# #\!))))
;; Files like `install-sh', `mdate.sh', etc. must use
;; #!/bin/sh, otherwise users could leak erroneous shebangs
;; in the wild. See <http://bugs.gnu.org/14201> for an
;; example.
(add-after 'install 'unpatch-shebangs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share")))
(define (starts-with-shebang? file)
(equal? (call-with-input-file file
(lambda (p)
(list (get-u8 p) (get-u8 p))))
(map char->integer '(#\# #\!))))
(for-each (lambda (file)
(when (and (starts-with-shebang? file)
(executable-file? file))
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")
(("^#!.*/bin/env(.*)$" _ args)
(string-append "#!/usr/bin/env"
args)))))
(find-files dir ".*"))))))))
(for-each (lambda (file)
(when (and (starts-with-shebang? file)
(executable-file? file))
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")
(("^#!.*/bin/env(.*)$" _ args)
(string-append "#!/usr/bin/env"
args)))))
(find-files dir ".*"))
#t))))))
(home-page "https://www.gnu.org/software/automake/")
(synopsis "Making GNU standards-compliant Makefiles")
(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.")
(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
(package
(name "libtool")
@ -353,6 +341,9 @@ Makefile, simplifying the entire process for the developer.")
(propagated-inputs `(("m4" ,m4)))
(native-inputs `(("m4" ,m4)
("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
("automake" ,automake) ;some tests rely on 'aclocal'
("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
(package
(name "nss-mdns")
(version "0.12")
(version "0.14.1")
(home-page "https://github.com/lathiat/nss-mdns")
(source (origin
(method url-fetch)
@ -85,32 +85,13 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
name "-" version ".tar.gz"))
(sha256
(base32
"1p2vj9fz4kzrjrj81ipf4qwgnr2n7a8cbzw4bpk18xyqhdx8h775"))
(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))))))
"134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'set-avahi-socket-name
(lambda _
;; The Avahi daemon socket is expected by
;; 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)))))
;; The Avahi daemon socket is expected by 'configure.ac' to be at
;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in
;; /run/avahi-daemon/socket. Remove the "$(localstatedir)" bit.
'(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket")))
(synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in")
(description
"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))
(source #f)
(build-system trivial-build-system)
(arguments '(#:builder (mkdir %output)))
(arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs
`(("avrdude" ,avrdude)
("binutils" ,avr-binutils)

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -63,7 +64,7 @@
(define-public duplicity
(package
(name "duplicity")
(version "0.7.12")
(version "0.7.17")
(source
(origin
(method url-fetch)
@ -73,12 +74,13 @@
version ".tar.gz"))
(sha256
(base32
"1rhgrz2lm9vbfdp2raykrih1c6n2lw5jd572z4dsz488m52avjqi"))))
"0jmh3h09680xyf33hzxxxl74bwz66zqhzvjlj7j89r9rz3qwa91p"))))
(build-system python-build-system)
(native-inputs
`(("util-linux" ,util-linux) ;setsid command, for the tests
("par2cmdline" ,par2cmdline)
("python-pexpect" ,python2-pexpect)
("python-fasteners" ,python2-fasteners)
("mock" ,python2-mock)))
(propagated-inputs
`(("lockfile" ,python2-lockfile)
@ -203,7 +205,6 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(base32
"1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))
(build-system gnu-build-system)
;; TODO: Add -L/path/to/nettle in libarchive.pc.
(inputs
`(("zlib" ,zlib)
("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 tests allow one to disable tests matching a globbing pattern.
(and (zero? (system* "make"
"libarchive_test" "bsdcpio_test" "bsdtar_test"))
;; XXX: This glob disables too much.
(zero? (system* "./libarchive_test" "^test_*_disk*"))
(zero? (system* "./bsdcpio_test" "^test_owner_parse"))
(zero? (system* "./bsdtar_test"))))))
(invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
;; XXX: This glob disables too much.
(invoke "./libarchive_test" "^test_*_disk*")
(invoke "./bsdcpio_test" "^test_owner_parse")
(invoke "./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
;; compiled with C99 or C11 or a gnu variant.
#:configure-flags '("CFLAGS=-O2 -g -std=c99")))
@ -278,9 +300,6 @@ random access nor for in-place modification.")
`(#:parallel-build? #f ;race conditions
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "autoreconf")))
(add-before 'build 'qualify-inputs
(lambda* (#:key inputs #:allow-other-keys)
;; This script is full of pitfalls. Fix some that particularly
@ -468,7 +487,8 @@ detection, and lossless compression.")
;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively
(list "blake2" "lz4" "zstd")))))))
(list "blake2" "lz4" "zstd")))
#t))))
(build-system python-build-system)
(arguments
`(#: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 © 2014 Andreas Enge <andreas@enge.fr>
;;; 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, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; 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 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
@ -35,6 +36,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages ed)
#:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision)
@ -126,14 +128,14 @@ including, for example, recursive directory searching.")
(define-public sed
(package
(name "sed")
(version "4.4")
(version "4.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/sed/sed-" version
".tar.xz"))
(sha256
(base32
"0fv88bcnraixc8jvpacvxshi30p5x9m7yb8ns1hfv07hmb2ypmnb"))))
"0h3b2jfj57wmz680vkbyavlsrkak556qhvs7m7fdlawwhg477bbs"))))
(build-system gnu-build-system)
(synopsis "Stream editor")
(arguments
@ -147,15 +149,9 @@ including, for example, recursive directory searching.")
(substitute* "Makefile.in"
(("^doc/sed\\.1:.*")
"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)))))
(native-inputs
`(("perl" ,perl))) ;for tests
(description
"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
@ -168,20 +164,20 @@ implementation offers several extensions over the standard utility.")
(define-public tar
(package
(name "tar")
(version "1.29")
(version "1.30")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/tar/tar-"
version ".tar.xz"))
(sha256
(base32
"097hx7sbzp8qirl4m930lw84kn0wmxhmq7v1qpra3mrg0b8cyba0"))
(patches (search-patches "tar-CVE-2016-6321.patch"
"tar-skip-unreliable-tests.patch"))))
"1lyjyk8z8hdddsxw0ikchrsfg3i0x3fsh7l63a8jgaz1n7dr5gzi"))
(patches (search-patches "tar-skip-unreliable-tests.patch"
"tar-remove-wholesparse-check.patch"))))
(build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space.
(arguments
'(#:phases (modify-phases %standard-phases
`(#:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
@ -189,7 +185,27 @@ implementation offers several extensions over the standard utility.")
(substitute* "src/system.c"
(("/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
;; to refer to the target Bash.
@ -211,16 +227,22 @@ standard utility.")
(define-public patch
(package
(name "patch")
(version "2.7.5")
(version "2.7.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/patch/patch-"
version ".tar.xz"))
(sha256
(base32
"16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx"))
"1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
(patches (search-patches "patch-hurd-path-max.patch"))))
(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)))
(synopsis "Apply differences to originals, with optional backups")
(description
@ -304,14 +326,14 @@ used to apply commands with arbitrarily long arguments.")
(define-public coreutils
(package
(name "coreutils")
(version "8.28")
(version "8.29")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.xz"))
(sha256
(base32
"0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi"))))
"0plm1zs9il6bb5mk881qvbghq4glc8ybbgakk2lfzb0w64fgml4j"))))
(build-system gnu-build-system)
(inputs `(("acl" ,acl) ; TODO: add SELinux
("gmp" ,gmp) ;bignums in 'expr', yay!
@ -378,13 +400,17 @@ functionality beyond that which is outlined in the POSIX standard.")
(sha256
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))
(patches (search-patches "make-impure-dirs.patch"))))
(patches (search-patches "make-impure-dirs.patch"
"make-glibc-compat.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
(inputs `(("guile" ,guile-2.0)))
(outputs '("out" "debug"))
(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
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
@ -393,7 +419,8 @@ functionality beyond that which is outlined in the POSIX standard.")
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))
bash)))
#t))))))
(synopsis "Remake files automatically")
(description
"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
(package
(name "binutils")
(version "2.28.1")
(version "2.30")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
(base32
"1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939"))
(patches (search-patches "binutils-ld-new-dtags.patch"
"binutils-loongson-workaround.patch"))))
"028cklfqaab24glva1ks2aqa1zxa6w6xmc8q34zs1sb7h22dxspg"))
(patches (search-patches "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
;; 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.
"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.
"--with-lib-path=/no-ld-lib-path"
@ -512,7 +544,8 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
target "-ld")
"/bin/ld"))))
(chmod ld #o555)
(compile-file ld #:output-file go))))))
(compile-file ld #:output-file go)
#t)))))
(synopsis "The linker wrapper")
(description
"The linker wrapper (or 'ld-wrapper') wraps the linker to add any
@ -526,38 +559,31 @@ store.")
(define-public glibc/linux
(package
(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
;; on "version-major+minor" to determine where locales are found.
(version "2.26.105-g0890d5379c")
(replacement glibc-2.26-patched)
(version "2.27")
(source (origin
(method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
"glibc-" (version-major+minor version) "-"
(caddr (string-split version #\.)) ".tar.xz"))
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
"1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
"0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji"))
(snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so
;; instead of ours.
'(substitute* "sysdeps/unix/sysv/linux/configure"
(("use_ldconfig=yes")
"use_ldconfig=no")))
'(begin
(substitute* "sysdeps/unix/sysv/linux/configure"
(("use_ldconfig=yes")
"use_ldconfig=no"))
#t))
(modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-2.27-git-fixes.patch"
"glibc-hidden-visibility-ldconfig.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)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@ -582,8 +608,7 @@ store.")
(guix build gnu-build-system))
#:configure-flags
(list "--enable-add-ons"
"--sysconfdir=/etc"
(list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
@ -618,10 +643,7 @@ store.")
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash")
"/bin/bash")
;; XXX: Work around "undefined reference to `__stack_chk_guard'".
"libc_cv_ssp=no" "libc_cv_ssp_strong=no")
"/bin/bash"))
#:tests? #f ; XXX
#:phases (modify-phases %standard-phases
@ -685,7 +707,9 @@ store.")
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
"exec perl"))
#t)))
(add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
@ -732,6 +756,7 @@ store.")
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
("bison" ,bison)
("gettext" ,gettext-minimal)))
(native-search-paths
@ -799,14 +824,13 @@ with the Linux kernel.")
;; Force mach/hurd/libpthread subdirs to build first in order to avoid
;; linking errors.
;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html>
(let ((-j (list "-j" (number->string (parallel-job-count)))))
(let-syntax ((make (syntax-rules ()
((_ target)
(zero? (apply system* "make" target -j))))))
(and (make "mach/subdir_lib")
(make "hurd/subdir_lib")
(make "libpthread/subdir_lib")
(zero? (apply system* "make" -j)))))))))
(let ((flags (list "-j" (number->string (parallel-job-count)))))
(define (make target)
(apply invoke "make" target flags))
(make "mach/subdir_lib")
(make "hurd/subdir_lib")
(make "libpthread/subdir_lib")
(apply invoke "make" flags))))))
((#:configure-flags original-configure-flags)
`(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
;; the old format (which the new libc cannot cope with.)
(define glibc-2.26-patched
(define-public glibc-2.26
(package
(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
(inherit (package-source glibc))
(patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch")
(origin-patches (package-source glibc))))))))
(uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
"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
(package
@ -862,7 +898,6 @@ GLIBC/HURD for a Hurd host"
"1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
@ -881,7 +916,6 @@ GLIBC/HURD for a Hurd host"
"1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2017-1000366-pt1.patch"
@ -901,7 +935,6 @@ GLIBC/HURD for a Hurd host"
"1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2016-3075.patch"
@ -923,6 +956,7 @@ GLIBC/HURD for a Hurd host"
(base32
"0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2015-7547.patch"
@ -965,8 +999,8 @@ the 'share/locale' sub-directory of this package.")
`(modify-phases ,phases
(replace 'build
(lambda _
(zero? (system* "make" "localedata/install-locales"
"-j" (number->string (parallel-job-count))))))
(invoke "make" "localedata/install-locales"
"-j" (number->string (parallel-job-count)))))
(delete 'install)
(delete 'move-static-libs)))
((#:configure-flags flags)
@ -987,8 +1021,7 @@ the 'share/locale' sub-directory of this package.")
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (srfi srfi-1)
(guix build utils))
(use-modules (guix build utils))
(let* ((libc (assoc-ref %build-inputs "glibc"))
(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"))
(mkdir-p localedir)
(every (lambda (locale)
(define file
;; Use the "normalized codeset" by
;; default--e.g., "en_US.utf8".
(string-append localedir "/" locale ".utf8"))
(for-each (lambda (locale)
(define file
;; Use the "normalized codeset" by
;; default--e.g., "en_US.utf8".
(string-append localedir "/" locale ".utf8"))
(and (zero? (system* "localedef" "--no-archive"
"--prefix" localedir
"-i" locale
"-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)))
(invoke "localedef" "--no-archive"
"--prefix" localedir
"-i" locale
"-f" "UTF-8" file)
;; 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"))))))
;; For backward compatibility with Guix
;; <= 0.8.3, add "xx_YY.UTF-8".
(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)
("gzip" ,gzip)))
(synopsis "Small sample of UTF-8 locales")
@ -1063,30 +1096,26 @@ command.")
"--host=i586-pc-gnu"
"--enable-obsolete-rpc"))
((#:phases _)
'(alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(and (zero? (system* "make" "install-headers"))
'(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "install-headers")
;; Make an empty stubs.h to work around not being able to
;; produce a valid stubs.h and causing the build to fail. See
;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>.
(let ((out (assoc-ref outputs "out")))
(close-port
(open-output-file
(string-append out "/include/gnu/stubs.h"))))))
;; Nothing to build.
(alist-delete
'build
(alist-cons-before
'configure 'pre-configure
(lambda _
;; Use the right 'pwd'.
(substitute* "configure"
(("/bin/pwd") "pwd")))
%standard-phases))))))))
;; Make an empty stubs.h to work around not being able to
;; produce a valid stubs.h and causing the build to fail. See
;; <http://lists.gnu.org/archive/html/guix-devel/2014-04/msg00233.html>.
(let ((out (assoc-ref outputs "out")))
(close-port
(open-output-file
(string-append out "/include/gnu/stubs.h"))))
#t))
(delete 'build) ; nothing to build
(add-before 'configure 'patch-configure-script
(lambda _
;; Use the right 'pwd'.
(substitute* "configure"
(("/bin/pwd") "pwd"))
#t))))))))
(define-public tzdata
(package
@ -1123,8 +1152,8 @@ command.")
(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"))))))
(invoke "tar" "xvf" source)
(invoke "tar" "xvf" (assoc-ref inputs "tzcode"))))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
;; Move data in the right place.
@ -1139,7 +1168,8 @@ command.")
(copy-recursively (string-append out "/share/zoneinfo-leaps")
(string-append out "/share/zoneinfo/right"))
(delete-file-recursively
(string-append out "/share/zoneinfo-leaps")))))
(string-append out "/share/zoneinfo-leaps"))
#t)))
(delete 'configure))))
(inputs `(("tzcode" ,(origin
(method url-fetch)
@ -1164,63 +1194,7 @@ and daylight-saving rules.")
;;; will typically be obsolete and should never be referred to by a built
;;; package.
(define-public tzdata-for-tests
(hidden-package (package (inherit 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")))))))))
(hidden-package tzdata))
(define-public libiconv
(package
@ -1237,9 +1211,11 @@ and daylight-saving rules.")
(snippet
;; Work around "declared gets" error on glibc systems (fixed by
;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.)
'(substitute* "srclib/stdio.in.h"
(("^#undef gets") "")
(("^_GL_WARN_ON_USE \\(gets.*") "")))))
'(begin
(substitute* "srclib/stdio.in.h"
(("^#undef gets") "")
(("^_GL_WARN_ON_USE \\(gets.*") ""))
#t))))
(build-system gnu-build-system)
(synopsis "Character set conversion library")
(description

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -72,7 +72,14 @@
(9 "0g1l56kvw61rpw7dqa9fcl9llkl693h73g631hrhxlm030ddssqb")
(10 "01lfhrkdsdkdz8ypzapr614ras23x7ckjnr60aa5bzkaqprccrc4")
(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)
"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))
(define-public bash
(let* ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'"
"-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
"-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
(let* ((cppflags (string-join '("-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
"-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
"-DNON_INTERACTIVE_LOGIN_SHELLS"
"-DSSH_SOURCE_BASHRC")
@ -160,7 +165,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
;; Add a `sh' -> `bash' link.
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion (string-append out "/bin")
(symlink "bash" "sh")))))
(symlink "bash" "sh")
#t))))
(add-after 'install 'move-development-files
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.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>
;;;
;;; This file is part of GNU Guix.
@ -30,14 +30,14 @@
(define-public libgc
(package
(name "libgc")
(version "7.6.0")
(version "7.6.4")
(source (origin
(method url-fetch)
(uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
version ".tar.gz"))
(sha256
(base32
"143x7g0d0k6250ai6m2x3l4y352mzizi4wbgrmahxscv2aqjhjm1"))))
"076dzsqqyxd3nlzs0z277vvhqjp8nv5dqi763s0m90zr6ljiyk5r"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -91,7 +91,7 @@ C or C++ programs, though that is not its primary goal.")
(define-public libatomic-ops
(package
(name "libatomic-ops")
(version "7.4.8")
(version "7.6.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -99,13 +99,13 @@ C or C++ programs, though that is not its primary goal.")
version "/libatomic_ops-" version ".tar.gz"))
(sha256
(base32
"0sj3plzpbqgxrqpjq3w2zi3zxxqqps71ncdwk5s1k30i9d9da1f4"))))
"0knxncsjhbknlyy6lx7ycxhpzfk3sykhvicgxyp0rmsxd1d3v0jv"))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(synopsis "Accessing hardware atomic memory update operations")
(description
"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
lock-free code, experiment with thread programming paradigms, etc.")
(home-page "https://github.com/ivmai/libatomic_ops/")

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,17 +29,49 @@
#:use-module (gnu packages statistics)
#: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
(package
(name "r-hpar")
(version "1.20.0")
(version "1.22.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "hpar" version))
(sha256
(base32
"0s5v79mgxdx862v1jrdf5pdap81nz5vjx25ni8s3sl97ldckf6j8"))))
"1b72hvzasf6q739gmx6jblbzzyq22l7crrkbbfkihv3v7s94g388"))))
(build-system r-build-system)
(home-page "https://bioconductor.org/packages/hpar/")
(synopsis "Human Protein Atlas in R")
@ -49,14 +82,14 @@ the Human Protein Atlas project.")
(define-public r-regioner
(package
(name "r-regioner")
(version "1.10.0")
(version "1.12.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "regioneR" version))
(sha256
(base32
"1vprp3l929hwzmvgskbhawfgnrymwc9n2rxd16rgagnv1dxnjxfp"))))
"09bzlaqdgy7wmzly3zc9y2da50d07mlixlnpaxdxpiwdk8qmhxsb"))))
(properties `((upstream-name . "regioneR")))
(build-system r-build-system)
(propagated-inputs
@ -65,7 +98,8 @@ the Human Protein Atlas project.")
("r-bsgenome" ,r-bsgenome)
("r-rtracklayer" ,r-rtracklayer)
("r-genomeinfodb" ,r-genomeinfodb)
("r-iranges" ,r-iranges)))
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://bioconductor.org/packages/regioneR/")
(synopsis "Association analysis of genomic regions")
(description "This package offers a statistical framework based on
@ -76,14 +110,14 @@ region sets and other genomic features.")
(define-public r-diffbind
(package
(name "r-diffbind")
(version "2.6.6")
(version "2.8.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "DiffBind" version))
(sha256
(base32
"1sm5h6nq77hjfis6kr1nqyizcxgfz87dgpqc4fxlfqkmsd9n3vkp"))))
"1w1hybzd732ccg3q8zhirwfilq8sx3frv1x98zfyj3svzw98fish"))))
(properties `((upstream-name . "DiffBind")))
(build-system r-build-system)
(inputs
@ -95,6 +129,8 @@ region sets and other genomic features.")
("r-dplyr" ,r-dplyr)
("r-edger" ,r-edger)
("r-genomicalignments" ,r-genomicalignments)
("r-genomicranges" ,r-genomicranges)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-gplots" ,r-gplots)
("r-iranges" ,r-iranges)
@ -105,6 +141,7 @@ region sets and other genomic features.")
("r-rcpp" ,r-rcpp)
("r-rsamtools" ,r-rsamtools)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-systempiper" ,r-systempiper)
("r-zlibbioc" ,r-zlibbioc)))
(home-page "http://bioconductor.org/packages/DiffBind")
@ -118,14 +155,14 @@ occupancy (overlap) analysis and plotting functions.")
(define-public r-ripseeker
(package
(name "r-ripseeker")
(version "1.18.0")
(version "1.20.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "RIPSeeker" version))
(sha256
(base32
"0bqkzwrncww7il36273chkd3gfxmii7p566ycki9qij419pwr35y"))))
"0y9cvzqslfxj3z9mnp47mknff0pky2g5x8x1z1s5yjcx35q89xfi"))))
(properties `((upstream-name . "RIPSeeker")))
(build-system r-build-system)
(propagated-inputs
@ -151,14 +188,14 @@ processing to visualization and annotation.")
(define-public r-multtest
(package
(name "r-multtest")
(version "2.34.0")
(version "2.36.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "multtest" version))
(sha256
(base32
"0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j"))))
"11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0"))))
(build-system r-build-system)
(propagated-inputs
`(("r-survival" ,r-survival)
@ -189,23 +226,27 @@ expressed genes in DNA microarray experiments.")
(define-public r-chippeakanno
(package
(name "r-chippeakanno")
(version "3.12.7")
(version "3.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256
(base32
"1zab489d7a6bh6ylc68x6yn47gdkmr7p3677grx9l2qafrryjr04"))))
"1kcnc3cnmrhdk1x7q3y6zsz09pgd3xn9xy1hfbxz48cajlb18ad0"))))
(properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-biostrings" ,r-biostrings)
("r-delayedarray" ,r-delayedarray)
("r-go-db" ,r-go-db)
("r-biomart" ,r-biomart)
("r-bsgenome" ,r-bsgenome)
("r-genomicfeatures" ,r-genomicfeatures)
("r-genomicranges" ,r-genomicranges)
("r-genomeinfodb" ,r-genomeinfodb)
("r-iranges" ,r-iranges)
("r-matrixstats" ,r-matrixstats)
("r-annotationdbi" ,r-annotationdbi)
("r-limma" ,r-limma)
@ -217,6 +258,7 @@ expressed genes in DNA microarray experiments.")
("r-dbi" ,r-dbi)
("r-ensembldb" ,r-ensembldb)
("r-biobase" ,r-biobase)
("r-s4vectors" ,r-s4vectors)
("r-seqinr" ,r-seqinr)
("r-idr" ,r-idr)
("r-genomicalignments" ,r-genomicalignments)
@ -239,16 +281,15 @@ enrichedGO (addGeneIDs).")
(define-public r-marray
(package
(name "r-marray")
(version "1.56.0")
(version "1.58.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "marray" version))
(sha256
(base32 "14c93i86yc7jn4ax8p4l0z6v9xisw1bv7gzb4a0gbxhxn7mddaic"))))
(base32 "0539flh3y1qy5b1bamkfwbskis765c5s33v1y9j51n33mxb9h08d"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
("r-limma" ,r-limma)))
`(("r-limma" ,r-limma)))
(home-page "http://bioconductor.org/packages/marray")
(synopsis "Exploratory analysis for two-color spotted microarray data")
(description "This package contains class definitions for two-color spotted
@ -259,12 +300,12 @@ normalization and quality checking.")
(define-public r-cghbase
(package
(name "r-cghbase")
(version "1.38.0")
(version "1.40.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "CGHbase" version))
(sha256
(base32 "0fynvcsjdbgp69i0nxrc8ni58rhb1kx9k5r3nb91n9i8s43gjqlm"))))
(base32 "1hf44vma3kgwr61kjbszvfxkava8bjqnam1mdncqvczbypb2xwaq"))))
(properties `((upstream-name . "CGHbase")))
(build-system r-build-system)
(propagated-inputs
@ -279,12 +320,12 @@ the @code{arrayCGH} packages.")
(define-public r-cghcall
(package
(name "r-cghcall")
(version "2.40.0")
(version "2.42.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "CGHcall" version))
(sha256
(base32 "11pi6awz3858yb4s0z3qf3kcmsdgp6d4aj41g4lfix1sv5amllch"))))
(base32 "0y71vfxv9x0am3xvv520yr95cb7m7y92dhdx1vkqki80jrmf12dz"))))
(properties `((upstream-name . "CGHcall")))
(build-system r-build-system)
(propagated-inputs
@ -302,16 +343,17 @@ the @code{arrayCGH} packages.")
(define-public r-qdnaseq
(package
(name "r-qdnaseq")
(version "1.14.0")
(version "1.16.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "QDNAseq" version))
(sha256
(base32 "0lgbv4s0xqgrs7q6ynb3c273sf7pyrp51jnc8ravq1z5g0a2zshy"))))
(base32 "1pj69mfyxwfd0d7h4kls9xq96sdc55y3rv20qpla50hw9libcwwd"))))
(properties `((upstream-name . "QDNAseq")))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
("r-biocparallel" ,r-biocparallel)
("r-cghbase" ,r-cghbase)
("r-cghcall" ,r-cghcall)
("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 © 2016, 2018 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, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
@ -62,7 +62,7 @@
(define-public transmission
(package
(name "transmission")
(version "2.93")
(version "2.94")
(source (origin
(method url-fetch)
(uri (string-append
@ -70,7 +70,7 @@
"master/transmission-" version ".tar.xz"))
(sha256
(base32
"02xrp49gsv4jkbzp37qrwlnb9nlja08s92dyvgdbr6a4187945c8"))))
"0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface
@ -257,7 +257,7 @@ maintained upstream.")
(define-public aria2
(package
(name "aria2")
(version "1.33.1")
(version "1.34.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/tatsuhiro-t/aria2/"
@ -265,7 +265,7 @@ maintained upstream.")
name "-" version ".tar.xz"))
(sha256
(base32
"06syqxia701dk96rcbhnd4x0arjj6d22gm3aqksz38am9y2f8f95"))))
"18vpgr430vxlwbcc3598rr1srfmwypls6wp1m4wf21hncc1ahi1s"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-libaria2"

View File

@ -1,11 +1,13 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -41,7 +43,7 @@
(define-public boost
(package
(name "boost")
(version "1.64.0")
(version "1.66.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -50,7 +52,8 @@
".tar.bz2"))
(sha256
(base32
"0cikd35xfkpg9nnl76yqqnqxnf3hyfjjww8xjd4akflprsm5rk3v"))))
"1aaw48cmimsskzgiclwn0iifp62a5iw9cbqrhfari876af1828ap"))
(patches (search-patches "boost-fix-icu-build.patch"))))
(build-system gnu-build-system)
(inputs `(("icu4c" ,icu4c)
("zlib" ,zlib)))
@ -65,22 +68,14 @@
;; Set the RUNPATH to $libdir so that the libs find each other.
(string-append "linkflags=-Wl,-rpath="
(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")
'()))
(assoc-ref %outputs "out") "/lib"))
#:phases
(modify-phases %standard-phases
(replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(delete 'bootstrap)
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((icu (assoc-ref inputs "icu4c"))
(out (assoc-ref outputs "out")))
(substitute* '("libs/config/configure"
"libs/spirit/classic/phoenix/test/runtest.sh"
"tools/build/doc/bjam.qbk"
@ -92,42 +87,29 @@
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
(zero? (system* "./bootstrap.sh"
(string-append "--prefix=" out)
"--with-toolset=gcc")))))
(replace
'build
(lambda* (#:key outputs make-flags #:allow-other-keys)
(zero? (apply system* "./b2"
(format #f "-j~a" (parallel-job-count))
make-flags))))
(replace
'install
(lambda* (#:key outputs make-flags #:allow-other-keys)
(zero? (apply system* "./b2" "install" make-flags)))))))
(invoke "./bootstrap.sh"
(string-append "--prefix=" out)
;; Auto-detection looks for ICU only in traditional
;; install locations.
(string-append "--with-icu=" icu)
"--with-toolset=gcc"))))
(replace 'build
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "./b2"
(format #f "-j~a" (parallel-job-count))
make-flags)))
(replace 'install
(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")
(description
"A collection of libraries intended to be widely useful, and usable
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."))))
(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
(let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
(version "1.55")
@ -158,7 +140,7 @@ across a broad spectrum of applications.")
(description "The Boost.Sync library provides mutexes, semaphores, locks
and events and other thread related facilities. Boost.Sync originated from
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
(package

View File

@ -33,6 +33,7 @@
#:use-module (gnu packages disk)
#:use-module (gnu packages bison)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages disk)
#:use-module (gnu packages firmware)
@ -49,6 +50,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig)
#:use-module (gnu packages virtualization)
#: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
(package
(name "u-boot")
(version "2018.01")
(version "2018.05")
(source (origin
(method url-fetch)
(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"))
(sha256
(base32
"1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk"))))
"0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad"))))
(native-inputs
`(("bc" ,bc)
;("dtc" ,dtc) ; they have their own incompatible copy.
("dtc" ,dtc)
("openssl" ,openssl)
("python-2" ,python-2)
("python2-coverage" ,python2-coverage)
("python2-pytest" ,python2-pytest)
("sdl" ,sdl)
("swig" ,swig)))
(build-system gnu-build-system)
(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).")
(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)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(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))
(zero? (apply system* "make" `(,@make-flags ,config-name)))
(begin
(display "Invalid board name. Valid board names are:")
(let ((suffix-len (string-length "_defconfig")))
(scandir "configs"
(lambda (file-name)
(when (string-suffix? "_defconfig" file-name)
(format #t
"- ~A\n"
(string-drop-right file-name
suffix-len))))))
(display "Invalid board name. Valid board names are:"
(current-error-port))
(let ((suffix-len (string-length "_defconfig"))
(entries (scandir "configs")))
(for-each (lambda (file-name)
(when (string-suffix? "_defconfig" file-name)
(format (current-error-port)
"- ~A\n"
(string-drop-right file-name
suffix-len))))
(sort entries string-ci<)))
#f)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec"))
(uboot-files (append
(find-files "." ".*\\.(bin|efi|img|spl|itb|dtb)$")
(find-files "." ".*\\.(bin|efi|img|spl|itb|dtb|rksd)$")
(find-files "." "^(MLO|SPL)$"))))
(mkdir-p libexec)
(install-file ".config" libexec)
;; Useful for "qemu -kernel".
(install-file "u-boot" libexec)
(for-each
(lambda (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")
"/bl31.bin")))
(setenv "BL31" bl31)
;; This is necessary while we're using the bundled dtc.
(setenv "PATH" (string-append (getenv "PATH") ":"
"scripts/dtc")))
;; This is necessary when we're using the bundled dtc.
;(setenv "PATH" (string-append (getenv "PATH") ":"
; "scripts/dtc"))
)
#t))))))
(native-inputs
`(("firmware" ,arm-trusted-firmware-pine64-plus)
@ -469,6 +554,43 @@ also initializes the boards (RAM etc).")
(define-public u-boot-mx6cuboxi
(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
(package
(name "vboot-utils")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -97,10 +97,10 @@
(define* (package-from-tarball name source program-to-test description
#:key snippet)
"Return a package that correspond to the extraction of SOURCE.
PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to
check whether everything is alright. If SNIPPET is provided, it is
evaluated after extracting SOURCE. SNIPPET should return true if
successful, or false to signal an error."
PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to check
whether everything is alright. If SNIPPET is provided, it is evaluated after
extracting SOURCE. SNIPPET should raise an exception to signal an error; its
return value is ignored."
(package
(name name)
(version "0")
@ -117,14 +117,14 @@ successful, or false to signal an error."
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(and (zero? (system* tar "xvf"
(string-append builddir "/binaries.tar")))
,@(if snippet (list snippet) '())
(zero? (system* (string-append "bin/" ,program-to-test)
"--version"))))))))
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '())
(invoke (string-append "bin/" ,program-to-test)
"--version"))))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
@ -389,8 +389,7 @@ $out/bin/guile --version~%"
(if (not (elf-file? "bin/egrep"))
(substitute* '("bin/egrep" "bin/fgrep")
(("^exec grep") (string-append (getcwd) "/bin/grep"))))
(chmod "bin" #o555)
#t)))
(chmod "bin" #o555))))
(define %bootstrap-binutils
(package-from-tarball "binutils-bootstrap"
@ -445,18 +444,20 @@ $out/bin/guile --version~%"
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(system* tar "xvf"
(string-append builddir
"/binaries.tar"))
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
;; Patch libc.so so it refers to the right path.
(substitute* "lib/libc.so"
(("/[^ ]+/lib/(libc|ld)" _ prefix)
(string-append out "/lib/" prefix))))))))
(string-append out "/lib/" prefix)))
#t)))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
@ -517,12 +518,12 @@ $out/bin/guile --version~%"
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(system* xz "-d" "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append out "/bin")))
(with-directory-excursion out
(system* tar "xvf"
(string-append builddir "/binaries.tar")))
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion bindir
(chmod "." #o755)
@ -537,7 +538,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
out libc libc libc
,(glibc-dynamic-linker))))
(chmod "gcc" #o555))))))
(chmod "gcc" #o555)
#t)))))
(inputs
`(("tar" ,(search-bootstrap-binary "tar" (%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
"1m0w0wqnz983l7fpp5p9pdsqr7n3ybrzp8ywjcvn0rihsrzj65j6"))))
(build-system cmake-build-system)
(inputs
`(("python" ,python-wrapper)))
(home-page "https://github.com/rizsotto/Bear")
(synopsis "Tool for generating a compilation database")
(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
;;; 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 © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@ -83,7 +83,7 @@ standard.")
(build-system trivial-build-system)
(native-inputs '())
(inputs `(("tcc" ,tcc)
("guile" ,guile-2.0)))
("guile" ,guile-2.2)))
;; By default TCC does not honor any search path environment variable.
;; This wrapper adds them.

View File

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

View File

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

View File

@ -63,7 +63,8 @@
(("crt") "pem"))
(mkdir-p bin)
(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")
(description
"certdata2pem.py is a Python script to transform X.509 certificate
@ -121,7 +122,7 @@
(mkdir-p certsdir)
(with-directory-excursion "nss/lib/ckfw/builtins/"
;; extract single certificates from blob
(system* "certdata2pem.py" "certdata.txt")
(invoke "certdata2pem.py" "certdata.txt")
;; copy selected .pem files into the output
(for-each maybe-install-cert
(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
;; similar.)
(chdir (string-append %output "/etc/ssl/certs"))
(unless (zero? (system* (string-append perl "/bin/perl")
(string-append openssl "/bin/c_rehash")
"."))
(error "'c_rehash' failed" openssl))))))
(invoke (string-append perl "/bin/perl")
(string-append openssl "/bin/c_rehash")
".")))))
(native-inputs
`(("openssl" ,openssl)
("perl" ,perl))) ;for 'c_rehash'

View File

@ -19,12 +19,12 @@
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; 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 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; 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 © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@ -104,9 +104,11 @@ source code editors and IDEs.")
(build-system gnu-build-system)
(arguments '(#:phases
(modify-phases %standard-phases
(add-before 'configure 'autoconf
(lambda _
(zero? (system* "autoreconf" "-vfi")))))))
;; XXX: The "bootstrap" phase detects the "bootstrap"
;; script, but fails to execute it, so we bootstrap
;; manually.
(replace 'bootstrap
(lambda _ (invoke "autoreconf" "-vfi"))))))
(native-inputs
`(("automake" ,automake)
("autoconf" ,autoconf)
@ -161,6 +163,8 @@ supervised tests.")
(base32
"1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix"))))))
;; When dependent packages upgraded to use newer version of catch, this one should
;; be removed.
(define-public catch-framework
(package
(name "catch")
@ -185,13 +189,13 @@ supervised tests.")
(incdir (string-append output "/include"))
(docdir (string-append output "/share/doc/catch-"
,version)))
(begin
(for-each mkdir-p (list incdir docdir))
(install-file (string-append source
"/single_include/catch.hpp")
incdir)
(copy-recursively (string-append source "/docs")
docdir))))))
(for-each mkdir-p (list incdir docdir))
(install-file (string-append source
"/single_include/catch.hpp")
incdir)
(copy-recursively (string-append source "/docs")
docdir)
#t))))
(home-page "http://catch-lib.net/")
(synopsis "Automated test framework for C++ and Objective-C")
(description
@ -199,6 +203,24 @@ supervised tests.")
multi-paradigm automated test framework for C++ and Objective-C.")
(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
(package
(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")
(license license:expat)))
;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
;; switched back to simply using (PACKAGE-SOURCE ...).
(define-public googletest
(package
(name "googletest")
@ -595,14 +619,14 @@ standard library.")
(define-public python-pytest
(package
(name "python-pytest")
(version "3.2.3")
(version "3.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest" version))
(sha256
(base32
"0g6w86ks73fnrnsyib9ii2rbyx830vn7aglsjqz9v1n2xwbndyi7"))))
"1q832zd07zak2lyxbycxjydh0jp7y3hvawjqzlvra6aghz8r3r7s"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -620,7 +644,11 @@ standard library.")
line)))
#t)))))
(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
`(;; Tests need the "regular" bash since 'bash-final' lacks `compgen`.
("bash" ,bash)
@ -634,20 +662,33 @@ standard library.")
"Pytest is a testing tool that provides auto-discovery of test modules
and functions, detailed info on failing assert statements, modular fixtures,
and many external plugins.")
(license license:expat)))
(license license:expat)
(properties `((python2-variant . ,(delay 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
(package
(inherit python-pytest)
(inherit (strip-python2-variant python-pytest))
(name "python-pytest-bootstrap")
(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
(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
(package
@ -1356,23 +1397,26 @@ normally the case.")
(define-public python-hypothesis
(package
(name "python-hypothesis")
(version "3.1.0")
(version "3.52.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "hypothesis" version))
(sha256
(base32
"0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw"))))
"0g54cypfi5qj6cgxfr7l1nb41r1cqhhngx4qxn4ga9h720rcsbr8"))))
(build-system python-build-system)
(native-inputs
`(("python-flake8" ,python-flake8)
("python-pytest" ,python-pytest-bootstrap)))
(propagated-inputs
`(("python-attrs" ,python-attrs-bootstrap)
("python-coverage" ,python-coverage)))
(synopsis "Library for property based testing")
(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
based on the Haskell library, Quickcheck, and is designed to integrate
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)
(properties `((python2-variant . ,(delay python2-hypothesis))))))

View File

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

View File

@ -147,9 +147,6 @@
(string-append "--docdir=" %output
"/doc/hydra-" ,version)))
#:phases (modify-phases %standard-phases
(add-after
'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vfi"))))
(add-before
'check 'check-setup
(lambda _ (setenv "LOGNAME" "test.log")))
@ -221,8 +218,6 @@ their dependencies.")
(substitute* "build-aux/git-version-gen"
(("#!/bin/sh") (string-append "#!" (which "sh"))))
#t))
(add-after 'patch-/bin/sh 'bootstrap
(lambda _ (zero? (system* "sh" "bootstrap"))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; 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 © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system emacs)
#:use-module (gnu packages)
#:use-module (gnu packages backup)
#:use-module (gnu packages compression)
@ -41,57 +43,66 @@
(define-public cmake
(package
(name "cmake")
(version "3.7.2")
(version "3.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.cmake.org/files/v"
(version-major+minor version)
"/cmake-" version ".tar.gz"))
(sha256
(base32
"1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw"))
(patches (search-patches "cmake-fix-tests.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Drop bundled software.
(with-directory-excursion "Utilities"
(for-each delete-file-recursively
'("cmbzip2"
;"cmcompress"
"cmcurl"
"cmexpat"
;"cmjsoncpp"
;"cmlibarchive"
"cmliblzma"
"cmlibuv"
"cmzlib"))
#t)))))
(method url-fetch)
(uri (string-append "https://www.cmake.org/files/v"
(version-major+minor version)
"/cmake-" version ".tar.gz"))
(sha256
(base32
"0sv5k9q6braa8hhw0y3w19avqn0xn5czv5jf5fz5blnlf7ivw4y3"))
(modules '((guix build utils)))
(snippet
'(begin
;; Drop bundled software.
(with-directory-excursion "Utilities"
(for-each delete-file-recursively
'("cmbzip2"
;; "cmcompress"
"cmcurl"
"cmexpat"
;; "cmjsoncpp"
;; "cmlibarchive"
"cmliblzma"
;; "cmlibuv"
"cmzlib"))
#t)))))
(build-system gnu-build-system)
(arguments
`(#: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
(modify-phases %standard-phases
(add-before 'configure 'patch-bin-sh
(lambda _
;; Replace "/bin/sh" by the right path in... a lot of
;; files.
(substitute*
'("Modules/CompilerId/Xcode-3.pbxproj.in"
"Modules/CompilerId/Xcode-1.pbxproj.in"
"Modules/CompilerId/Xcode-2.pbxproj.in"
"Modules/CPack.RuntimeScript.in"
"Source/cmakexbuild.cxx"
"Source/cmGlobalXCodeGenerator.cxx"
"Source/CTest/cmCTestBatchTestHandler.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")
;; Replace "/bin/sh" by the right path in... a lot of
;; files.
(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))
#t))
(add-before 'configure 'set-paths
(lambda _
;; Help cmake's bootstrap process to find system libraries
@ -102,43 +113,37 @@
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system*
"./configure"
(string-append "--prefix=" out)
"--system-libs"
"--no-system-jsoncpp" ; FIXME: Circular dependency.
;; By default, the man pages and other docs land
;; in PREFIX/man and PREFIX/doc, but we want them
;; in share/{man,doc}. Note that unlike
;; autoconf-generated configure scripts, cmake's
;; configure prepends "PREFIX/" to what we pass
;; to --mandir and --docdir.
"--mandir=share/man"
,(string-append
"--docdir=share/doc/cmake-"
(version-major+minor version)))))))
(add-before 'check 'set-test-environment
(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)))))
(invoke
"./configure" "--verbose"
(string-append "--parallel=" (number->string (parallel-job-count)))
(string-append "--prefix=" out)
"--system-libs"
"--no-system-jsoncpp" ; FIXME: Circular dependency.
;; By default, the man pages and other docs land
;; in PREFIX/man and PREFIX/doc, but we want them
;; in share/{man,doc}. Note that unlike
;; autoconf-generated configure scripts, cmake's
;; configure prepends "PREFIX/" to what we pass
;; to --mandir and --docdir.
"--mandir=share/man"
,(string-append
"--docdir=share/doc/cmake-"
(version-major+minor version)))))))))
(inputs
`(("file" ,file)
("curl" ,curl)
("zlib" ,zlib)
("expat" ,expat)
("bzip2" ,bzip2)
("ncurses" ,ncurses) ; required for ccmake
("libuv" ,libuv)
("libarchive" ,libarchive)))
`(("bzip2" ,bzip2)
("curl" ,curl)
("expat" ,expat)
("file" ,file)
("libarchive" ,libarchive)
("libuv" ,libuv)
("ncurses" ,ncurses) ; required for ccmake
("rhash" ,rhash)
("zlib" ,zlib)))
(native-search-paths
(list (search-path-specification
(variable "CMAKE_PREFIX_PATH")
(files '("")))))
(home-page "https://www.cmake.org/")
(variable "CMAKE_PREFIX_PATH")
(files '("")))))
(home-page "https://cmake.org/")
(synopsis "Cross-platform build system")
(description
"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:public-domain)))) ; cmlibarchive/archive_getdate.c
;; Recent Ceph requires Boost 1.66, which in turn requires CMake 3.11 for
;; its updated "FindBoost.cmake" facility.
(define-public cmake-3.11
(define-public emacs-cmake-mode
(package
(inherit cmake)
(version "3.11.0-rc2")
(source (origin
(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)
(name "emacs-cmake-mode")
(build-system emacs-build-system)
(arguments
(substitute-keyword-arguments (package-arguments cmake)
((#:make-flags flags ''()) `(cons (string-append
"ARGS=-j "
(number->string (parallel-job-count))
" --output-on-failure")
,flags))
((#:phases phases)
`(modify-phases ,phases
(replace 'patch-bin-sh
(lambda _
(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)))))
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir-elisp
;; Elisp directory is not in root of the source.
(lambda _
(chdir "Auxiliary"))))))
(synopsis "Emacs major mode for editing Cmake expressions")
(description "@code{cmakeos-mode} provides an Emacs major mode for editing
Cmake files. It supports syntax highlighting, indenting and refilling of
comments.")))

View File

@ -7,6 +7,10 @@
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.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.
;;;
@ -26,12 +30,16 @@
(define-module (gnu packages code)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages databases)
@ -39,15 +47,13 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#: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 autogen)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages autotools)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages bash))
#:use-module (gnu packages lua))
;;; 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")))
(substitute* files
(("#include ?\"rct/(.*.h)\"" all header)
(string-append "#include <rct/" header ">"))))))
(string-append "#include <rct/" header ">")))
#t)))
(sha256
(base32
"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 '("colormake" "colormake-short" "clmake"
"clmake-short" "colormake.pl")
bin)))))
bin)
#t))))
(home-page "http://bre.klaki.net/programs/colormake/")
(synopsis "Wrapper around @command{make} to produce colored output")
(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
independent targets.")
(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 © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,7 +30,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages gcc)
#:use-module (gnu packages m4)
#:use-module (gnu packages indent)
#:use-module (gnu packages code)
#:use-module (gnu packages file)
#:use-module (gnu packages gawk)
#:use-module (gnu packages bison)
@ -90,12 +91,14 @@
`(modify-phases ,phases
(replace 'build
(lambda _
(zero? (system* "./build.sh"))))
(invoke "./build.sh")
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "make" bin)))))))))
(install-file "make" bin)
#t))))))))
(native-inputs '()) ; no need for 'pkg-config'
(inputs %bootstrap-inputs))))
@ -183,28 +186,12 @@
,cf)))))
(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
;; GCC's libcc1 is always built as a shared library (the top-level
;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer
;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on
;; 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
(inherit lib)
(name "libstdc++-boot0")
@ -262,42 +249,40 @@
"--(with-system-zlib|enable-languages.*)" <>)
,flags)))
((#:phases phases)
`(alist-cons-after
'unpack 'unpack-gmp&co
(lambda* (#:key inputs #:allow-other-keys)
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
(mpfr (assoc-ref %build-inputs "mpfr-source"))
(mpc (assoc-ref %build-inputs "mpc-source")))
`(modify-phases ,phases
(add-after 'unpack 'unpack-gmp&co
(lambda* (#:key inputs #:allow-other-keys)
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
(mpfr (assoc-ref %build-inputs "mpfr-source"))
(mpc (assoc-ref %build-inputs "mpc-source")))
;; To reduce the set of pre-built bootstrap inputs, build
;; GMP & co. from GCC.
(for-each (lambda (source)
(or (zero? (system* "tar" "xvf" source))
(error "failed to unpack tarball"
source)))
(list gmp mpfr mpc))
;; To reduce the set of pre-built bootstrap inputs, build
;; GMP & co. from GCC.
(for-each (lambda (source)
(invoke "tar" "xvf" source))
(list gmp mpfr mpc))
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
,@(map (lambda (lib)
;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0.
`(symlink ,(string-trim-right
(package-full-name lib)
char-set:letter)
,(package-name lib)))
(list gmp-6.0 mpfr mpc))))
(alist-cons-after
'install 'symlink-libgcc_eh
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "lib")))
;; Glibc wants to link against libgcc_eh, so provide
;; it.
(with-directory-excursion
(string-append out "/lib/gcc/"
,(boot-triplet)
"/" ,(package-version gcc))
(symlink "libgcc.a" "libgcc_eh.a"))))
,phases))))))
;; Create symlinks like `gmp' -> `gmp-x.y.z'.
,@(map (lambda (lib)
;; Drop trailing letters, as gmp-6.0.0a unpacks
;; into gmp-6.0.0.
`(symlink ,(string-trim-right
(package-full-name lib "-")
char-set:letter)
,(package-name lib)))
(list gmp-6.0 mpfr mpc))
#t)))
(add-after 'install 'symlink-libgcc_eh
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "lib")))
;; Glibc wants to link against libgcc_eh, so provide
;; it.
(with-directory-excursion
(string-append out "/lib/gcc/"
,(boot-triplet)
"/" ,(package-version gcc))
(symlink "libgcc.a" "libgcc_eh.a"))
#t))))))))
(inputs `(("gmp-source" ,(package-source gmp-6.0))
("mpfr-source" ,(package-source mpfr))
@ -332,7 +317,8 @@
(lambda _
(substitute* "Configure"
(("^libswanted=(.*)pthread" _ before)
(string-append "libswanted=" before)))))))
(string-append "libswanted=" before)))
#t))))
;; Do not configure with '-Dusethreads' since pthread
;; support is missing.
((#:configure-flags configure-flags)
@ -512,32 +498,33 @@ the bootstrap environment."
"--enable-obsolete-rpc")
,flags))
((#:phases phases)
`(alist-cons-before
'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Don't clobber CPATH with the bootstrap libc.
(setenv "NATIVE_CPATH" (getenv "CPATH"))
(unsetenv "CPATH")
`(modify-phases ,phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Don't clobber CPATH with the bootstrap libc.
(setenv "NATIVE_CPATH" (getenv "CPATH"))
(unsetenv "CPATH")
;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
,@(if (hurd-triplet? (%current-system))
`((substitute* "libpthread/Makefile"
(("LDLIBS-pthread.so =.*")
(string-append "LDLIBS-pthread.so = "
(assoc-ref %build-inputs "kernel-headers")
"/lib/libihash.a\n"))))
'())
;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
,@(if (hurd-triplet? (%current-system))
`((substitute* "libpthread/Makefile"
(("LDLIBS-pthread.so =.*")
(string-append "LDLIBS-pthread.so = "
(assoc-ref %build-inputs "kernel-headers")
"/lib/libihash.a\n"))))
'())
;; 'rpcgen' needs native libc headers to be built.
(substitute* "sunrpc/Makefile"
(("sunrpc-CPPFLAGS =.*" all)
(string-append "CPATH = $(NATIVE_CPATH)\n"
"export CPATH\n"
all "\n"))))
,phases)))))
;; 'rpcgen' needs native libc headers to be built.
(substitute* "sunrpc/Makefile"
(("sunrpc-CPPFLAGS =.*" all)
(string-append "CPATH = $(NATIVE_CPATH)\n"
"export CPATH\n"
all "\n")))
#t)))))))
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
(native-inputs
`(("texinfo" ,texinfo-boot0)
`(("bison" ,bison-boot0)
("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0)))
(inputs
`(;; 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)
tool))
'("ar" "ranlib"))
(for-each wrap-program '("gcc" "g++")))))))
(for-each wrap-program '("gcc" "g++")))
#t))))
(native-inputs
`(("binutils" ,binutils)
("gcc" ,gcc)
@ -652,7 +641,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; Build only the tools.
(add-after 'unpack 'chdir
(lambda _
(chdir "gettext-tools")))
(chdir "gettext-tools")
#t))
;; Some test programs require pthreads, which we don't have.
(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
;; The final grep. Gzip holds a reference to it (via zgrep), so it must be
;; built before gzip.
(package-with-bootstrap-guile
(package-with-explicit-inputs (package
(inherit grep)
(inputs '()) ;no PCRE support
(native-inputs `(("perl" ,perl-boot0))))
%boot5-inputs
(current-source-location)
#:guile guile-final)))
(let ((grep (package-with-bootstrap-guile
(package-with-explicit-inputs grep %boot5-inputs
(current-source-location)
#:guile guile-final))))
(package/inherit grep
(inputs (alist-delete "pcre" (package-inputs grep)))
(native-inputs `(("perl" ,perl-boot0))))))
(define %boot6-inputs
;; 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)
,@%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
;; Final derivations used as implicit inputs by 'gnu-build-system'. We
;; 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)
("diffutils" ,diffutils)
("patch" ,patch)
("sed" ,sed)
("findutils" ,findutils)
("gawk" ,gawk)))
("sed" ,sed-final)
("grep" ,grep-final)
("coreutils" ,coreutils-final)
("make" ,gnu-make-final)
@ -1029,7 +1026,8 @@ COREUTILS-FINAL vs. COREUTILS, etc."
"libc-debug")))
(union-build (assoc-ref %outputs "static")
(list (assoc-ref %build-inputs
"libc-static")))))))
"libc-static")))
#t))))
(native-search-paths (package-native-search-paths gcc))
(search-paths (package-search-paths gcc))

View File

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; 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, 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 Jeff Mickey <j@codemac.net>
;;; 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 David Craven <david@craven.ch>
;;; 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 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
@ -22,6 +22,7 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -97,9 +98,8 @@
,@(if (%current-target-system)
`((setenv "CHOST" ,(%current-target-system)))
'())
(zero?
(system* "./configure"
(string-append "--prefix=" out)))))))))
(invoke "./configure"
(string-append "--prefix=" out))))))))
(home-page "https://zlib.net/")
(synopsis "Compression library")
(description
@ -127,7 +127,7 @@ in compression.")
(lambda _ (chdir "contrib/minizip") #t))
(add-after 'enter-source 'autoreconf
(lambda _
(zero? (system* "autoreconf" "-vif")))))))
(invoke "autoreconf" "-vif"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -184,7 +184,7 @@ utility. Instead of being written in Java, FastJar is written in C.")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autoconf
(lambda _ (zero? (system* "sh" "autoreconf" "-vfi")))))))
(lambda _ (invoke "sh" "autoreconf" "-vfi"))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -201,14 +201,14 @@ adding and extracting files to/from a tar archive.")
(define-public gzip
(package
(name "gzip")
(version "1.8")
(version "1.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gzip/gzip-"
version ".tar.xz"))
(sha256
(base32
"1lxv3p4iyx7833mlihkn5wfwmz4cys5nybwpz3dfawag8kn6f5zz"))))
"16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
(build-system gnu-build-system)
(synopsis "General file (de)compression (using lzw)")
(arguments
@ -251,35 +251,48 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key target #:allow-other-keys)
(if ,(%current-target-system)
;; Cross-compilation: use the cross tools.
(substitute* (find-files "." "Makefile")
(("CC=.*$")
(string-append "CC = " target "-gcc\n"))
(("AR=.*$")
(string-append "AR = " target "-ar\n"))
(("RANLIB=.*$")
(string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n")))
#t)))
(when ,(%current-target-system)
;; Cross-compilation: use the cross tools.
(substitute* (find-files "." "Makefile")
(("CC=.*$")
(string-append "CC = " target "-gcc\n"))
(("AR=.*$")
(string-append "AR = " target "-ar\n"))
(("RANLIB=.*$")
(string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n"))))
#t))
(add-before 'build 'build-shared-lib
(lambda* (#:key inputs #:allow-other-keys)
(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
(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"))
(libdir (string-append out "/lib")))
(for-each (lambda (file)
(let ((base (basename file)))
(format #t "installing `~a' to `~a'~%"
base libdir)
(copy-file file
(string-append libdir "/" base))))
(find-files "." "^libbz2\\.so")))
#t))
(libdir (string-append out "/lib"))
;; Find the actual library (e.g. "libbz2.so.1.0.6").
(lib (string-drop
(car (find-files
"."
(lambda (file stat)
(and (string-prefix? "./libbz2.so" file)
(eq? 'regular (stat:type stat))))))
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
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
@ -476,14 +489,14 @@ some compression ratio).")
(define-public lzip
(package
(name "lzip")
(version "1.19")
(version "1.20")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lzip-"
version ".tar.gz"))
(sha256
(base32
"1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz"))))
"0319q59kb8g324wnj7xzbr7vvlx5bcs13lr34j0zb3kqlyjq2fy9"))))
(build-system gnu-build-system)
(home-page "https://www.nongnu.org/lzip/lzip.html")
(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
(package
(name "perl-compress-raw-bzip2")
(version "2.074")
(version "2.081")
(source
(origin
(method url-fetch)
@ -655,7 +668,7 @@ decompression of some loosely related file formats used by Microsoft.")
"Compress-Raw-Bzip2-" version ".tar.gz"))
(sha256
(base32
"0b5jwqf15zr787acnx8sfyy2zavdd7gfkd98n1dgy8fs6r8yb8a4"))))
"081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6"))))
(build-system perl-build-system)
;; TODO: Use our bzip2 package.
(home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2")
@ -667,7 +680,7 @@ compression library.")
(define-public perl-compress-raw-zlib
(package
(name "perl-compress-raw-zlib")
(version "2.076")
(version "2.081")
(source
(origin
(method url-fetch)
@ -675,7 +688,7 @@ compression library.")
"Compress-Raw-Zlib-" version ".tar.gz"))
(sha256
(base32
"1al2h0i6mspldmlf5c09fy5a4j8swsxd31v6zi8zx9iyqk1lw7in"))))
"06rsm9ahp20xfyvd3jc69sd0k8vqysryxc6apzdbn96jbcsdwmp1"))))
(build-system perl-build-system)
(inputs
`(("zlib" ,zlib)))
@ -702,7 +715,7 @@ compression library.")
(define-public perl-io-compress
(package
(name "perl-io-compress")
(version "2.074")
(version "2.081")
(source
(origin
(method url-fetch)
@ -710,11 +723,11 @@ compression library.")
"IO-Compress-" version ".tar.gz"))
(sha256
(base32
"1wlpy2026djfmq0bjync531yq6s695jf7bcnpvjphrasi776igdl"))))
"1na66ns1g3nni0m9q5494ym4swr21hfgpv88mw8wbj2daiswf4aj"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.074
("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.074
`(("perl-compress-raw-zlib" ,perl-compress-raw-zlib) ; >=2.081
("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.081
(home-page "http://search.cpan.org/dist/IO-Compress")
(synopsis "IO Interface to compressed files/buffers")
(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")))
#:phases (modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(home-page "http://www.lz4.org")
(home-page "https://www.lz4.org")
(synopsis "Compression algorithm focused on speed")
(description "LZ4 is a lossless compression algorithm, providing
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.")
(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
(package
(name "pigz")
@ -925,10 +955,11 @@ tarballs.")
(base32
"1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
(modules '((guix build utils)))
(snippet
;; This is a recursive submodule that is unnecessary for this
;; package, so delete it.
'(delete-file-recursively "brotli/terryfy"))))
(snippet '(begin
;; This is a recursive submodule that is
;; unnecessary for this package, so delete it.
(delete-file-recursively "brotli/terryfy")
#t))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -939,7 +970,7 @@ tarballs.")
(add-after 'unpack 'autogen
(lambda _
(mkdir "m4")
(zero? (system* "autoreconf" "-vfi")))))))
(invoke "autoreconf" "-vfi"))))))
(home-page "https://github.com/bagder/libbrotli/")
(synopsis "Implementation of the Brotli compression algorithm")
(description
@ -987,7 +1018,9 @@ respectively, based on the reference implementation from Google.")
(file-name (string-append name "-" version ".tar.gz"))
(snippet
;; 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)
(native-inputs
`(("autoconf" ,autoconf)
@ -996,9 +1029,9 @@ respectively, based on the reference implementation from Google.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-build-directory
(lambda _ (chdir "xdelta3")))
(lambda _ (chdir "xdelta3") #t))
(add-after 'enter-build-directory 'autoconf
(lambda _ (zero? (system* "autoreconf" "-vfi")))))))
(lambda _ (invoke "autoreconf" "-vfi"))))))
(home-page "http://xdelta.org")
(synopsis "Delta encoder for binary files")
(description "xdelta encodes only the differences between two binary files
@ -1159,7 +1192,7 @@ install: libbitshuffle.so
(add-before 'build 'build-jni
(lambda _
;; 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")
;; Link to the dynamic bitshuffle and snappy, not the static ones
(substitute* "Makefile.common"
@ -1246,7 +1279,7 @@ compresser/decompresser.")
(add-before 'build 'build-jni
(lambda _
;; 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")
;; Link to the dynamic snappy, not the static ones
(substitute* "Makefile.common"
@ -1263,7 +1296,7 @@ compresser/decompresser.")
(("NAME\\): \\$\\(SNAPPY_OBJ\\)")
"NAME): $(SNAPPY_OBJ)\n\t@mkdir -p $(@D)"))
;; 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
;; "build" directory so it can be added to the jar file.
(add-after 'build-jni 'copy-jni
@ -1302,16 +1335,15 @@ compresser/decompresser.")
(replace 'check
(lambda _
(define (test class)
(zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
":build/classes"
":build/test-classes")
"-Dtest.resources.dir=src/test/resources"
"org.testng.TestNG" "-testclass"
class)))
(system* "ant" "compile-tests")
(and
(test "org.iq80.snappy.SnappyFramedStreamTest")
(test "org.iq80.snappy.SnappyStreamTest"))))
(invoke "java" "-cp" (string-append (getenv "CLASSPATH")
":build/classes"
":build/test-classes")
"-Dtest.resources.dir=src/test/resources"
"org.testng.TestNG" "-testclass"
class))
(invoke "ant" "compile-tests")
(test "org.iq80.snappy.SnappyFramedStreamTest")
(test "org.iq80.snappy.SnappyStreamTest")))
(add-before 'build 'remove-hadoop-dependency
(lambda _
;; 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
(replace 'configure
(lambda* (#:key system outputs #:allow-other-keys)
(zero? (system* "cp"
(let ((system ,(or (%current-target-system)
(%current-system))))
(cond
((string-prefix? "x86_64" system)
"makefile.linux_amd64_asm")
((string-prefix? "i686" system)
"makefile.linux_x86_asm_gcc_4.X")
(else
"makefile.linux_any_cpu_gcc_4.X")))
"makefile.machine"))))
(invoke "cp"
(let ((system ,(or (%current-target-system)
(%current-system))))
(cond
((string-prefix? "x86_64" system)
"makefile.linux_amd64_asm")
((string-prefix? "i686" system)
"makefile.linux_x86_asm_gcc_4.X")
(else
"makefile.linux_any_cpu_gcc_4.X")))
"makefile.machine")))
(replace 'check
(lambda _
(and (zero? (system* "make" "test"))
(zero? (system* "make" "test_7z"))
(zero? (system* "make" "test_7zr"))))))))
(invoke "make" "test")
(invoke "make" "test_7z")
(invoke "make" "test_7zr"))))))
(inputs
(let ((system (or (%current-target-system)
(%current-system))))
@ -1455,7 +1487,9 @@ handles the 7z format which features very high compression ratios.")
(modules '((guix build utils)))
(snippet
;; Remove pre-compiled object.
'(delete-file "gzstream.o"))))
'(begin
(delete-file "gzstream.o")
#t))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@ -1492,7 +1526,9 @@ functionality in a C++ iostream.")
(modules '((guix build utils)))
(snippet
;; 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)
(arguments
`(#:phases
@ -1601,7 +1637,7 @@ or junctions, and always follows hard links.")
#t))
(replace 'check
(lambda _
(zero? (system* "./run-tests.sh")))))))
(invoke "./run-tests.sh"))))))
(home-page "https://github.com/twogood/unshield")
(synopsis "Extract CAB files from InstallShield installers")
(description
@ -1667,7 +1703,7 @@ speed.")
(delete 'configure) ; no configure script
(add-before 'check 'compile-tests
(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
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1711,14 +1747,11 @@ the actual decompression, the other input and output.")
(list "-f" "unix/Makefile"
(string-append "prefix=" out)
(string-append "MANDIR=" out "/share/man/man1")))
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "generic_gcc" make-flags))))
(apply invoke "make" "generic_gcc" make-flags)))
(delete 'configure))))
(home-page "http://www.info-zip.org/Zip.html")
(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
(package (inherit zip)
(name "unzip")
(replacement unzip/fixed)
(version "6.0")
(source
(origin
@ -1768,13 +1800,20 @@ Compression ratios of 2:1 to 3:1 are common for text files.")
(arguments
`(#:phases (modify-phases %standard-phases
(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
(lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make"
`("-j" ,(number->string
(parallel-job-count))
,@make-flags
"generic_gcc"))))))
(apply invoke "make"
`("-j" ,(number->string
(parallel-job-count))
,@make-flags
"generic_gcc")))))
#:make-flags (list "-f" "unix/Makefile"
(string-append "prefix=" %output)
(string-append "MANDIR=" %output "/share/man/man1"))))
@ -1791,20 +1830,6 @@ recreates the stored directory structure by default.")
(license (license:non-copyleft "file://LICENSE"
"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
(package
(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.")
(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)
("pkg-config" ,pkg-config)
("python" ,python)
("xproto" ,xproto)))
("xorgproto" ,xorgproto)))
(arguments
`(#:make-flags (list
"CC=gcc"

View File

@ -3,7 +3,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; 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.
;;;
@ -43,7 +43,7 @@
(define-public connman
(package
(name "connman")
(version "1.35")
(version "1.36")
(source
(origin
(method url-fetch)
@ -51,7 +51,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
"1apj5j25kj7v1bsfv3nh54aiq873nfrsjfbj85p5qm3ihfwxxmv6"))))
"0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View File

@ -29,7 +29,9 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config)
#: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
combination of these streams.")
(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 perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tls)
#:use-module (gnu packages web))
(define-public r-tidyverse
@ -167,21 +169,18 @@ such as copy/paste from an R session.")
(define-public r-callr
(package
(name "r-callr")
(version "2.0.3")
(version "2.0.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "callr" version))
(sha256
(base32
"1k3mflgn10hcvy74y4pbigpv74zb66fz1phfd3c8isqmn88xbxzi"))))
"1053qqq632z94pqq2v5dynjpgyv1b1c8zvidmcllw7zn8zha8gqf"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-crayon" ,r-crayon)
("r-debugme" ,r-debugme)
("r-r6" ,r-r6)
("r-testthat" ,r-testthat)))
`(("r-r6" ,r-r6)
("r-processx" ,r-processx)))
(home-page "https://github.com/r-lib/callr#readme")
(synopsis "Call R from R")
(description
@ -219,14 +218,14 @@ the embedded @code{RapidXML} C++ library.")
(define-public r-modelr
(package
(name "r-modelr")
(version "0.1.1")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "modelr" version))
(sha256
(base32
"1rqw0b583vp107zqp4h3wj51dvv4hb3wszfr1f5f48xassc53f95"))))
"09whg3q5xq6csbqwgwfwav09vda8vgady5j70sk52xcn232k363a"))))
(build-system r-build-system)
(propagated-inputs
`(("r-broom" ,r-broom)
@ -271,13 +270,13 @@ embedded @url{https://github.com/WizardMac/ReadStat,ReadStat} C library.")
(define-public r-amap
(package
(name "r-amap")
(version "0.8-14")
(version "0.8-16")
(source (origin
(method url-fetch)
(uri (cran-uri "amap" version))
(sha256
(base32
"1dz37z9v4zvyvqrs4xvpfv468jwvpxav60qn2w0049bw8llj6xdl"))))
"1qnl2x98x64iaipkx5126rsddq2sx5ml43h75xyiyn30yvbmlxyk"))))
(build-system r-build-system)
(inputs
`(("gfortran" ,gfortran)))
@ -316,14 +315,14 @@ and several other tools.")
(define-public r-abbyyr
(package
(name "r-abbyyr")
(version "0.5.1")
(version "0.5.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "abbyyR" version))
(sha256
(base32
"1s8zf18sh0s89vk3dl09fzrq50csmmfvmsanf5vfkv9n5lx6pklg"))))
"1jh1c1ad6mgw7brdh2isnza1qpjlfxnqr7jl76yd93axyfl76xjx"))))
(properties `((upstream-name . "abbyyR")))
(build-system r-build-system)
(propagated-inputs
@ -427,13 +426,13 @@ error stream.")
(define-public r-rcpp
(package
(name "r-rcpp")
(version "0.12.16")
(version "0.12.17")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rcpp" version))
(sha256
(base32 "1rm8hcy72p1jvxikvmkwg20pjqmvmfvqb45lfghmddp2adp67qfl"))))
(base32 "08xg8h3w25sdb3xr18g9pa0x8cirkdgljqapxmw56ss1j9fc89s2"))))
(build-system r-build-system)
(home-page "http://www.rcpp.org")
(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
(package
(name "r-dendextend")
(version "1.7.0")
(version "1.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "dendextend" version))
(sha256
(base32
"1krvqadnnh53xx5ql7bwzxaif6a317jzbs1m00gnc6jnj03rfl5d"))))
"1virn3c232xwcq3d0hhkgjh5gpzl01s39iwii5gxcm9mnsxjzdrh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-fpc" ,r-fpc)
@ -729,14 +728,14 @@ any subsequent lookup as it keeps the hash table in memory.")
(define-public r-ff
(package
(name "r-ff")
(version "2.2-13")
(version "2.2-14")
(source
(origin
(method url-fetch)
(uri (cran-uri "ff" version))
(sha256
(base32
"1nvd6kx46xzyc99a44mgynd94pvd2h495m5a7b1g67k5w2phiywb"))))
"1w724q4jpzbvzpilb2ifviaxkjgk9lzwxz9gksnvicbmfa20fqqw"))))
(build-system r-build-system)
(propagated-inputs `(("r-bit" ,r-bit)))
(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
(package
(name "r-ggally")
(version "1.3.2")
(version "1.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "GGally" version))
(sha256
(base32
"02px7j28wzbhcgcwm2m0pxb6g7s5zvphl64ix55pkvag4m2ky57l"))))
"1zjmcc5bzagvy7c5cmdcl39xmx07fwi98yrj4i05w7y40kqcsiws"))))
(properties `((upstream-name . "GGally")))
(build-system r-build-system)
(inputs
`(("libressl" ,libressl)))
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
("r-gtable" ,r-gtable)
("r-plyr" ,r-plyr)
("r-progress" ,r-progress)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-reshape" ,r-reshape)))
("r-reshape" ,r-reshape)
("r-rlang" ,r-rlang)))
(home-page "https://ggobi.github.io/ggally")
(synopsis "Extension to ggplot2")
(description
@ -1077,13 +1079,13 @@ by Li, Brown, Huang, and Bickel")
(define-public r-inline
(package
(name "r-inline")
(version "0.3.14")
(version "0.3.15")
(source (origin
(method url-fetch)
(uri (cran-uri "inline" version))
(sha256
(base32
"0cf9vya9h4znwgp6s1nayqqmh6mwyw7jl0isk1nx4j2ijszxcd7x"))))
"0s4wssvpan189fijahknxq5s22ww9bzmdlmyhnra748r7khky17z"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/inline")
(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
(package
(name "r-emdbook")
(version "1.3.9")
(version "1.3.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "emdbook" version))
(sha256
(base32
"09xbdyw8a4pvrsg3ryr8drby0njy4avc5wsjj4ffibdaicpchy69"))))
"0880cx6rqm9vgd2zxnd2k0igfl80gy7ak15w36clwlzavab59hmv"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bbmle" ,r-bbmle)
@ -1234,14 +1236,14 @@ data). Weighted versions of MLE, MME and QME are available.")
(define-public r-energy
(package
(name "r-energy")
(version "1.7-2")
(version "1.7-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "energy" version))
(sha256
(base32
"19c7bgjnm4ggf7w5mk64c5shkma3sa9wc8x117iqv7pk1bvvyy3p"))))
"12skvlridfq4jd5mh0yxl79ps0zi2xnlh4hsdgxad0gm7qky8awd"))))
(build-system r-build-system)
(propagated-inputs
`(("r-boot" ,r-boot)
@ -1287,14 +1289,14 @@ George Marsaglia are included.")
(define-public r-ksamples
(package
(name "r-ksamples")
(version "1.2-7")
(version "1.2-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "kSamples" version))
(sha256
(base32
"0f19rjngk0lg6s8c6h5l55qpxp8sl4vxj3kpi05cizzncny9b9bj"))))
"15d5q5vpp4wx5rk5kjxjdxpwc8mkq5sbdz8gi07iscrvhzb5rzfr"))))
(properties `((upstream-name . "kSamples")))
(build-system r-build-system)
(propagated-inputs
@ -1315,14 +1317,14 @@ samples.")
(define-public r-cvst
(package
(name "r-cvst")
(version "0.2-1")
(version "0.2-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "CVST" version))
(sha256
(base32
"17xacyi8cf37rr2xswx96qy7pwkaqq394awdlswykz3qlyzx4zx2"))))
"05l3yzkfrbds09ah9cdwn2sn4ryhq78lz33ryzrgkv176jc8qjw5"))))
(properties `((upstream-name . "CVST")))
(build-system r-build-system)
(propagated-inputs
@ -1537,14 +1539,14 @@ Delaunay triangulation and convex hull computation.")
(define-public r-ddalpha
(package
(name "r-ddalpha")
(version "1.3.2")
(version "1.3.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "ddalpha" version))
(sha256
(base32
"1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r"))))
"0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
@ -1774,14 +1776,14 @@ for certain use cases.")
(define-public r-ggrepel
(package
(name "r-ggrepel")
(version "0.7.0")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggrepel" version))
(sha256
(base32
"0g0qfm6g71rv27423c1x846ipilnj213knyzrcr09vrpxc87l618"))))
"1m3p84d6nh9mzzvxb82vgig3ngcvkz86rjwzl9a66ckdf5p611k3"))))
(build-system r-build-system)
(propagated-inputs
`(("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.")
(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
(package
(name "r-mice")
(version "2.46.0")
(version "3.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "mice" version))
(sha256
(base32
"1gjvlk67zvgipfczsca8zqk97vg3sivv82hblsdwp14s7smhjcax"))))
"1p8a5ham90iaak4w17114pdnw535r2l9sxr402yrkc4gbwfbpdlq"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)
`(("r-broom" ,r-broom)
("r-dplyr" ,r-dplyr)
("r-lattice" ,r-lattice)
("r-mass" ,r-mass)
("r-mitml" ,r-mitml)
("r-nnet" ,r-nnet)
("r-rcpp" ,r-rcpp)
("r-rlang" ,r-rlang)
("r-rpart" ,r-rpart)
("r-survival" ,r-survival)))
(home-page "https://cran.r-project.org/web/packages/mice/")
@ -1923,14 +2000,14 @@ programming} (SQP) based solver).")
(define-public r-hardyweinberg
(package
(name "r-hardyweinberg")
(version "1.5.9")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "HardyWeinberg" version))
(sha256
(base32
"0qk3lly5qczn61rj0q9xzscppspvk238yjgr4p71pkzkjhiv40jz"))))
"16n8qanxx0p5ny5zqxafn8hwb1xv94y1wig1iql8as5a5qh8lwcz"))))
(properties `((upstream-name . "HardyWeinberg")))
(build-system r-build-system)
(propagated-inputs
@ -1955,14 +2032,14 @@ acceptance regions, log-ratio plots and Q-Q plots.")
(define-public r-sm
(package
(name "r-sm")
(version "2.2-5.4")
(version "2.2-5.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "sm" version))
(sha256
(base32
"0hnq5s2fv94gaj0nyqc1vjdjd64vsp9z23nqa8hxvjcaf996rwj9"))))
"1rw2mxygxsmk8mn4wag1ppjgzk0rlvh6zd8q02qrhjrn9jhi5qj3"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(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
(package
(name "r-ica")
(version "1.0-1")
(version "1.0-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ica" version))
(sha256
(base32
"1bkl4a72l0k6gm82l3jxnib898z20cw17zg81jj39l9dn65rlmcq"))))
"0ya1nph1zwhad0bfz4yxs27kl45yk1dhnphdlrq34p8pqrpmj8g7"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/ica/")
(synopsis "Independent component analysis")
@ -2166,14 +2243,14 @@ of Eigenmatrices} (JADE).")
(define-public r-dtw
(package
(name "r-dtw")
(version "1.18-1")
(version "1.20-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "dtw" version))
(sha256
(base32
"1b91vahba09cqlb8b1ry4dlv4rbldb4s2p6w52gmyw31vxdv5nnr"))))
"1w301xwizncy5r8v9rwwdxfshydgp3l1pnjla1fjn6n8lx3imjj3"))))
(build-system r-build-system)
(propagated-inputs `(("r-proxy" ,r-proxy)))
(home-page "http://dtw.r-forge.r-project.org/")
@ -2256,14 +2333,14 @@ plots in @code{ggplot2}.")
(define-public r-ggjoy
(package
(name "r-ggjoy")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggjoy" version))
(sha256
(base32
"1s24zn7gmk52bvjjhanxby7rxbnc2yfl0nx5nv7x7z0zja8gg7nb"))))
"012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
@ -2341,20 +2418,20 @@ constants, and control debugging of packages via environment variables.")
(define-public r-processx
(package
(name "r-processx")
(version "2.0.0.1")
(version "3.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "processx" version))
(sha256
(base32
"0yw23lp9xjvbpswzghkmjiayw7p19hbvmgv58k3i6b8g5nav4qcg"))))
"0wjr3cqwvnjxbvln25szffmkns5w0xysivdjr6chxap4nh515b0i"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("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")
(synopsis "Execute and control system processes")
(description
@ -2370,14 +2447,14 @@ timeout. It can also poll several processes at once.")
(define-public r-tsp
(package
(name "r-tsp")
(version "1.1-5")
(version "1.1-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "TSP" version))
(sha256
(base32
"03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w"))))
"1ym97xl2icjpfkrici0wig29w06bb704hp51v7h5liygjlwpkhlc"))))
(properties `((upstream-name . "TSP")))
(build-system r-build-system)
(propagated-inputs `(("r-foreach" ,r-foreach)))
@ -2489,46 +2566,6 @@ dissimilarity plots, and visual assessment of cluster tendency plots (VAT and
iVAT).")
(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
(package
(name "r-xfun")
@ -2551,14 +2588,14 @@ packages maintained by Yihui Xie.")
(define-public r-utf8
(package
(name "r-utf8")
(version "1.1.3")
(version "1.1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "utf8" version))
(sha256
(base32
"03s4j6059q0nly68vpk6wy3p3f5ypakw93fj35kzd82b4z1r9cs3"))))
"0m0ywg8k3blfiahxvh1i4zn9dksrlc937d2lbza5fc38zjnrrnpn"))))
(build-system r-build-system)
(home-page "https://github.com/patperry/r-utf8")
(synopsis "Unicode text processing")
@ -2571,14 +2608,14 @@ display.")
(define-public r-pillar
(package
(name "r-pillar")
(version "1.2.2")
(version "1.2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "pillar" version))
(sha256
(base32
"1kmqvny3rw4p5kgxz6mhqfpp7j3nnpp22dfai4kjrr2cfmj6wvb7"))))
"1rzhssprqgam1nq3s0f5rzxhxsq02azcghvxf6k8kmsmddf1n7f8"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cli" ,r-cli)
@ -2859,14 +2896,14 @@ financial trading strategies.")
(define-public r-tseries
(package
(name "r-tseries")
(version "0.10-44")
(version "0.10-45")
(source
(origin
(method url-fetch)
(uri (cran-uri "tseries" version))
(sha256
(base32
"0nz6v76hsxcprpgf84al5r0p08sr9qacqal4adndz9wmg604l4ag"))))
"14s1glh5zzdvdl05a2z7ymhgf962svxf8xircghg5sc649lb33n0"))))
(build-system r-build-system)
(propagated-inputs
`(("r-quadprog" ,r-quadprog)
@ -3125,18 +3162,19 @@ creation and manipulation of WAVE audio files.")
(define-public r-np
(package
(name "r-np")
(version "0.60-6")
(version "0.60-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "np" version))
(sha256
(base32
"1y72x5j9j9mcgcy2xizk31gl843hfkngxdn8s4qw7yhw2qj79hsr"))))
"17h67a510wh83800ri6g02wvznrlhigxni8shyijz1iaxcpk8k4j"))))
(build-system r-build-system)
(propagated-inputs
`(("r-boot" ,r-boot)
("r-cubature" ,r-cubature)
("r-quadprog" ,r-quadprog)
("r-quantreg" ,r-quantreg)))
(home-page "https://github.com/JeffreyRacine/R-Package-np")
(synopsis "Non-parametric kernel smoothing methods for mixed data types")
@ -3190,6 +3228,7 @@ exponentiation.")
("r-ggplot2" ,r-ggplot2)
("r-gplots" ,r-gplots)
("r-htmlwidgets" ,r-htmlwidgets)
("r-knitr" ,r-knitr) ; needed for vignettes
("r-magrittr" ,r-magrittr)
("r-plotly" ,r-plotly)
("r-rcolorbrewer" ,r-rcolorbrewer)
@ -3262,18 +3301,19 @@ files.")
(define-public r-shinyace
(package
(name "r-shinyace")
(version "0.2.1")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "shinyAce" version))
(sha256
(base32
"0ycka8rsw0178q9klfid97vdn5cbyx3r778nis5s3dqipdyazdm9"))))
"1hqgszbiv99dibhwr21v21ll4s2hjn3ccqdicsm0z3gk77bh8iyb"))))
(properties `((upstream-name . "shinyAce")))
(build-system r-build-system)
(propagated-inputs
`(("r-shiny" ,r-shiny)))
`(("r-shiny" ,r-shiny)
("r-jsonlite" ,r-jsonlite)))
(home-page "http://cran.r-project.org/web/packages/shinyAce")
(synopsis "Ace editor bindings for Shiny")
(description
@ -3383,14 +3423,14 @@ It also includes interpolation functions.")
(define-public r-psych
(package
(name "r-psych")
(version "1.8.3.3")
(version "1.8.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "psych" version))
(sha256
(base32
"1zhp8j81nkzd65168zdw9ylypb9n07ajan21x0wqcn8jdbg970sg"))))
"1kzv9nc7rwn1sj1zxd8xrbs6c7qlka7j2c8lsr4f20znkd3qx8gf"))))
(build-system r-build-system)
(propagated-inputs
`(("r-foreign" ,r-foreign)
@ -3765,19 +3805,41 @@ measuring the accuracy of ABC estimates, and to calculate the
misclassification probabilities of different models.")
(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
(package
(name "r-openxlsx")
(version "4.0.17")
(version "4.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "openxlsx" version))
(sha256
(base32
"1mq4lasp12kc30sxcsmz9gskd114l8s7z7wd6svv2nm8qllrhsqi"))))
"1n7z22pm78xa77fvn77kdn68az6xzxk36y11sqf0w6h6adri4yxb"))))
(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")
(synopsis "Read, write and edit XLSX files")
(description
@ -3853,14 +3915,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later
(package
(name "r-later")
(version "0.7.1")
(version "0.7.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "later" version))
(sha256
(base32
"0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz"))))
"0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
(build-system r-build-system)
(propagated-inputs
`(("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.")
;; Any version of the GPL
(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
;;; 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 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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)
"Return GCC snippet needed for TARGET."
(cond ((target-mingw? target)
'(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
"libstdc++-v3/config/os/newlib"))
'(begin
(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
"libstdc++-v3/config/os/newlib")
#t))
(else #f)))
(define* (cross-gcc target
@ -291,8 +294,8 @@ target that libc."
(setenv "ARCH" ,(system->linux-architecture target))
(format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH"))
(and (zero? (system* "make" ,(system->defconfig target)))
(zero? (system* "make" "mrproper" "headers_check"))))
(invoke "make" ,(system->defconfig target))
(invoke "make" "mrproper" "headers_check"))
,phases))))
(native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils)
@ -314,14 +317,14 @@ target that libc."
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
#:phases (alist-cons-before
'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
(cpath (string-append mach "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)))
%standard-phases)
#:phases (modify-phases %standard-phases
(add-before 'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
(cpath (string-append mach "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t))))
#:configure-flags (list ,(string-append "--target=" target))
,@(package-arguments mig)))
@ -352,16 +355,16 @@ target that libc."
(srfi srfi-26))
,@(package-arguments glibc/hurd-headers))
((#:phases phases)
`(alist-cons-before
'pre-configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)))
,phases))))
`(modify-phases ,phases
(add-before 'pre-configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t)))))))
(propagated-inputs `(("gnumach-headers" ,xgnumach-headers)
("hurd-headers" ,xhurd-headers)))
@ -382,14 +385,14 @@ target that libc."
(srfi srfi-26))
,@(package-arguments hurd-minimal))
((#:phases phases)
`(alist-cons-before
'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers"))
(cpath (string-append glibc-headers "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)))
,phases))))
`(modify-phases ,phases
(add-before 'configure 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers"))
(cpath (string-append glibc-headers "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t)))))))
(inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)))
@ -456,17 +459,16 @@ XBINUTILS and the cross tool chain."
`(cons ,(string-append "--host=" target)
,flags))
((#:phases phases)
`(alist-cons-before
'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ;for Hurd's libihash
#t))
,phases))))
`(modify-phases ,phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash
#t)))))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "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"
(("argon2/argon2.h") "argon2.h"))
(substitute* "configure.ac"
(("src/argon2/Makefile") ""))))
(("src/argon2/Makefile") ""))
#t))
(sha256
(base32
"09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x"))))
@ -228,9 +229,11 @@ communication.")
"1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
(modules '((guix build utils)))
;; Remove bundled dependencies in favour of proper inputs.
(snippet '(for-each delete-file-recursively
(find-files "internal" "^tinyxml2-[0-9]"
#:directories? #t)))))
(snippet '(begin
(for-each delete-file-recursively
(find-files "internal" "^tinyxml2-[0-9]"
#:directories? #t))
#t))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@ -272,8 +275,10 @@ the wrong hands.")
"1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i"))
(modules '((guix build utils)))
;; Create relative symbolic links instead of absolute ones to /lib/*
(snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
"$(LNS) ")))))
(snippet '(begin
(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
"$(LNS) "))
#t))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -358,14 +363,14 @@ no man page, refer to the home page for usage details.")
(define-public tomb
(package
(name "tomb")
(version "2.4")
(version "2.5")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dyne.org/tomb/"
"Tomb-" version ".tar.gz"))
(sha256
(base32
"1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr"))))
"12c6qldngaw520gvb02inzkhnxbl4k0dwmddrgnaf7xashy6j0wc"))))
(build-system gnu-build-system)
(native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase
(inputs
@ -377,7 +382,8 @@ no man page, refer to the home page for usage details.")
("mlocate" ,mlocate)
("pinentry" ,pinentry)
("qrencode" ,qrencode)
("steghide" ,steghide)))
("steghide" ,steghide)
("util-linux" ,util-linux)))
(arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
;; 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)))
'("seq" "mkfs.ext4" "pinentry" "sudo"
"gpg" "cryptsetup" "gettext"
"qrencode" "steghide")))))
"qrencode" "steghide" "findmnt")))))
#t)))
(delete '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
'("--enable-fat")
'())
"--disable-native") ; don't optimise at build time.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "sh" "autogen.sh"))))))
"--disable-native"))) ;don't optimise at build time
(home-page "https://blake2.net/")
(synopsis "Library implementing the BLAKE2 family of hash functions")
(description
@ -671,7 +672,7 @@ BLAKE.")
(define-public rhash
(package
(name "rhash")
(version "1.3.5")
(version "1.3.6")
(source
(origin
(method url-fetch)
@ -680,32 +681,27 @@ BLAKE.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0bhz3xdl6r06k1bqigdjz42l31iqz2qdpg7zk316i7p2ra56iq4q"))))
"14ngzfgmd1lfp7m78sn49x8ymf2s37nrr67c6p5vas85nrrgjkcn"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output))
#:test-target "test"
`(#:make-flags
;; The binaries in /bin need some help finding librhash.so.0.
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:test-target "test" ; make check just checks the sources
#:phases
(modify-phases %standard-phases
(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)
(substitute* "Makefile"
(("\\$\\(DESTDIR\\)/etc")
(string-append (assoc-ref outputs "out") "/etc")))
#t))
(add-after 'build 'build-library
(invoke "./configure"
(string-append "--prefix=" (assoc-ref outputs "out")))))
(add-after 'install 'install-library-extras
(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
"make" "-C" "librhash" "install-headers"
"install-so-link" make-flags)))
(add-after 'check 'check-library
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "test-shared-lib" make-flags))))))
"make" "-C" "librhash"
"install-headers" "install-so-link"
make-flags))))))
(home-page "https://sourceforge.net/projects/rhash/")
(synopsis "Utility for computing hash sums")
(description "RHash is a console utility for calculation and verification

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,6 +11,7 @@
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,6 +54,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages compression)
#:use-module (gnu packages vim)
#:use-module (gnu packages w3m)
#:use-module (gnu packages xml))
(define-public parted
@ -464,15 +466,15 @@ a card with a smaller capacity than stated.")
(define-public duperemove
(package
(name "duperemove")
(version "v0.11.beta4")
(version "0.11")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/markfasheh/duperemove/archive/"
"https://github.com/markfasheh/duperemove/archive/v"
version ".tar.gz"))
(sha256
(base32
"1h5nk03kflfnzihvn2rvfz1h623x1zpkn9hp29skd7n3f2bc5k7x"))
"0rjmmh42yqw9a5j6sp31cqwxk3s97dsi4xz0wpxpllj7bsp3aiw5"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(native-inputs
@ -481,11 +483,10 @@ a card with a smaller capacity than stated.")
`(("glib" ,glib)
("sqlite" ,sqlite)))
(arguments
`(#:tests? #f ;no test suite
`(#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure))
(delete 'configure)) ; no configure script
#:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc")))
(home-page "https://github.com/markfasheh/duperemove")
@ -517,12 +518,28 @@ Duperemove can also take input from the @command{fdupes} program.")
(base32
"1lnzkrxcnlwnyi3z0v8ybyp8d5rm26qm35rr68kbs2lbs06inha0"))))
(build-system python-build-system)
(inputs
`(("w3m" ,w3m)))
(native-inputs ;for tests
`(("python-pytest" ,python-pytest)
("python-pylint" ,python-pylint)
("python-flake8" ,python-flake8)
("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/")
(synopsis "Console file manager")
(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 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -143,7 +144,8 @@ Qt-style API for Wayland clients.")
"sddm-" version ".tar.xz"))
(sha256
(base32
"0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k"))))
"0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k"))
(patches (search-patches "sddm-fix-build-with-qt-5.11-1024.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("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
(package
(name "bind")
(version "9.12.1")
(version "9.12.1-P2")
(source (origin
(method url-fetch)
(uri (string-append
@ -106,7 +106,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
version ".tar.gz"))
(sha256
(base32
"043mjcw405qa0ghm5dkhfsq35gsy279724fz3mjqpr1mbi14dr0n"))))
"0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@ -176,7 +176,9 @@ high-volume and high-reliability applications. The name BIND stands for
(snippet
;; Delete bundled libltdl. XXX: This package also bundles
;; a modified libevent that cannot currently be removed.
'(delete-file-recursively "libltdl"))))
'(begin
(delete-file-recursively "libltdl")
#t))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -490,14 +492,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
(version "2.6.6")
(version "2.6.7")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
name "-" version ".tar.xz"))
(sha256
(base32
"02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci"))
"0hr2m664ckjicv3pq2lk16m61pscknywxv2ydnrzfqf10m5h0ahw"))
(modules '((guix build utils)))
(snippet
'(begin

View File

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

View File

@ -1,5 +1,5 @@
;;; 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 © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@ -59,7 +59,7 @@
`(#:tests? #f ; no 'check' target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(replace 'bootstrap
(lambda _
(invoke "autoconf")))
;; 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
("python" ,python-2))) ; for creating the documentation
(inputs
`(("bash" ,bash-minimal)))
`(("bash" ,bash-minimal)
,@(if (string-prefix? "armhf-" (%current-system))
`(("gcc-ice-patch" ,@(search-patches "doxygen-gcc-ice.patch")))
'())))
(arguments
`(#:test-target "tests"
#: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
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/portable.cpp"

View File

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

View File

@ -3,6 +3,8 @@
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; 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.
;;;
@ -22,27 +24,33 @@
(define-module (gnu packages education)
#:use-module (ice-9 regex)
#: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 databases)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages javascript)
#:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1))
(define-public gcompris
@ -107,7 +115,7 @@ of categories with some of the activities available in that category.
(define-public gcompris-qt
(package
(name "gcompris-qt")
(version "0.90")
(version "0.91")
(source
(origin
(method url-fetch)
@ -116,11 +124,18 @@ of categories with some of the activities available in that category.
version ".tar.xz"))
(sha256
(base32
"1i5adxnhig849qxwi3c4v7r84q6agx1zxkd69fh4y7lcmq2qiaza"))))
"09h098w9q79hnzla1pcpqlnnr6dbafm4q6zmdp7wlk11ym8n9kvg"))))
(build-system cmake-build-system)
(arguments
`(#: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
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -209,7 +224,7 @@ Currently available boards include:
(substitute* "def/defines.h"
(("\"/usr/") (string-append "\"" out "/")))
;; Recreate Makefile
(zero? (system* "qmake"))))))))
(invoke "qmake")))))))
(inputs
`(("qt4" ,qt-4)
("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
easy.")
(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="
(assoc-ref %outputs "out")
"/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
(modify-phases %standard-phases
;; 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.
(let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(invoke "./configure"
(string-append "--prefix=" out)
,@(if (string=? "aarch64-linux"
(%current-system))
'("--host=aarch64-unknown-linux-gnu")
'())))))))))
'()))))))))
(home-page "http://www.mr511.de/software/english.html")
(synopsis "ELF object file access library")
(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
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories))))))
directories)
#t)))))
(propagated-inputs
`(("binutils" ,(cross-binutils "arm-none-eabi"))
("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc))
@ -610,7 +611,7 @@ micro-controller.")
(version (package-version propeller-gcc))
(source #f)
(build-system trivial-build-system)
(arguments '(#:builder (mkdir %output)))
(arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs
`(("binutils" ,propeller-binutils)
("libc" ,proplib)
@ -785,7 +786,7 @@ two-thirds of the opcodes in the P2 instruction set.")
(version (package-version propeller-gcc))
(source #f)
(build-system trivial-build-system)
(arguments '(#:builder (mkdir %output)))
(arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs
`(("toolchain" ,propeller-toolchain)
("openspin" ,openspin)
@ -830,7 +831,7 @@ simulator.")
(lambda _
(substitute* "opcodes/Makefile.in"
(("guile\\{,-\\}1.8") "guile"))
(zero? (system* "which" "guile")))))))
(invoke "which" "guile"))))))
(native-inputs
`(("cgen"
,(origin

View File

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; 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, 2018 Rutger Helling <rhelling@mykolab.com>
;;;
@ -33,6 +33,7 @@
#:use-module (guix svn-download)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@ -45,6 +46,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@ -54,12 +56,19 @@
#:use-module (gnu packages libedit)
#:use-module (gnu packages libusb)
#: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 networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages video)
@ -69,6 +78,7 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages web)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
@ -107,8 +117,8 @@
;; Building from recent Git because the official 5.0 release no longer builds.
(define-public dolphin-emu
(let ((commit "d04b179111f8d863f360839474cb82c766f762b8")
(revision "0"))
(let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136")
(revision "1"))
(package
(name "dolphin-emu")
(version (git-version "5.0" revision commit))
@ -134,7 +144,7 @@
#t))
(sha256
(base32
"0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l"))))
"1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f
@ -143,13 +153,17 @@
#: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
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((fontfile
(string-append (assoc-ref inputs "font-wqy-microhei")
"/share/fonts/truetype/wqy-microhei.ttc"))
(libvulkan
(string-append (assoc-ref inputs "vulkan-icd-loader")
(string-append (assoc-ref inputs "vulkan-loader")
"/lib/libvulkan.so")))
(chdir "docs")
(invoke "bash" "-c" "g++ -O2 -std=c++11 $(freetype-config \
@ -179,6 +193,7 @@
"-DX11_FOUND=1")))
(native-inputs
`(("pkg-config" ,pkg-config)
("gcc" ,gcc-7) ; Building with gcc@5 doesn't work anymore.
("gettext" ,gnu-gettext)))
(inputs
`(("alsa-lib" ,alsa-lib)
@ -211,7 +226,7 @@
("sfml" ,sfml)
("soil" ,soil)
("soundtouch" ,soundtouch)
("vulkan-icd-loader" ,vulkan-icd-loader)
("vulkan-loader" ,vulkan-loader)
("wxwidgets" ,wxwidgets-gtk2-3.1)
("zlib" ,zlib)))
(home-page "https://dolphin-emu.org/")
@ -410,11 +425,13 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
'(for-each
(lambda (subdir)
(let ((lib-subdir (string-append "src/third-party/" subdir)))
(delete-file-recursively lib-subdir)))
'("libpng" "lzma" "sqlite3" "zlib")))))
'(begin
(for-each
(lambda (subdir)
(let ((lib-subdir (string-append "src/third-party/" subdir)))
(delete-file-recursively lib-subdir)))
'("libpng" "lzma" "sqlite3" "zlib"))
#t))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no "test" target
@ -1007,7 +1024,8 @@ towards a working Mupen64Plus for casual users.")
(snippet
'(begin
;; We don't need libretro for the GNU/Linux build.
(delete-file-recursively "libretro")))))
(delete-file-recursively "libretro")
#t))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -1043,7 +1061,7 @@ emulation community. It provides highly accurate emulation.")
(define-public retroarch
(package
(name "retroarch")
(version "1.7.2")
(version "1.7.3")
(source
(origin
(method url-fetch)
@ -1051,7 +1069,7 @@ emulation community. It provides highly accurate emulation.")
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1y9fakr41h6xpddpkj12mcw1kgldvy76nzvxm5jk5v7iyiks4c6k"))))
(base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
@ -1061,7 +1079,7 @@ emulation community. It provides highly accurate emulation.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(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.
(substitute* "gfx/common/vulkan_common.c"
(("libvulkan.so") (string-append vulkan "/lib/libvulkan.so")))
@ -1085,9 +1103,10 @@ emulation community. It provides highly accurate emulation.")
("openal" ,openal)
("pulseaudio" ,pulseaudio)
("python" ,python)
("qtbase" ,qtbase)
("sdl" ,sdl2)
("udev" ,eudev)
("vulkan-icd-loader" ,vulkan-icd-loader)
("vulkan-loader" ,vulkan-loader)
("wayland" ,wayland)
("zlib" ,zlib)))
(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
multi-system game/emulator system.")
(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 David Thompson <davet@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 © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -110,6 +111,13 @@
(string-append "#include <boost/serialization/array_wrapper.hpp>\n"
line)))
#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
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -329,7 +337,9 @@ featuring various improvements and bug fixes.")))
"0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k"))
(snippet
;; Remove a non-free file.
'(delete-file "doc/psfig.sty"))
'(begin
(delete-file "doc/psfig.sty")
#t))
(patches (search-patches "fastcap-mulSetup.patch"
"fastcap-mulGlobal.patch"))))
(build-system gnu-build-system)
@ -523,35 +533,17 @@ ready for production.")
(define-public gerbv
(package
(name "gerbv")
(version "2.6.1")
(version "2.6.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
version "/gerbv-" version ".tar.gz"))
(sha256
(base32
"0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks"))))
"1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i"))))
(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
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("gettext" ,gettext-minimal)
("po4a" ,po4a)
("pkg-config" ,pkg-config)))
`(("pkg-config" ,pkg-config)))
(inputs
`(("cairo" ,cairo)
("gtk" ,gtk+-2)
@ -769,7 +761,7 @@ render model libraries.")
(define-public linsmith
(package
(name "linsmith")
(version "0.99.30")
(version "0.99.31")
(source (origin
(method url-fetch)
(uri (string-append
@ -777,13 +769,13 @@ render model libraries.")
version "/linsmith-" version ".tar.gz"))
(sha256
(base32
"18qslhr2r45rhpj4v6bjcqx189vs0bflvsj271wr7w8kvh69qwvn"))))
"13qj7n9826qc9shkkgd1p6vcpj78v4h9d67wbg45prg7rbnzkzds"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("gtk" ,gtk+-2)
("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")
(description "LinSmith is a Smith Charting program, mainly designed for
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
(package
(name "radare2")
(version "1.6.0")
(version "2.5.0")
(source (origin
(method url-fetch)
(uri (string-append "http://radare.mikelloc.com/get/" version "/"
name "-" version ".tar.gz"))
(sha256
(base32
"16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm"))
"17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1096,7 +1088,8 @@ bindings for Python, Java, OCaml and more.")
(substitute* "libr/parse/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
(substitute* "libr/bin/p/Makefile"
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))))))
(("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
#t))))
(build-system gnu-build-system)
(arguments
'(#: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>.
(package
(name "libngspice")
(version "26")
(version "28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
version "/ngspice-" version ".tar.gz"))
(sha256
(base32
"02019ndcl057nq9z41nxycqba7wxlb081ibvfj9jv010nz431qji"))
"0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l"))
(modules '((guix build utils)))
;; We remove the non-free cider and build without it.
(snippet
@ -1201,7 +1194,8 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
(("src/ciderlib/input/Makefile") "")
(("src/ciderlib/support/Makefile") "")
(("src/ciderlib/oned/Makefile") "")
(("src/ciderlib/twod/Makefile") ""))))))
(("src/ciderlib/twod/Makefile") ""))
#t))))
(build-system gnu-build-system)
(arguments
`(;; No tests for libngspice exist.
@ -1212,7 +1206,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
(add-after 'unpack 'patch-timestamps
(lambda _
(substitute* "configure"
(("`date`") "Do 1. Jan 00:00:00 UTC 1970"))
(("`date`") "Thu Jan 1 00:00:01 UTC 1970"))
#t))
(add-after 'unpack 'delete-program-manuals
(lambda _
@ -1285,17 +1279,27 @@ an embedded event driven algorithm.")
;; TODO: Remove when we have modular Trilinos packages?
(package
(name "trilinos-serial-xyce")
(version "12.6.3")
(version "12.12.1")
(source
(origin (method url-fetch)
(uri (string-append "https://trilinos.org/oldsite/download/files/trilinos-"
version "-Source.tar.gz"))
(sha256
(base32
"07jd1qpsbf31cmbyyngr4l67xzwyan24dyx5wlcahgbw7x6my3wn"))))
"1zgrcksrcbmyy79mbdv0j4j4sh0chpigxk8vcrrwgaxyxwxxhrvw"))))
(build-system cmake-build-system)
(arguments
`(#: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
(list "-DCMAKE_CXX_FLAGS=-O3 -fPIC"
"-DCMAKE_C_FLAGS=-O3 -fPIC"
@ -1328,7 +1332,7 @@ an embedded event driven algorithm.")
("swig" ,swig)))
(inputs
`(("boost" ,boost)
("lapack" ,lapack-3.5)
("lapack" ,lapack)
("suitesparse" ,suitesparse)))
(home-page "https://trilinos.org")
(synopsis "Engineering and scientific problems algorithms")
@ -1343,14 +1347,14 @@ unique design feature of Trilinos is its focus on packages.")
(define-public xyce-serial
(package
(name "xyce-serial")
(version "6.7")
(version "6.8")
(source
(origin (method url-fetch)
(uri (string-append "https://archive.org/download/Xyce-"
version "/Xyce-" version ".tar.gz"))
(sha256
(base32
"02k952mnvrnc5kv7r65fdrn7khwq1lbyhwyvd7jznafzdpsvgm4x"))))
"09flp1xywbb2laayd9rg8vd0fjsh115y6k1p71jacy0nrbdvvlcg"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@ -1366,7 +1370,7 @@ unique design feature of Trilinos is its focus on packages.")
(inputs
`(("fftw" ,fftw)
("suitesparse" ,suitesparse)
("lapack" ,lapack-3.5)
("lapack" ,lapack)
("trilinos" ,trilinos-serial-xyce)))
(home-page "https://xyce.sandia.gov/")
(synopsis "High-performance analog circuit simulator")
@ -1401,8 +1405,6 @@ parallel computing platforms. It also supports serial execution.")
"CC=mpicc"
"F77=mpif77"
"--enable-mpi"
"--enable-isorropia=no"
"--enable-zoltan=no"
(string-append
"ARCHDIR="
(assoc-ref %build-inputs "trilinos")))))))
@ -1509,116 +1511,134 @@ parallel computing platforms. It also supports serial execution.")
license:lgpl2.0+)))) ; freehdl's libraries
(define-public qucs
(package
(name "qucs")
(version "0.0.19")
(source (origin
(method url-fetch)
(uri
(string-append
"https://sourceforge.net/projects/qucs/files/qucs/" version
"/qucs-" version ".tar.gz"))
(sha256
(base32
"0giv9gfyfdizvjhq56x2pdncrlyv3k15lrsh6pk37i94vr7l7ij5"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "qucs/configure"
(("\\$QTDIR") (assoc-ref inputs "qt4")))
#t))
(add-after 'patch-configure 'patch-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* '("qucs/qucs/qucsdigi"
"qucs/qucs/qucsdigilib"
"qucs/qucs/qucsveri")
(("\\$BINDIR")
(string-append (assoc-ref outputs "out") "/bin"))
(("freehdl-config")
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
(("freehdl-v2cc")
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
(("cp ")
(string-append (assoc-ref inputs "coreutils") "/bin/cp "))
(("glibtool")
(string-append (assoc-ref inputs "libtool") "/bin/libtool"))
(("sed")
(string-append (assoc-ref inputs "sed") "/bin/sed"))
(("iverilog")
(string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
(("vvp")
(string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
#t))
(add-before 'check 'pre-check
(lambda _
;; The test suite requires a running X server.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t))
(add-after 'install 'make-wrapper
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; 'qucs' directly invokes gcc, hence this wrapping.
(wrap-program (string-append out "/bin/qucs")
`("CPLUS_INCLUDE_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/include")))
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/bin")))
`("LIBRARY_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/lib")))
`("ADMSXMLBINDIR" ":" prefix
(,(string-append (assoc-ref inputs "adms") "/bin")))
`("ASCOBINDIR" ":" prefix
(,(string-append (assoc-ref inputs "asco") "/bin")))
`("QUCS_OCTAVE" ":" prefix
(,(string-append (assoc-ref inputs "octave") "/bin/octave")))))
#t)))
#:parallel-build? #f ; race condition
#:configure-flags '("--disable-doc"))) ; we need octave-epstk
(native-inputs
`(("gperf" ,gperf)
("libtool-native" ,libtool)
("python" ,python-2) ; for tests
("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
;; Qucs 0.0.19 segfaults when using glibc-2.26. Temporarily build from git.
;; TODO: When qucs-0.0.20 is released, revert the commit that introduced this
;; comment and update the package.
(let ((commit "b4f27d9222568066cd59e4c387c51a35056c99d8")
(revision "0"))
(package
(name "qucs")
(version (git-version "0.0.19" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Qucs/qucs")
(commit commit)))
(sha256
(base32 "10bclay9xhkffmsh4j4l28kj1qpxx0pnxja5vx6305cllnq4r3gb"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'patch-bootstrap
(lambda _
(for-each patch-shebang
'("bootstrap"
"qucs/bootstrap"
"qucs-doc/bootstrap"
"qucs-core/bootstrap"))
#t))
(add-before 'configure 'patch-configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "qucs/configure"
(("\\$QTDIR") (assoc-ref inputs "qt4")))
#t))
(add-after 'patch-configure 'patch-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* '("qucs/qucs/qucsdigi"
"qucs/qucs/qucsdigilib"
"qucs/qucs/qucsveri")
(("\\$BINDIR")
(string-append (assoc-ref outputs "out") "/bin"))
(("freehdl-config")
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-config"))
(("freehdl-v2cc")
(string-append (assoc-ref inputs "freehdl") "/bin/freehdl-v2cc"))
(("cp ")
(string-append (assoc-ref inputs "coreutils") "/bin/cp "))
(("glibtool")
(string-append (assoc-ref inputs "libtool") "/bin/libtool"))
(("sed")
(string-append (assoc-ref inputs "sed") "/bin/sed"))
(("iverilog")
(string-append (assoc-ref inputs "iverilog") "/bin/iverilog"))
(("vvp")
(string-append (assoc-ref inputs "iverilog") "/bin/vvp")))
#t))
(add-before 'check 'pre-check
(lambda _
;; The test suite requires a running X server.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t))
(add-after 'install 'make-wrapper
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; 'qucs' directly invokes gcc, hence this wrapping.
(wrap-program (string-append out "/bin/qucs")
`("CPLUS_INCLUDE_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/include")))
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/bin")))
`("LIBRARY_PATH" ":" prefix
(,(string-append (assoc-ref inputs "gcc-toolchain")
"/lib")))
`("ADMSXMLBINDIR" ":" prefix
(,(string-append (assoc-ref inputs "adms") "/bin")))
`("ASCOBINDIR" ":" prefix
(,(string-append (assoc-ref inputs "asco") "/bin")))
`("QUCS_OCTAVE" ":" prefix
(,(string-append (assoc-ref inputs "octave") "/bin/octave")))))
#t)))
#:parallel-build? #f ; race condition
#:configure-flags '("--disable-doc"))) ; we need octave-epstk
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("bison" ,bison)
("flex" ,flex)
("gperf" ,gperf)
("libtool-native" ,libtool)
("pkg-config" ,pkg-config)
("python" ,python-2) ; for tests
("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,
S-parameter, transient, noise and harmonic balance analysis. Pure digital
simulations are also supported.")
(license license:gpl2+)))
(license license:gpl2+))))
(define-public qucs-s
(package
(name "qucs-s")
(version "0.0.19S")
(version "0.0.20")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ra3xdh/qucs/releases/download/"
version "/qucs-" version ".tar.gz"))
(uri (string-append "https://github.com/ra3xdh/qucs_s/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1bhahvdqmayaw0306fxz1ghmjhd4fq05yk3rk7zi0z703w5imgjv"))))
"01dizf4rjciqc8x7bmv3kbhdlz90bm6n9m9fz7dbzqcwvszcs1hx"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
@ -1653,19 +1673,21 @@ simulations are also supported.")
"\\+ \"qucsator\" \\+ executableSuffix"))
(string-append "}{ QucsSettings.Qucsator = \""
(assoc-ref inputs "qucs") "/bin/qucsator\""))
(((string-append "else QucsSettings\\.XyceExecutable = "
"\"/usr/local/Xyce-Release-6.2.0-OPENSOURCE/bin/runxyce"))
(string-append "QucsSettings.XyceExecutable = \""
(((string-append "QucsSettings\\.XyceExecutable = "
"\"/usr/local/Xyce-Release-6.8.0-OPENSOURCE/bin/Xyce"))
(string-append "}{ QucsSettings.XyceExecutable = \""
(assoc-ref inputs "xyce-serial") "/bin/Xyce"))
(((string-append "else QucsSettings\\.XyceParExecutable = \"/usr/local"
"/Xyce-Release-6.2.0-OPENMPI-OPENSOURCE/bin/xmpirun"))
(((string-append "else QucsSettings\\.XyceParExecutable = "
"\"mpirun -np %p /usr/local"
"/Xyce-Release-6.8.0-OPENMPI-OPENSOURCE/bin/Xyce"))
(string-append "QucsSettings.XyceParExecutable = \""
(assoc-ref inputs "mpi") "/bin/mpirun"))
(("%p")
(string-append "%p "(assoc-ref inputs "xyce-parallel") "/bin/Xyce"))
(assoc-ref inputs "mpi") "/bin/mpirun -np %p "
(assoc-ref inputs "xyce-parallel") "/bin/Xyce"))
(("else QucsSettings\\.NgspiceExecutable = \"ngspice\"")
(string-append "QucsSettings.NgspiceExecutable = " "\""
(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"
(("qucstrans")
(string-append (assoc-ref inputs "qucs") "/bin/qucstrans"))
@ -1678,7 +1700,7 @@ simulations are also supported.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each
(lambda (script)
(let ((file (string-append "../qucs-" ,version
(let ((file (string-append "../qucs_s-" ,version
"/qucs/" script))
(out (assoc-ref outputs "out")))
(install-file file (string-append out "/bin"))

View File

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

View File

@ -1,5 +1,5 @@
;;; 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 Ricardo Wurmus <rekado@elephly.net>
;;;
@ -107,17 +107,17 @@ single file can be mounted.")
(define-public disorderfs
(package
(name "disorderfs")
(version "0.5.2")
(version "0.5.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ReproducibleBuilds/disorderfs.git")
(commit "0.5.2")))
(url "https://salsa.debian.org/reproducible-builds/disorderfs.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1j028dq3d4m64mn9xmfamcnnc7i2drmra4pdmxdmqdsi8p7yj4sv"))))
"1nmhfvxpvz3xsfxl9wqnh6r2l5m7hjq6n0vpblsl5xdcvwaqcf50"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -209,7 +209,8 @@ by the b43-open driver of Linux-libre.")
(let* ((out (assoc-ref outputs "out"))
(fmw (string-append out "/share/firmware")))
(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")
(synopsis "x86 BIOS implementation")
(description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS
@ -262,36 +263,26 @@ coreboot.")
(setenv "PATH" (string-append (getenv "PATH") ":" bin))
; FIXME: The below script errors out. When using 'invoke' instead
; of 'system*' this causes the build to fail.
(system* "bash" "edksetup.sh" "BaseTools")
(system* "bash" "edksetup.sh")
(substitute* "Conf/target.txt"
(("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
(("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n")
(("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
(format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
(number->string (parallel-job-count)))))
;; Build build support.
(setenv "BUILD_CC" "gcc")
(invoke "make" "-C" (string-append tools "/Source/C"))
(invoke "make" "-C" tools)
#t)))
(add-after 'build 'build-ia32
(replace 'build
(lambda _
(substitute* "Conf/target.txt"
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n")
(("^ACTIVE_PLATFORM[ ]*=.*$")
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n"))
(invoke "build")
#t))
(invoke "build" "-a" "IA32" "-t" "GCC49"
"-p" "OvmfPkg/OvmfPkgIa32.dsc")))
,@(if (string=? "x86_64-linux" (%current-system))
'((add-after 'build 'build-x64
(lambda _
(substitute* "Conf/target.txt"
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n")
(("^ACTIVE_PLATFORM[ ]*=.*$")
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n"))
(invoke "build")
#t)))
(invoke "build" "-a" "X64" "-t" "GCC49"
"-p" "OvmfPkg/OvmfPkgX64.dsc"))))
'())
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(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: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"))
(package
(name (string-append "arm-trusted-firmware-" platform))
@ -404,3 +465,66 @@ such as:
(sha256
(base32
"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 man)
#:use-module (gnu packages bison)
#:use-module (gnu packages indent)
#:use-module (gnu packages code)
#:use-module (srfi srfi-1))
(define-public flex

View File

@ -137,8 +137,9 @@ TrueType (TTF) files.")
(lambda* (#:key outputs #:allow-other-keys)
(let ((conf-dir (string-append (assoc-ref outputs "out")
"/share/fontconfig/conf.avail")))
(copy-recursively "fontconfig" conf-dir)))))))
(home-page "http://dejavu-fonts.org/")
(copy-recursively "fontconfig" conf-dir)
#t))))))
(home-page "https://dejavu-fonts.github.io/")
(synopsis "Vera font family derivate with additional characters")
(description "DejaVu provides an expanded version of the Vera font family
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)
"/share/fonts/opentype")))))
(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"))
(install-opentype-fonts "OTC" "out")
(install-opentype-fonts "SubsetOTF/CN" "cn")
(install-opentype-fonts "SubsetOTF/JP" "jp")
(install-opentype-fonts "SubsetOTF/KR" "kr")
(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
`(("gzip" ,gzip)
("tar" ,tar)))
@ -948,7 +950,7 @@ vector graphics.")
(src-pcf-dir (string-append "tamzen-font-Tamzen-"
,version "/pcf")))
(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 psf-dir)
(chdir src-pcf-dir)
@ -1167,7 +1169,7 @@ itself."))))
(otf-dir (string-append %output
"/share/fonts/opentype")))
(setenv "PATH" PATH)
(system* "unzip" (assoc-ref %build-inputs "source"))
(invoke "unzip" (assoc-ref %build-inputs "source"))
(mkdir-p ttf-dir)
(mkdir-p otf-dir)
@ -1176,7 +1178,8 @@ itself."))))
(find-files "." "\\.ttf$"))
(for-each (lambda (otf)
(install-file otf otf-dir))
(find-files "." "\\.otf$"))))))
(find-files "." "\\.otf$"))
#t))))
(native-inputs `(("unzip" ,unzip)))
(home-page "http://www.impallari.com/dosis")
(synopsis "Very simple, rounded, sans serif family")

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