me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
Mark H Weaver 2018-04-21 04:57:29 -04:00
commit c52872bfc4
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
95 changed files with 117751 additions and 2356 deletions

17
.gitignore vendored
View File

@ -28,6 +28,21 @@
/configure
/doc/*.1
/doc/.dirstamp
/doc/guix.*.aux
/doc/guix.*.cp
/doc/guix.*.cps
/doc/guix.*.fn
/doc/guix.*.fns
/doc/guix.*.html
/doc/guix.*.info
/doc/guix.*.info-[0-9]
/doc/guix.*.ky
/doc/guix.*.pg
/doc/guix.*.toc
/doc/guix.*.t2p
/doc/guix.*.tp
/doc/guix.*.vr
/doc/guix.*.vrs
/doc/guix.aux
/doc/guix.cp
/doc/guix.cps
@ -47,6 +62,7 @@
/doc/os-config-desktop.texi
/doc/stamp-vti
/doc/version.texi
/doc/version-*.texi
/etc/guix-daemon.cil
/etc/guix-daemon.conf
/etc/guix-daemon.service
@ -79,6 +95,7 @@
/nix/scripts/list-runtime-roots
/nix/scripts/offload
/nix/scripts/substitute
/po/doc/*.mo
/po/guix/*.gmo
/po/guix/*.insert-header
/po/guix/*.mo

View File

@ -10,6 +10,7 @@
# Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nils Gillmann <ng0@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
#
# This file is part of GNU Guix.
#
@ -26,6 +27,8 @@
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
MSGMERGE_UPDATE = @MSGMERGE@ --update
bin_SCRIPTS = scripts/guix
# Handle substitution of fully-expanded Autoconf variables.
@ -51,6 +54,7 @@ MODULES_NOT_COMPILED = \
guix/man-db.scm
include gnu/local.mk
include po/doc/local.mk
MODULES = \
guix/base16.scm \
@ -454,7 +458,7 @@ dist_fishcompletion_DATA = etc/completion/fish/guix.fish
# SELinux policy
dist_selinux_policy_DATA = etc/guix-daemon.cil
EXTRA_DIST = \
EXTRA_DIST += \
HACKING \
ROADMAP \
TODO \
@ -792,3 +796,7 @@ AM_V_DOT_0 = @echo " DOT " $@;
AM_V_HELP2MAN = $(AM_V_HELP2MAN_$(V))
AM_V_HELP2MAN_ = $(AM_V_HELP2MAN_$(AM_DEFAULT_VERBOSITY))
AM_V_HELP2MAN_0 = @echo " HELP2MAN" $@;
AM_V_PO4A = $(AM_V_PO4A_$(V))
AM_V_PO4A_ = $(AM_V_PO4A_$(AM_DEFAULT_VERBOSITY))
AM_V_PO4A_0 = @echo " PO4A" $@;

View File

@ -263,6 +263,10 @@ AM_MISSING_PROG([DOT], [dot])
dnl Manual pages.
AM_MISSING_PROG([HELP2MAN], [help2man])
dnl Documentation translation.
AM_MISSING_PROG([PO4A_TRANSLATE], [po4a-translate])
AM_MISSING_PROG([PO4A_UPDATEPO], [po4a-updatepo])
dnl Emacs (optional), for 'etc/indent-package.el'.
AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs])
AC_SUBST([EMACS])

View File

@ -0,0 +1,505 @@
@node Contribuer
@chapter Contribuer
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}).
@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
version locale dans le fichier @file{CODE-OF-CONDUCT} dans l'arborescence
des sources.
Les contributeurs n'ont pas besoin d'utiliser leur nom légal dans leurs
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.
* 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.
* Envoyer des correctifs:: Partager votre travail.
@end menu
@node Construire depuis Git
@section Construire depuis Git
Si vous souhaitez travailler sur Guix lui-même, il est recommandé d'utiliser
la dernière version du dépôt Git :
@example
git clone https://git.savannah.gnu.org/git/guix.git
@end example
Lors de la construction de Guix depuis un extrait, les paquets suivants sont
requis en plus de ceux mentionnés dans les instructions d'installation
(@pxref{Prérequis}).
@itemize
@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
@item @url{http://gnu.org/software/automake/, GNU Automake};
@item @url{http://gnu.org/software/gettext/, GNU Gettext};
@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
@item @url{http://www.graphviz.org/, Graphviz};
@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}.
@end itemize
La manière la plus simple de configurer un environnement de développement
pour Guix est, bien sûr, d'utiliser Guix ! La commande suivante démarre un
nouveau shell où toutes les dépendances et les variables d'environnements
appropriées sont configurés pour travailler sur Guix :
@example
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
@option{--ad-hoc} :
@example
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 :
@example
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
@end example
@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 :
@example
export ACLOCAL_PATH=/usr/share/aclocal
@end example
@xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus
d'information.
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
aux instructions d'installation (@pxref{Installation}) ou envoyez un message
à la list @email{guix-devel@@gnu.org}.
@node Lancer Guix avant qu'il ne soit installé
@section Lancer Guix avant qu'il ne soit installé
Pour garder un environnement de travail sain, il est utile de tester les
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
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
que @code{GUILE_LOAD_PATH} est bien paramétré pour @command{guix-daemon} et
les outils qu'il utilise puissent trouver les modules Guile dont ils ont
besoin.} :
@example
$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
$ ./pre-inst-env guix build hello
@end example
@noindent
De même, pour une session Guile qui utilise les modules Guix :
@example
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
;;; ("x86_64-linux")
@end example
@noindent
@cindex REPL
@cindex read-eval-print loop
@dots{} et pour un REPL (@pxref{Using Guile Interactively,,, guile, Guile
Reference Manual})
@example
$ ./pre-inst-env guile
scheme@@(guile-user)> ,use(guix)
scheme@@(guile-user)> ,use(gnu)
scheme@@(guile-user)> (define snakes
(fold-packages
(lambda (package lst)
(if (string-prefix? "python"
(package-name package))
(cons package lst)
lst))
'()))
scheme@@(guile-user)> (length snakes)
$1 = 361
@end example
Le script @command{pre-inst-env} paramètre toutes les variables
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
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
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}.
@node La configuration parfaite
@section La configuration parfaite
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
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}.
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 :
@lisp
;; @r{Si l'extrait est dans ~/src/guix.}
(with-eval-after-load 'geiser-guile
(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.
@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
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
variables @var{yas-snippet-dirs} d'Emacs.
@lisp
;; @r{Si l'extrait est dans ~/src/guix.}
(with-eval-after-load 'yasnippet
(add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))
@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
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{origin} lui-même peut aussi insérer des chaînes de déclenchement qui
finissent sur @code{…}, qui peuvent aussi être étendues.
@node Style de code
@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
voici quelques règles supplémentaires.
@menu
* Paradigme de programmation:: Comment composer vos éléments.
* Modules:: Où stocker votre code ?
* Types de données et reconnaissance de motif:: Implémenter des
structures de données.
* Formatage du code:: Conventions d'écriture.
@end menu
@node Paradigme de programmation
@subsection Paradigme de programmation
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}.
@node Modules
@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
correct pour un module « côté hôte » de dépendre d'un module coté
construction.
Les modules qui s'occupent du système GNU général devraient se trouver dans
l'espace de nom @code{(gnu @dots{})} plutôt que @code{(guix @dots{})}.
@node Types de données et reconnaissance de motif
@subsection Types de données et reconnaissance de motif
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,
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
@code{(ice-9 match)}, surtout pour rechercher dans des listes.
@node Formatage du code
@subsection Formatage du code
@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
@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.
Certaines formes spéciales introduites dans Guix comme la macro
@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
@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
aussi lancer :
@example
./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}
@end example
@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
indenter un fichier complet, n'indiquez pas de second argument :
@example
./etc/indent-code.el gnu/services/@var{file}.scm
@end example
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.
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
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
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
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}).
Veuillez écrire les messages de commit dans le format ChangeLog
(@pxref{Change Logs,,, standards, GNU Coding Standards}) ; vous pouvez
regarder l'historique des commits pour trouver des exemples.
Avant de soumettre un correctif qui ajoute ou modifie la définition d'un
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}.
@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
directrices.
@item
Lancez @code{guix lint @var{paquet}}, où @var{paquet} est le nom du nouveau
paquet ou du paquet modifié, et corrigez les erreurs qu'il rapporte
(@pxref{Invoquer guix lint}).
@item
Assurez-vous que le paquet se construise sur votre plate-forme avec
@code{guix build @var{paquet}}.
@item
@cindex construction groupée
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,
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
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é
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
paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance
facultative utiliser.
@item
Pour les changements important, vérifiez que les paquets qui en dépendent
(s'ils existent) ne sont pas affectés par le changement ; @code{guix refresh
--list-dependant @var{paquet}} vous aidera (@pxref{Invoquer guix refresh}).
@c ===========================================================================
@c
@c This file was generated with po4a. Translate the source file.
@c
@c ===========================================================================
@c See <https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html>.
@cindex stratégie de branche
@cindex stratégie de planification des reconstructions
Suivant le nombre de paquets dépendants et donc le nombre de reconstruction
induites, les commits vont vers des branches différentes, suivant ces
principes :
@table @asis
@item 300 paquets dépendants ou moins
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
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
@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
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
signifie typiquement vérifier qu'une construction indépendante du paquet
renvoie exactement le même résultat que vous avez obtenu, bit à bit.
Une manière simple de le faire est de reconstruire le paquet plusieurs fois
à la suite sur votre machine (@pxref{Invoquer guix build}) :
@example
guix build --rounds=2 mon-paquet
@end example
Cela est suffisant pour trouver une classe de non-déterminisme commune,
comme l'horodatage ou des sorties générées aléatoirement dans le résultat de
la construction.
Une autre option consiste à utiliser @command{guix challenge}
(@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
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 —
par exemple se reposer sur @code{uname} ou les fichiers de @file{/proc}.
@item
Lorsque vous écrivez de la documentation, utilisez une formulation au genre
neutre lorsque vous vous référez à des personnes, comme le
@uref{https://fr.wikipedia.org/wiki/They_singulier, ``they''@comma{}
``their''@comma{} ``them'' singulier} (en anglais).
@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.
Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections
dans ce paquet sont des exemples de changements sans rapport.
@item
Suivez nos règles de formatage de code, éventuellement en lançant le script
@command{et/indent-code.el} pour le faire automatiquement (@pxref{Formatage
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
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
attention si votre client de courriel change par exemple les retours à la
ligne ou l'indentation, ce qui peut casser les correctifs.
Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à
@email{@var{NNN}-done@@debbugs.gnu.org}.
@unnumberedsubsec Envoyer une série de correctifs
@anchor{Envoyer une série de correctifs}
@cindex série de correctifs
@cindex @code{git send-email}
@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
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
documentation de Debbugs} pour plus d'informations.

21884
doc/guix.fr.texi 100644

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
#
# This file is part of GNU Guix.
#
@ -20,7 +21,8 @@
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = %D%/guix.texi
info_TEXINFOS = %D%/guix.texi \
%D%/guix.fr.texi
%C%_guix_TEXINFOS = \
%D%/contributing.texi \
@ -51,10 +53,53 @@ OS_CONFIG_EXAMPLES_TEXI = \
%D%/os-config-desktop.texi \
%D%/os-config-lightweight-desktop.texi
TRANSLATED_INFO = \
%D%/guix.fr.texi \
%D%/contributing.fr.texi
# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI)
EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI)
MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI)
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
EXTRA_DIST += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
MAINTAINERCLEANFILES = $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
PO4A_PARAMS := -M UTF-8 -L UTF-8 #master and localized encoding
PO4A_PARAMS += -k 0 # produce an output even if the translation is not complete
PO4A_PARAMS += -f texinfo # texinfo format
# When a change to guix.texi occurs, it is not translated immediately.
# Because @pxref and @xref commands are reference to a section by name, they
# should be translated. If a modification adds a reference to a section, this
# reference is not translated, which means it references a section that does not
# exist.
# This command loops through the translated files looking for references. For
# each of these references, it tries to find the translation and replaces the
# reference name, even in untranslated strings.
# The last sed is a multiline sed because some references span multiple lines.
define xref_command
cat "$@.tmp" | egrep '@p?x?ref' -A1 | sed 'N;s|--\n||g;P;D' | sed 's|^| |g' | \
tr -d '\012' | sed 's|\(@p\?x\?ref\)|\n\1|g' | egrep '@p?x?ref' | \
sed 's|^.*@p\?x\?ref{\([^,}]*\).*$$|\1|g' | sort | uniq | while read e; do \
line=$$(grep -n "^msgid \"$$e\"" "$<" | cut -f1 --delimiter=":") ;\
((line++)) ;\
if [ "$$line" != "1" ]; then \
translation=$$(head -n $$line "$<" | tail -1 | grep msgstr | sed 's|msgstr "\(.*\)"|\1|') ;\
if [ "$$translation" != "" ]; then \
sed "N;s@\(p\?x\?ref\){$$(echo $$e | sed 's| |[\\n ]|g')\(,\|}\)@\1{$$translation\2@g;P;D" -i "$@.tmp" ;\
fi ;\
fi ;\
done
endef
$(srcdir)/%D%/guix.%.texi: po/doc/guix.%.po $(srcdir)/%D%/contributing.%.texi
-$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix.texi" -p "$<" -l "$@.tmp"
-sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp"
-$(xref_command)
-mv "$@.tmp" "$@"
$(srcdir)/%D%/contributing.%.texi: po/doc/guix.%.po po/doc/contributing.%.po
-$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/contributing.texi" -p "$(word 2,$^)" -l "$@.tmp"
-$(xref_command)
-mv "$@.tmp" "$@"
%D%/os-config-%.texi: gnu/system/examples/%.tmpl
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \

View File

@ -608,7 +608,6 @@ dist_patch_DATA = \
%D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \
%D%/packages/patches/cool-retro-term-fix-array-size.patch \
%D%/packages/patches/cool-retro-term-memory-leak-1.patch \
%D%/packages/patches/cool-retro-term-remove-non-free-fonts.patch \
%D%/packages/patches/cpio-CVE-2016-2037.patch \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/cracklib-CVE-2016-6318.patch \
@ -621,6 +620,7 @@ dist_patch_DATA = \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-2017-12836.patch \
%D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \
%D%/packages/patches/datamash-arm-tests.patch \
%D%/packages/patches/dbus-helper-search-path.patch \
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
%D%/packages/patches/delly-use-system-libraries.patch \
@ -669,6 +669,7 @@ dist_patch_DATA = \
%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 \
%D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/freetype-CVE-2018-6942.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \
%D%/packages/patches/gawk-shell.patch \
@ -783,7 +784,6 @@ dist_patch_DATA = \
%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/htop-fix-process-tree.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 \
@ -862,7 +862,6 @@ dist_patch_DATA = \
%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-jsoncreatortest.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 \
@ -933,6 +932,7 @@ dist_patch_DATA = \
%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/net-tools-bitrot.patch \
%D%/packages/patches/netcdf-date-time.patch \
@ -1057,6 +1057,7 @@ 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-CVE-2018-7550.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \
@ -1089,6 +1090,7 @@ dist_patch_DATA = \
%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 \
%D%/packages/patches/slim-config.patch \

View File

@ -20,6 +20,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -90,7 +91,10 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xml))
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
#:use-module (gnu packages mpi))
(define-public aide
(package
@ -261,15 +265,14 @@ graphs and can export its output to different formats.")
(define-public htop
(package
(name "htop")
(version "2.1.0")
(version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://hisham.hm/htop/releases/"
version "/htop-" version ".tar.gz"))
(sha256
(base32
"0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j"))
(patches (search-patches "htop-fix-process-tree.patch"))))
"0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
@ -1654,6 +1657,35 @@ you use the most from the command line and allows you to \"jump\" to
frequently used directories by typing only a small pattern.")
(license license:gpl3+)))
(define-public fasd
(package
(name "fasd")
(version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/clvv/fasd.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1awi71jdv3mhjrmar2d4z1i90kn7apd7aq1w31sh6w4yibz9kiyj"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'configure)) ;no configuration
#:tests? #f ;no tests
#:make-flags (list (string-append "PREFIX=" %output))))
(home-page "https://github.com/clvv/fasd")
(synopsis "Quick access to files and directories for shells")
(description
"Fasd (pronounced similar to \"fast\") is a command-line productivity
booster. Fasd offers quick access to files and directories for POSIX shells.
It is inspired by tools like autojump, z, and v. Fasd keeps track of files
and directories you have accessed so that you can quickly reference them in
the command line.")
(license license:x11)))
(define-public iftop
(package
(name "iftop")
@ -1909,13 +1941,13 @@ a new command using the matched rule, and runs it.")
(define-public di
(package
(name "di")
(version "4.44")
(version "4.46")
(source
(origin
(method url-fetch)
(uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
(sha256
(base32 "0803lp8kd3mp1jcm17i019xiqxdy85hhs6xk67zib8gmvg500gcn"))))
(base32 "0cskiqywiqkw44zdg4q78bjns6jjp1dz5lzdxrhpnpldc6075irw"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Obscure test failures.
@ -1940,14 +1972,14 @@ produce uniform output across heterogeneous networks.")
(define-public cbatticon
(package
(name "cbatticon")
(version "1.6.7")
(version "1.6.8")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/valr/"
name "/archive/" version ".tar.gz"))
(sha256
(base32
"1s2n49ydh7pznnf02fak4yy0wqkgi9ag7yiw1zg1lhp4m0h37hyh"))
"185lzvaijvyq7y8r7dvizhri0rf9lpc1anfgbbn4lznr1fr3z7rn"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(arguments
@ -2294,7 +2326,7 @@ tool for remote execution and deployment.")
(define-public neofetch
(package
(name "neofetch")
(version "3.3.0")
(version "3.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dylanaraps/neofetch/"
@ -2302,7 +2334,7 @@ tool for remote execution and deployment.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"15p69q0jchfms1fpb4i7kq8b28w2xpgh2zmynln618qxv1myf228"))))
"18rhamy910ig03rr55y9x5i6pf78yj9xc6jpm6nfh3gqja7340rb"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
@ -2515,3 +2547,63 @@ printed instead of after the entire file has been read, which is often too
late.")
(home-page "https://jwilk.net/software/hungrycat")
(license license:expat)))
(define-public launchmon
(package
(name "launchmon")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/LLNL/LaunchMON/releases/download/v"
version "/" name "-v" version ".tar.gz"))
(sha256
(base32
"0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x"))))
(build-system gnu-build-system)
(inputs
`(("mpi" ,openmpi)
("munge" ,munge)
("boost" ,boost)
("libelf" ,libelf)
("libgcrypt" ,libgcrypt)
("libgpg-error" ,libgpg-error)))
(synopsis "Infrastructue for large scale tool daemon launching")
(description
"LaunchMON is a software infrastructure that enables HPC run-time
tools to co-locate tool daemons with a parallel job. Its API allows a
tool to identify all the remote processes of a job and to scalably
launch daemons into the relevant nodes.")
(home-page "https://github.com/LLNL/LaunchMON")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:lgpl2.1)))
(define-public spindle
(package
(name "spindle")
(version "0.10")
(source (origin
;; We use git checkout to avoid github auto-generated tarballs
(method git-fetch)
(uri (git-reference
(url "https://github.com/hpc/Spindle.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15n3ay0qq81r5v7fif61q1vdjcq44pp2nynkh3fvbzc9fj3c39wd"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--enable-sec-launchmon"
"--enable-sec-munge"
"--enable-sec-none")))
(inputs
`(("mpi" ,openmpi)
("munge" ,munge)
("launchmon" ,launchmon)
("libgcrypt" ,libgcrypt)))
(synopsis "Scalable library loading in HPC environments")
(description
"Spindle is a tool for improving the performance of dynamic library and
Python loading in HPC environments.")
(home-page "https://github.com/hpc/Spindle")
(license license:lgpl2.1)))

View File

@ -375,7 +375,7 @@ and will take advantage of multiple processor cores where possible.")
(define-public libtorrent-rasterbar
(package
(name "libtorrent-rasterbar")
(version "1.1.6")
(version "1.1.7")
(source (origin
(method url-fetch)
(uri
@ -385,7 +385,7 @@ and will take advantage of multiple processor cores where possible.")
"/libtorrent-rasterbar-" version ".tar.gz"))
(sha256
(base32
"1vr1a7smkwh7dc7jb9n68i0cg59wxhgywxc9kxpbs8fi9c04vixp"))))
"1agkcyjs7xscx4sgkg2ri4nm4v736xsg3br2v8jcrph86dlbycw1"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View File

@ -444,9 +444,6 @@ also initializes the boards (RAM etc).")
(define-public u-boot-beagle-bone-black
(make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
(define-public u-boot-odroid-c2
(make-u-boot-package "odroid-c2" "aarch64-linux-gnu"))
(define-public u-boot-pine64-plus
(let ((base (make-u-boot-package "pine64_plus" "aarch64-linux-gnu")))
(package

View File

@ -3,6 +3,7 @@
;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,6 +29,8 @@
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages ninja)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@ -171,3 +174,43 @@ scripted definition of a software project and outputs @file{Makefile}s or
other lower-level build files.")
(home-page "https://premake.github.io")
(license license:bsd-3)))
(define-public osc
(package
(name "osc")
(version "0.162.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/openSUSE/" name
"/archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0b4kpm96ns4smqyfjysbk2p78d36x44xprpna8zz85q1y5xn57aj"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; Module is python2 only.
#:phases
(modify-phases %standard-phases
(add-after 'install 'fix-filename-and-remove-unused
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
;; Main osc tool is renamed in spec file, not setup.py, let's
;; do that too.
(rename-file
(string-append bin "osc-wrapper.py")
(string-append bin "osc"))
;; Remove unused and broken script.
(delete-file (string-append bin "osc_hotshot.py"))
#t))))))
(inputs
`(("python2-m2crypto" ,python2-m2crypto)
("python2-pycurl" ,python2-pycurl)
("python2-urlgrabber" ,python2-urlgrabber)))
(home-page "https://github.com/openSUSE/osc")
(synopsis "Open Build Service command line tool")
(description "@command{osc} is a command line interface to the Open Build
Service. It allows you to checkout, commit, perform reviews etc. The vast
majority of the OBS functionality is available via commands and the rest can
be reached via direct API calls.")
(license license:gpl2+)))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
@ -472,7 +472,7 @@ from an audio CD.")
(define-public abcde
(package
(name "abcde")
(version "2.8.1")
(version "2.9.1")
(home-page "https://abcde.einval.com/")
(source (origin
(method url-fetch)
@ -480,7 +480,7 @@ from an audio CD.")
version ".tar.gz"))
(sha256
(base32
"0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774"))
"1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -545,6 +545,7 @@ decompressors when faced with corrupted input.")
(method url-fetch)
(uri (string-append "mirror://gnu/sharutils/sharutils-"
version ".tar.xz"))
(patches (search-patches "sharutils-CVE-2018-1000097.patch"))
(sha256
(base32
"16isapn8f39lnffc3dp4dan05b7x6mnc76v6q5nn8ysxvvvwy19b"))))
@ -2118,14 +2119,14 @@ non-Windows systems without running the actual installer using wine.")
(define-public google-brotli
(package
(name "google-brotli")
(version "1.0.2")
(version "1.0.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/google/brotli/archive/v"
version ".tar.gz"))
(sha256
(base32
"08kl9gww2058p1p7j9xqmcmrabcfihhj3fq984d7fi3bchb2mky2"))))
"1hrpmz162k4x3xm6vmbpm443jlfr1kp536p8962y2dncy7gs6s12"))))
(build-system cmake-build-system)
(arguments
`(#:phases

View File

@ -164,14 +164,14 @@ such as copy/paste from an R session.")
(define-public r-callr
(package
(name "r-callr")
(version "2.0.2")
(version "2.0.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "callr" version))
(sha256
(base32
"0m51p39vfwldxv6h8x4y9w3laf8q9bldhfqhlcrlx3xhy3irb1bp"))))
"1k3mflgn10hcvy74y4pbigpv74zb66fz1phfd3c8isqmn88xbxzi"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@ -287,14 +287,14 @@ component analysis (with robust methods, and parallelized functions).")
(define-public r-ape
(package
(name "r-ape")
(version "5.0")
(version "5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ape" version))
(sha256
(base32
"0q59pmxawz498cb9mv5m49lhiwxib8ak94yyydz7qg8b6lpd4bn3"))))
"0vm2065993wf4hdqarxqykhfz9aaj0rrb98alhkq4qw1d2kdrmdp"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)
@ -871,14 +871,14 @@ plot networks.")
(define-public r-proxy
(package
(name "r-proxy")
(version "0.4-21")
(version "0.4-22")
(source
(origin
(method url-fetch)
(uri (cran-uri "proxy" version))
(sha256
(base32
"1vih8gsfzv97h5c8ixd1qjnn02i7fzla2p9fdj2wpisqhx0p0xv0"))))
"0l0ff8irmmvic941is290hd5vszyhaj5nfwna4v3w9c1zk5nr1ma"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/proxy")
(synopsis "Distance and similarity measures")
@ -2799,14 +2799,14 @@ financial trading strategies.")
(define-public r-tseries
(package
(name "r-tseries")
(version "0.10-43")
(version "0.10-44")
(source
(origin
(method url-fetch)
(uri (cran-uri "tseries" version))
(sha256
(base32
"1yjxhj7l1p2przczl6frggfcr5iwda9lbcsmh0y75gbbbps14yf2"))))
"0nz6v76hsxcprpgf84al5r0p08sr9qacqal4adndz9wmg604l4ag"))))
(build-system r-build-system)
(propagated-inputs
`(("r-quadprog" ,r-quadprog)
@ -3613,14 +3613,14 @@ evaluated by the @dfn{Akaike Information Criterion} (AIC).")
(define-public r-arules
(package
(name "r-arules")
(version "1.6-0")
(version "1.6-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "arules" version))
(sha256
(base32
"14gbq5k2zkx4wc7kkfazz313ngij89qp1xmyxfg3nq3v1s84c3sl"))))
"0glfqgxr87900kigmkby2ff7qrjvd6aq595q85y056i5ckjcp615"))))
(build-system r-build-system)
(propagated-inputs
`(("r-matrix" ,r-matrix)))

View File

@ -7,6 +7,7 @@
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,6 +37,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages groff)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages guile)
#:use-module (gnu packages libidn)
#:use-module (gnu packages openldap)
#:use-module (gnu packages perl)
@ -181,3 +183,51 @@ mechanisms particularly within the HTTP(S) realm are to be expected. kurly does
not offer a replacement for libcurl.")
(home-page "https://github.com/davidjpeacock/kurly")
(license license:asl2.0)))
(define-public guile-curl
(package
(name "guile-curl")
(version "0.5")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.lonelycactus.com/tarball/guile-curl-"
version ".tar.gz"))
(sha256
(base32
"1846rxgc0ylh8768lr79irc7nwjichzb7qb7lzs2k42m0i53sc46"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append
"--with-guilesitedir="
(assoc-ref %outputs "out")
"/share/guile/site/2.2")
(string-append
"-with-guileextensiondir="
(assoc-ref %outputs "out")
"/lib/guile/2.2/extensions"))
#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-extension-path
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(curl.scm (string-append
out "/share/guile/site/2.2/curl.scm"))
(curl.go (string-append
out "/lib/guile/2.2/site-ccache/curl.go"))
(ext (string-append out "/lib/guile/2.2/"
"extensions/libguile-curl")))
(substitute* curl.scm (("libguile-curl") ext))
;; The build system does not actually compile the Scheme module.
;; So we can compile it and put it in the right place in one go.
(invoke "guild" "compile" curl.scm "-o" curl.go)))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("guile" ,guile-2.2)))
(home-page "http://www.lonelycactus.com/guile-curl.html")
(synopsis "Curl bindings for Guile")
(description "@code{guile-curl} is a project that has procedures that allow
Guile to do client-side URL transfers, like requesting documents from HTTP or
FTP servers. It is based on the curl library.")
(license license:gpl3+)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
@ -22,6 +22,7 @@
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (gnu packages base))
@ -36,7 +37,8 @@
version ".tar.gz"))
(sha256
(base32
"19jpcv4ryvbz0476d6dgpxpbjkpmih4q84wj06nslls338bm5fzf"))))
"19jpcv4ryvbz0476d6dgpxpbjkpmih4q84wj06nslls338bm5fzf"))
(patches (search-patches "datamash-arm-tests.patch"))))
(native-inputs
`(("which" ,which) ;for tests
("perl" ,perl))) ;for help2man

View File

@ -492,14 +492,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
(version "2.6.5")
(version "2.6.6")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
name "-" version ".tar.xz"))
(sha256
(base32
"0ilxwhy7a7jdzynq586pwlgcvqd1j6ycqy9qrwvypfp20rkngk9k"))
"02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci"))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -50,7 +51,7 @@
(base32
"17ajlwgvyyrap8z7f16zcs59pksvncwbmd3mzf98wj7zqgczjaja"))))
(build-system gnu-build-system)
(home-page "http://sigrok.org/wiki/Libserialport")
(home-page "https://sigrok.org/wiki/Libserialport")
(synopsis "Library for using serial ports")
(description "Libserialport is a minimal shared library written in C that is intended
to take care of the OS-specific details when writing software that uses serial ports.")
@ -59,7 +60,7 @@ to take care of the OS-specific details when writing software that uses serial p
(define-public libsigrokdecode
(package
(name "libsigrokdecode")
(version "0.5.0")
(version "0.5.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -67,14 +68,15 @@ to take care of the OS-specific details when writing software that uses serial p
version ".tar.gz"))
(sha256
(base32
"1hfigfj1976qk11kfsgj75l20qvyq8c9p2h4mjw23d59rsg5ga2a"))))
"07mmb6s62ncqqgsc6szilj2yxixf6gg99ggbzsjlbhp4b9aqnga9"))))
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'build 'build-doc
(lambda _
(zero? (system* "doxygen"))))
(invoke "doxygen")
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "doxy/html-api"
@ -91,7 +93,7 @@ to take care of the OS-specific details when writing software that uses serial p
`(("glib" ,glib)
("python" ,python)))
(build-system gnu-build-system)
(home-page "http://www.sigrok.org/wiki/Libsigrokdecode")
(home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
(synopsis "Library providing (streaming) protocol decoding functionality")
(description "Libsigrokdecode is a shared library written in C, which provides
(streaming) protocol decoding functionality.")
@ -112,7 +114,7 @@ to take care of the OS-specific details when writing software that uses serial p
(native-inputs
`(("sdcc" ,sdcc)))
(build-system gnu-build-system)
(home-page "http://www.sigrok.org/wiki/Fx2lafw")
(home-page "https://www.sigrok.org/wiki/Fx2lafw")
(synopsis "Firmware for Cypress FX2 chips")
(description "Fx2lafw is free firmware for Cypress FX2 chips which makes them usable
as simple logic analyzer and/or oscilloscope hardware.")
@ -190,7 +192,7 @@ as simple logic analyzer and/or oscilloscope hardware.")
("libftdi" ,libftdi)
("libzip" ,libzip)))
(build-system gnu-build-system)
(home-page "http://www.sigrok.org/wiki/Libsigrok")
(home-page "https://www.sigrok.org/wiki/Libsigrok")
(synopsis "Library which provides the basic hardware access drivers for logic
analyzers")
(description "@code{libsigrok} is a shared library written in C which provides the basic hardware
@ -217,7 +219,7 @@ format support.")
("libsigrok" ,libsigrok)
("libsigrokdecode" ,libsigrokdecode)))
(build-system gnu-build-system)
(home-page "http://sigrok.org/wiki/Sigrok-cli")
(home-page "https://sigrok.org/wiki/Sigrok-cli")
(synopsis "Command-line frontend for sigrok")
(description "Sigrok-cli is a command-line frontend for sigrok.")
(license license:gpl3+)))
@ -247,7 +249,7 @@ format support.")
("qtbase" ,qtbase)
("qtsvg" ,qtsvg)))
(build-system cmake-build-system)
(home-page "http://www.sigrok.org/wiki/PulseView")
(home-page "https://www.sigrok.org/wiki/PulseView")
(synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok")
(description "PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI
for sigrok.")

File diff suppressed because it is too large Load Diff

View File

@ -398,7 +398,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(define-public mgba
(package
(name "mgba")
(version "0.6.2")
(version "0.6.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mgba-emu/mgba/archive/"
@ -406,7 +406,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0x7a9i1jdic3haf5fkd7x16vwqpf4jqdiw56a5fc4gx4jhn9yhi2"))
"16hgs6r5iym3lp2cjcnv9955333976yc5sgy2kkxlsi005n91j1m"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@ -884,7 +884,8 @@ Rice Video plugin.")
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))))
(base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))
(patches (search-patches "mupen64plus-video-z64-glew-correct-path.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -994,7 +995,7 @@ towards a working Mupen64Plus for casual users.")
(define-public nestopia-ue
(package
(name "nestopia-ue")
(version "1.47")
(version "1.48")
(source (origin
(method url-fetch)
(uri (string-append
@ -1003,43 +1004,35 @@ towards a working Mupen64Plus for casual users.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
"184y05z4k4a4m4022niy625kan0rklh8gcxyynxli1fss2sjjrpv"))
(modules '((guix build utils)))
(snippet
'(begin
;; We don't need libretro for the GNU/Linux build.
(delete-file-recursively "libretro")
;; Use system zlib.
(delete-file-recursively "source/zlib")
(substitute* "source/core/NstZlib.cpp"
(("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))
#t))))
(build-system gnu-build-system)
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("ao" ,ao)
("glu" ,glu)
("gtk+" ,gtk+)
("libarchive" ,libarchive)
("mesa" ,mesa)
("libepoxy" ,libepoxy)
("sdl2" ,sdl2)
("zlib" ,zlib)))
(arguments
'(#:phases
(modify-phases %standard-phases
;; The Nestopia build system consists solely of a Makefile.
(delete 'configure)
(add-before 'build 'remove-xdg-desktop-menu-call
(lambda _
(substitute* "Makefile"
(("xdg-desktop-menu install .*") ""))))
(add-before 'build 'remove-gdkwayland-include
(lambda _
(substitute* "source/unix/gtkui/gtkui.h"
(("#include <gdk/gdkwayland\\.h>") "")))))
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
;; This fixes the file chooser crash that happens with GTK 3.
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(nestopia (string-append out "/bin/nestopia"))
(gtk (assoc-ref inputs "gtk+"))
(gtk-share (string-append gtk "/share")))
(wrap-program nestopia
`("XDG_DATA_DIRS" ":" prefix (,gtk-share)))))))
;; There are no tests.
#:tests? #f))
(home-page "http://0ldsk00l.ca/nestopia/")

View File

@ -582,24 +582,19 @@ as well as pick-place files.")
(sha256
(base32
"1r40kyx30wz31cwwlfvfh7fgqkxq3n8dxhswpi9qpf4r5h3l8wsn"))
(file-name (git-file-name name version))))
(file-name (git-file-name name version))
(snippet
;; Remove bundled catch since we provide our own.
'(delete-file "libfive/test/catch.hpp"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no "test" target
`(#:test-target "libfive-test"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-native-compilation
(lambda _
(substitute* "CMakeLists.txt" (("-march=native") ""))
#t))
(add-before 'build 'add-eigen-to-search-path
(lambda* (#:key inputs #:allow-other-keys)
;; Allow things to find our own Eigen and Catch.
(let ((eigen (assoc-ref inputs "eigen")))
(setenv "CPLUS_INCLUDE_PATH"
(string-append eigen "/include/eigen3:"
(getenv "CPLUS_INCLUDE_PATH")))
#t))))))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs

View File

@ -445,3 +445,35 @@ ME as far as possible (it only edits ME firmware image files).")
;; This is an Intel thing.
(supported-systems '("x86_64-linux" "i686-linux"))))
(define-public uefitool
(package
(name "uefitool")
(version "0.22.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/LongSoft/UEFITool/archive/"
version ".tar.gz"))
(sha256
(base32
"05jmhv7jpq08kqbd1477y1lgyjvcic3njrd0bmzdy7v7b7lnhl82"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
(invoke "qmake" "-makefile")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(install-file "UEFITool" (string-append (assoc-ref outputs "out")
"/bin"))
#t)))))
(inputs
`(("qtbase" ,qtbase)))
(home-page "https://github.com/LongSoft/UEFITool/")
(synopsis "UEFI image editor")
(description "@code{uefitool} is a graphical image file editor for
Unifinished Extensible Firmware Interface (UEFI) images.")
(license license:bsd-2)))

View File

@ -298,7 +298,7 @@ files) into @file{.grf} and/or @file{.nfo} files.")
(synopsis "2D game engine for Python")
(description
"The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a
general-purpose 2D game engine. It takes care of several details fro you so
general-purpose 2D game engine. It takes care of several details for you so
you can focus on the game itself. This makes more rapid game development
possible, and it also makes the SGE easy to learn.")
(license license:lgpl3+)))

View File

@ -112,6 +112,7 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages bash)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages qt)
#:use-module (gnu packages compression)
#:use-module (gnu packages pulseaudio)
@ -4623,15 +4624,16 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public pioneer
(package
(name "pioneer")
(version "20171001")
(version "20180203")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/pioneerspacesim/pioneer/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/pioneerspacesim/pioneer.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1nxhx22swfqq6lfvcnpfm31wig3sjv5pp0rslj79nbxc7nyihh8m"))))
"0hp2mf36kj2v93hka8m8lxw2qhmnjc62wjlpw7c7ix0r8xa01i6h"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -4866,3 +4868,56 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
(license:non-copyleft ; modified dumb
"file://dumb/licence.txt"
"Dumb license, explicitly GPL compatible.")))))
(define-public fortune-mod
(package
(name "fortune-mod")
(version "2.4.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/shlomif/fortune-mod/"
"archive/" name "-" version ".tar.gz"))
(sha256
(base32
"1hnqpkassh7fwg2jgvybr8mw7vzfikbrhb5r22367ilfwxnl9yd2"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "check"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build-env
(lambda* (#:key inputs #:allow-other-keys)
(use-modules (guix build utils))
(let* ((cmake-rules (assoc-ref inputs "cmake-rules")))
(copy-file cmake-rules
(string-append "fortune-mod/cmake/"
(strip-store-file-name cmake-rules)))
(chdir "fortune-mod"))))
(add-after 'install 'fix-install-directory
;; Move binary from "games/" to "bin/".
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(rename-file (string-append out "/games/fortune")
(string-append out "/bin/fortune"))
#t))))))
(inputs `(("recode" ,recode)))
(native-inputs
`(("perl" ,perl)
;; The following is only needed for tests.
("perl-file-find-object" ,perl-file-find-object)
("perl-test-differences" ,perl-test-differences)
("perl-class-xsaccessor" ,perl-class-xsaccessor)
("perl-io-all" ,perl-io-all)
("perl-test-runvalgrind" ,perl-test-runvalgrind)
("cmake-rules"
,(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/shlomif/shlomif-cmake-modules/"
"raw/default/shlomif-cmake-modules/Shlomif_Common.cmake"))
(sha256
(base32 "0kx9s1qqhhzprp1w3b67xmsns0n0v506bg5hgrshxaxpy6lqiwb2"))))))
(home-page "http://www.shlomifish.org/open-source/projects/fortune-mod/")
(synopsis "The Fortune Cookie program from BSD games")
(description "Fortune is a command-line utility which displays a random
quotation from a collection of quotes.")
(license license:bsd-4)))

View File

@ -2455,7 +2455,7 @@ libxml to ease remote use of the RESTful API.")
(define-public libsoup
(package
(name "libsoup")
(version "2.62.0")
(version "2.62.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsoup/"
@ -2463,7 +2463,7 @@ libxml to ease remote use of the RESTful API.")
name "-" version ".tar.xz"))
(sha256
(base32
"1b5aff1igbsx1h4v3wmkffvzgiy8rscibqka7fmjf2lxs7l7lz5b"))))
"1mw3b3j4f4ln7hl03jd296rx78dy35hzlq005a21r6qg5sndsdzh"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@ -2844,7 +2844,7 @@ output devices.")
(define-public geoclue
(package
(name "geoclue")
(version "2.4.7")
(version "2.4.8")
(source
(origin
(method url-fetch)
@ -2853,7 +2853,7 @@ output devices.")
name "-" version ".tar.xz"))
(sha256
(base32
"19hfmr8fa1js8ynazdyjxlyrqpjn6m1719ay70ilga4rayxrcyyi"))
"08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
(patches (search-patches "geoclue-config.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
@ -4167,7 +4167,7 @@ a secret password store, an adblocker, and a modern UI.")
(define-public epiphany
(package
(name "epiphany")
(version "3.24.4")
(version "3.28.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -4175,8 +4175,9 @@ a secret password store, an adblocker, and a modern UI.")
name "-" version ".tar.xz"))
(sha256
(base32
"1jg59s98aljf603w24r5a3cr4fw6z88gc0warqy1946iprjgdw0m"))))
(build-system glib-or-gtk-build-system)
"0zvxrwlswxadq4zbr4f73ms141d08j0lhi6rzmj83j1s3gan88md"))))
(build-system meson-build-system)
(arguments
;; FIXME: tests run under Xvfb, but fail with:
;; /src/bookmarks/ephy-bookmarks/create:
@ -4184,18 +4185,21 @@ a secret password store, an adblocker, and a modern UI.")
;; subsystem
;; FAIL
'(#:tests? #f
#:configure-flags '("CFLAGS=-std=gnu99")))
#:glib-or-gtk? #t))
(propagated-inputs
`(("dconf" ,dconf)))
(native-inputs
`(("intltool" ,intltool)
`(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
("glib:bin" ,glib "bin") ; for glib-mkenums
("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
("intltool" ,intltool)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(inputs
`(("avahi" ,avahi)
("gcr" ,gcr)
("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
("glib-networking" ,glib-networking)
("gnome-desktop" ,gnome-desktop)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@ -4204,6 +4208,7 @@ a secret password store, an adblocker, and a modern UI.")
("libnotify" ,libnotify)
("libsecret" ,libsecret)
("libxslt" ,libxslt)
("nettle" ,nettle) ; for hogweed
("sqlite" ,sqlite)
("webkitgtk" ,webkitgtk)))
(home-page "https://wiki.gnome.org/Apps/Web")
@ -6654,22 +6659,31 @@ is suitable as a default application in a Desktop environment.")
(define-public xpad
(package
(name "xpad")
(version "4.8.0")
(version "5.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://launchpad.net/xpad/trunk/4.8.0/+download/"
(uri (string-append "https://launchpad.net/xpad/trunk/"
version "/+download/"
name "-" version ".tar.bz2"))
(sha256
(base32
"17f915yyvfa2fsavq6wh0q0dfhib28b4k1gc0292b9xdlrvy7f22"))))
"02yikxg6z9bwla09ka001ppjlpbv5kbza3za9asazm5aiz376mkb"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'run-autogen
(lambda _
(system* "sh" "autogen.sh"))))))
(native-inputs
`(("intltool" ,intltool)
`(("autoconf" ,autoconf)
("automake" ,automake)
("gtk+:bin" ,gtk+ "bin")
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("gtk+" ,gtk+)
("gtksourceview" ,gtksourceview)
`(("gtksourceview" ,gtksourceview)
("libsm" ,libsm)))
(home-page "https://wiki.gnome.org/Apps/Xpad")
(synopsis "Virtual sticky note")

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -691,3 +692,609 @@ HashiCorp Configuration Language}. HCL is designed to be a language for
expressing configuration which is easy for both humans and machines to read.")
(home-page "https://github.com/hashicorp/hcl")
(license license:mpl2.0))))
(define-public go-golang-org-x-crypto-bcrypt
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-bcrypt")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/bcrypt"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Bcrypt in Go")
(description "This package provides a Go implementation of the bcrypt
password hashing function.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-blowfish
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-blowfish")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/blowfish"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Blowfish in Go")
(description "This package provides a Go implementation of the Blowfish
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-pbkdf2
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-pbkdf2")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/pbkdf2"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "PBKDF2 in Go")
(description "This package provides a Go implementation of the PBKDF2 key
derivation function.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-tea
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-tea")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/tea"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Tiny Encryption Algorithm (TEA) in Go")
(description "This packages a Go implementation of the Tiny Encryption
Algorithm (TEA) block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-salsa20
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-salsa20")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/salsa20"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Salsa20 in Go")
(description "This packages provides a Go implementation of the Salsa20
stream cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-cast5
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-cast5")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/cast5"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Cast5 in Go")
(description "This packages provides a Go implementation of the Cast5
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-twofish
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-twofish")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/twofish"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Twofish in Go")
(description "This packages provides a Go implementation of the Twofish
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-xtea
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-xtea")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/xtea"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
(description "This package provides a Go implementation of the eXtended
Tiny Encryption Algorithm (XTEA) block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))
(define-public go-golang-org-x-net-ipv4
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-ipv4")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv4"
#:unpack-path "golang.org/x/net"))
(synopsis "Go IPv4 support")
(description "This package provides @code{ipv4}, which implements IP-level
socket options for the Internet Protocol version 4.")
(home-page "https://go.googlesource.com/net")
(license license:bsd-3))))
(define-public go-golang-org-x-net-bpf
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-bpf")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/bpf"
#:unpack-path "golang.org/x/net"))
(synopsis "Berkeley Packet Filters (BPF) in Go")
(description "This packages provides a Go implementation of the Berkeley
Packet Filter (BPF) virtual machine.")
(home-page "https://go.googlesource.com/net/")
(license license:bsd-3))))
(define-public go-golang-org-x-net-context
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-context")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/context"
#:unpack-path "golang.org/x/net"))
(synopsis "Golang Context type")
(description "This packages provides @code{context}, which defines the
Context type, which carries deadlines, cancelation signals, and other
request-scoped values across API boundaries and between processes.")
(home-page "https://go.googlesource.com/net/")
(license license:bsd-3))))
(define-public go-golang-org-x-net-internal-iana
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-internal-iana")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/internal/iana"
#:unpack-path "golang.org/x/net"))
(synopsis "Go support for assigned numbers (IANA)")
(description "This packages provides @code{iana}, which provides protocol
number resources managed by the Internet Assigned Numbers Authority (IANA).")
(home-page "https://go.googlesource.com/net/")
(license license:bsd-3))))
(define-public go-golang-org-x-net-ipv6
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-ipv6")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv6"
#:unpack-path "golang.org/x/net"))
(synopsis "Go IPv6 support")
(description "This packages provides @code{ipv6}, which implements
IP-level socket options for the Internet Protocol version 6.")
(home-page "https://go.googlesource.com/net")
(license license:bsd-3))))
(define-public go-golang-org-x-net-proxy
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-proxy")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/proxy"
#:unpack-path "golang.org/x/net/"))
(synopsis "Go support for network proxies")
(description "This packages provides @code{proxy}, which provides support
for a variety of protocols to proxy network data.")
(home-page "https://go.googlesource.com/net")
(license license:bsd-3))))
(define-public go-golang-org-x-sys-unix
(let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
(revision "1"))
(package
(name "go-golang-org-x-sys-unix")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/sys")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/sys/unix"
#:unpack-path "golang.org/x/sys"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
(pk (getcwd))
(substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
(("/usr/bin") "/tmp"))
#t)))))
(synopsis "Go support for low-level system interaction")
(description "This package provides @code{unix}, which offers Go support
for low-level interaction with the operating system.")
(home-page "https://go.googlesource.com/sys")
(license license:bsd-3))))
(define-public go-golang-org-x-text-transform
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-transform")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/transform"
#:unpack-path "golang.org/x/text"))
(synopsis "Go text transformation")
(description "This package provides @code{transform}, which provides
reader and writer wrappers that transform the bytes passing through. Example
transformations provided by other packages include normalization and conversion
between character sets.")
(home-page "https://go.googlesource.com/text")
(license license:bsd-3))))
(define-public go-golang-org-x-text-unicode-norm
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-unicode-norm")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/unicode/norm"
#:unpack-path "golang.org/x/text"))
(synopsis "Unicode normalization in Go")
(description "This package provides @code{norm}, which contains types and
functions for normalizing Unicode strings.")
(home-page "https://go.googlesource.com/text")
(license license:bsd-3))))
(define-public go-golang-org-x-time-rate
(let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
(revision "1"))
(package
(name "go-golang-org-x-time-rate")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/time")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/time/rate"
#:unpack-path "golang.org/x/time"))
(propagated-inputs
`(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
(synopsis "Rate limiting in Go")
(description "This package provides @{rate}, which implements rate
limiting in Go.")
(home-page "https://godoc.org/golang.org/x/time/rate")
(license license:bsd-3))))
(define-public go-golang-org-x-crypto-ssh-terminal
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-ssh-terminal")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(inputs
`(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(arguments
`(#:import-path "golang.org/x/crypto/ssh/terminal"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Terminal functions for Go")
(description "This package provides @{terminal}, which implements
support functions for dealing with terminals, as commonly found on UNIX
systems.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3))))

View File

@ -79,14 +79,14 @@
(define-public blender
(package
(name "blender")
(version "2.79")
(version "2.79b")
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.gz"))
(sha256
(base32
"16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9"))))
"1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))))
(build-system cmake-build-system)
(arguments
(let ((python-version (version-major+minor (package-version python))))

View File

@ -664,48 +664,46 @@ library.")
(define-public mcron
(package
(name "mcron")
(version "1.1")
(version "1.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mcron/mcron-"
version ".tar.gz"))
(sha256
(base32
"1f547sqqfbp0k02sqk4ivwx8y9mx8l0rrx1c9rrj033av073h6xq"))))
"1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'set-timezone
(lambda* (#:key inputs #:allow-other-keys)
;; 'tests/schedule.sh' expects to be running in UTC+1.
;; 'tests/job-specifier.scm' expects to be running in
;; UTC-2 or something.
;; FIXME: This issue is being investigated upstream, for
;; now we'll just skip the tests (see below):
;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>.
(let ((tzdata (assoc-ref inputs "tzdata")))
(setenv "TZDIR"
(string-append tzdata
"/share/zoneinfo"))
(setenv "TZ" "UTC+1")
(setenv "TZ" "UTC-2")
#t)))
(add-before 'check 'disable-schedule-test
(add-before 'check 'adjust-tests
(lambda _
;; But! As it turns out, that test additionally relies
;; on non-deterministic behavior; see
;; <https://lists.gnu.org/archive/html/bug-mcron/2018-03/msg00001.html>.
(substitute* "tests/schedule.sh"
(("mkdir cron") "exit 77\n"))
#t))
(add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys)
;; By default mcron doesn't have its own modules in the
;; search path, so the 'mcron' command fails to start.
(let* ((output (assoc-ref outputs "out"))
(modules (string-append output
"/share/guile/site/2.2"))
(go (string-append output
"/lib/guile/2.2/site-ccache")))
(wrap-program (string-append output "/bin/mcron")
`("GUILE_LOAD_PATH" ":" prefix
(,modules))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))
#t))))))
(substitute* "tests/job-specifier.scm"
;; (getpw) fails with "entry not found" in the build
;; environment, so pass an argument.
(("\\(getpw\\)")
"(getpwnam (getuid))")
;; The build environment lacks an entry for root in
;; /etc/passwd.
(("\\(getpw 0\\)")
"(getpwnam \"nobody\")")
;; FIXME: Skip the 4 faulty tests (see above).
(("\\(test-equal \"next-year\"" all)
(string-append "(test-skip 4)\n" all)))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)
("tzdata" ,tzdata-for-tests)))
(inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2)))

View File

@ -55,6 +55,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xml)
@ -709,26 +710,63 @@ supplies a generic doubly-linked list and some string functions.")
(sha256
(base32
"12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
(patches (search-patches "freeimage-CVE-2015-0852.patch"
(modules '((guix build utils)))
(snippet
'(begin
(for-each
(lambda (dir)
(delete-file-recursively (string-append "Source/" dir)))
'("LibJPEG" "LibJXR" "LibOpenJPEG" "LibPNG" "LibRawLite"
"LibWebP" "OpenEXR" "ZLib"))))
(patches (search-patches "freeimage-unbundle.patch"
"freeimage-CVE-2015-0852.patch"
"freeimage-CVE-2016-5684.patch"
"freeimage-fix-build-with-gcc-5.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
;; According to Fedora these files depend on private headers, but their
;; presence is required for building, so we replace them with empty files.
(add-after 'unpack 'delete-unbuildable-files
(lambda _
(for-each (lambda (file)
(delete-file file)
(close (open file O_CREAT)))
'("Source/FreeImage/PluginG3.cpp"
"Source/FreeImageToolkit/JPEGTransform.cpp"))
#t))
;; These scripts generate the Makefiles.
(replace 'configure
(lambda _
(invoke "sh" "gensrclist.sh")
(invoke "sh" "genfipsrclist.sh")))
(add-before 'build 'patch-makefile
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile.gnu"
(("/usr") (assoc-ref outputs "out"))
(("-o root -g root") ""))
#t)))
#:make-flags '("CC=gcc")
#:make-flags
(list "CC=gcc"
;; We need '-fpermissive' for Source/FreeImage.h.
;; libjxr doesn't have a pkg-config file.
(string-append "CFLAGS+=-O2 -fPIC -fvisibility=hidden -fpermissive "
"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"))
#:tests? #f)) ; no check target
(native-inputs
`(("unzip" ,unzip)))
;; Fails to build on MIPS due to assembly code in the source.
(supported-systems (delete "mips64el-linux" %supported-systems))
`(("pkg-config" ,pkg-config)
("unzip" ,unzip)))
(inputs
`(("libjpeg" ,libjpeg)
("libjxr" ,libjxr)
("libpng" ,libpng)
("libraw" ,libraw)
("libtiff" ,libtiff)
("libwebp" ,libwebp)
("openexr" ,openexr)
("openjpeg" ,openjpeg)
("zlib" ,zlib)))
(synopsis "Library for handling popular graphics image formats")
(description
"FreeImage is a library for developers who would like to support popular

View File

@ -3531,6 +3531,21 @@ transformations and analysis algorithms allow to easily assemble custom
complex transformations and code analysis tools.")
(license license:bsd-3)))
(define java-asm-bootstrap
(package
(inherit java-asm)
(name "java-asm-bootstrap")
(arguments
(substitute-keyword-arguments (package-arguments java-asm)
((#:tests? _) #f)))
(native-inputs `())
(propagated-inputs
`(("java-aqute-bndlib" ,java-aqute-bndlib-bootstrap)
("java-aqute-libg" ,java-aqute-libg-bootstrap)
,@(delete `("java-aqute-bndlib" ,java-aqute-bndlib)
(delete `("java-aqute-libg", java-aqute-libg)
(package-inputs java-asm)))))))
(define-public java-cglib
(package
(name "java-cglib")
@ -5645,6 +5660,15 @@ allowing the end user to plug in the desired logging framework at deployment
time.")
(license license:expat)))
(define java-slf4j-api-bootstrap
(package
(inherit java-slf4j-api)
(name "java-slf4j-api-bootstrap")
(inputs `())
(arguments
(substitute-keyword-arguments (package-arguments java-slf4j-api)
((#:tests? _ #f) #f)))))
(define-public java-slf4j-simple
(package
(name "java-slf4j-simple")
@ -6087,7 +6111,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
(lambda _
(display
(string-append "#!" (which "sh") "\n"
"java -cp " jar "/antlr3-3.1-3.1.jar:"
"java -cp " jar "/antlr3-3.1.jar:"
(string-concatenate
(find-files (assoc-ref inputs "stringtemplate")
".*\\.jar"))
@ -6886,6 +6910,15 @@ it manages project dependencies, gives diffs jars, and much more.")
("java-osgi-cmpn" ,java-osgi-cmpn)
("osgi" ,java-osgi-core)))))
(define java-aqute-libg-bootstrap
(package
(inherit java-aqute-libg)
(name "java-aqute-libg-bootstrap")
(inputs
`(("slf4j-bootstrap" ,java-slf4j-api-bootstrap)
,@(delete `("slf4j" ,java-slf4j-api)
(package-inputs java-aqute-libg))))))
(define-public java-aqute-bndlib
(package
(inherit java-aqute-bnd-annotation)
@ -6909,6 +6942,17 @@ it manages project dependencies, gives diffs jars, and much more.")
("promise" ,java-osgi-util-promise)
("osgi" ,java-osgi-core)))))
(define java-aqute-bndlib-bootstrap
(package
(inherit java-aqute-bndlib)
(name "java-aqute-bndlib-bootstrap")
(inputs
`(("slf4j-bootstrap" ,java-slf4j-api-bootstrap)
("java-aqute-libg-bootstrap" ,java-aqute-libg-bootstrap)
,@(delete `("slf4j" ,java-slf4j-api)
(delete `("java-aqute-libg" ,java-aqute-libg)
(package-inputs java-aqute-bndlib)))))))
(define-public java-ops4j-pax-tinybundles
(package
(name "java-ops4j-pax-tinybundles")

View File

@ -16,7 +16,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
@ -391,8 +391,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.16.1")
(define %linux-libre-hash "1zqbg7ivf79nzw0lw18bbld2wq16880k83526bwqh1nsydayp6k0")
(define %linux-libre-version "4.16.3")
(define %linux-libre-hash "1wmx0ph8nbwidlx1dh8bi4p97b84nif9ymv00mafnn6iykdfdin0")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@ -400,8 +400,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems
#:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.33")
(define %linux-libre-4.14-hash "0ps9whsxc20gw5ags18rgkwgy6fzg66by70g8xjds7nijpzgl69m")
(define %linux-libre-4.14-version "4.14.35")
(define %linux-libre-4.14-hash "0dfzc2290zks1a63zld8ac0xarc8gxwwh4wsr71y8mas7gfmyqzj")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@ -410,14 +410,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
(make-linux-libre "4.9.93"
"0flmsh4xy7ymyzwm8y4x4id798mx6vy3d6ala7x1bq41hf00075p"
(make-linux-libre "4.9.95"
"06i756gbglxa2m4lib4p0fff5m2fm4s6f9aqc58i8lihnjqpkldk"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
(make-linux-libre "4.4.127"
"1av536sp6ancx0fy71wpmqv4r66pksrcjbnrcjggard6im4c8pjy"
(make-linux-libre "4.4.128"
"1aqz5skyz534bcpnn6w9madg6kadgyjjypah9dhmqf841rygb6rk"
%intel-compatible-systems
#:configuration-file kernel-config))
@ -2108,6 +2108,7 @@ time.")
"/etc/lvm")
"--enable-udev_sync"
"--enable-udev_rules"
"--enable-pkgconfig"
;; Make sure programs such as 'dmsetup' can
;; find libdevmapper.so.
@ -3816,7 +3817,7 @@ under OpenGL graphics workloads.")
(define-public efivar
(package
(name "efivar")
(version "34")
(version "35")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rhinstaller/" name
@ -3824,7 +3825,7 @@ under OpenGL graphics workloads.")
"-" version ".tar.bz2"))
(sha256
(base32
"09a31y6sl3b33myy42gl9k732k1f440ycd07l6ac5d5l53kk8zhv"))))
"153k2ifyl4giz5fkryxhz8z621diqjy7v25hfga4z94rs32ks0qy"))))
(build-system gnu-build-system)
(arguments
`(;; Tests require a UEFI system and is not detected in the chroot.
@ -3849,7 +3850,7 @@ interface to the variable facility of UEFI boot firmware.")
(define-public efibootmgr
(package
(name "efibootmgr")
(version "14")
(version "16")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rhinstaller/" name
@ -3857,26 +3858,23 @@ interface to the variable facility of UEFI boot firmware.")
"-" version ".tar.bz2"))
(sha256
(base32
"1n3sydvpr6yl040hhf460k7mrxby7laqd9dqs6pq0js1hijc2zip"))))
"0pzn67vxxaf7jna4cd0i4kqm60h04kb21hckksv9z82q9gxra1wm"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No tests.
#:make-flags (list (string-append "prefix=" %output)
(string-append "libdir=" %output "/lib")
;; EFIDIR denotes a subdirectory relative to the
;; EFI System Partition where the loader will be
;; installed (known as OS_VENDOR in the code).
;; GRUB overrides this, as such it's only used if
;; nothing else is specified on the command line.
"EFIDIR=gnu"
;; Override CFLAGS to add efivar include directory.
(string-append "CFLAGS=-O2 -g -flto -I"
(assoc-ref %build-inputs "efivar")
"/include/efivar"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'branding
;; Replace default loader path with something more familiar.
(lambda _
(substitute* "src/efibootmgr.c"
(("EFI\\\\\\\\redhat") ; Matches 'EFI\\redhat'.
"EFI\\\\gnu"))
#t))
(delete 'configure))))
#:phases (modify-phases %standard-phases (delete 'configure))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
@ -4594,3 +4592,39 @@ emulates the behaviour of Gunnar Monell's older fbgrab utility.")
restriction, permission handling and more. This package provides userspace
interface to this kernel feature.")
(license license:lgpl2.1)))
(define-public mbpfan
(package
(name "mbpfan")
(version "2.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dgraziotin/mbpfan/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0wifsws9icki95hhfh4zw1hmk07ddmkcz9mg5a9jr7q2kkrk01cx"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "DESTDIR=" out)
"CC=gcc"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda _
(substitute* "Makefile"
(("/usr") ""))
#t))
(delete 'configure)))) ; There's no configure phase.
(home-page "https://github.com/dgraziotin/mbpfan")
(synopsis "Control fan speed on Macbooks")
(description
"mbpfan is a fan control daemon for Apple Macbooks. It uses input from
the @code{coretemp} module and sets the fan speed using the @code{applesmc}
module. It can be executed as a daemon or in the foreground with root
privileges.")
(license license:gpl3+)))

View File

@ -259,14 +259,14 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
(version "1.9.4")
(version "1.9.5")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
"mutt-" version ".tar.gz"))
(sha256
(base32
"1pxmw5yyizb9bqbai6lihv6zxmw0znjfb60zaldwh6hc6lkbzlgl"))
"0lsp72lm3cw490x7lhzia7h8f591bab2mr7qpscaj22fmrj7wqdz"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@ -475,7 +475,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap
(package
(name "offlineimap")
(version "7.1.5")
(version "7.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@ -483,7 +483,7 @@ and corrections. It is based on a Bayesian filter.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1qa3km3s3yhmpgzh76dnzwn22aa8fh39814zgnlyhs07l23ffa4f"))))
"1i7pzm1vrj98jcyn1ygsg1yp0gqlsssnc25451icvivysvdwdj5n"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)))

View File

@ -58,14 +58,14 @@ a flexible and convenient way.")
(define-public man-db
(package
(name "man-db")
(version "2.8.2")
(version "2.8.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/man-db/man-db-"
version ".tar.xz"))
(sha256
(base32
"0p0cvv5ykvyzq33qyfik11p2s0d2j75ans1avj9xv3c8vy3zzga5"))))
"1b641kcgjvyc41pj67dn4p0zvwlj1vx3l6nf7qdcc7kf6v5a2cjr"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -7,12 +7,13 @@
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,6 +38,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix build-system perl)
#:use-module (guix build-system cmake)
@ -200,31 +202,17 @@ identi.ca and status.net).")
(define-public hexchat
(package
(name "hexchat")
(version "2.12.4")
(version "2.14.1")
(source (origin
(method url-fetch)
(uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
version ".tar.xz"))
(sha256
(base32
"0ficrx56knz5y297qb0x5y02339yvyv734z7kpcx1ixvb0qr2dgs"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete dangling symlinks to a non-existent /usr.
(with-directory-excursion "m4"
(for-each (lambda (f) (delete-file f))
'("intltool.m4" "libtool.m4" "lt~obsolete.m4"
"ltoptions.m4" "ltsugar.m4" "ltversion.m4")))
(delete-file-recursively "build-aux")
(delete-file "po/Makefile.in.in")
#t))))
(build-system gnu-build-system)
(native-inputs `(("autoconf" ,autoconf)
("autoconf-archive" ,autoconf-archive)
("automake" ,automake)
("intltool" ,intltool)
("libtool" ,libtool)
"18h3l34zmazjlfx3irg7k7swppa62ad9ffbl0j3ry8p2xfyf8cmh"))))
(build-system meson-build-system)
(native-inputs `(("gettext" ,gettext-minimal)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(inputs `(("dbus-glib" ,dbus-glib)
("dbus" ,dbus)
@ -233,6 +221,7 @@ identi.ca and status.net).")
("gtk" ,gtk+-2)
("libcanberra" ,libcanberra)
("libnotify" ,libnotify)
("libproxy" ,libproxy)
("openssl" ,openssl)
;; Bindings for add-on scripts.
@ -240,16 +229,17 @@ identi.ca and status.net).")
("perl-xml-parser" ,perl-xml-parser)
("python-2" ,python-2)))
(arguments
`(#:make-flags '("UPDATE_ICON_CACHE=true") ; Disable icon theme generation
#:phases
`(#:phases
(modify-phases %standard-phases
;; Release 2.12.4 wasn't properly bootstrapped. Later ones might be!
(add-before 'boostrap 'copy-intltool-makefile
(lambda* (#:key inputs #:allow-other-keys)
;; This file is still required for autoreconf.
(copy-file (string-append (assoc-ref inputs "intltool")
"/share/intltool/Makefile.in.in")
"po/Makefile.in.in")
(add-after 'unpack 'skip-desktop-database-updates
(lambda _
;; The build scripts update icon and desktop file databases when
;; DESTDIR is not set. We can't update these databases from
;; within the build chroot, but we also don't set DESTDIR. So, we
;; just skip this code.
(substitute* "meson_post_install.py"
(("if 'DESTDIR' not in os.environ:")
"if False:"))
#t)))))
(synopsis "Graphical IRC Client")
(description
@ -495,14 +485,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp
(package
(name "python-nbxmpp")
(version "0.6.1")
(version "0.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbxmpp" version))
(sha256
(base32
"0qvkiscy42nhzhccszi049ws8cnhpxgc13g8naq1rsa5x9zy163c"))))
"12rfmp613alh3mi8f94008sx7x1a8c1izs3icrvw7bf4gnf2pi31"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; no tests
@ -520,7 +510,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
(define-public gajim
(package
(name "gajim")
(version "0.16.9")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gajim.org/downloads/"
@ -528,36 +518,74 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
"/gajim-" version ".tar.bz2"))
(sha256
(base32
"0v08zdvpqaig0wxpxn1l8rsj3wr3fqvnagn8cnvch17vfqv9gcr1"))))
(build-system gnu-build-system)
"16ynws10vhx6rhjjjmzw6iyb3hc19823xhx4gsb14hrc7l8vzd1c"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure all Python scripts run with the correct PYTHONPATH.
(let ((out (assoc-ref outputs "out"))
(path (getenv "PYTHONPATH")))
(for-each (lambda (name)
(let ((file (string-append out "/bin/" name)))
;; Wrapping destroys identification of intended
;; application, so we need to override "APP".
(substitute* file
(("APP=`basename \\$0`")
(string-append "APP=" name)))
(wrap-program file
`("PYTHONPATH" ":" prefix (,path)))))
'("gajim" "gajim-remote" "gajim-history-manager")))
(let ((out (assoc-ref outputs "out")))
(for-each
(lambda (name)
(let ((file (string-append out "/bin/" name))
(gi-typelib-path (getenv "GI_TYPELIB_PATH")))
(wrap-program file
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
'("gajim" "gajim-remote" "gajim-history-manager")))
#t))
(add-before 'check 'remove-test-resolver
;; This test requires network access.
(lambda _
(substitute* "test/runtests.py"
(("'integration.test_resolver',") ""))
#t))
(add-before 'check 'start-xserver
;; Tests require a running X server.
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server"))
(display ":1"))
(setenv "DISPLAY" display)
(zero? (system (string-append xorg-server "/bin/Xvfb "
display " &"))))))
(add-after 'install 'install-icons
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(adwaita (string-append
(assoc-ref inputs "adwaita-icon-theme")
"/share/icons/Adwaita"))
(hicolor (string-append
(assoc-ref inputs "hicolor-icon-theme")
"/share/icons/hicolor"))
(icons (string-append
out "/lib/python"
,(version-major+minor (package-version python))
"/site-packages/gajim/data/icons")))
(with-directory-excursion icons
(symlink adwaita "Adwaita")
(copy-recursively hicolor "hicolor")))
#t)))))
(native-inputs
`(("intltool" ,intltool)))
`(("intltool" ,intltool)
("xorg-server" ,xorg-server)))
(inputs
`(("python2-axolotl" ,python2-axolotl)
("python2-nbxmpp" ,python2-nbxmpp)
("python2-pyopenssl" ,python2-pyopenssl)
("python2-gnupg" ,python2-gnupg)
("python2-pygtk" ,python2-pygtk)
("python" ,python-2)))
`(("adwaita-icon-theme" ,adwaita-icon-theme)
("gnome-keyring" ,gnome-keyring)
("gtk+" ,gtk+)
("gtkspell3" ,gtkspell3)
("hicolor-icon-theme" ,hicolor-icon-theme)
("libsecret" ,libsecret)
("python-axolotl" ,python-axolotl)
("python-dbus" ,python-dbus)
("python-docutils" ,python-docutils)
("python-gnupg" ,python-gnupg)
("python-nbxmpp" ,python-nbxmpp)
("python-pillow" ,python-pillow)
("python-pyasn1" ,python-pyasn1)
("python-pycairo" ,python-pycairo)
("python-pygobject" ,python-pygobject)
("python-pyopenssl" ,python-pyopenssl)
("python-qrcode" ,python-qrcode)))
(home-page "https://gajim.org/")
(synopsis "Jabber (XMPP) client")
(description "Gajim is a feature-rich and easy to use Jabber/XMPP client.

View File

@ -303,7 +303,7 @@ This package contains the binary.")
(define-public mpg123
(package
(name "mpg123")
(version "1.25.8")
(version "1.25.10")
(source (origin
(method url-fetch)
(uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
@ -313,7 +313,7 @@ This package contains the binary.")
version ".tar.bz2")))
(sha256
(base32
"16s9z1xc5kv1p90g42vsr9m4gq3dwjsmrj873x4i8601mvpm3nkr"))))
"08vhp8lz7d9ybhxcmkq3adwfryhivfvp0745k4r9kgz4wap3f4vc"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--with-default-audio=pulse")))
(native-inputs `(("pkg-config" ,pkg-config)))

View File

@ -208,7 +208,7 @@ terminal using ncurses.")
(define-public ncmpcpp
(package
(name "ncmpcpp")
(version "0.8.1")
(version "0.8.2")
(source (origin
(method url-fetch)
(uri
@ -216,7 +216,7 @@ terminal using ncurses.")
version ".tar.bz2"))
(sha256
(base32
"1zw8d07b2bkssbsybg6jnmpq001w525viajrnz4jvfml3l55gyad"))))
"0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5"))))
(build-system gnu-build-system)
(inputs `(("libmpdclient" ,libmpdclient)
("boost" ,boost)

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2018 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -161,6 +161,33 @@ multiple-precision arithmetic.")
(license lgpl2.1+)
(home-page "https://perso.ens-lyon.fr/nathalie.revol/software.html")))
(define-public irram
(package
(name "irram")
(version "2013_01")
(source
(origin
(method url-fetch)
(uri (string-append "http://irram.uni-trier.de/irram-files/iRRAM_"
version ".tar.bz2"))
(sha256
(base32 "1cdmvb4hsa161rfdjqyhd9sb3fcr43p3a6nsj7cb4kn9f94qmjpj"))))
(build-system gnu-build-system)
(propagated-inputs `(("gmp" ,gmp) ; <mpfi.h> refers to both
("mpfr" ,mpfr)))
(arguments
`(#:parallel-build? #f))
(synopsis "C++ package for real arithmetic based on the Real-RAM concept")
(description
"@dfn{iRRAM} is a C++ package for error-free real arithmetic based on
the concept of a Real-RAM. Its capabilities range from ordinary arithmetic
over trigonometric functions to linear algebra and differential
equations. A program using iRRAM is coded in ordinary C++, but may use a
special class that behaves like real numbers without any
error. Additionally, iRRAM uses the concept of multi-valued functions.")
(license lgpl2.0+)
(home-page "http://irram.uni-trier.de/")))
(define-public qd
(package
(name "qd")

View File

@ -11,7 +11,7 @@
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 nee <nee.git@hidamari.blue>
@ -3853,19 +3853,15 @@ by The Echo Nest.")
(define-public libmygpo-qt
(package
(name "libmygpo-qt")
(version "1.0.9")
(version "1.1.0")
(source (origin
(method url-fetch)
(uri (string-append "http://stefan.derkits.at/files/"
"libmygpo-qt/libmygpo-qt." version ".tar.gz"))
(sha256
(base32
"1wsgh2vjnd52rkvpncj1ycpbp84sj9hh12ija46b42z9mmqf2jm4"))
(patches
(search-patches "libmygpo-qt-fix-jsoncreatortest.patch"))))
"1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DBUILD_WITH_QT4=OFF")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs

View File

@ -368,14 +368,14 @@ receiving NDP messages.")
(define-public ethtool
(package
(name "ethtool")
(version "4.15")
(version "4.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/network/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
"06pr3s7wg2pbvfbf7js61bgh3caff4qf50nqqk3cgz9z90rgvxvi"))))
"00ss07jc7p276d83f6jpafgwyc9yiribciyqcgx9j86v49kpm5py"))))
(build-system gnu-build-system)
(home-page "https://www.kernel.org/pub/software/network/ethtool/")
(synopsis "Display or change Ethernet device settings")

View File

@ -5,6 +5,7 @@
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@ -244,7 +245,8 @@
("gettext" ,gettext-minimal)
("texinfo" ,texinfo)
("graphviz" ,graphviz)
("help2man" ,help2man)))
("help2man" ,help2man)
("po4a" ,po4a)))
(inputs
`(("bzip2" ,bzip2)
("gzip" ,gzip)

View File

@ -457,37 +457,6 @@ winner of the 2015 Password Hashing Competition.")
;; files are CC0 only; see README.md and LICENSE for details.
(license (list license:cc0 license:asl2.0))))
(define-public python-bcrypt
(package
(name "python-bcrypt")
(version "3.1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bcrypt" version))
(sha256
(base32
"13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7"))))
(build-system python-build-system)
(native-inputs
`(("python-pycparser" ,python-pycparser)
("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-cffi" ,python-cffi)
("python-six" ,python-six)))
(home-page "https://github.com/pyca/bcrypt/")
(synopsis
"Modern password hashing library")
(description
"Bcrypt is a Python module which provides a password hashing method based
on the Blowfish password hashing algorithm, as described in
@url{http://static.usenix.org/events/usenix99/provos.html,\"A Future-Adaptable
Password Scheme\"} by Niels Provos and David Mazieres.")
(license license:asl2.0)))
(define-public python2-bcrypt
(package-with-python2 python-bcrypt))
(define-public pass-git-helper
(package
(name "pass-git-helper")

View File

@ -1,205 +0,0 @@
From 96ceffdfdcedd3ae33c46b11357aa2518e0a6152 Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Thu, 27 Apr 2017 18:55:10 +0200
Subject: [PATCH] Remove non-free fonts from settings menu
--- a/app/qml/ApplicationSettings.qml
+++ b/app/qml/ApplicationSettings.qml
@@ -409,7 +409,7 @@
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
builtin: true
}
- ListElement{
+ /*ListElement{
text: "Default Scanlines"
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
builtin: true
@@ -433,7 +433,7 @@
text: "IBM Dos"
obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
builtin: true
- }
+ }*/
ListElement{
text: "IBM 3278"
obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml
index 6ff85da..6f0d0ba 100644
--- a/app/qml/FontPixels.qml
+++ b/app/qml/FontPixels.qml
@@ -32,7 +32,7 @@ QtObject{
property bool lowResolutionFont: true
property ListModel fontlist: ListModel{
- ListElement{
+ /*ListElement{
name: "COMMODORE_PET"
text: "Commodore PET (1977)"
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
@@ -40,7 +40,7 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.8
- }
+ }*/
ListElement{
name: "PROGGY_TINY"
text: "Proggy Tiny (Modern)"
@@ -68,7 +68,7 @@ QtObject{
baseScaling: 3.0
fontWidth: 1.0
}
- ListElement{
+ /*ListElement{
name: "APPLE_II"
text: "Apple ][ (1977)"
source: "fonts/1977-apple2/PrintChar21.ttf"
@@ -76,8 +76,8 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.9
- }
- ListElement{
+ }*/
+ /*ListElement{
name: "ATARI_400"
text: "Atari 400-800 (1979)"
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
@@ -85,8 +85,8 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.8
- }
- ListElement{
+ }*/
+ /*ListElement{
name: "COMMODORE_64"
text: "Commodore 64 (1982)"
source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
@@ -94,6 +94,6 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.8
- }
+ }*/
}
}
diff --git a/app/qml/FontScanlines.qml b/app/qml/FontScanlines.qml
index eebf00b..410d7b6 100644
--- a/app/qml/FontScanlines.qml
+++ b/app/qml/FontScanlines.qml
@@ -32,7 +32,7 @@ QtObject{
property bool lowResolutionFont: true
property ListModel fontlist: ListModel{
- ListElement{
+ /*ListElement{
name: "COMMODORE_PET"
text: "Commodore PET (1977)"
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
@@ -40,7 +40,7 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.7
- }
+ }*/
ListElement{
name: "PROGGY_TINY"
text: "Proggy Tiny (Modern)"
@@ -68,7 +68,7 @@ QtObject{
baseScaling: 3.0
fontWidth: 1.0
}
- ListElement{
+ /*ListElement{
name: "APPLE_II"
text: "Apple ][ (1977)"
source: "fonts/1977-apple2/PrintChar21.ttf"
@@ -76,8 +76,8 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.8
- }
- ListElement{
+ }*/
+ /*ListElement{
name: "ATARI_400"
text: "Atari 400-800 (1979)"
source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
@@ -85,8 +85,8 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.7
- }
- ListElement{
+ }*/
+ /*ListElement{
name: "COMMODORE_64"
text: "Commodore 64 (1982)"
source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
@@ -94,6 +94,6 @@ QtObject{
pixelSize: 8
baseScaling: 4.0
fontWidth: 0.7
- }
+ }*/
}
}
diff --git a/app/qml/Fonts.qml b/app/qml/Fonts.qml
index ad20844..882808a 100644
--- a/app/qml/Fonts.qml
+++ b/app/qml/Fonts.qml
@@ -80,7 +80,7 @@
fontWidth: 1.0
lowResolutionFont: true
}
- ListElement{
+ /*ListElement{
name: "COMMODORE_PET_SCALED"
text: "Commodore PET (1977)"
source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
@@ -89,7 +89,7 @@
baseScaling: 3.5
fontWidth: 0.7
lowResolutionFont: true
- }
+ }*/
ListElement{
name: "PROGGY_TINY_SCALED"
text: "Proggy Tiny (Modern)"
@@ -100,7 +100,7 @@
fontWidth: 0.9
lowResolutionFont: true
}
- ListElement{
+ /*ListElement{
name: "APPLE_II_SCALED"
text: "Apple ][ (1977)"
source: "fonts/1977-apple2/PrintChar21.ttf"
@@ -149,7 +149,7 @@
baseScaling: 2.0
fontWidth: 1.0
lowResolutionFont: true
- }
+ }*/
ListElement{
name: "HERMIT"
text: "HD: Hermit (Modern)"
@@ -177,7 +177,7 @@
fontWidth: 1.0
lowResolutionFont: false
}
- ListElement{
+ /*ListElement{
name: "MONACO"
text: "HD: Monaco (Modern)"
source: "fonts/modern-monaco/monaco.ttf"
@@ -185,7 +185,7 @@
pixelSize: 30
fontWidth: 1.0
lowResolutionFont: false
- }
+ }*/
ListElement{
name: "INCONSOLATA"
text: "HD: Inconsolata (Modern)"

View File

@ -0,0 +1,71 @@
See https://lists.gnu.org/archive/html/bug-datamash/2018-03/msg00003.html and
https://lists.gnu.org/archive/html/bug-datamash/2018-03/txt4DmvR7p6J9.txt
From d446dba317aa067440d6312d955d523129949327 Mon Sep 17 00:00:00 2001
From: Assaf Gordon <address@hidden>
Date: Thu, 22 Mar 2018 11:00:34 -0600
Subject: [PATCH 1/2] tests: fix --format='%4000f' expected output
Can be 1.000009... or 1.000008999, depending on representation.
* tests/datamash-output-format.pl: Check only the first 5 digits.
---
tests/datamash-output-format.pl | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/tests/datamash-output-format.pl b/tests/datamash-output-format.pl
index 52c68a2..ca99bb0 100755
--- a/tests/datamash-output-format.pl
+++ b/tests/datamash-output-format.pl
@@ -98,12 +98,13 @@ my @Tests =
{OUT => "0" x 3999 . "1\n"}],
# due to binary floating representation, some decimal point digits won't be
- # zero (e.g. 1.0000090000000000000000000000000523453254320000000...).
- # The OUT_SUBST replaces exactly 3994 digits (as expected from the format)
+ # zero (e.g. 1.0000090000000000000000000000000523453254320000000... or
+ # 1.000008999999...).
+ # The OUT_SUBST replaces exactly 3995 digits (as expected from the format)
# with an "X".
['m2', '--format "%.4000f" sum 1', {IN_PIPE=>$in1},
- {OUT => "1.000009X\n"},
- {OUT_SUBST => 's/^(1\.000009)([0-9]{3994})$/\1X/'}],
+ {OUT => "1.00000X\n"},
+ {OUT_SUBST => 's/^(1\.00000)([0-9]{3995})$/\1X/'}],
);
--
2.7.4
From f4871963974a96d6e69cb80b9c2fac7ff0c1d472 Mon Sep 17 00:00:00 2001
From: Assaf Gordon <address@hidden>
Date: Thu, 22 Mar 2018 11:18:13 -0600
Subject: [PATCH 2/2] tests: disable --format="%a" test
Valid output can differ (e.g. 0x8.000p-3 vs 0x1.000p+0).
* tests/datamash-output-format.pl: Disable 'a1' test.
---
tests/datamash-output-format.pl | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/datamash-output-format.pl b/tests/datamash-output-format.pl
index ca99bb0..5e90ae0 100755
--- a/tests/datamash-output-format.pl
+++ b/tests/datamash-output-format.pl
@@ -90,7 +90,9 @@ my @Tests =
['e2', '--format "%.3e" sum 1', {IN_PIPE=>$in1}, {OUT=>"1.000e+00\n"}],
# Test Custom formats: %a
- ['a1', '--format "%0.3a" sum 1', {IN_PIPE=>$in1}, {OUT=>"0x8.000p-3\n"}],
+ # Disable the test for now. Valid output can differ (e.g. 0x8.000p-3 and
+ # 0x1.000p0 ).
+ # ['a1', '--format "%0.3a" sum 1', {IN_PIPE=>$in1}, {OUT=>"0x8.000p-3\n"}],
# Custom formats can use lots of memory
--
2.7.4

View File

@ -0,0 +1,550 @@
https://src.fedoraproject.org/cgit/rpms/freeimage.git/tree/FreeImage-3.17.0_unbundle.patch
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
+++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
+DIRLIST="Wrapper/FreeImagePlus"
echo "VER_MAJOR = 3" > fipMakefile.srcs
@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
for DIR in $DIRLIST; do
echo -n " -I$DIR" >> fipMakefile.srcs
done
+echo -n " -IDist" >> fipMakefile.srcs
echo >> fipMakefile.srcs
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
+++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
@@ -1,6 +1,6 @@
#!/bin/sh
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
echo "VER_MAJOR = 3" > Makefile.srcs
echo "VER_MINOR = 17.0" >> Makefile.srcs
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
+++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
# OpenJPEG
-CFLAGS += -DOPJ_STATIC
+override CFLAGS += -DOPJ_STATIC
# LibRaw
-CFLAGS += -DNO_LCMS
+override CFLAGS += -DNO_LCMS
# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
+override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+override CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CXXFLAGS += -D__ANSI__
+override CXXFLAGS += $(INCLUDE)
+LDFLAGS ?=
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
+ override CXXFLAGS += -fPIC
endif
TARGET = freeimageplus
@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
+++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
-# OpenJPEG
-CFLAGS += -DOPJ_STATIC
-# LibRaw
-CFLAGS += -DNO_LCMS
-# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ override CFLAGS += -fPIC
endif
TARGET = freeimage
@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
$(CC) $(CFLAGS) -c $< -o $@
.cpp.o:
- $(CXX) $(CXXFLAGS) -c $< -o $@
+ $(CXX) $(CFLAGS) -c $< -o $@
$(STATICLIB): $(MODULES)
$(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install:
install -d $(INCDIR) $(INSTALLDIR)
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
s_plugins->AddNode(InitDDS);
s_plugins->AddNode(InitGIF);
s_plugins->AddNode(InitHDR);
- s_plugins->AddNode(InitG3);
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ s_plugins->AddNode(InitG3);
+#endif
s_plugins->AddNode(InitSGI);
s_plugins->AddNode(InitEXR);
s_plugins->AddNode(InitJ2K);
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
@@ -28,16 +28,16 @@
#pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
#endif
-#include "../OpenEXR/IlmImf/ImfIO.h"
-#include "../OpenEXR/Iex/Iex.h"
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
-#include "../OpenEXR/IlmImf/ImfRgba.h"
-#include "../OpenEXR/IlmImf/ImfArray.h"
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/ImfIO.h>
+#include <OpenEXR/Iex.h>
+#include <OpenEXR/ImfOutputFile.h>
+#include <OpenEXR/ImfInputFile.h>
+#include <OpenEXR/ImfRgbaFile.h>
+#include <OpenEXR/ImfChannelList.h>
+#include <OpenEXR/ImfRgba.h>
+#include <OpenEXR/ImfArray.h>
+#include <OpenEXR/ImfPreviewImage.h>
+#include <OpenEXR/half.h>
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -21,7 +21,7 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibOpenJPEG/openjpeg.h"
+#include <openjpeg.h>
#include "J2KHelper.h"
// ==========================================================
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -35,9 +35,9 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
@@ -23,7 +23,7 @@
#include "Utilities.h"
#include "../Metadata/FreeImageTag.h"
-#include "../LibJXR/jxrgluelib/JXRGlue.h"
+#include <JXRGlue.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -40,8 +40,8 @@
// ----------------------------------------------------------
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <zlib.h>
+#include <png.h>
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,7 +19,7 @@
// Use at your own risk!
// ==========================================================
-#include "../LibRawLite/libraw/libraw.h"
+#include <libraw/libraw.h>
#include "FreeImage.h"
#include "Utilities.h"
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -37,9 +37,9 @@
#include "FreeImage.h"
#include "Utilities.h"
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "../Metadata/FreeImageTag.h"
-#include "../OpenEXR/Half/half.h"
+#include <OpenEXR/half.h>
#include "FreeImageIO.h"
#include "PSDParser.h"
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
return tif;
}
-/**
-Open a TIFF file for reading or writing
-@param name
-@param mode
-*/
-TIFF*
-TIFFOpen(const char* name, const char* mode) {
- return 0;
-}
-
// ----------------------------------------------------------
// TIFF library FreeImage-specific routines.
// ----------------------------------------------------------
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -24,10 +24,10 @@
#include "../Metadata/FreeImageTag.h"
-#include "../LibWebP/src/webp/decode.h"
-#include "../LibWebP/src/webp/encode.h"
-#include "../LibWebP/src/enc/vp8enci.h"
-#include "../LibWebP/src/webp/mux.h"
+#include <webp/decode.h>
+#include <webp/encode.h>
+// #include "../LibWebP/src/enc/vp8enci.h"
+#include <webp/mux.h>
// ==========================================================
// Plugin Interface
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
@@ -19,10 +19,9 @@
// Use at your own risk!
// ==========================================================
-#include "../ZLib/zlib.h"
+#include <zlib.h>
#include "FreeImage.h"
#include "Utilities.h"
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
/**
Compresses a source buffer into a target buffer, using the ZLib library.
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
return 0;
case Z_OK: {
// patch header, setup crc and length (stolen from mod_trace_output)
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
crc = crc32(crc, source, source_size);
memcpy(target + 4 + dest_len, &crc, 4);
memcpy(target + 8 + dest_len, &source_size, 4);
diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
+++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
typedef uint16_t WORD;
typedef uint32_t DWORD;
typedef int32_t LONG;
+// Disable these, they conflict with the (wrong) ones of libraw
+#if 0
typedef int64_t INT64;
typedef uint64_t UINT64;
+#endif
#else
// MS is not C99 ISO compliant
typedef long BOOL;
@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
FIF_DDS = 24,
FIF_GIF = 25,
FIF_HDR = 26,
- FIF_FAXG3 = 27,
+/* The G3 fax format plugin is deliberately disabled in the Fedora build of
+ FreeImage as it requires that FreeImage uses a private copy of libtiff
+ which is a no no because of security reasons. */
+#if 0
+ FIF_FAXG3 = 27,
+#endif
FIF_SGI = 28,
FIF_EXR = 29,
FIF_J2K = 30,
@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
};
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
+ Fedora build of FreeImage as they require that FreeImage uses a private copy
+ of libjpeg which is a no no because of security reasons. */
+#if 0
/** Lossless JPEG transformations
Constants used in FreeImage_JPEGTransform
*/
@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
};
+#endif
/** Tone mapping operators.
Constants used in FreeImage_ToneMapping.
@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
// --------------------------------------------------------------------------
// JPEG lossless transformation routines
// --------------------------------------------------------------------------
-
+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
++ of libjpeg which is a no no because of security reasons. */
+#if 0
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+#endif
// --------------------------------------------------------------------------
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -26,10 +26,10 @@ extern "C" {
#undef FAR
#include <setjmp.h>
-#include "../LibJPEG/jinclude.h"
-#include "../LibJPEG/jpeglib.h"
-#include "../LibJPEG/jerror.h"
-#include "../LibJPEG/transupp.h"
+#include <jinclude.h>
+#include <jpeglib.h>
+#include <jerror.h>
+#include <transupp.h>
}
#include "FreeImage.h"
diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -30,6 +30,11 @@
#define MAX_TEXT_EXTENT 512
+// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
+typedef int64_t INT64;
+typedef uint64_t UINT64;
+
+
/**
Convert a tag to a C string
*/
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
@@ -29,13 +29,18 @@
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
#endif
-#include "../LibTIFF4/tiffiop.h"
+#include <tiffio.h>
#include "FreeImage.h"
#include "Utilities.h"
#include "FreeImageTag.h"
#include "FIRational.h"
+extern "C"
+{
+ int _TIFFDataSize(TIFFDataType type);
+}
+
// ----------------------------------------------------------
// Extended TIFF Directory GEO Tag Support
// ----------------------------------------------------------
@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
// TIFF EXIF tag reading & writing
// ----------------------------------------------------------
+static uint32 exif_tag_ids[] = {
+ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
+ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
+ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
+ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
+ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
+ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
+ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
+ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
+ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
+ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
+ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
+ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
+ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
+ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
+ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
+ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
+ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
+ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
+ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
+ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
+ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
+ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
+ EXIFTAG_IMAGEUNIQUEID
+};
+static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
+
/**
Read a single Exif tag
@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
// loop over all Core Directory Tags
// ### uses private data, but there is no other way
+ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
if(md_model == TagLib::EXIF_MAIN) {
- const TIFFDirectory *td = &tif->tif_dir;
-
- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
-
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
-
- if(tag_id == lastTag) {
- continue;
- }
-
- // test if tag value is set
- // (lifted directly from LibTiff _TIFFWriteDirectory)
-
- if( fld->field_bit == FIELD_CUSTOM ) {
- int is_set = FALSE;
-
- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
- is_set |= (td->td_customValues[ci].info == fld);
- }
-
- if( !is_set ) {
- continue;
- }
-
- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
- continue;
- }
-
- // process *all* other tags (some will be ignored)
-
- tiff_read_exif_tag(tif, tag_id, dib, md_model);
-
- lastTag = tag_id;
+ for (int i = 0; i < nExifTags; ++i) {
+ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
}
-
}
return TRUE;
@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
TagLib& tag_lib = TagLib::instance();
- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
- const TIFFField *fld = tif->tif_fields[fi];
-
- const uint32 tag_id = TIFFFieldTag(fld);
+ for (int fi = 0; fi < nExifTags; fi++) {
+ const uint32 tag_id = exif_tag_ids[fi];
+ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
if(skip_write_field(tif, tag_id)) {
// skip tags that are already handled by the LibTIFF writing process

View File

@ -1,99 +0,0 @@
From 2971a187551e062ffefdab965f55377b36cd94eb Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Wed, 21 Feb 2018 06:00:50 +0100
Subject: [PATCH] Fix process tree
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This manually reverts:
commit 584a9bceab948590dabd189d234a86e6bf4ec3f4
Author: wangqr <wangqr@wangqr.tk>
Date: Fri Sep 1 21:27:24 2017 +0800
Find roots when constructing process tree, fix #587
which breaks the process tree (t) view in at least some cases.
I will investigate further...
---
ProcessList.c | 63 +++++++++++++++++------------------------------------------
1 file changed, 18 insertions(+), 45 deletions(-)
diff --git a/ProcessList.c b/ProcessList.c
index 48b2d95..225253d 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -213,51 +213,24 @@ void ProcessList_sort(ProcessList* this) {
// Restore settings
this->settings->sortKey = sortKey;
this->settings->direction = direction;
- int vsize = Vector_size(this->processes);
- // Find all processes whose parent is not visible
- int size;
- while ((size = Vector_size(this->processes))) {
- int i;
- for (i = 0; i < size; i++) {
- Process* process = (Process*)(Vector_get(this->processes, i));
- // Immediately consume not shown processes
- if (!process->show) {
- process = (Process*)(Vector_take(this->processes, i));
- process->indent = 0;
- Vector_add(this->processes2, process);
- ProcessList_buildTree(this, process->pid, 0, 0, direction, false);
- break;
- }
- pid_t ppid = process->tgid == process->pid ? process->ppid : process->tgid;
- // Bisect the process vector to find parent
- int l = 0, r = size;
- // If PID corresponds with PPID (e.g. "kernel_task" (PID:0, PPID:0)
- // on Mac OS X 10.11.6) cancel bisecting and regard this process as
- // root.
- if (process->pid == ppid)
- r = 0;
- while (l < r) {
- int c = (l + r) / 2;
- pid_t pid = ((Process*)(Vector_get(this->processes, c)))->pid;
- if (ppid == pid) {
- break;
- } else if (ppid < pid) {
- r = c;
- } else {
- l = c + 1;
- }
- }
- // If parent not found, then construct the tree with this root
- if (l >= r) {
- process = (Process*)(Vector_take(this->processes, i));
- process->indent = 0;
- Vector_add(this->processes2, process);
- ProcessList_buildTree(this, process->pid, 0, 0, direction, process->showChildren);
- break;
- }
- }
- // There should be no loop in the process tree
- assert(i < size);
+
+ // Take PID 1 as root and add to the new listing
+ int vsize = Vector_size(this->processes);
+ Process* init = (Process*) (Vector_take(this->processes, 0));
+ if (!init) return;
+ // This assertion crashes on hardened kernels.
+ // I wonder how well tree view works on those systems.
+ // assert(init->pid == 1);
+ init->indent = 0;
+ Vector_add(this->processes2, init);
+ // Recursively empty list
+ ProcessList_buildTree(this, init->pid, 0, 0, direction, true);
+ // Add leftovers
+ while (Vector_size(this->processes)) {
+ Process* p = (Process*) (Vector_take(this->processes, 0));
+ p->indent = 0;
+ Vector_add(this->processes2, p);
+ ProcessList_buildTree(this, p->pid, 0, 0, direction, p->showChildren);
}
assert(Vector_size(this->processes2) == vsize); (void)vsize;
assert(Vector_size(this->processes) == 0);
--
2.16.2

View File

@ -1,41 +0,0 @@
From ebe2323727f8d646590245b0bf06dbc92b5808d6 Mon Sep 17 00:00:00 2001
From: Golubev Alexander <fatzer2@gmail.com>
Date: Tue, 20 Sep 2016 15:33:30 +0400
Subject: [PATCH] JsonCreatorTest failed due to extra space
JsonCreatorTest failed with next message:
```
********* Start testing of mygpo::JsonCreatorTest *********
Config: Using QTest library 4.8.6, Qt 4.8.6
PASS : mygpo::JsonCreatorTest::initTestCase()
PASS : mygpo::JsonCreatorTest::testAddRemoveSubsToJSON()
PASS : mygpo::JsonCreatorTest::testSaveSettingsToJSON()
FAIL! : mygpo::JsonCreatorTest::testEpisodeActionListToJSON() Compared values are not the same
Actual (outString2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http://podcast.url","timestamp":"1998-01-01T00:01:02"},{"action":"delete","device":"device3","episode":"http://episode2.url","podcast":"http://podcast2.url","timestamp":"1920-01-01T12:01:02"},{"action":"new","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1998-01-01T00:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1920-01-01T12:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":123,"started":10,"timestamp":"1998-01-01T00:01:02","total":321},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":10,"timestamp":"1998-01-01T00:01:02"}]
Expected (expected2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http:
Loc: [/var/tmp/portage/media-libs/libmygpo-qt-1.0.9-r1/work/libmygpo-qt-1.0.9/tests/JsonCreatorTest.cpp(138)]
PASS : mygpo::JsonCreatorTest::testRenameDeviceStringToJSON()
PASS : mygpo::JsonCreatorTest::testDeviceSynchronizationListsToJSON()
PASS : mygpo::JsonCreatorTest::cleanupTestCase()
Totals: 6 passed, 1 failed, 0 skipped
********* Finished testing of mygpo::JsonCreatorTest *********
```
This was caused by extra space in the expected string.
---
tests/JsonCreatorTest.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp
index b15b006..feb03d5 100644
--- a/tests/JsonCreatorTest.cpp
+++ b/tests/JsonCreatorTest.cpp
@@ -133,7 +133,7 @@ void JsonCreatorTest::testEpisodeActionListToJSON()
output = JsonCreator::episodeActionListToJSON(episodeActions);
QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") );
- QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
+ QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
QCOMPARE(outString2, expected2 );
}

View File

@ -0,0 +1,36 @@
From 21507b3600c616bca7049004eb518cf11f45f299 Mon Sep 17 00:00:00 2001
From: "Anthony J. Bentley" <anthony@cathet.us>
Date: Sun, 7 Jun 2015 02:41:28 -0600
Subject: [PATCH] Correct the path to the GLEW header.
---
src/glshader.cpp | 2 +-
src/rgl.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/glshader.cpp b/src/glshader.cpp
index 4729945..a8947ea 100644
--- a/src/glshader.cpp
+++ b/src/glshader.cpp
@@ -23,7 +23,7 @@
#include <stdio.h>
#include <string.h>
#include "rgl_assert.h"
-#include <glew.h>
+#include <GL/glew.h>
#if defined(__MACOSX__)
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
diff --git a/src/rgl.h b/src/rgl.h
index c15f93f..1748406 100644
--- a/src/rgl.h
+++ b/src/rgl.h
@@ -26,7 +26,7 @@
#include "rgl_assert.h"
#include "rdp.h"
-#include <glew.h>
+#include <GL/glew.h>
#if defined(__MACOSX__)
#include <OpenGL/gl.h>
#elif defined(__MACOS__)

View File

@ -0,0 +1,66 @@
Fix CVE-2018-7550:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7550
Patch copied from upstream source repository:
https://git.qemu.org/?p=qemu.git;a=patch;h=2a8fcd119eb7c6bb3837fc3669eb1b2dfb31daf8
From 2a8fcd119eb7c6bb3837fc3669eb1b2dfb31daf8 Mon Sep 17 00:00:00 2001
From: Jack Schwartz <jack.schwartz@oracle.com>
Date: Thu, 21 Dec 2017 09:25:15 -0800
Subject: [PATCH] multiboot: bss_end_addr can be zero
The multiboot spec (https://www.gnu.org/software/grub/manual/multiboot/),
section 3.1.3, allows for bss_end_addr to be zero.
A zero bss_end_addr signifies there is no .bss section.
Suggested-by: Daniel Kiper <daniel.kiper@oracle.com>
Signed-off-by: Jack Schwartz <jack.schwartz@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Prasad J Pandit <pjp@fedoraproject.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
hw/i386/multiboot.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index 46d9c68bf5..bb8d8e4629 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -233,12 +233,6 @@ int load_multiboot(FWCfgState *fw_cfg,
mh_entry_addr = ldl_p(header+i+28);
if (mh_load_end_addr) {
- if (mh_bss_end_addr < mh_load_addr) {
- fprintf(stderr, "invalid mh_bss_end_addr address\n");
- exit(1);
- }
- mb_kernel_size = mh_bss_end_addr - mh_load_addr;
-
if (mh_load_end_addr < mh_load_addr) {
fprintf(stderr, "invalid mh_load_end_addr address\n");
exit(1);
@@ -249,8 +243,16 @@ int load_multiboot(FWCfgState *fw_cfg,
fprintf(stderr, "invalid kernel_file_size\n");
exit(1);
}
- mb_kernel_size = kernel_file_size - mb_kernel_text_offset;
- mb_load_size = mb_kernel_size;
+ mb_load_size = kernel_file_size - mb_kernel_text_offset;
+ }
+ if (mh_bss_end_addr) {
+ if (mh_bss_end_addr < (mh_load_addr + mb_load_size)) {
+ fprintf(stderr, "invalid mh_bss_end_addr address\n");
+ exit(1);
+ }
+ mb_kernel_size = mh_bss_end_addr - mh_load_addr;
+ } else {
+ mb_kernel_size = mb_load_size;
}
/* Valid if mh_flags sets MULTIBOOT_HEADER_HAS_VBE.
--
2.17.0

View File

@ -0,0 +1,21 @@
Fix CVE-2018-1000097:
https://security-tracker.debian.org/tracker/CVE-2018-1000097
https://nvd.nist.gov/vuln/detail/CVE-2018-1000097
Patch taken from upstream bug report:
https://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00005.html
diff --git a/src/unshar.c b/src/unshar.c
index 80bc3a9..0fc3773 100644
--- a/src/unshar.c
+++ b/src/unshar.c
@@ -240,7 +240,7 @@ find_archive (char const * name, FILE * file, off_t start)
off_t position = ftello (file);
/* Read next line, fail if no more and no previous process. */
- if (!fgets (rw_buffer, BUFSIZ, file))
+ if (!fgets (rw_buffer, rw_base_size, file))
{
if (!start)
error (0, 0, _("Found no shell commands in %s"), name);

View File

@ -12,6 +12,7 @@
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -31,6 +32,7 @@
(define-module (gnu packages perl-check)
#:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (gnu packages valgrind)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system perl)
@ -1001,6 +1003,33 @@ reported, and the tests skipped.")
(description "Test::Roo provides composable, reusable tests with roles.")
(license asl2.0)))
(define-public perl-test-runvalgrind
(package
(name "perl-test-runvalgrind")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-"
version
".tar.gz"))
(sha256
(base32
"0cfndkn2k9pcx290wcblwmrwh1ybs0grxjlsrp8fbqqbmmjpb53h"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-path-tiny" ,perl-path-tiny)
("perl-test-trap" ,perl-test-trap)
("valgrind" ,valgrind)))
(home-page "http://search.cpan.org/dist/Test-RunValgrind/")
(synopsis "Tests that an external program is valgrind-clean")
(description "Test::RunValgind checks weather Valgrind does not detect
errors (such as memory leaks) in an arbitrary binary executable.")
(license x11)))
(define-public perl-test-script
(package
(name "perl-test-script")

View File

@ -13,12 +13,13 @@
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -43,8 +44,10 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix utils) ;substitute-keyword-arguments for perl-5.26.2
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config))
@ -59,6 +62,7 @@
(package
(name "perl")
(version "5.26.1")
(replacement perl/fixed)
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/src/5.0/perl-"
@ -156,6 +160,39 @@
(home-page "http://www.perl.org/")
(license gpl1+))) ; or "Artistic"
;; Fixes CVE-2018-6797, CVE-2018-6798, and CVE-2018-6913.
;; See <https://metacpan.org/changes/release/SHAY/perl-5.26.2>.
(define-public perl-5.26.2
(package
(inherit perl)
(version "5.26.2")
(source (origin
(inherit (package-source perl))
(uri (string-append "mirror://cpan/src/5.0/perl-"
version ".tar.gz"))
(sha256
(base32
"03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp"))))))
;; When grafting perl, complications arise when the replacement perl has a
;; different version number than the original. So, here we create a version
;; of perl-5.26.2 that thinks it is version 5.26.1. See
;; <https://bugs.gnu.org/31210> and <https://bugs.gnu.org/31216>.
(define perl/fixed
(package
(inherit perl-5.26.2)
(version "5.26.1")
(arguments
(substitute-keyword-arguments (package-arguments perl-5.26.2)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'revert-perl-subversion
(lambda _
(substitute* "patchlevel.h"
(("^#define PERL_SUBVERSION 2")
"#define PERL_SUBVERSION 1"))
#t))))))))
(define-public perl-algorithm-c3
(package
(name "perl-algorithm-c3")
@ -3502,6 +3539,33 @@ provided base directory and can return files (and/or directories if desired)
matching a regular expression.")
(home-page "http://search.cpan.org/~dopacki/File-List//")))
(define-public perl-file-readbackwards
(package
(name "perl-file-readbackwards")
(version "1.05")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/U/UR/URI/File-ReadBackwards-"
version
".tar.gz"))
(sha256
(base32
"0vldy5q0zyf1cwzwb1gv14f8vg2f21bw96b8wvkw6z2hhypn3cl2"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/File-ReadBackwards/")
(synopsis "Read a file backwards by lines")
(description "This module reads a file backwards line by line. It is
simple to use, memory efficient and fast. It supports both an object and a
tied handle interface.
It is intended for processing log and other similar text files which typically
have their newest entries appended to them. By default files are assumed to
be plain text and have a line ending appropriate to the OS. But you can set
the input record separator string on a per file basis.")
(license perl-license)))
(define-public perl-file-remove
(package
(name "perl-file-remove")
@ -4057,6 +4121,32 @@ This document describes how to use Inline with the C programming language.
It also goes a bit into Perl C internals.")
(license (package-license perl))))
(define-public perl-io-all
(package
(name "perl-io-all")
(version "0.87")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/F/FR/FREW/IO-All-"
version
".tar.gz"))
(sha256
(base32
"0nsd9knlbd7if2v6zwj4q978axq0w5hk8ymp61z14a821hjivqjl"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-file-mimeinfo" ,perl-file-mimeinfo)
("perl-file-readbackwards" ,perl-file-readbackwards)))
(home-page "http://search.cpan.org/dist/IO-All/")
(synopsis "@code{IO::All} to Larry Wall!")
(description "@code{IO::All} combines all of the best Perl IO modules into
a single nifty object oriented interface to greatly simplify your everyday
Perl IO idioms. It exports a single function called io, which returns a new
@code{IO::All} object. And that object can do it all!")
(license perl-license)))
(define-public perl-io-captureoutput
(package
(name "perl-io-captureoutput")

View File

@ -109,14 +109,14 @@ data as produced by digital cameras.")
(define-public libgphoto2
(package
(name "libgphoto2")
(version "2.5.16")
(version "2.5.17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
version "/libgphoto2-" version ".tar.bz2"))
(sha256
(base32
"01i95av28d0szyvx6l2gjv039r3205wjwjr91nfimq132rnl2mz7"))))
"0mdmjb8a07g37bb5q69h11sixw0w6y5g3kbii9z97yhklgq68x21"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
@ -140,14 +140,14 @@ from digital cameras.")
(define-public gphoto2
(package
(name "gphoto2")
(version "2.5.15")
(version "2.5.17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
"/gphoto2-" version ".tar.bz2"))
(sha256
(base32
"0xsa12k5fz49v8y4h3zahzr427a3ylxaf0k7hybrkp43g4i1lmxf"))))
"0kslwclyyzvnxjw3gdzhlagj7l5f8lba833ipr9s0s0c4hwi0mxa"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -31,7 +32,7 @@
(define-public pure
(package
(name "pure")
(version "0.67")
(version "0.68")
(source
(origin
(method url-fetch)
@ -40,7 +41,7 @@
"pure-" version ".tar.gz"))
(sha256
(base32
"1hlx5dx6n70rbg668yc97yj4jbnrv0dpfw3l9b0ffmcgr76f6ba4"))))
"0px6x5ivcdbbp2pz5n1r1cwg1syadklhjw8piqhl63n91i4r7iyb"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="

View File

@ -15,6 +15,7 @@
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -48,6 +49,37 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
(define-public python-bcrypt
(package
(name "python-bcrypt")
(version "3.1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bcrypt" version))
(sha256
(base32
"13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7"))))
(build-system python-build-system)
(native-inputs
`(("python-pycparser" ,python-pycparser)
("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-cffi" ,python-cffi)
("python-six" ,python-six)))
(home-page "https://github.com/pyca/bcrypt/")
(synopsis
"Modern password hashing library")
(description
"Bcrypt is a Python module which provides a password hashing method based
on the Blowfish password hashing algorithm, as described in
@url{http://static.usenix.org/events/usenix99/provos.html,\"A Future-Adaptable
Password Scheme\"} by Niels Provos and David Mazieres.")
(license license:asl2.0)))
(define-public python2-bcrypt
(package-with-python2 python-bcrypt))
(define-public python-passlib
(package
(name "python-passlib")
@ -122,21 +154,18 @@ John the Ripper).")
(define-public python-paramiko
(package
(name "python-paramiko")
(version "2.1.5")
(version "2.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "paramiko" version))
(sha256
(base32
"1pf0zxzhgyy4avby3ajg5hp18b0d8iirbkdfw53z0h6w611bp0wk"))))
"1wx4s95i2cdh8hhi1c3jb8lzk71jifa3z9wjfsx905y7lrsngqrk"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "python" "test.py")))))))
`(;; FIXME: Tests require many unpackaged libraries, see dev-requirements.txt.
#:tests? #f))
(propagated-inputs
`(("python-pyasn1" ,python-pyasn1)
("python-cryptography" ,python-cryptography)))
@ -762,3 +791,30 @@ in userspace)
(define-public python2-pycryptodome
(package-with-python2 python-pycryptodome))
(define-public python-m2crypto
(package
(name "python-m2crypto")
(version "0.29.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "M2Crypto" version))
(sha256
(base32 "1h16gpilrnlzc0iyj1mnd1iqh8wchzjsxjqw9n344glimg2s5zm0"))))
(build-system python-build-system)
(inputs `(("openssl" ,openssl)))
(propagated-inputs `(("python-typing" ,python-typing)))
(home-page "https://gitlab.com/m2crypto/m2crypto")
(synopsis "Python crypto and TLS toolkit")
(description "@code{M2Crypto} is a complete Python wrapper for OpenSSL
featuring RSA, DSA, DH, EC, HMACs, message digests, symmetric ciphers
(including AES); TLS functionality to implement clients and servers; HTTPS
extensions to Python's httplib, urllib, and xmlrpclib; unforgeable HMAC'ing
AuthCookies for web session management; FTP/TLS client and server; S/MIME;
M2Crypto can also be used to provide TLS for Twisted. Smartcards supported
through the Engine interface.")
(license license:expat)))
(define-public python2-m2crypto
(package-with-python2 python-m2crypto))

View File

@ -23,6 +23,7 @@
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Mark Meyer <mark@ofosos.org>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2486,3 +2487,24 @@ layouts.")
(define-public python2-pastescript
(package-with-python2 python-pastescript))
(define-public python2-urlgrabber
(package
(name "python2-urlgrabber")
(version "3.10.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urlgrabber" version))
(sha256
(base32 "0w1h7hlsq406bxfy2pn4i9bd003bwl0q9b7p03z3g6yl0d21ddq5"))))
(build-system python-build-system)
(arguments `(#:python ,python-2)) ; urlgrabber supports python2 only
(home-page "http://urlgrabber.baseurl.org")
(synopsis "High-level cross protocol url-grabber")
(description "@code{urlgrabber} is Python2 library that unifies access to
files available on web, FTP or locally. It supports HTTP, FTP and file://
protocols, it supports features like HTTP keep-alive, reget, throttling and
more.")
(license license:lgpl2.1+)))

View File

@ -50,6 +50,7 @@
;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -102,7 +103,6 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages openstack)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@ -6342,7 +6342,7 @@ specification.")
(define-public python-pretend
(package
(name "python-pretend")
(version "1.0.8")
(version "1.0.9")
(source
(origin
(method url-fetch)
@ -6350,7 +6350,7 @@ specification.")
"pretend/pretend-" version ".tar.gz"))
(sha256
(base32
"0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
"040vm94lcbscg5p81g1icmwwwa2jm7wrd1ybmxnv1sz8rl8bh3n9"))))
(build-system python-build-system)
(home-page "https://github.com/alex/pretend")
(synopsis "Library for stubbing in Python")
@ -13251,3 +13251,21 @@ working with iterables.")
(description "Pybtex is a BibTeX-compatible bibliography processor written
in Python. You can simply type pybtex instead of bibtex.")
(license license:expat)))
(define-public python-onetimepass
(package
(name "python-onetimepass")
(version "1.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "onetimepass" version))
(sha256
(base32 "09vagxgbq78wvq4xbikmn2hpqqsa2i96kqsmphf7dqynfv0dlsd5"))))
(build-system python-build-system)
(inputs `(("python-six" ,python-six)))
(home-page "https://github.com/tadeck/onetimepass/")
(synopsis "One-time password library")
(description "Python one-time password library for HMAC-based (HOTP) and
time-based (TOTP) passwords.")
(license license:expat)))

View File

@ -7,7 +7,7 @@
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
@ -1022,7 +1022,7 @@ interacting with serial ports from within Qt.")))
(define-public qtserialbus
(package (inherit qtsvg)
(name "qtserialbus")
(version "5.9.4")
(version "5.9.5")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
@ -1031,7 +1031,7 @@ interacting with serial ports from within Qt.")))
version ".tar.xz"))
(sha256
(base32
"1i6b7w9z30mzzi0dcmrxx1scpzpnnw2fag1igvrnzvw1jwp414ff"))))
"0gz5xsskv02yy078yffxyn8rdlklf4rsgnqrziyz5ywxwdh96gn5"))))
(inputs
`(("qtbase" ,qtbase)
("qtserialport" ,qtserialport)))
@ -1281,7 +1281,7 @@ and mobile applications targeting TV-like form factors.")))
(define-public qtscxml
(package (inherit qtsvg)
(name "qtscxml")
(version "5.9.4")
(version "5.9.5")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
@ -1290,7 +1290,7 @@ and mobile applications targeting TV-like form factors.")))
version ".tar.xz"))
(sha256
(base32
"0x8bjp9jzib4kfn7rbricw4qr259qqsdbrz0dw39453s2m7cbv0x"))
"0knp328cinawz6xbhf9wd6h6gbwp74rb5cpmlr8gv3g5a7fjlsh1"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1397,7 +1397,7 @@ selecting one of the charts themes.")
(define-public qtdatavis3d
(package (inherit qtsvg)
(name "qtdatavis3d")
(version "5.9.4")
(version "5.9.5")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
@ -1406,7 +1406,7 @@ selecting one of the charts themes.")
version ".tar.xz"))
(sha256
(base32
"1ggwfnqf17mp5dkfr82q1qrimkb6wv3304vl8mjv1nq0zisckhjv"))))
"0i1zd7lcakhicfpqj7dlw8hzk8x5i4ddk1427jhxcpja48l4jxy5"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests

View File

@ -1617,13 +1617,13 @@ irb's last-word approach.")
(define-public ruby-instantiator
(package
(name "ruby-instantiator")
(version "0.0.6")
(version "0.0.7")
(source (origin
(method url-fetch)
(uri (rubygems-uri "instantiator" version))
(sha256
(base32
"0mfmqhg9xrv9i8i1kmphf15ywddhivyh2z3ccl0xjw8qy54zr21i"))))
"0w07w3gkyqr7m0vz5h13vm8b411660qywjm2xxxgdjv4wb3fazbr"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@ -2998,13 +2998,13 @@ multibyte strings, internationalization, time zones, and testing.")
(define-public ruby-crass
(package
(name "ruby-crass")
(version "1.0.3")
(version "1.0.4")
(source (origin
(method url-fetch)
(uri (rubygems-uri "crass" version))
(sha256
(base32
"1czijxlagzpzwchr2ldrgfi7kywg08idjpq37ndcmwh4fmz72c4l"))))
"0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
(build-system ruby-build-system)
(native-inputs
`(("bundler" ,bundler)

View File

@ -6,6 +6,7 @@
;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -46,6 +47,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module ((guix build utils) #:select (alist-replace))
@ -150,11 +152,73 @@ in turn be used to build the final Rust.")
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "src/llvm") #t))))
(define-public rust-1.23
(define-public rust-1.19
(package
(name "rust")
(version "1.23.0")
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
(version "1.19.0")
(source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))
(outputs '("out" "cargo"))
(arguments
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda* (#:key inputs #:allow-other-keys)
;; Disable test for cross compilation support.
(setenv "CFG_DISABLE_CROSS_TESTS" "1")
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
;; guix llvm-3.9.1 package installs only shared libraries
(setenv "LLVM_LINK_SHARED" "1")
#t))
(add-after 'unpack 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/libstd/process.rs"
;; The newline is intentional.
;; There's a line length "tidy" check in Rust which would
;; fail otherwise.
(("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\"")))
(substitute* "src/libstd/net/tcp.rs"
;; There is no network in build environment
(("fn connect_timeout_unroutable")
"#[ignore]\nfn connect_timeout_unroutable"))
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
(substitute* "src/libstd/sys/unix/process/process_common.rs"
(("fn test_process_mask") "#[allow(unused_attributes)]
#[ignore]
fn test_process_mask"))
;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
(delete-file-recursively "src/test/run-make/linker-output-non-utf8")
(substitute* "src/librustc_back/dynamic_lib.rs"
;; This test is known to fail on aarch64 and powerpc64le:
;; https://github.com/rust-lang/rust/issues/45410
(("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine"))
#t)))
(add-after 'patch-source-shebangs 'patch-cargo-checksums
(lambda* _
(substitute* "src/Cargo.lock"
(("(\"checksum .* = )\".*\"" all name)
(string-append name "\"" ,%cargo-reference-hash "\"")))
(for-each
(lambda (filename)
(use-modules (guix build cargo-build-system))
(delete-file filename)
(let* ((dir (dirname filename)))
(display (string-append
"patch-cargo-checksums: generate-checksums for "
dir "\n"))
(generate-checksums dir ,%cargo-reference-project-file)))
(find-files "src/vendor" ".cargo-checksum.json"))
#t))
(replace 'configure
(const #t))
(replace 'check
(const #t))
(replace 'install
(const #t)))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison) ; For the tests
@ -173,77 +237,164 @@ in turn be used to build the final Rust.")
("llvm" ,llvm-3.9.1)
("openssl" ,openssl)
("libcurl" ,curl))) ; For "cargo"
;; rustc invokes gcc, so we need to set its search paths accordingly.
(native-search-paths (package-native-search-paths gcc))
(synopsis "Compiler for the Rust progamming language")
(description "Rust is a systems programming language that provides memory
safety and thread safety guarantees.")
(home-page "https://www.rust-lang.org")
;; Dual licensed.
(license (list license:asl2.0 license:expat))))
(define (rust-bootstrapped-package base-rust version checksum)
"Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST."
(package
(inherit base-rust)
(version version)
(source
(rust-source version checksum))
(native-inputs
(alist-replace "cargo-bootstrap" (list base-rust "cargo")
(alist-replace "rustc-bootstrap" (list base-rust)
(package-native-inputs base-rust))))))
(define-public mrustc
(let ((commit "4f98e4322ef7aabd3bbef8cd93c0980cd6eeeed1")
(revision "1")
(rustc-version "1.19.0"))
(package
(name "mrustc")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/thepowersgang/mrustc.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1hk1x2iv64il5g2n3z06d6h219hnxg1w84lj7vi1lydqa65qk92p"))))
(outputs '("out" "cargo"))
(build-system gnu-build-system)
(inputs
`(("llvm" ,llvm-3.9.1)))
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
;; Required for the libstd sources.
("rustc"
,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
(arguments
`(#:tests? #f
#:make-flags (list (string-append "LLVM_CONFIG="
(assoc-ref %build-inputs "llvm")
"/bin/llvm-config"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-target-compiler
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "minicargo.mk"
;; Don't try to build LLVM.
(("^[$][(]LLVM_CONFIG[)]:") "xxx:")
;; Build for the correct target architecture.
(("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
(string-append "RUSTC_TARGET := "
,(or (%current-target-system)
(nix-system->gnu-triplet
(%current-system))))))
(invoke "tar" "xf" (assoc-ref inputs "rustc"))
(chdir "rustc-1.19.0-src")
(invoke "patch" "-p0" "../rust_src.patch")
(chdir "..")
#t))
(delete 'configure)
(add-after 'build 'build-minicargo
(lambda _
(for-each (lambda (target)
(invoke "make" "-f" "minicargo.mk" target))
'("output/libstd.hir" "output/libpanic_unwind.hir"
"output/libproc_macro.hir" "output/libtest.hir"))
;; Technically the above already does it - but we want to be clear.
(invoke "make" "-C" "tools/minicargo")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(tools-bin (string-append out "/tools/bin"))
(cargo-out (assoc-ref outputs "cargo"))
(cargo-bin (string-append cargo-out "/bin"))
(lib (string-append out "/lib"))
(lib/rust (string-append lib "/mrust"))
(gcc (assoc-ref inputs "gcc")))
;; These files are not reproducible.
(for-each delete-file (find-files "output" "\\.txt$"))
(mkdir-p lib)
(copy-recursively "output" lib/rust)
(mkdir-p bin)
(mkdir-p tools-bin)
(install-file "bin/mrustc" bin)
;; minicargo uses relative paths to resolve mrustc.
(install-file "tools/bin/minicargo" tools-bin)
(install-file "tools/bin/minicargo" cargo-bin)
#t))))))
(synopsis "Compiler for the Rust progamming language")
(description "Rust is a systems programming language that provides memory
safety and thread safety guarantees.")
(home-page "https://github.com/thepowersgang/mrustc")
;; Dual licensed.
(license (list license:asl2.0 license:expat)))))
(define-public rust-1.23
(package
(inherit rust-1.19)
(name "rust")
(version "1.23.0")
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
(outputs '("out" "doc" "cargo"))
(arguments
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda _
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
;; guix llvm-3.9.1 package installs only shared libraries
(setenv "LLVM_LINK_SHARED" "1")
#t))
(add-after 'unpack 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/libstd/process.rs"
;; The newline is intentional.
;; There's a line length "tidy" check in Rust which would
;; fail otherwise.
(("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\"")))
(substitute* "src/libstd/net/tcp.rs"
;; There is no network in build environment
(("fn connect_timeout_unroutable")
"#[ignore]\nfn connect_timeout_unroutable"))
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
(substitute* "src/libstd/sys/unix/process/process_common.rs"
(("fn test_process_mask") "#[ignore]\nfn test_process_mask"))
;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
(delete-file-recursively "src/test/run-make/linker-output-non-utf8")
#t)))
(add-after 'patch-tests 'fix-mtime-bug
(lambda* _
(substitute* "src/build_helper/lib.rs"
;; Bug in Rust code.
;; Current implementation assume that if dst not exist then it's mtime
;; is 0, but in same time "src" have 0 mtime in guix build!
(("let threshold = mtime\\(dst\\);")
"if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
#t))
(add-after 'patch-source-shebangs 'patch-cargo-checksums
(lambda* _
(substitute* "src/Cargo.lock"
(("(\"checksum .* = )\".*\"" all name)
(string-append name "\"" ,%cargo-reference-hash "\"")))
(for-each
(lambda (filename)
(use-modules (guix build cargo-build-system))
(delete-file filename)
(let* ((dir (dirname filename)))
(display (string-append
"patch-cargo-checksums: generate-checksums for "
dir "\n"))
(generate-checksums dir ,%cargo-reference-project-file)))
(find-files "src/vendor" ".cargo-checksum.json"))
#t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc"))
(gcc (assoc-ref inputs "gcc"))
(gdb (assoc-ref inputs "gdb"))
(binutils (assoc-ref inputs "binutils"))
(python (assoc-ref inputs "python-2"))
(rustc (assoc-ref inputs "rustc-bootstrap"))
(cargo (assoc-ref inputs "cargo-bootstrap"))
(llvm (assoc-ref inputs "llvm"))
(jemalloc (assoc-ref inputs "jemalloc")))
(call-with-output-file "config.toml"
(lambda (port)
(display (string-append "
(substitute-keyword-arguments (package-arguments rust-1.19)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'dont-build-native
(lambda _
;; XXX: Revisit this when we use gcc 6.
(substitute* "src/binaryen/CMakeLists.txt"
(("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
#t))
(add-after 'patch-tests 'patch-cargo-tests
(lambda _
(substitute* "src/tools/cargo/tests/build.rs"
(("/usr/bin/env") (which "env"))
;; Guix llvm is compiled without asmjs-unknown-emscripten.
(("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs"))
(substitute* "src/tools/cargo/tests/death.rs"
;; This is stuck when built in container.
(("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone"))
#t))
(add-after 'patch-cargo-tests 'fix-mtime-bug
(lambda* _
(substitute* "src/build_helper/lib.rs"
;; Bug in Rust code.
;; Current implementation assume that if dst not exist then it's mtime
;; is 0, but in same time "src" have 0 mtime in guix build!
(("let threshold = mtime\\(dst\\);")
"if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
#t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc"))
(gcc (assoc-ref inputs "gcc"))
(gdb (assoc-ref inputs "gdb"))
(binutils (assoc-ref inputs "binutils"))
(python (assoc-ref inputs "python-2"))
(rustc (assoc-ref inputs "rustc-bootstrap"))
(cargo (assoc-ref inputs "cargo-bootstrap"))
(llvm (assoc-ref inputs "llvm"))
(jemalloc (assoc-ref inputs "jemalloc")))
(call-with-output-file "config.toml"
(lambda (port)
(display (string-append "
[llvm]
[build]
cargo = \"" cargo "/bin/cargo" "\"
@ -289,7 +440,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(invoke "./x.py" "build" "src/tools/cargo")))
(replace 'check
(lambda* _
(invoke "./x.py" "test")))
(invoke "./x.py" "test")
(invoke "./x.py" "test" "src/tools/cargo")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "./x.py" "install")
@ -308,29 +460,63 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(wrap-program (string-append out "/bin/rustc")
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
#t))))))
;; rustc invokes gcc, so we need to set its search paths accordingly.
(native-search-paths (package-native-search-paths gcc))
(synopsis "Compiler for the Rust progamming language")
(description "Rust is a systems programming language that provides memory
safety and thread safety guarantees.")
(home-page "https://www.rust-lang.org")
;; Dual licensed.
(license (list license:asl2.0 license:expat))))
#t)))))))))
(define-public rust
(let ((base-rust rust-1.23))
(define-public rust-1.24
(let ((base-rust
(rust-bootstrapped-package rust-1.23 "1.24.1"
"1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
(package
(inherit base-rust)
(version "1.24.1")
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
`(modify-phases ,phases
(replace 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/libstd/process.rs"
;; The newline is intentional.
;; There's a line length "tidy" check in Rust which would
;; fail otherwise.
(("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\"")))
(substitute* "src/libstd/net/tcp.rs"
;; There is no network in build environment
(("fn connect_timeout_unroutable")
"#[ignore]\nfn connect_timeout_unroutable"))
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
(substitute* "src/libstd/sys/unix/process/process_common.rs"
(("fn test_process_mask") "#[allow(unused_attributes)]
#[ignore]
fn test_process_mask"))
;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
(delete-file-recursively "src/test/run-make/linker-output-non-utf8")
(substitute* "src/librustc_metadata/dynamic_lib.rs"
;; This test is known to fail on aarch64 and powerpc64le:
;; https://github.com/rust-lang/rust/issues/45410
(("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine"))
#t)))
(delete 'fix-mtime-bug))))))))
(define-public rust
(let ((base-rust rust-1.24))
(package
(inherit base-rust)
(version "1.25.0")
(source
(rust-source version
"1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))
"0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"))
(native-inputs
(alist-replace "cargo-bootstrap" (list base-rust "cargo")
(alist-replace "rustc-bootstrap" (list base-rust)
(package-native-inputs base-rust))))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases) `(modify-phases ,phases
(delete 'fix-mtime-bug))))))))
((#:phases phases)
`(modify-phases ,phases
(add-after 'patch-cargo-tests 'patch-cargo-index-update
(lambda* _
(substitute* "src/tools/cargo/tests/generate-lockfile.rs"
;; This test wants to update the crate index.
(("fn no_index_update") "#[ignore]\nfn no_index_update")))))))))))

View File

@ -150,14 +150,14 @@ anywhere.")
(define-public samba
(package
(name "samba")
(version "4.7.6")
(version "4.7.7")
(source (origin
(method url-fetch)
(uri (string-append "https://download.samba.org/pub/samba/stable/"
"samba-" version ".tar.gz"))
(sha256
(base32
"0vkxqp3wh7bpn1fd45lznmrpn2ma1fq75yq28vi08rggr07y7v8y"))))
"0c81x2ncnvz3mi6fjj81clm1mh049d3ip3fj031l44qclxpx3yi9"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -368,14 +368,14 @@ However, “Memory efficiency” and “Speed” have not been primary goals.")
(define-public python-ruamel.yaml
(package
(name "python-ruamel.yaml")
(version "0.15.35")
(version "0.15.37")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ruamel.yaml" version))
(sha256
(base32
"0xggyfaj6vprggahf7cq8kp9j79rb7hn8ndk3bxj2sxvwhhliiwd"))))
"0629xzlwbddfwp8lkjz3mpvxhml9kx17cfs8aydzg55idzcl562h"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@ -420,7 +420,7 @@ to generate and parse. The two primary functions are @code{cbor.loads} and
(define-public flatbuffers
(package
(name "flatbuffers")
(version "1.8.0")
(version "1.9.0")
(source
(origin
(method url-fetch)
@ -428,7 +428,7 @@ to generate and parse. The two primary functions are @code{cbor.loads} and
version ".tar.gz"))
(sha256
(base32
"0blc978wc5h91662vai24xj92c3bx56y6hzid90qva7il302jl64"))))
"1qs7sa9q4q6hs12yp875lvrv6393178qcmqs1ziwmjk088g4k9aw"))))
(build-system cmake-build-system)
(arguments
'(#:build-type "Release"

View File

@ -358,14 +358,14 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
(version "0.6.0")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
(base32
"1ikd1xg4iyjqp51y8g8n6c4y39bgx85xnb4bdd3zibkqac3lrahr"))
"09rrfcwpirbxmjjqnsbyn7lwm1wyn41z5zhkbnv57i5hcgs72kx6"))
(modules '((guix build utils)))
(snippet
`(begin
@ -576,7 +576,7 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
(define-public loksh
(package
(name "loksh")
(version "6.2")
(version "6.3")
(source
(origin
(method url-fetch)
@ -585,7 +585,7 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"16mgxby77wgjg1ybp4fb9cvi7a4a387xmfivdxnhphg0vhyr8qd3"))))
"0i1b60g1p19s5cnzz0nmjzjnxywm9szzyp1rcwfcx3gmzvrwr2sc"))))
(build-system gnu-build-system)
(inputs
`(("libbsd" ,libbsd)))

View File

@ -466,14 +466,14 @@ also flexible enough to handle most nonstandard requirements.")
(define-public r-matrix
(package
(name "r-matrix")
(version "1.2-13")
(version "1.2-14")
(source
(origin
(method url-fetch)
(uri (cran-uri "Matrix" version))
(sha256
(base32
"1j4fyn2r3ds51hrxch738gn7d9qvpi4b01n0rxzw5jpv28rnpyvx"))))
"15hknim84nj3f54vkchca5ac0c3ip15v1by18k5parmn8wsl19j9"))))
(properties `((upstream-name . "Matrix")))
(build-system r-build-system)
(propagated-inputs
@ -1331,13 +1331,13 @@ syntax that can be converted to XHTML or other formats.")
(define-public r-yaml
(package
(name "r-yaml")
(version "2.1.17")
(version "2.1.18")
(source (origin
(method url-fetch)
(uri (cran-uri "yaml" version))
(sha256
(base32
"10y6wnv2v8k396far29haqv2s82p4zm04rrsxk183wg19gb51was"))))
"15m4q5krfqg0avvqg9i2g6ns4757lk6zbyrwbx5c5bgh51glvd8v"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/yaml/")
(synopsis "Methods to convert R data to YAML and back")
@ -1904,14 +1904,14 @@ chain.")
(define-public r-ade4
(package
(name "r-ade4")
(version "1.7-10")
(version "1.7-11")
(source
(origin
(method url-fetch)
(uri (cran-uri "ade4" version))
(sha256
(base32
"0zk81x0yn30gbyc0jpzyw1nxd08ccihl6vyk0ijvj3aw3nr5flc6"))))
"0wm54wcpn87rdh6vyw04cr8vgba899y6jsl61f22bmlvx6d7kkac"))))
(build-system r-build-system)
(propagated-inputs
`(("r-mass" ,r-mass)))
@ -2377,14 +2377,14 @@ were originally a part of the r-devtools package.")
(define-public r-hms
(package
(name "r-hms")
(version "0.4.1")
(version "0.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "hms" version))
(sha256
(base32
"0vr7k3a7k52a5yf67bwzl88lkjz09v1avw5axdk1y9v3nz33zl2h"))))
"1g6hslk3z0xga38r71irxq802wskg6nv804mp8y9f7i2wfrj0y55"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rlang" ,r-rlang)
@ -2734,6 +2734,18 @@ engine (version 3.8.8.2) is included.")
"0l7qi45jxlf898n0jazabnam1yyczvqfdknd00bdirhhiplpd1sc"))))
(properties `((upstream-name . "RCurl")))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'respect-CURL_CA_BUNDLE
(lambda _
(substitute* "R/options.S"
(("\\.els = rev\\(merge\\(list\\(\\.\\.\\.\\), \\.opts\\)\\)" m)
(string-append "\
certs = Sys.getenv(\"CURL_CA_BUNDLE\")
if (certs != \"\") { .opts = merge.list(.opts, list(cainfo=certs)) }
" m)))
#t)))))
(inputs
`(("libcurl" ,curl)))
(propagated-inputs
@ -5363,14 +5375,14 @@ is supported.")
(define-public r-lubridate
(package
(name "r-lubridate")
(version "1.7.3")
(version "1.7.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "lubridate" version))
(sha256
(base32
"1pzkqfiahnsdm3zx46asgn8fw43vlxvbh7r4cn70c7ffmxabzzrc"))))
"14a823il77w3wmmnzr89vwrqp50y56dh5raycnaw6c8nv5xsh32i"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)

View File

@ -23,7 +23,8 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix licenses))
#:use-module (guix licenses)
#:use-module (gnu packages golang))
(define-public syncthing
(package
@ -908,302 +909,6 @@ libraries are in the same directory.")
(home-page (package-home-page go-golang-org-x-crypto-bcrypt))
(license (package-license go-golang-org-x-crypto-bcrypt))))
(define-public go-golang-org-x-crypto-bcrypt
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-bcrypt")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/bcrypt"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Bcrypt in Go")
(description "This package provides a Go implementation of the bcrypt
password hashing function.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-blowfish
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-blowfish")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/blowfish"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Blowfish in Go")
(description "This package provides a Go implementation of the Blowfish
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-pbkdf2
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-pbkdf2")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/pbkdf2"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "PBKDF2 in Go")
(description "This package provides a Go implementation of the PBKDF2 key
derivation function.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-tea
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-tea")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/tea"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Tiny Encryption Algorithm (TEA) in Go")
(description "This packages a Go implementation of the Tiny Encryption
Algorithm (TEA) block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-salsa20
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-salsa20")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/salsa20"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Salsa20 in Go")
(description "This packages provides a Go implementation of the Salsa20
stream cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-cast5
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-cast5")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/cast5"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Cast5 in Go")
(description "This packages provides a Go implementation of the Cast5
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-twofish
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-twofish")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/twofish"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "Twofish in Go")
(description "This packages provides a Go implementation of the Twofish
symmetric-key block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define-public go-golang-org-x-crypto-xtea
(let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
(revision "1"))
(package
(name "go-golang-org-x-crypto-xtea")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/crypto")
(commit commit)))
(file-name (string-append "go.googlesource.com-crypto-"
version "-checkout"))
(sha256
(base32
"0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/crypto/xtea"
#:unpack-path "golang.org/x/crypto"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/golang.org/x/crypto/ed25519/testdata")
".*\\.gz$"))
#t)))))
(synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
(description "This package provides a Go implementation of the eXtended
Tiny Encryption Algorithm (XTEA) block cipher.")
(home-page "https://go.googlesource.com/crypto/")
(license bsd-3))))
(define* (go-golang-org-x-net-union #:optional
(packages (list go-golang-org-x-net-ipv4
go-golang-org-x-net-bpf
@ -1234,195 +939,6 @@ Tiny Encryption Algorithm (XTEA) block cipher.")
(home-page (package-home-page go-golang-org-x-net-ipv4))
(license (package-license go-golang-org-x-net-ipv4))))
(define-public go-golang-org-x-net-ipv4
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-ipv4")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv4"
#:unpack-path "golang.org/x/net"))
(synopsis "Go IPv4 support")
(description "This package provides @code{ipv4}, which implements IP-level
socket options for the Internet Protocol version 4.")
(home-page "https://go.googlesource.com/net")
(license bsd-3))))
(define-public go-golang-org-x-net-bpf
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-bpf")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/bpf"
#:unpack-path "golang.org/x/net"))
(synopsis "Berkeley Packet Filters (BPF) in Go")
(description "This packages provides a Go implementation of the Berkeley
Packet Filter (BPF) virtual machine.")
(home-page "https://go.googlesource.com/net/")
(license bsd-3))))
(define-public go-golang-org-x-net-context
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-context")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/context"
#:unpack-path "golang.org/x/net"))
(synopsis "Golang Context type")
(description "This packages provides @code{context}, which defines the
Context type, which carries deadlines, cancelation signals, and other
request-scoped values across API boundaries and between processes.")
(home-page "https://go.googlesource.com/net/")
(license bsd-3))))
(define-public go-golang-org-x-net-internal-iana
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-internal-iana")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/internal/iana"
#:unpack-path "golang.org/x/net"))
(synopsis "Go support for assigned numbers (IANA)")
(description "This packages provides @code{iana}, which provides protocol
number resources managed by the Internet Assigned Numbers Authority (IANA).")
(home-page "https://go.googlesource.com/net/")
(license bsd-3))))
(define-public go-golang-org-x-net-ipv6
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-ipv6")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/ipv6"
#:unpack-path "golang.org/x/net"))
(synopsis "Go IPv6 support")
(description "This packages provides @code{ipv6}, which implements
IP-level socket options for the Internet Protocol version 6.")
(home-page "https://go.googlesource.com/net")
(license bsd-3))))
(define-public go-golang-org-x-net-proxy
(let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
(revision "1"))
(package
(name "go-golang-org-x-net-proxy")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/net")
(commit commit)))
(file-name (string-append "go.googlesource.com-net-"
version "-checkout"))
(sha256
(base32
"10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/net/proxy"
#:unpack-path "golang.org/x/net/"))
(synopsis "Go support for network proxies")
(description "This packages provides @code{proxy}, which provides support
for a variety of protocols to proxy network data.")
(home-page "https://go.googlesource.com/net")
(license bsd-3))))
(define-public go-golang-org-x-sys-unix
(let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
(revision "1"))
(package
(name "go-golang-org-x-sys-unix")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/sys")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/sys/unix"
#:unpack-path "golang.org/x/sys"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
(pk (getcwd))
(substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
(("/usr/bin") "/tmp"))
#t)))))
(synopsis "Go support for low-level system interaction")
(description "This package provides @code{unix}, which offers Go support
for low-level interaction with the operating system.")
(home-page "https://go.googlesource.com/sys")
(license bsd-3))))
(define* (go-golang-org-x-text-union #:optional
(packages (list go-golang-org-x-text-transform
go-golang-org-x-text-unicode-norm)))
@ -1449,60 +965,6 @@ for low-level interaction with the operating system.")
(home-page (package-home-page go-golang-org-x-text-transform))
(license (package-license go-golang-org-x-text-transform))))
(define-public go-golang-org-x-text-transform
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-transform")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/transform"
#:unpack-path "golang.org/x/text"))
(synopsis "Go text transformation")
(description "This package provides @code{transform}, which provides
reader and writer wrappers that transform the bytes passing through. Example
transformations provided by other packages include normalization and conversion
between character sets.")
(home-page "https://go.googlesource.com/text")
(license bsd-3))))
(define-public go-golang-org-x-text-unicode-norm
(let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
(revision "1"))
(package
(name "go-golang-org-x-text-unicode-norm")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/text")
(commit commit)))
(file-name (string-append "go.googlesource.com-text-"
version "-checkout"))
(sha256
(base32
"1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/text/unicode/norm"
#:unpack-path "golang.org/x/text"))
(synopsis "Unicode normalization in Go")
(description "This package provides @code{norm}, which contains types and
functions for normalizing Unicode strings.")
(home-page "https://go.googlesource.com/text")
(license bsd-3))))
(define-public go-github-com-audriusbutkevicius-pfilter
(let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
(revision "2"))
@ -1578,33 +1040,6 @@ error handling primitives in Go.")
(home-page "https://github.com/pkg/errors")
(license bsd-2))))
(define-public go-golang-org-x-time-rate
(let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
(revision "1"))
(package
(name "go-golang-org-x-time-rate")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/time")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/time/rate"
#:unpack-path "golang.org/x/time"))
(propagated-inputs
`(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
(synopsis "Rate limiting in Go")
(description "This package provides @{rate}, which implements rate
limiting in Go.")
(home-page "https://godoc.org/golang.org/x/time/rate")
(license bsd-3))))
(define-public go-github-com-petermattis-goid
(let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
(revision "0"))

View File

@ -441,11 +441,11 @@ embedded kernel situations.")
(license license:expat)))
(define-public cool-retro-term
(let ((commit "e48719fa44e5307df71dbd0fad234f8a6a53f863")
(let ((commit "dd799cf5c0eda92cf44f3938c0c2dcae5651a99e")
(revision "1"))
(package
(name "cool-retro-term")
(version (string-append "1.0.0-" revision "." (string-take commit 7)))
(version (string-append "1.0.1-" revision "." (string-take commit 7)))
(source (origin
(method git-fetch)
(file-name (string-append name "-" version "-checkout"))
@ -454,35 +454,111 @@ embedded kernel situations.")
(commit commit)
(recursive? #t)))
(sha256
(base32 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8lsz3"))
(base32 "08mrvj8zk9ck15q90ipjzza1acnnsjhprv2rxg8yyck0xl9p40jd"))
(patches
(search-patches "cool-retro-term-remove-non-free-fonts.patch"
"cool-retro-term-fix-array-size.patch"
(search-patches "cool-retro-term-fix-array-size.patch"
"cool-retro-term-dont-check-uninit-member.patch"
"cool-retro-term-memory-leak-1.patch"))
(modules '((guix build utils)))
(modules '((guix build utils)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 rdelim)
(ice-9 regex)))
(snippet
'(begin
'(let* ((fonts '(;"1971-ibm-3278" ; BSD 3-clause
;"1975-knight-tv" ; GPL
"1977-apple2" ; Non-Free
"1977-commodore-pet" ; Non-Free
"1979-atari-400-800" ; Non-Free
"1982-commodore64" ; Non-Free
"1985-atari-st" ; ?
"1985-ibm-pc-vga" ; Unclear
;"modern-fixedsys-excelsior" ; Redistributable
;"modern-hermit" ; SIL
;"modern-inconsolata"; SIL
;"modern-pro-font-win-tweaked" ; X11
;"modern-proggy-tiny"; X11
;"modern-terminus" ; SIL
"modern-monaco")) ; Apple Non-Free
(name-rx (make-regexp " *name: *\"([^\"]*)\""))
(source-rx (make-regexp " *source: \"fonts/([^/]*)[^\"]*\""))
(fontname-rx (make-regexp "\"fontName\":\"([^\"]*).*"))
(names
;; Gather font names from all Fonts*.qml files.
;; These will be used to remove items from the
;; default profiles.
(fold
(lambda (font-file names)
(call-with-input-file font-file
(lambda (port)
(let loop ((name #f) (names names))
(let ((line (read-line port)))
(cond
((eof-object? line) (pk 'names names))
((regexp-exec name-rx line)
=> (lambda (m)
(loop (match:substring m 1) names)))
((regexp-exec source-rx line)
=> (lambda (m)
(let ((font (match:substring m 1)))
(if (member font fonts)
(loop #f (lset-adjoin string=?
names name))
(loop #f names)))))
(else (loop name names))))))))
'() (find-files "app/qml" "Font.*\\.qml"))))
;; Remove the font files themselves
(for-each (lambda (font)
(delete-file-recursively
(string-append "app/qml/fonts/" font))
(substitute* '("app/qml/resources.qrc")
(((string-append "<file>fonts/" font ".*"))
"")))
'(;;"1971-ibm-3278" ; BSD 3-clause
"1977-apple2" ; Non-Free
"1977-commodore-pet" ; Non-Free
"1979-atari-400-800" ; Non-Free
"1982-commodore64" ; Non-Free
"1985-atari-st" ; ?
"1985-ibm-pc-vga" ; Unclear
;;"modern-fixedsys-excelsior" ; Redistributable
;;"modern-hermit" ; SIL
;;"modern-inconsolata" ; SIL
;;"modern-pro-font-win-tweaked" ; X11
;;"modern-proggy-tiny" ; X11
;;"modern-terminus" ; SIL
"modern-monaco")) ; Apple non-free
(string-append "app/qml/fonts/" font)))
fonts)
;; Remove mention of those fonts in the source
(substitute* "app/qml/resources.qrc"
(((string-append " *<file>fonts/("
(string-join fonts "|")
").*"))
""))
(for-each
(lambda (file)
(let ((start-rx (make-regexp " *ListElement\\{"))
(end-rx (make-regexp " *\\}")))
(with-atomic-file-replacement file
(lambda (in out)
(let loop ((line-buffer '())
(hold? #f)
(discard? #f))
(let ((line (read-line in 'concat)))
(cond
((eof-object? line) #t) ;done
((regexp-exec start-rx line)
(loop (cons line line-buffer) #t #f))
((or (regexp-exec source-rx line)
(regexp-exec fontname-rx line))
=> (lambda (m)
(let ((font-or-name (match:substring m 1)))
(if (or (member font-or-name fonts)
(member font-or-name names))
(loop '() #f #t)
(loop (cons line line-buffer)
hold? #f)))))
((regexp-exec end-rx line)
(unless discard?
(for-each (cut display <> out)
(reverse line-buffer))
(display line out))
(loop '() #f #f))
(hold? (loop (cons line line-buffer)
hold? discard?))
(discard? (loop line-buffer #f #t))
(else (display line out)
(loop '() #f #f)))))))))
'("app/qml/FontPixels.qml"
"app/qml/FontScanlines.qml"
"app/qml/Fonts.qml"
"app/qml/ApplicationSettings.qml"))
;; Final substitution for default scanline and pixel fonts
(substitute* "app/qml/ApplicationSettings.qml"
(("COMMODORE_PET") "PROGGY_TINY"))
#t))))
(build-system gnu-build-system)
(inputs
@ -495,46 +571,37 @@ embedded kernel situations.")
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share")))
(let ((out (assoc-ref outputs "out")))
(substitute* '("qmltermwidget/qmltermwidget.pro")
(("INSTALL_DIR = \\$\\$\\[QT_INSTALL_QML\\]")
(string-append "INSTALL_DIR = " out "/lib/qt5/qml")))
(substitute* '("app/app.pro")
(("target.path \\+= /usr")
(string-append "target.path += " out))
(("icon32.path = /usr/share")
(string-append "icon32.path = " share))
(("icon64.path = /usr/share")
(string-append "icon64.path = " share))
(("icon128.path = /usr/share")
(string-append "icon128.path = " share))
(("icon256.path = /usr/share")
(string-append "icon256.path = " share)))
(zero? (system* "qmake")))))
(add-before 'install 'fix-Makefiles
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(substitute* '("Makefile")
(("\\$\\(INSTALL_ROOT\\)/usr") out)))))
(substitute* '("cool-retro-term.pro" "app/app.pro")
(("/usr") out))
(invoke "qmake"))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(qml "/lib/qt5/qml"))
(let ((out (assoc-ref outputs "out"))
(qml "/lib/qt5/qml"))
(wrap-program (string-append out "/bin/cool-retro-term")
`("QML2_IMPORT_PATH" ":" prefix
(,(string-append out qml)
,(string-append
(assoc-ref inputs "qtdeclarative") qml)
,(string-append
(assoc-ref inputs "qtgraphicaleffects") qml)
,(string-append
(assoc-ref inputs "qtquickcontrols") qml)))))))
,@(map (lambda (i)
(string-append (assoc-ref inputs i) qml))
'("qtdeclarative"
"qtgraphicaleffects"
"qtquickcontrols")))))
#t)))
(add-after 'install 'add-alternate-name
(lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin")))
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(symlink (string-append bin "/cool-retro-term")
(string-append bin "/crt"))))))))
(string-append bin "/crt")))))
(add-after 'install 'install-man
(lambda* (#:key outputs #:allow-other-keys)
(let ((mandir (string-append (assoc-ref outputs "out")
"/share/man/man1")))
(install-file "packaging/debian/cool-retro-term.1" mandir)
#t))))))
(synopsis "Terminal emulator")
(description
"Cool-retro-term (crt) is a terminal emulator which mimics the look and

View File

@ -26,9 +26,8 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages perl)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses))
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl))
(define-public texinfo
(package

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
@ -38,9 +38,11 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages lua)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
#:use-module (gnu packages terminals)
@ -98,64 +100,60 @@ based command language.")
license:expat)))) ; lexers and libutf.[ch]
(define-public kakoune
(let ((commit "125c8b7e80995732e0d8c87b82040025748f1b4f")
(revision "1"))
(package
(name "kakoune")
(version (string-append "0.0.0-" revision "." (string-take commit 7)))
(source
(origin
(file-name (string-append "kakoune-" version "-checkout"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mawww/kakoune.git")
(commit commit)))
(sha256
(base32
"19qs99l8r9p1vi5pxxx9an22fvi7xx40qw3jh2cnh2mbacawvdyb"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
;; kakoune uses confstr with _CS_PATH to find out where to find
;; a posix shell, but this doesn't work in the build
;; environment. This substitution just replaces that result
;; with the "sh" path.
(substitute* "src/shell_manager.cc"
(("if \\(m_shell.empty\\(\\)\\)" line)
(string-append "m_shell = \"" (which "sh")
"\";\n " line)))
#t))
(delete 'configure)
;; kakoune requires us to be in the src/ directory to build
(add-before 'build 'chdir
(lambda _ (chdir "src") #t))
(add-before 'check 'fix-test-permissions
(lambda _
;; Out git downloader doesn't give us write permissions, but
;; without them the tests fail.
(zero? (system* "chmod" "-R" "u+w" "../test")))))))
(native-inputs `(("asciidoc" ,asciidoc)
("ruby" ,ruby)))
(inputs `(("ncurses" ,ncurses)
("boost" ,boost)))
(synopsis "Vim-inspired code editor")
(description
"Kakoune is a code editor heavily inspired by Vim, as such most of its
(package
(name "kakoune")
(version "2018.04.13")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/mawww/kakoune/"
"releases/download/v" version "/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1kkzs5nrjxzd1jq7a4k7qfb5kg05871z0r3d9c0yhz9shf6wz36d"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
;; kakoune uses confstr with _CS_PATH to find out where to find
;; a posix shell, but this doesn't work in the build
;; environment. This substitution just replaces that result
;; with the "sh" path.
(substitute* "src/shell_manager.cc"
(("if \\(m_shell.empty\\(\\)\\)" line)
(string-append "m_shell = \"" (which "sh")
"\";\n " line)))
#t))
(delete 'configure) ; no configure script
;; kakoune requires us to be in the src/ directory to build
(add-before 'build 'chdir
(lambda _ (chdir "src") #t)))))
(native-inputs
`(("asciidoc" ,asciidoc)
("pkg-config" ,pkg-config)
("ruby" ,ruby)))
(inputs
`(("ncurses" ,ncurses)
("boost" ,boost)))
(synopsis "Vim-inspired code editor")
(description
"Kakoune is a code editor heavily inspired by Vim, as such most of its
commands are similar to Vi's ones, and it shares Vi's \"keystrokes as a text
editing language\" model. Kakoune has a strong focus on interactivity, most
commands provide immediate and incremental results, while still being
competitive (as in keystroke count) with Vim.")
(home-page "http://kakoune.org/")
(license license:unlicense))))
(home-page "http://kakoune.org/")
(license license:unlicense)))
(define-public joe
(package
(name "joe")
(version "4.4")
(version "4.6")
(source
(origin
(method url-fetch)
@ -164,7 +162,7 @@ competitive (as in keystroke count) with Vim.")
"joe-" version ".tar.gz"))
(sha256
(base32
"0y898r1xlrv75m00y598rvwwsricabplyh80wawsqafapcl4hw55"))))
"1pmr598xxxm9j9dl93kq4dv36zyw0q2dh6d7x07hf134y9hhlnj9"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)))
(home-page "http://joe-editor.sourceforge.net/")
@ -292,3 +290,55 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on
compatible. This is a portable version of the mg maintained by the OpenBSD
team.")
(license license:public-domain)))
(define-public ghostwriter
(package
(name "ghostwriter")
(version "1.6.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wereturtle/ghostwriter.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1ihdr4xk0j83q83xknbikxb7yf9qhlkgvc89w33lhj090cv376gd"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools))) ;for lrelease
(inputs
`(("hunspell" ,hunspell)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
("qtsvg" ,qtsvg)
("qtwebkit" ,qtwebkit)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "qmake" (string-append "PREFIX=" out)))))
(add-after 'configure 'create-translations
(lambda _
;; `lrelease` will not overwrite, so delete existing .qm files
(for-each delete-file (find-files "translations" ".*\\.qm"))
(apply invoke "lrelease" (find-files "translations" ".*\\.ts"))))
;; Ensure that icons are found at runtime.
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/ghostwriter")
`("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (label)
(string-append (assoc-ref inputs label)
"/lib/qt5/plugins/"))
'("qtsvg" "qtmultimedia"))))))))))
(home-page "https://wereturtle.github.io/ghostwriter/")
(synopsis "Write without distractions")
(description
"@code{ghostwriter} provides a relaxing, distraction-free writing
environment with Markdown markup.")
(license license:gpl3+))) ;icons/* under CC-BY-SA3

View File

@ -695,10 +695,32 @@ arithmetic in Perl.")
;; At your option either gpl1+ or the Artistic License
(license license:perl-license)))
(define-public perl-crypt-openssl-guess
(package
(name "perl-crypt-openssl-guess")
(version "0.11")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-"
version ".tar.gz"))
(sha256
(base32
"0rvi9l4ljcbhwwvspq019nfq2h2v746dk355h2nwnlmqikiihsxa"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Crypt-OpenSSL-Guess/")
(synopsis "Guess the OpenSSL include path")
(description
"The Crypt::OpenSSL::Guess Perl module provides helpers to guess the
correct OpenSSL include path. It is intended for use in your
@file{Makefile.PL}.")
(license license:perl-license)))
(define-public perl-crypt-openssl-random
(package
(name "perl-crypt-openssl-random")
(version "0.11")
(version "0.13")
(source
(origin
(method url-fetch)
@ -708,9 +730,12 @@ arithmetic in Perl.")
".tar.gz"))
(sha256
(base32
"0yjcabkibrkafywvdkmd1xpi6br48skyk3l15ni176wvlg38335v"))))
"0vmvrb3shrzjzri3qn524dzdasbq8zhhbpc1vmq8sx68n4jhizb0"))))
(build-system perl-build-system)
(inputs `(("openssl" ,openssl)))
(native-inputs
`(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
(inputs
`(("openssl" ,openssl)))
(arguments perl-crypt-arguments)
(home-page
"http://search.cpan.org/dist/Crypt-OpenSSL-Random")

View File

@ -34,7 +34,7 @@
(define-public tmux
(package
(name "tmux")
(version "2.6")
(version "2.7")
(source (origin
(method url-fetch)
(uri (string-append
@ -42,7 +42,7 @@
version "/tmux-" version ".tar.gz"))
(sha256
(base32
"1s6pgk63ar1swpvhs8r5fk26vav3ybsf2ll7d705hysdm5qd2z5i"))))
"0lnlhnafvi5700afr69g6gr62pblnd440jj0hxdbrxhk0c87vvcx"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,14 +29,14 @@
(define-public miniupnpc
(package
(name "miniupnpc")
(version "2.0.20180406")
(version "2.0.20180410")
(source
(origin
(method url-fetch)
(uri (string-append "https://miniupnp.tuxfamily.org/files/"
name "-" version ".tar.gz"))
(sha256
(base32 "15i9lyj72wr15b3kpcqsf97mr2hajkpwvf0lz9ps9r568yyjcwlc"))))
(base32 "08vs9012bahdwid4nsf3mi2kawcq1hvz7lzpdmiynxcbpip6sk0f"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))

View File

@ -90,6 +90,7 @@
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages)
@ -1073,7 +1074,7 @@ following features:
(define-public subversion
(package
(name "subversion")
(version "1.8.19")
(version "1.10.0")
(source (origin
(method url-fetch)
(uri
@ -1084,7 +1085,7 @@ following features:
"subversion-" version ".tar.bz2")))
(sha256
(base32
"1gp6426gkdza6ni2whgifjcmjb4nq34ljy07yxkrhlarvfq6ks2n"))))
"115mlvmf663w16mc3xyypnaizq401vbypc56hl2ylzc3pcx3zwic"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -1100,6 +1101,11 @@ following features:
(substitute* "libtool"
(("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))
#t)))
(add-before 'build 'patch-test-sh
(lambda _
(substitute* "subversion/tests/libsvn_repos/repos-test.c"
(("#!/bin/sh") (string-append "#!" (which "sh"))))
#t))
(add-after 'install 'install-perl-bindings
(lambda* (#:key outputs #:allow-other-keys)
;; Follow the instructions from 'subversion/bindings/swig/INSTALL'.
@ -1126,10 +1132,12 @@ following features:
(inputs
`(("apr" ,apr)
("apr-util" ,apr-util)
("lz4" ,lz4)
("serf" ,serf)
("perl" ,perl)
("python" ,python-2) ; incompatible with Python 3 (print syntax)
("python" ,python-wrapper)
("sqlite" ,sqlite)
("utf8proc" ,utf8proc)
("zlib" ,zlib)))
(home-page "https://subversion.apache.org/")
(synopsis "Revision control system")

View File

@ -1162,7 +1162,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
(version "2018.03.14")
(version "2018.04.16")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@ -1170,7 +1170,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
"0j8j797gqc29fd5ra3cjvwkp8dgvigdydsj0zzjs05zccfqrj9lh"))))
"046zg8pww2xg1yibh7c1a8jcg8f1znr4hsz1l1da03djcp6na99d"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@ -1280,7 +1280,7 @@ other site that youtube-dl supports.")
(define-public you-get
(package
(name "you-get")
(version "0.4.1040")
(version "0.4.1060")
(source (origin
(method url-fetch)
(uri (string-append
@ -1289,7 +1289,7 @@ other site that youtube-dl supports.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0257p9bn426rv0cjk2j5hsx6cg7dz5gpjwlqq0sy1axa47phis46"))))
"1pq7c2ay42aan7ykpmddzh6ylq0qsq8a27pk68m5imaxi6abbwsz"))))
(build-system python-build-system)
(inputs
`(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos

View File

@ -93,7 +93,8 @@
(sha256
(base32
"11l6cs6mib16rgdrnqrhkqs033fjik316gkgfz3asbmxz38lalca"))
(patches (search-patches "qemu-glibc-2.27.patch"))))
(patches (search-patches "qemu-glibc-2.27.patch"
"qemu-CVE-2018-7550.patch"))))
(build-system gnu-build-system)
(arguments
'(;; Running tests in parallel can occasionally lead to failures, like:

View File

@ -130,7 +130,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
(define-public lynx
(package
(name "lynx")
(version "2.8.9dev.16")
(version "2.8.9dev.17")
(source (origin
(method url-fetch)
(uri (string-append
@ -138,7 +138,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
"/lynx" version ".tar.bz2"))
(sha256
(base32
"1j0vx871ghkm7fgrafnvd2ml3ywcl8d3gyhq02fhfb851c88lc84"))))
"1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("perl" ,perl)))

View File

@ -186,14 +186,14 @@ Interface} specification.")
(name "nginx")
;; Consider updating the nginx-documentation package if the nginx package is
;; updated.
(version "1.13.11")
(version "1.14.0")
(source (origin
(method url-fetch)
(uri (string-append "https://nginx.org/download/nginx-"
version ".tar.gz"))
(sha256
(base32
"01bgld6pv9sms9bsmx863yqw2hnivxhn91xs6imqklj48sbrqy9m"))))
"1d9c0avfpbwvzyg53b59ks8shpnrxnbnshcd7ziizflsyv5vw5ax"))))
(build-system gnu-build-system)
(inputs `(("openssl" ,openssl)
("pcre" ,pcre)

View File

@ -55,14 +55,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
(version "2.20.0")
(version "2.20.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
"0g0an3pc2yz13gzpaysfgch2yp510gw1qcpk0xr8m6mx43vl1xjp"))))
"0nc9dj05dbk31ciip08b3rdsfja7ckc5mgagrj030fafza2k5r23"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests

View File

@ -221,7 +221,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
(version "3.5")
(version "3.6")
(source
(origin
(method url-fetch)
@ -230,7 +230,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"1d95gzzfx87vvj85mrzv2lgg6w0m917dccja02g6vids28kf9g30"))))
"1q5mgq7lk3sh82im65g51yk110ci9afl5wgqs2q6i8qd2nj5pv7d"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@ -277,7 +277,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
"0hr1syfhnpvcm84gmms1i26k68hakcgw4m6dvckmbbvw7ca0c8pl"))))
"0p4h0ynb5yf8rx5badpxg7b6vsrqdqafwszn5qm0shv0kb3jsl3q"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+)
("libva" ,libva)

View File

@ -343,7 +343,7 @@ prompt.")
(define-public i3lock-color
(package
(name "i3lock-color")
(version "2.10.1c")
(version "2.11-c")
(source
(origin
(method url-fetch)
@ -352,22 +352,23 @@ prompt.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"119xvdm4r6irqk0mar80hx6s8ydw26y35h7712rd7nbg7pb7i053"))))
"0zh7il2y6dmzym3w6r9xii5dma8pjjjlq4dm5iby7m3gvplj4q9p"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ;no tests included
(inputs
`(("xcb-util-image" ,xcb-util-image)
("xcb-util" ,xcb-util)
("libxcb" ,libxcb)
("linux-pam" ,linux-pam)
("libxkbcommon" ,libxkbcommon)
`(("cairo" ,cairo)
("libev" ,libev)
("cairo" ,cairo)))
("libjpeg" ,libjpeg-turbo)
("libxcb" ,libxcb)
("libxkbcommon" ,libxkbcommon)
("linux-pam" ,linux-pam)
("xcb-util" ,xcb-util)
("xcb-util-image" ,xcb-util-image)))
(native-inputs
`(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)))
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/PandorasFox/i3lock-color")
(synopsis "Screen locker with color configuration support")
(description
@ -499,15 +500,18 @@ tiled on several screens.")
(define-public xmobar
(package
(name "xmobar")
(version "0.25")
(version "0.26")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/xmobar/"
name "-" version ".tar.gz"))
(sha256
(base32
"0382r4vzqkz76jlp2069rdbwf4gh1a22r9w4rkphcn5qflw0dlb6"))))
"19g40vqj3cs94i27f66194k7d5cazrv1lx54bz9kc0qy2npxjzgz"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
("hspec-discover" ,hspec-discover)))
(inputs
`(("ghc-hinotify" ,ghc-hinotify)
("ghc-http" ,ghc-http)

View File

@ -983,7 +983,7 @@ color temperature should be set to match the lamps in your room.")
(define-public xscreensaver
(package
(name "xscreensaver")
(version "5.38")
(version "5.39")
(source
(origin
(method url-fetch)
@ -992,7 +992,7 @@ color temperature should be set to match the lamps in your room.")
version ".tar.gz"))
(sha256
(base32
"1f58h5rgjbxr4hh40m6zkpkzbzg68l7nqzjwal0b17yysafbmsf6"))))
"09i47h4hdgwxyqgrsnshl4l5dv5mrsp37h705cc22lwby601ikj8"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,7 +32,7 @@
(define-public xfig
(package
(name "xfig")
(version "3.2.6a")
(version "3.2.7")
(source
(origin
(method url-fetch)
@ -40,7 +40,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
"0z1636w27hvgjpq98z40k8h535b4x2xr2whkvr7bibaa89fynym8"))))
"0anlrr68knr401j7z76k6hx33w16l02dzb7szdkrc4rb2gj1rs2z"))))
(build-system gnu-build-system)
(native-inputs
;; For tests.

View File

@ -824,7 +824,7 @@ the form of functions.")
(define-public pugixml
(package
(name "pugixml")
(version "1.8.1")
(version "1.9")
(source
(origin
(method url-fetch)
@ -832,13 +832,13 @@ the form of functions.")
version "/pugixml-" version ".tar.gz"))
(sha256
(base32
"0fcgggry5x5bn0zhb09ij9hb0p45nb0sv0d9fw3cm1cf62hp9n80"))))
"19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
"-DCMAKE_C_FLAGS=-shared -fPIC")
#:tests? #f)) ; no tests
(home-page "http://pugixml.org")
(home-page "https://pugixml.org")
(synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
(description
"pugixml is a C++ XML processing library, which consists of a DOM-like

View File

@ -5726,7 +5726,7 @@ to answer a question. Xmessage can also exit after a specified time.")
(define-public xterm
(package
(name "xterm")
(version "331")
(version "332")
(source (origin
(method url-fetch)
(uri (list
@ -5736,7 +5736,7 @@ to answer a question. Xmessage can also exit after a specified time.")
name "-" version ".tgz")))
(sha256
(base32
"047gk58hvj64974sg259ss5gixj7pac6halmjfz4cc6r1yimds4s"))))
"0zdjiik4ravc3zld5c9i2ndrvazjmwiwbgl2c21348762wki2jsx"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"

View File

@ -478,11 +478,12 @@ in a loop. See <http://bugs.gnu.org/26931>.")
(define %mcron-os
;; System with an mcron service, with one mcron job for "root" and one mcron
;; job for an unprivileged user.
(let ((job1 #~(job next-second-from
(let ((job1 #~(job '(next-second '(0 5 10 15 20 25 30 35 40 45 50 55))
(lambda ()
(call-with-output-file "witness"
(lambda (port)
(display (list (getuid) (getgid)) port))))))
(unless (file-exists? "witness")
(call-with-output-file "witness"
(lambda (port)
(display (list (getuid) (getgid)) port)))))))
(job2 #~(job next-second-from
(lambda ()
(call-with-output-file "witness"

View File

@ -84,8 +84,7 @@
#:key source
(tests? #f)
(parallel-tests? #t)
(test-target "test")
(configure-flags ''())
(test-command ''("make" "check"))
(phases '(@ (guix build emacs-build-system)
%standard-phases))
(outputs '("out"))
@ -110,9 +109,8 @@
source)
(source
source))
#:configure-flags ,configure-flags
#:system ,system
#:test-target ,test-target
#:test-command ,test-command
#:tests? ,tests?
#:phases ,phases
#:outputs %outputs

View File

@ -74,12 +74,37 @@ archive, a directory, or an Emacs Lisp file."
#t)
(gnu:unpack #:source source)))
(define* (set-emacs-load-path #:key inputs #:allow-other-keys)
(define* (set-emacs-load-path #:key source inputs #:allow-other-keys)
(define (inputs->directories inputs)
"Extract the directory part from INPUTS."
(match inputs
(((names . directories) ...) directories)))
(define (input-directory->el-directory input-directory)
"Return the correct Emacs Lisp directory in INPUT-DIRECTORY or #f, if there
is no Emacs Lisp directory."
(let ((legacy-elisp-directory (string-append input-directory %legacy-install-suffix))
(guix-elisp-directory
(string-append
input-directory %install-suffix "/"
(store-directory->elpa-name-version input-directory))))
(cond
((file-exists? guix-elisp-directory) guix-elisp-directory)
((file-exists? legacy-elisp-directory) legacy-elisp-directory)
(else #f))))
(define (input-directories->el-directories input-directories)
"Return the list of Emacs Lisp directories in INPUT-DIRECTORIES."
(filter-map input-directory->el-directory input-directories))
"Set the EMACSLOADPATH environment variable so that dependencies are found."
(let* ((input-elisp-dirs (emacs-inputs-el-directories
(emacs-inputs-directories inputs)))
(emacs-load-path-value (string-join
input-elisp-dirs ":" 'suffix)))
(let* ((source-directory (getcwd))
(input-elisp-directories (input-directories->el-directories
(inputs->directories inputs)))
(emacs-load-path-value
(string-join
(append input-elisp-directories (list source-directory))
":" 'suffix)))
(setenv "EMACSLOADPATH" emacs-load-path-value)
(format #t "environment variable `EMACSLOADPATH' set to ~a\n"
emacs-load-path-value)))
@ -133,6 +158,24 @@ store in '.el' files."
(substitute-program-names))))
#t))
(define* (check #:key tests? (test-command '("make" "check"))
(parallel-tests? #t) #:allow-other-keys)
"Run the tests by invoking TEST-COMMAND.
When TEST-COMMAND uses make and PARALLEL-TESTS is #t, the tests are run in
parallel. PARALLEL-TESTS? is ignored when using a non-make TEST-COMMAND."
(match-let (((test-program . args) test-command))
(let ((using-make? (string=? test-program "make")))
(if tests?
(apply invoke test-program
`(,@args
,@(if (and using-make? parallel-tests?)
`("-j" ,(number->string (parallel-job-count)))
'())))
(begin
(format #t "test suite not run~%")
#t)))))
(define* (install #:key outputs
(include %default-include)
(exclude %default-exclude)
@ -203,47 +246,12 @@ store in '.el' files."
(elpa-name (package-name->name+version elpa-name-ver))
(el-dir (string-append out %install-suffix "/" elpa-name-ver)))
(parameterize ((%emacs emacs))
(emacs-generate-autoloads elpa-name el-dir))
#t))
(emacs-generate-autoloads elpa-name el-dir))))
(define (emacs-package? name)
"Check if NAME correspond to the name of an Emacs package."
(string-prefix? "emacs-" name))
(define (emacs-inputs inputs)
"Retrieve the list of Emacs packages from INPUTS."
(filter (match-lambda
((label . directory)
(emacs-package? ((compose package-name->name+version
strip-store-file-name)
directory)))
(_ #f))
inputs))
(define (emacs-inputs-directories inputs)
"Extract the list of Emacs package directories from INPUTS."
(let ((inputs (emacs-inputs inputs)))
(match inputs
(((names . directories) ...) directories))))
(define (emacs-input->el-directory emacs-input)
"Return the correct Elisp directory location of EMACS-INPUT or #f if none."
(let ((legacy-elisp-dir (string-append emacs-input %legacy-install-suffix))
(guix-elisp-dir (string-append
emacs-input %install-suffix "/"
(store-directory->elpa-name-version emacs-input))))
(cond
((file-exists? guix-elisp-dir) guix-elisp-dir)
((file-exists? legacy-elisp-dir) legacy-elisp-dir)
(else (format #t "warning: could not locate elisp directory under `~a'\n"
emacs-input)
#f))))
(define (emacs-inputs-el-directories dirs)
"Build the list of Emacs Lisp directories from the Emacs package directory
DIRS."
(filter-map emacs-input->el-directory dirs))
(define (package-name-version->elpa-name-version name-ver)
"Convert the Guix package NAME-VER to the corresponding ELPA name-version
format. Essentially drop the prefix used in Guix."
@ -260,13 +268,14 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(define %standard-phases
(modify-phases gnu:%standard-phases
(add-after 'set-paths 'set-emacs-load-path set-emacs-load-path)
(replace 'unpack unpack)
(add-after 'unpack 'set-emacs-load-path set-emacs-load-path)
(delete 'bootstrap)
(delete 'configure)
;; Move the build phase after install: the .el files are byte compiled
;; directly in the store.
(delete 'build)
(replace 'check check)
(replace 'install install)
(add-after 'install 'build build)
(add-after 'install 'make-autoloads make-autoloads)

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;

View File

@ -54,7 +54,9 @@ static FdSink to(STDOUT_FILENO);
bool canSendStderr;
/* This variable is used to keep track of whether a connection
comes from a host other than the host running guix-daemon. */
static bool isRemoteConnection;
/* This function is called anytime we want to write something to
stderr. If we're in a state where the protocol allows it (i.e.,
@ -529,6 +531,11 @@ static void performOp(bool trusted, unsigned int clientVersion,
}
case wopCollectGarbage: {
if (isRemoteConnection) {
throw Error("Garbage collection is disabled for remote hosts.");
break;
}
GCOptions options;
options.action = (GCOptions::GCAction) readInt(from);
options.pathsToDelete = readStorePaths<PathSet>(from);
@ -934,6 +941,7 @@ static void acceptConnection(int fdSocket)
connection. Setting these to -1 means: do not change. */
settings.clientUid = clientUid;
settings.clientGid = clientGid;
isRemoteConnection = (remoteAddr.ss_family != AF_UNIX);
/* Handle the connection. */
from.fd = remote;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,962 @@
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Ludovic Courtès
# This file is distributed under the same license as the guix package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: guix 0.14.0.4279-63c2a\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
"POT-Creation-Date: 2018-04-19 21:17+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: chapter
#: doc/contributing.texi:1 doc/contributing.texi:2
#, no-wrap
msgid "Contributing"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:9
msgid ""
"This project is a cooperative effort, and we need your help to make it grow! "
"Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} "
"on the Freenode IRC network. We welcome ideas, bug reports, patches, and "
"anything that may be helpful to the project. We particularly welcome help "
"on packaging (@pxref{Packaging Guidelines})."
msgstr ""
#. type: cindex
#: doc/contributing.texi:10
#, no-wrap
msgid "code of conduct, of contributors"
msgstr ""
#. type: cindex
#: doc/contributing.texi:11
#, no-wrap
msgid "contributor covenant"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:17
msgid ""
"We want to provide a warm, friendly, and harassment-free environment, so "
"that anyone can contribute to the best of their abilities. To this end our "
"project uses a ``Contributor Covenant'', which was adapted from "
"@url{http://contributor-covenant.org/}. You can find a local version in the "
"@file{CODE-OF-CONDUCT} file in the source tree."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:21
msgid ""
"Contributors are not required to use their legal name in patches and on-line "
"communication; they can use any name or pseudonym of their choice."
msgstr ""
#. type: section
#: doc/contributing.texi:28 doc/contributing.texi:30 doc/contributing.texi:31
#, no-wrap
msgid "Building from Git"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:28
msgid "The latest and greatest."
msgstr ""
#. type: section
#: doc/contributing.texi:28 doc/contributing.texi:102 doc/contributing.texi:103
#, no-wrap
msgid "Running Guix Before It Is Installed"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:28
msgid "Hacker tricks."
msgstr ""
#. type: section
#: doc/contributing.texi:28 doc/contributing.texi:169 doc/contributing.texi:170
#, no-wrap
msgid "The Perfect Setup"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:28
msgid "The right tools."
msgstr ""
#. type: section
#: doc/contributing.texi:28 doc/contributing.texi:228 doc/contributing.texi:229
#, no-wrap
msgid "Coding Style"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:28
msgid "Hygiene of the contributor."
msgstr ""
#. type: section
#: doc/contributing.texi:28 doc/contributing.texi:319 doc/contributing.texi:320
#, no-wrap
msgid "Submitting Patches"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:28
msgid "Share your work."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:35
msgid ""
"If you want to hack Guix itself, it is recommended to use the latest version "
"from the Git repository:"
msgstr ""
#. type: example
#: doc/contributing.texi:38
#, no-wrap
msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:43
msgid ""
"When building Guix from a checkout, the following packages are required in "
"addition to those mentioned in the installation instructions "
"(@pxref{Requirements})."
msgstr ""
#. type: item
#: doc/contributing.texi:45
#, no-wrap
msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
msgstr ""
#. type: item
#: doc/contributing.texi:46
#, no-wrap
msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
msgstr ""
#. type: item
#: doc/contributing.texi:47
#, no-wrap
msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
msgstr ""
#. type: item
#: doc/contributing.texi:48
#, no-wrap
msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
msgstr ""
#. type: item
#: doc/contributing.texi:49
#, no-wrap
msgid "@url{http://www.graphviz.org/, Graphviz};"
msgstr ""
#. type: item
#: doc/contributing.texi:50
#, no-wrap
msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:57
msgid ""
"The easiest way to set up a development environment for Guix is, of course, "
"by using Guix! The following command starts a new shell where all the "
"dependencies and appropriate environment variables are set up to hack on "
"Guix:"
msgstr ""
#. type: example
#: doc/contributing.texi:60
#, no-wrap
msgid "guix environment guix\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:64
msgid ""
"@xref{Invoking guix environment}, for more information on that command. "
"Extra dependencies can be added with @option{--ad-hoc}:"
msgstr ""
#. type: example
#: doc/contributing.texi:67
#, no-wrap
msgid "guix environment guix --ad-hoc help2man git strace\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:71
msgid ""
"Run @command{./bootstrap} to generate the build system infrastructure using "
"Autoconf and Automake. If you get an error like this one:"
msgstr ""
#. type: example
#: doc/contributing.texi:74
#, no-wrap
msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:83
msgid ""
"it probably means that Autoconf couldnt find @file{pkg.m4}, which is "
"provided by pkg-config. Make sure that @file{pkg.m4} is available. The "
"same holds for the @file{guile.m4} set of macros provided by Guile. For "
"instance, if you installed Automake in @file{/usr/local}, it wouldnt look "
"for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke "
"the following command:"
msgstr ""
#. type: example
#: doc/contributing.texi:86
#, no-wrap
msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:90
msgid ""
"@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more "
"information."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:95
msgid ""
"Then, run @command{./configure} as usual. Make sure to pass "
"@code{--localstatedir=@var{directory}} where @var{directory} is the "
"@code{localstatedir} value used by your current installation (@pxref{The "
"Store}, for information about this)."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:100
msgid ""
"Finally, you have to invoke @code{make check} to run tests (@pxref{Running "
"the Test Suite}). If anything fails, take a look at installation "
"instructions (@pxref{Installation}) or send a message to the "
"@email{guix-devel@@gnu.org, mailing list}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:109
msgid ""
"In order to keep a sane working environment, you will find it useful to test "
"the changes made in your local source tree checkout without actually "
"installing them. So that you can distinguish between your ``end-user'' hat "
"and your ``motley'' costume."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:117
msgid ""
"To that end, all the command-line tools can be used even if you have not run "
"@code{make install}. To do that, prefix each command with "
"@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top "
"build tree of Guix), as in@footnote{The @option{-E} flag to @command{sudo} "
"guarantees that @code{GUILE_LOAD_PATH} is correctly set such that "
"@command{guix-daemon} and the tools it uses can find the Guile modules they "
"need.}:"
msgstr ""
#. type: example
#: doc/contributing.texi:121
#, no-wrap
msgid ""
"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
"$ ./pre-inst-env guix build hello\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:125
msgid "Similarly, for a Guile session using the Guix modules:"
msgstr ""
#. type: example
#: doc/contributing.texi:128
#, no-wrap
msgid ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk "
"(%current-system))'\n"
"\n"
msgstr ""
#. type: example
#: doc/contributing.texi:130
#, no-wrap
msgid ";;; (\"x86_64-linux\")\n"
msgstr ""
#. type: cindex
#: doc/contributing.texi:133
#, no-wrap
msgid "REPL"
msgstr ""
#. type: cindex
#: doc/contributing.texi:134
#, no-wrap
msgid "read-eval-print loop"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:137
msgid ""
"@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile "
"Reference Manual}):"
msgstr ""
#. type: example
#: doc/contributing.texi:152
#, no-wrap
msgid ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
" (fold-packages\n"
" (lambda (package lst)\n"
" (if (string-prefix? \"python\"\n"
" (package-name package))\n"
" (cons package lst)\n"
" lst))\n"
" '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:156
msgid ""
"The @command{pre-inst-env} script sets up all the environment variables "
"necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:167
msgid ""
"Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the "
"local source tree; it simply updates the @file{~/.config/guix/latest} "
"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.}"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:177
msgid ""
"The Perfect Setup to hack on Guix is basically the perfect setup used for "
"Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference "
"Manual}). First, you need more than an editor, you need "
"@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful "
"@url{http://nongnu.org/geiser/, Geiser}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:185
msgid ""
"Geiser allows for interactive and incremental development from within Emacs: "
"code compilation and evaluation from within buffers, access to on-line "
"documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump "
"to an object definition, a REPL to try out your code, and more "
"(@pxref{Introduction,,, geiser, Geiser User Manual}). For convenient Guix "
"development, make sure to augment Guiles load path so that it finds source "
"files from your checkout:"
msgstr ""
#. type: lisp
#: doc/contributing.texi:190
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'geiser-guile\n"
" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:198
msgid ""
"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."
msgstr ""
#. type: cindex
#: doc/contributing.texi:199
#, no-wrap
msgid "code snippets"
msgstr ""
#. type: cindex
#: doc/contributing.texi:200
#, no-wrap
msgid "templates"
msgstr ""
#. type: cindex
#: doc/contributing.texi:201
#, no-wrap
msgid "reducing boilerplate"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:208
msgid ""
"We also provide templates for common git commit messages and package "
"definitions in the @file{etc/snippets} directory. These templates can be "
"used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand "
"short trigger strings to interactive text snippets. You may want to add the "
"snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
msgstr ""
#. type: lisp
#: doc/contributing.texi:213
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'yasnippet\n"
" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:220
msgid ""
"The commit message snippets depend on @url{https://magit.vc/, Magit} to "
"display staged files. When editing a commit message type @code{add} "
"followed by @kbd{TAB} to insert a commit message template for adding a "
"package; type @code{update} followed by @kbd{TAB} to insert a template for "
"updating a package."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:226
msgid ""
"The main snippet for @code{scheme-mode} is triggered by typing "
"@code{package...} followed by @kbd{TAB}. This snippet also inserts the "
"trigger string @code{origin...}, which can be expanded further. The "
"@code{origin} snippet in turn may insert other trigger strings ending on "
"@code{...}, which also can be expanded further."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:234
msgid ""
"In general our code follows the GNU Coding Standards (@pxref{Top,,, "
"standards, GNU Coding Standards}). However, they do not say much about "
"Scheme, so here are some additional rules."
msgstr ""
#. type: subsection
#: doc/contributing.texi:240 doc/contributing.texi:242 doc/contributing.texi:243
#, no-wrap
msgid "Programming Paradigm"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:240
msgid "How to compose your elements."
msgstr ""
#. type: subsection
#: doc/contributing.texi:240 doc/contributing.texi:249 doc/contributing.texi:250
#, no-wrap
msgid "Modules"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:240
msgid "Where to store your code?"
msgstr ""
#. type: subsection
#: doc/contributing.texi:240 doc/contributing.texi:260 doc/contributing.texi:261
#, no-wrap
msgid "Data Types and Pattern Matching"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:240
msgid "Implementing data structures."
msgstr ""
#. type: subsection
#: doc/contributing.texi:240 doc/contributing.texi:274 doc/contributing.texi:275
#, no-wrap
msgid "Formatting Code"
msgstr ""
#. type: menuentry
#: doc/contributing.texi:240
msgid "Writing conventions."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:248
msgid ""
"Scheme code in Guix is written in a purely functional style. One exception "
"is code that involves input/output, and procedures that implement low-level "
"concepts, such as the @code{memoize} procedure."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:256
msgid ""
"Guile modules that are meant to be used on the builder side must live in the "
"@code{(guix build @dots{})} name space. They must not refer to other Guix "
"or GNU modules. However, it is OK for a ``host-side'' module to use a "
"build-side module."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:259
msgid ""
"Modules that deal with the broader GNU system should be in the @code{(gnu "
"@dots{})} name space rather than @code{(guix @dots{})}."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:268
msgid ""
"The tendency in classical Lisp is to use lists to represent everything, and "
"then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, "
"and co. There are several problems with that style, notably the fact that "
"it is hard to read, error-prone, and a hindrance to proper type error "
"reports."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:273
msgid ""
"Guix code should define appropriate data types (for instance, using "
"@code{define-record-type*}) rather than abuse lists. In addition, it should "
"use pattern matching, via Guiles @code{(ice-9 match)} module, especially "
"when matching lists."
msgstr ""
#. type: cindex
#: doc/contributing.texi:277
#, no-wrap
msgid "formatting code"
msgstr ""
#. type: cindex
#: doc/contributing.texi:278
#, no-wrap
msgid "coding style"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:285
msgid ""
"When writing Scheme code, we follow common wisdom among Scheme programmers. "
"In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, "
"Riastradh's Lisp Style Rules}. This document happens to describe the "
"conventions mostly used in Guiles code too. It is very thoughtful and well "
"written, so please do read it."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:292
msgid ""
"Some special forms introduced in Guix, such as the @code{substitute*} macro, "
"have special indentation rules. These are defined in the "
"@file{.dir-locals.el} file, which Emacs automatically uses. Also note that "
"Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights "
"Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix "
"Reference Manual})."
msgstr ""
#. type: cindex
#: doc/contributing.texi:293
#, no-wrap
msgid "indentation, of code"
msgstr ""
#. type: cindex
#: doc/contributing.texi:294
#, no-wrap
msgid "formatting, of code"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:297
msgid ""
"If you do not use Emacs, please make sure to let your editor knows these "
"rules. To automatically indent a package definition, you can also run:"
msgstr ""
#. type: example
#: doc/contributing.texi:300
#, no-wrap
msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:306
msgid ""
"This automatically indents the definition of @var{package} in "
"@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode. To "
"indent a whole file, omit the second argument:"
msgstr ""
#. type: example
#: doc/contributing.texi:309
#, no-wrap
msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:314
msgid ""
"We require all top-level procedures to carry a docstring. This requirement "
"can be relaxed for simple private procedures in the @code{(guix build "
"@dots{})} name space, though."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:317
msgid ""
"Procedures should not have more than four positional parameters. Use "
"keyword parameters for procedures that take more than four parameters."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:326
msgid ""
"Development is done using the Git distributed version control system. Thus, "
"access to the repository is not strictly necessary. We welcome "
"contributions in the form of patches as produced by @code{git format-patch} "
"sent to the @email{guix-patches@@gnu.org} mailing list."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:333
msgid ""
"This mailing list is backed by a Debbugs instance accessible at "
"@uref{https://bugs.gnu.org/guix-patches}, which allows us to keep track of "
"submissions. Each message sent to that mailing list gets a new tracking "
"number assigned; people can then follow up on the submission by sending "
"email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking "
"number (@pxref{Sending a Patch Series})."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:337
msgid ""
"Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, "
"standards, GNU Coding Standards}); you can check the commit history for "
"examples."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:340
msgid ""
"Before submitting a patch that adds or modifies a package definition, please "
"run through this check list:"
msgstr ""
#. type: enumerate
#: doc/contributing.texi:347
msgid ""
"If the authors of the packaged software provide a cryptographic signature "
"for the release tarball, make an effort to verify the authenticity of the "
"archive. For a detached GPG signature file this would be done with the "
"@code{gpg --verify} command."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:351
msgid ""
"Take some time to provide an adequate synopsis and description for the "
"package. @xref{Synopses and Descriptions}, for some guidelines."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:356
msgid ""
"Run @code{guix lint @var{package}}, where @var{package} is the name of the "
"new or modified package, and fix any errors it reports (@pxref{Invoking guix "
"lint})."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:360
msgid ""
"Make sure the package builds on your platform, using @code{guix build "
"@var{package}}."
msgstr ""
#. type: cindex
#: doc/contributing.texi:362
#, no-wrap
msgid "bundling"
msgstr ""
#. type: enumerate
#: doc/contributing.texi:365
msgid ""
"Make sure the package does not use bundled copies of software already "
"available as separate packages."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:374
msgid ""
"Sometimes, packages include copies of the source code of their dependencies "
"as a convenience for users. However, as a distribution, we want to make "
"sure that such packages end up using the copy we already have in the "
"distribution, if there is one. This improves resource usage (the dependency "
"is built and stored only once), and allows the distribution to make "
"transverse changes such as applying security updates for a given software "
"package in a single place and have them affect the whole system---something "
"that bundled copies prevent."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:381
msgid ""
"Take a look at the profile reported by @command{guix size} (@pxref{Invoking "
"guix size}). This will allow you to notice references to other packages "
"unwillingly retained. It may also help determine whether to split the "
"package (@pxref{Packages with Multiple Outputs}), and which optional "
"dependencies should be used."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:386
msgid ""
"For important changes, check that dependent package (if applicable) are not "
"affected by the change; @code{guix refresh --list-dependent @var{package}} "
"will help you do that (@pxref{Invoking guix refresh})."
msgstr ""
#. type: cindex
#: doc/contributing.texi:388
#, no-wrap
msgid "branching strategy"
msgstr ""
#. type: cindex
#: doc/contributing.texi:389
#, no-wrap
msgid "rebuild scheduling strategy"
msgstr ""
#. type: enumerate
#: doc/contributing.texi:392
msgid ""
"Depending on the number of dependent packages and thus the amount of "
"rebuilding induced, commits go to different branches, along these lines:"
msgstr ""
#. type: item
#: doc/contributing.texi:394
#, no-wrap
msgid "300 dependent packages or less"
msgstr ""
#. type: table
#: doc/contributing.texi:396
msgid "@code{master} branch (non-disruptive changes)."
msgstr ""
#. type: item
#: doc/contributing.texi:397
#, no-wrap
msgid "between 300 and 1,200 dependent packages"
msgstr ""
#. type: table
#: doc/contributing.texi:402
msgid ""
"@code{staging} branch (non-disruptive changes). This branch is intended to "
"be merged in @code{master} every 3 weeks or so. Topical changes (e.g., an "
"update of the GNOME stack) can instead go to a specific branch (say, "
"@code{gnome-updates})."
msgstr ""
#. type: item
#: doc/contributing.texi:403
#, no-wrap
msgid "more than 1,200 dependent packages"
msgstr ""
#. type: table
#: doc/contributing.texi:407
msgid ""
"@code{core-updates} branch (may include major and potentially disruptive "
"changes). This branch is intended to be merged in @code{master} every 2.5 "
"months or so."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:414
msgid ""
"All these branches are tracked by our build farm and merged into "
"@code{master} once everything has been successfully built. This allows us "
"to fix issues before they hit users, and to reduce the window during which "
"pre-built binaries are not available."
msgstr ""
#. type: cindex
#: doc/contributing.texi:416
#, no-wrap
msgid "determinism, of build processes"
msgstr ""
#. type: cindex
#: doc/contributing.texi:417
#, no-wrap
msgid "reproducible builds, checking"
msgstr ""
#. type: enumerate
#: doc/contributing.texi:421
msgid ""
"Check whether the package's build process is deterministic. This typically "
"means checking whether an independent build of the package yields the exact "
"same result that you obtained, bit for bit."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:424
msgid ""
"A simple way to do that is by building the same package several times in a "
"row on your machine (@pxref{Invoking guix build}):"
msgstr ""
#. type: example
#: doc/contributing.texi:427
#, no-wrap
msgid "guix build --rounds=2 my-package\n"
msgstr ""
#. type: enumerate
#: doc/contributing.texi:431
msgid ""
"This is enough to catch a class of common non-determinism issues, such as "
"timestamps or randomly-generated output in the build result."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:441
msgid ""
"Another option is to use @command{guix challenge} (@pxref{Invoking guix "
"challenge}). You may run it once the package has been committed and built "
"by @code{hydra.gnu.org} to check whether it obtains the same result as you "
"did. Better yet: Find another machine that can build it and run "
"@command{guix publish}. Since the remote build machine is likely different "
"from yours, this can catch non-determinism issues related to the "
"hardware---e.g., use of different instruction set extensions---or to the "
"operating system kernel---e.g., reliance on @code{uname} or @file{/proc} "
"files."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:447
msgid ""
"When writing documentation, please use gender-neutral wording when referring "
"to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, "
"singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:451
msgid ""
"Verify that your patch contains only one set of related changes. Bundling "
"unrelated changes together makes reviewing harder and slower."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:454
msgid ""
"Examples of unrelated changes include the addition of several packages, or a "
"package update along with fixes to that package."
msgstr ""
#. type: enumerate
#: doc/contributing.texi:459
msgid ""
"Please follow our code formatting rules, possibly running the "
"@command{etc/indent-code.el} script to do that automatically for you "
"(@pxref{Formatting Code})."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:469
msgid ""
"When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a "
"subject. You may use your email client or the @command{git send-email} "
"command (@pxref{Sending a Patch Series}). We prefer to get patches in plain "
"text messages, either inline or as MIME attachments. You are advised to pay "
"attention if your email client changes anything like line breaks or "
"indentation which could potentially break the patches."
msgstr ""
#. type: Plain text
#: doc/contributing.texi:472
msgid ""
"When a bug is resolved, please close the thread by sending an email to "
"@email{@var{NNN}-done@@debbugs.gnu.org}."
msgstr ""
#. type: anchor{#1}
#: doc/contributing.texi:473 doc/contributing.texi:475
#, no-wrap
msgid "Sending a Patch Series"
msgstr ""
#. type: cindex
#: doc/contributing.texi:475
#, no-wrap
msgid "patch series"
msgstr ""
#. type: code{#1}
#: doc/contributing.texi:476
#, no-wrap
msgid "git send-email"
msgstr ""
#. type: code{#1}
#: doc/contributing.texi:477
#, no-wrap
msgid "git-send-email"
msgstr ""
#. type: Plain text
#: doc/contributing.texi:485
msgid ""
"When sending a patch series (e.g., using @code{git send-email}), please "
"first send one message to @email{guix-patches@@gnu.org}, and then send "
"subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they "
"are kept together. See @uref{https://debbugs.gnu.org/Advanced.html, the "
"Debbugs documentation} for more information."
msgstr ""

42145
po/doc/guix.fr.po 100644

File diff suppressed because it is too large Load Diff

46344
po/doc/guix.pot 100644

File diff suppressed because it is too large Load Diff

77
po/doc/local.mk 100644
View File

@ -0,0 +1,77 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
#
# 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/>.
EXTRA_DIST = \
%D%/contributing.fr.po \
%D%/guix.fr.po
POT_OPTIONS = --package-name "guix" --package-version "$(VERSION)" \
--copyright-holder "Ludovic Courtès" \
--msgid-bugs-address "ludo@gnu.org"
$(srcdir)/po/doc/guix.%.po: $(srcdir)/po/doc/guix.pot
@lang=`echo $$(basename "$@") | sed -e 's|^guix.||' -e 's|.po$$||'` ;\
if test -f "$@"; then \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $@ $<"; \
cd $(srcdir) \
&& { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $@ $<;; \
*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $@ $<;; \
esac; \
}; \
touch "$@"; \
else \
echo "File $@ does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
exit 1; \
fi
$(srcdir)/po/doc/contributing.%.po: $(srcdir)/po/doc/contributing.pot
@lang=`echo $$(basename "$@") | sed -e 's|^contributing.||' -e 's|.po$$||'` ;\
if test -f "$@"; then \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $@ $<"; \
cd $(srcdir) \
&& { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $@ $<;; \
*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $@ $<;; \
esac; \
}; \
touch "$@"; \
else \
echo "File $@ does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
exit 1; \
fi
$(srcdir)/po/doc/contributing.pot-update: doc/contributing.texi
$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" \
-p "$$(echo $@ | sed 's|-update||')" $(POT_OPTIONS)
@touch "$$(echo $@ | sed 's|-update||')"
$(srcdir)/po/doc/guix.pot-update: doc/guix.texi
$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" \
-p "$$(echo $@ | sed 's|-update||')" $(POT_OPTIONS)
@touch "$$(echo $@ | sed 's|-update||')"
doc-pot-update:
$(MAKE) $(srcdir)/po/doc/guix.pot-update
$(MAKE) $(srcdir)/po/doc/contributing.pot-update

View File

@ -1,14 +1,18 @@
# French translation of guix.
# Copyright (C) 2016 Free Software Foundation, Inc.
# French translation of guix.
# Copyright (C) 2013-2018 the authors of Guix (msgids)
# This file is distributed under the same license as the guix package.
# Rémy Chevalier <remychevalier@laposte.net>, 2013, 2014.
# Frédéric Marchal <fmarchal@perso.be>, 2017
# Julien Lepiller <julien@lepiller.eu>, 2017
# Frédéric Marchal <fmarchal@perso.be>, 2017.
# Julien Lepiller <julien@lepiller.eu>, 2017, 2018.
#
# Note de Frédéric Marchal: Le nom « shepherd » est le nom d'un démon (voir
# https://www.gnu.org/software/shepherd/). Je ne l'ai pas traduit dans les
# messages. Je l'ai traité comme le nom d'un logiciel.
#
# Note de Julien Lepiller : Le nom « shepherd » est bien le nom d'un logiciel,
# mais il est traité un peu différemment : on dit « le shepherd » (« the
# shepherd » en anglais) avec l'article.
#
msgid ""
msgstr ""
"Project-Id-Version: guix 0.14.0\n"
@ -21,8 +25,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 2.0.3\n"
#: gnu.scm:82
@ -336,7 +340,7 @@ msgid ""
" --verbosity=LEVEL use the given verbosity LEVEL"
msgstr ""
"\n"
" --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
" --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
#: guix/scripts/build.scm:338
msgid ""
@ -1205,7 +1209,7 @@ msgid ""
" --branch=BRANCH download the tip of the specified BRANCH"
msgstr ""
"\n"
" --branch=BRANCHE télécharger le bout de la BRANCHE indiquée"
" --branch=BRANCHE télécharger le bout de la BRANCHE indiquée"
#: guix/scripts/pull.scm:106
msgid ""
@ -1476,7 +1480,7 @@ msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de «
#: guix/scripts/system.scm:253
#, scheme-format
msgid "while talking to shepherd: ~a~%"
msgstr "en parlant à shepherd : ~a~%"
msgstr "en parlant au shepherd : ~a~%"
#: guix/scripts/system.scm:260
#, scheme-format
@ -1501,12 +1505,12 @@ msgstr "quelque chose s'est mal passé : ~s~%"
#: guix/scripts/system.scm:278
#, scheme-format
msgid "shepherd error~%"
msgstr "erreur de shepherd~%"
msgstr "erreur du shepherd~%"
#: guix/scripts/system.scm:295
#, scheme-format
msgid "failed to obtain list of shepherd services~%"
msgstr "erreur en essayant d'obtenir la liste des services de shepherd~%"
msgstr "erreur en essayant d'obtenir la liste des services du shepherd~%"
#: guix/scripts/system.scm:315
#, scheme-format
@ -1534,7 +1538,7 @@ msgstr "le graphe orienté acyclique (DAG) des services"
#: guix/scripts/system.scm:507
msgid "the dependency graph of shepherd services"
msgstr "le graphique des dépendances des services de shepherd"
msgstr "le graphique des dépendances des services du shepherd"
#: guix/scripts/system.scm:531
#, scheme-format
@ -1661,7 +1665,7 @@ msgstr " extension-graph produire le graphique des extensions de service au f
#: guix/scripts/system.scm:842
msgid " shepherd-graph emit the graph of shepherd services in Dot format\n"
msgstr " shepherd-graph produire le graphique des services de shepherd au format Dot\n"
msgstr " shepherd-graph produire le graphique des services du shepherd au format Dot\n"
#: guix/scripts/system.scm:846
msgid ""
@ -2185,7 +2189,8 @@ msgid ""
" --public-key=FILE use FILE as the public key for signatures"
msgstr ""
"\n"
" --public-key=FICHIER utiliser le FICHIER comme clé publique pour les signatures"
" --public-key=FICHIER\n"
" utiliser le FICHIER comme clé publique pour les signatures"
#: guix/scripts/publish.scm:89
msgid ""
@ -2193,7 +2198,8 @@ msgid ""
" --private-key=FILE use FILE as the private key for signatures"
msgstr ""
"\n"
" --private-key=FICHIER utiliser le FICHIER comme clé privée pour les signatures"
" --private-key=FICHIER\n"
" utiliser le FICHIER comme clé privée pour les signatures"
#: guix/scripts/publish.scm:91
msgid ""
@ -2598,7 +2604,8 @@ msgid ""
" -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
msgstr ""
"\n"
" -C, --compression=OUTIL compresser en utilisant l'OUTIL, par ex, « lzip »"
" -C, --compression=OUTIL\n"
" compresser en utilisant l'OUTIL, par ex, « lzip »"
#: guix/scripts/pack.scm:344
msgid ""

File diff suppressed because it is too large Load Diff

View File

@ -194,6 +194,20 @@ do
kill "$daemon_pid"
done
# Make sure garbage collection from a TCP connection does not work.
tcp_socket="127.0.0.1:9999"
guix-daemon --listen="$tcp_socket" &
daemon_pid=$!
GUIX_DAEMON_SOCKET="guix://$tcp_socket"
export GUIX_DAEMON_SOCKET
if guix gc; then false; else true; fi
unset GUIX_DAEMON_SOCKET
kill "$daemon_pid"
# Log compression.
guix-daemon --listen="$socket" --disable-chroot --debug --log-compression=gzip &