Merge branch 'master' into core-updates

This commit is contained in:
Mathieu Lirzin 2016-05-02 17:53:40 +02:00
commit c3052d6bcd
264 changed files with 12859 additions and 17008 deletions

View file

@ -27,7 +27,7 @@ nodist_noinst_SCRIPTS = \
pre-inst-env \
test-env
include gnu-system.am
include gnu/local.mk
MODULES = \
guix/base32.scm \
@ -339,6 +339,7 @@ EXTRA_DIST = \
.dir-locals.el \
build-aux/build-self.scm \
build-aux/compile-all.scm \
build-aux/hydra/evaluate.scm \
build-aux/hydra/gnu-system.scm \
build-aux/hydra/demo-os.scm \
build-aux/hydra/guix.scm \
@ -415,11 +416,11 @@ install-data-hook: set-bootstrap-executable-permissions
SUBDIRS = po/guix po/packages
BUILT_SOURCES =
include doc.am
include doc/local.mk
if BUILD_DAEMON
include daemon.am
include nix/local.mk
endif BUILD_DAEMON
@ -436,7 +437,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
dist_emacsui_DATA = emacs/guix-main.scm
nodist_emacsui_DATA = emacs/guix-helper.scm
include emacs.am
include emacs/local.mk
# The self-contained tarball.
guix-binary.%.tar.xz:
@ -480,15 +481,23 @@ assert-no-store-file-names:
fi
# Make sure hydra.gnu.org has the important binaries.
assert-binaries-available:
assert-binaries-available: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/check-available-binaries.scm"
# Make sure the final inputs don't refer to bootstrap tools.
assert-final-inputs-self-contained:
assert-final-inputs-self-contained: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm"
# Compute the Hydra jobs and write them in the target file.
hydra-jobs.scm: $(GOBJECTS)
$(AM_V_at)$(MKDIR_P) "`dirname "$@"`"
$(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/hydra/evaluate.scm" \
"$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp"
$(AT_V_at)mv "$@.tmp" "$@"
.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go
.PHONY: assert-no-store-file-names assert-binaries-available
.PHONY: assert-final-inputs-self-contained

6
NEWS
View file

@ -10,6 +10,12 @@ Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 0.11.0 (since 0.10.0)
** Package management
*** New Emacs interface for package locations: M-x guix-locations
* Changes in 0.10.0 (since 0.9.0)
** Community

View file

@ -46,8 +46,9 @@
(available (substitutable-paths store total))
(missing (lset-difference string=? total available)))
(if (null? missing)
(format (current-error-port) "~a packages found substitutable~%"
(length total))
(format (current-error-port)
"~a packages found substitutable on~{ ~a~}~%"
(length total) %hydra-supported-systems)
(format (current-error-port)
"~a packages are not substitutable:~%~{ ~a~%~}~%"
(length missing) missing))

View file

@ -0,0 +1,98 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;; This program replicates the behavior of Hydra's 'hydra-eval-guile-job'.
;;; It evaluates the Hydra job defined by the program passed as its first
;;; arguments and outputs an sexp of the jobs on standard output.
(use-modules (guix store)
(srfi srfi-19)
(ice-9 match)
(ice-9 pretty-print)
(ice-9 format))
(define %user-module
;; Hydra user module.
(let ((m (make-module)))
(beautify-user-module! m)
m))
(define (call-with-time thunk kont)
"Call THUNK and pass KONT the elapsed time followed by THUNK's return
values."
(let* ((start (current-time time-monotonic))
(result (call-with-values thunk list))
(end (current-time time-monotonic)))
(apply kont (time-difference end start) result)))
(define (call-with-time-display thunk)
"Call THUNK and write to the current output port its duration."
(call-with-time thunk
(lambda (time . results)
(format #t "~,3f seconds~%"
(+ (time-second time)
(/ (time-nanosecond time) 1e9)))
(apply values results))))
;; Without further ado...
(match (command-line)
((command file)
;; Load FILE, a Scheme file that defines Hydra jobs.
(let ((port (current-output-port)))
(save-module-excursion
(lambda ()
(set-current-module %user-module)
(primitive-load file)))
(with-store store
;; Make sure we don't resort to substitutes.
(set-build-options store
#:use-substitutes? #f
#:substitute-urls '())
;; Grafts can trigger early builds. We do not want that to happen
;; during evaluation, so use a sledgehammer to catch such problems.
(set! build-things
(lambda (store . args)
(format (current-error-port)
"error: trying to build things during evaluation!~%")
(format (current-error-port)
"'build-things' arguments: ~s~%" args)
(exit 1)))
;; Call the entry point of FILE and print the resulting job sexp.
(pretty-print
(match ((module-ref %user-module 'hydra-jobs) store '())
(((names . thunks) ...)
(map (lambda (job thunk)
(format (current-error-port) "evaluating '~a'... " job)
(force-output (current-error-port))
(cons job (call-with-time-display thunk)))
names thunks)))
port))))
((command _ ...)
(format (current-error-port) "Usage: ~a FILE
Evaluate the Hydra jobs defined in FILE.~%"
command)
(exit 1)))
;;; Local Variables:
;;; eval: (put 'call-with-time 'scheme-indent-function 1)
;;; End:

View file

@ -71,19 +71,20 @@
(define* (package->alist store package system
#:optional (package-derivation package-derivation))
"Convert PACKAGE to an alist suitable for Hydra."
`((derivation . ,(derivation-file-name
(package-derivation store package system
#:graft? #f)))
(description . ,(package-synopsis package))
(long-description . ,(package-description package))
(license . ,(package-license package))
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))
(max-silent-time . ,(or (assoc-ref (package-properties package)
'max-silent-time)
3600)) ; 1 hour by default
(timeout . ,(or (assoc-ref (package-properties package) 'timeout)
72000)))) ; 20 hours by default
(parameterize ((%graft? #f))
`((derivation . ,(derivation-file-name
(package-derivation store package system
#:graft? #f)))
(description . ,(package-synopsis package))
(long-description . ,(package-description package))
(license . ,(package-license package))
(home-page . ,(package-home-page package))
(maintainers . ("bug-guix@gnu.org"))
(max-silent-time . ,(or (assoc-ref (package-properties package)
'max-silent-time)
3600)) ;1 hour by default
(timeout . ,(or (assoc-ref (package-properties package) 'timeout)
72000))))) ;20 hours by default
(define (package-job store job-name package system)
"Return a job called JOB-NAME that builds PACKAGE on SYSTEM."
@ -142,7 +143,9 @@ (define (->alist drv)
(define (->job name drv)
(let ((name (symbol-append name (string->symbol ".")
(string->symbol system))))
`(,name . ,(cut ->alist drv))))
`(,name . ,(lambda ()
(parameterize ((%graft? #f))
(->alist drv))))))
(define MiB
(expt 2 20))
@ -178,7 +181,9 @@ (define (->alist drv)
(define (->job name drv)
(let ((name (symbol-append name (string->symbol ".")
(string->symbol system))))
`(,name . ,(cut ->alist drv))))
`(,name . ,(lambda ()
(parameterize ((%graft? #f))
(->alist drv))))))
;; XXX: Add a job for the stable Guix?
(list (->job 'binary-tarball

View file

@ -211,8 +211,9 @@ AC_CONFIG_FILES([Makefile
guix/config.scm])
AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
AC_CONFIG_FILES([test-env], [chmod +x test-env])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])
dnl Emacs interface.
AC_PATH_PROG([DOT_USER_PROGRAM], [dot], [dot])

View file

@ -78,9 +78,13 @@ export ACLOCAL_PATH=/usr/share/aclocal
@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for
more information.
Then, run @command{./configure} as usual.
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).
Finally, you have to invoke @code{make check} to run tests. If anything
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}.

View file

@ -10,6 +10,7 @@ Guix convenient and fun.
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations.
* Licenses: Emacs Licenses. Interface for licenses of Guix packages.
* Package Source Locations: Emacs Package Locations. Interface for package location files.
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
@ -160,6 +161,11 @@ Display package(s) with the specified name.
@item M-x guix-packages-by-license
Display package(s) with the specified license.
@item M-x guix-packages-by-location
Display package(s) located in the specified file. These files usually
have the following form: @file{gnu/packages/emacs.scm}, but don't type
them manually! Press @key{TAB} to complete the file name.
@item M-x guix-search-by-regexp
Search for packages by a specified regexp. By default ``name'',
``synopsis'' and ``description'' of the packages will be searched. This
@ -217,30 +223,6 @@ With @kbd{C-u}, make it verbose.
Once @command{guix pull} has succeeded, the Guix REPL is restared. This
allows you to keep using the Emacs interface with the updated Guix.
Finally, there is an Emacs variant of @command{guix edit} command
(@pxref{Invoking guix edit}):
@table @kbd
@item M-x guix-edit
As with @kbd{M-x guix-packages-by-name}, you can press @key{TAB} to
complete a package name.
@end table
If you are contributing to Guix, you may find it useful for @kbd{M-x
guix-edit} to open package files from your git directory. This can be
done by setting @code{guix-directory} variable. For example, after
this:
@example
(setq guix-directory "~/src/guix")
@end example
@kbd{M-x guix-edit guix} opens
@file{~/src/guix/gnu/packages/package-management.scm} file.
Also you can use @kbd{C-u} prefix argument to specify a directory just
for the current @kbd{M-x guix-edit} command.
@node Emacs General info
@subsection General information
@ -562,9 +544,57 @@ Display a list of available licenses. You can press @kbd{@key{RET}}
there to display packages with this license in the same way as @kbd{M-x
guix-packages-by-license} would do (@pxref{Emacs Commands}).
@item M-x guix-find-license-definition
Open @file{@dots{}/guix/licenses.scm} and move to the specified license.
@end table
@node Emacs Package Locations
@section Package Source Locations
As you know, package definitions are placed in Guile files, also known
as @dfn{package locations}. The following commands should help you not
get lost in these locations:
@table @kbd
@item M-x guix-locations
Display a list of package locations. You can press @key{RET} there to
display packages placed in the current location in the same way as
@kbd{M-x guix-packages-by-location} would do (@pxref{Emacs Commands}).
Note that when the point is on a location button, @key{RET} will open
this location file.
@item M-x guix-find-location
Open the given package definition source file (press @key{TAB} to choose
a location from a completion list).
@item M-x guix-edit
Find location of a specified package. This is an Emacs analog of
@command{guix edit} command (@pxref{Invoking guix edit}). As with
@kbd{M-x guix-packages-by-name}, you can press @key{TAB} to complete a
package name.
@end table
If you are contributing to Guix, you may find it useful for @kbd{M-x
guix-find-location} and @kbd{M-x guix-edit} to open locations from your
Git checkout. This can be done by setting @code{guix-directory}
variable. For example, after this:
@example
(setq guix-directory "~/src/guix")
@end example
@kbd{M-x guix-edit guix} opens
@file{~/src/guix/gnu/packages/package-management.scm} file.
Also you can use @kbd{C-u} prefix argument to specify a directory just
for the current @kbd{M-x guix-find-location} or @kbd{M-x guix-edit}
command.
@node Emacs Popup Interface
@section Popup Interface

View file

@ -118,6 +118,7 @@ Emacs Interface
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
* Package Management: Emacs Package Management. Managing packages and generations.
* Licenses: Emacs Licenses. Interface for licenses of Guix packages.
* Package Source Locations: Emacs Package Locations. Interface for package location files.
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
@ -225,6 +226,7 @@ Packaging Guidelines
* Synopses and Descriptions:: Helping users find the right package.
* Python Modules:: Taming the snake.
* Perl Modules:: Little pearls.
* Java Packages:: Coffee break.
* Fonts:: Fond of fonts.
Contributing
@ -1157,6 +1159,16 @@ for Chinese languages:
guix package -i font-adobe-source-han-sans:cn
@end example
@subsection X.509 Certificates
The @code{nss-certs} package provides X.509 certificates, which allow
programs to authenticate Web servers accessed over HTTPS.
When using Guix on a foreign distro, you can install this package and
define the relevant environment variables so that packages know where to
look for certificates. @pxref{X.509 Certificates}, for detailed
information.
@subsection Emacs Packages
When you install Emacs packages with Guix, the elisp files may be placed
@ -1377,12 +1389,6 @@ variables for their search paths (see explanation of
@code{--search-paths} below). Any missing or possibly incorrect
environment variable definitions are reported here.
@c XXX: keep me up-to-date
Finally, when installing a GNU package, the tool reports the
availability of a newer upstream version. In the future, it may provide
the option of installing directly from the upstream version, even if
that version is not yet in the distribution.
@item --install-from-expression=@var{exp}
@itemx -e @var{exp}
Install the package @var{exp} evaluates to.
@ -1968,6 +1974,15 @@ suffix, such as @code{MiB} for mebibytes and @code{GB} for gigabytes
When @var{min} is omitted, collect all the garbage.
@item --free-space=@var{free}
@itemx -F @var{free}
Collect garbage until @var{free} space is available under
@file{/gnu/store}, if possible; @var{free} denotes storage space, such
as @code{500MiB}, as described above.
When @var{free} or more is already available in @file{/gnu/store}, do
nothing and exit immediately.
@item --delete
@itemx -d
Attempt to delete all the store files and directories specified as
@ -4057,8 +4072,9 @@ binaries are genuine. @xref{Invoking guix challenge}, for more.
Note that, currently, the differing build results are not kept around,
so you will have to manually investigate in case of an error---e.g., by
stashing one of the build results with @code{guix archive --export},
then rebuilding, and finally comparing the two results.
stashing one of the build results with @code{guix archive --export}
(@pxref{Invoking guix archive}), then rebuilding, and finally comparing
the two results.
@item --no-build-hook
Do not attempt to offload builds @i{via} the ``build hook'' of the daemon
@ -4365,12 +4381,12 @@ facilitates the life of packagers by pointing their editor at the source
file containing the definition of the specified packages. For instance:
@example
guix edit gcc-4.8 vim
guix edit gcc@@4.9 vim
@end example
@noindent
launches the program specified in the @code{VISUAL} or in the
@code{EDITOR} environment variable to edit the recipe of GCC@tie{}4.8.4
@code{EDITOR} environment variable to edit the recipe of GCC@tie{}4.9.3
and that of Vim.
If you are using Emacs, note that the Emacs user interface provides the
@ -5511,21 +5527,21 @@ any given store item.
The command output looks like this:
@smallexample
$ guix challenge --substitute-urls="http://hydra.gnu.org http://guix.example.org"
updating list of substitutes from 'http://hydra.gnu.org'... 100.0%
updating list of substitutes from 'http://guix.example.org'... 100.0%
$ guix challenge --substitute-urls="https://hydra.gnu.org https://guix.example.org"
updating list of substitutes from 'https://hydra.gnu.org'... 100.0%
updating list of substitutes from 'https://guix.example.org'... 100.0%
/gnu/store/@dots{}-openssl-1.0.2d contents differ:
local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
http://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
http://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
/gnu/store/@dots{}-git-2.5.0 contents differ:
local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha
http://hydra.gnu.org/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
http://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
https://hydra.gnu.org/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
/gnu/store/@dots{}-pius-2.1.1 contents differ:
local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
http://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
http://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
https://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
@end smallexample
@noindent
@ -5544,14 +5560,14 @@ various things that Guix does not fully control, in spite of building
packages in isolated environments (@pxref{Features}). Most common
sources of non-determinism include the addition of timestamps in build
results, the inclusion of random numbers, and directory listings sorted
by inode number. See @uref{http://reproducible.debian.net/howto/}, for
by inode number. See @uref{https://reproducible-builds.org/docs/}, for
more information.
To find out what is wrong with this Git binary, we can do something along
these lines (@pxref{Invoking guix archive}):
@example
$ wget -q -O - http://hydra.gnu.org/nar/@dots{}-git-2.5.0 \
$ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \
| guix archive -x /tmp/git
$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
@end example
@ -5561,7 +5577,7 @@ local build, and the files resulting from the build on
@code{hydra.gnu.org} (@pxref{Overview, Comparing and Merging Files,,
diffutils, Comparing and Merging Files}). The @command{diff} command
works great for text files. When binary files differ, a better option
is @uref{http://diffoscope.org/, Diffoscope}, a tool that helps
is @uref{https://diffoscope.org/, Diffoscope}, a tool that helps
visualize differences for all kinds of files.
Once you have done that work, you can tell whether the differences are due
@ -5582,7 +5598,7 @@ $ guix challenge @var{package}
@noindent
where @var{package} is a package specification such as
@code{guile-2.0} or @code{glibc:debug}.
@code{guile@@2.0} or @code{glibc:debug}.
The general syntax is:
@ -5590,6 +5606,12 @@ The general syntax is:
guix challenge @var{options} [@var{packages}@dots{}]
@end example
When a difference is found between the hash of a locally-built item and
that of a server-provided substitute, or among substitutes provided by
different servers, the command displays it as in the example above and
its exit code is 2 (other non-zero exit codes denote other kinds of
errors.)
The one option that matters is:
@table @code
@ -5809,7 +5831,7 @@ to report issues (and success stories!), and to join us in improving it.
@cindex hardware support on GuixSD
GNU@tie{}GuixSD focuses on respecting the user's computing freedom. It
builds around the kernel Linux-libre, which means that only hardware for
which free software drivers and firmware exists is supported. Nowadays,
which free software drivers and firmware exist is supported. Nowadays,
a wide range of off-the-shelf hardware is supported on
GNU/Linux-libre---from keyboards to graphics cards to scanners and
Ethernet controllers. Unfortunately, there are still areas where
@ -5817,7 +5839,7 @@ hardware vendors deny users control over their own computing, and such
hardware is not supported on GuixSD.
@cindex WiFi, hardware support
One of the main areas where free drivers or firmware is lacking is WiFi
One of the main areas where free drivers or firmware are lacking is WiFi
devices. WiFi devices known to work include those using Atheros chips
(AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre
driver, and for which free firmware exists and is available
@ -5826,10 +5848,10 @@ out-of-the-box on GuixSD, as part of @var{%base-firmware}
@cindex RYF, Respects Your Freedom
The @uref{https://www.fsf.org/, Free Software Foundation} runs
@uref{https://www.fsf.org/ryf, @dfn{Respect Your Freedom}} (RYF), a
@uref{https://www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a
certification program for hardware products that respect your freedom
and your privacy and ensure that you have control over your device. We
encourage you to check the list of RYF-certified hardware.
encourage you to check the list of RYF-certified devices.
Another useful resource is the @uref{https://www.h-node.org/, H-Node}
web site. It contains a catalog of hardware devices with information
@ -6039,6 +6061,15 @@ partition):
mount /dev/sda1 /mnt
@end example
Finally, if you plan to use one or more swap partitions (@pxref{Memory
Concepts, swap space,, libc, The GNU C Library Reference Manual}), make
sure to initialize them with @command{mkswap}. Assuming you have one
swap partition on @file{/dev/sda2}, you would run:
@example
mkswap /dev/sda2
@end example
@node Proceeding with the Installation
@subsection Proceeding with the Installation
@ -6227,7 +6258,7 @@ version:
(operating-system
;; ...
(packages (append (map specification->package
'("tcpdump" "htop" "gnupg-2.0"))
'("tcpdump" "htop" "gnupg@@2.0"))
%base-packages)))
@end lisp
@ -6426,15 +6457,17 @@ For example, @code{'("/dev/sda3")}.
List of user accounts and groups. @xref{User Accounts}.
@item @code{skeletons} (default: @code{(default-skeletons)})
A monadic list of pairs of target file name and files. These are the
files that will be used as skeletons as new accounts are created.
A list target file name/file-like object tuples (@pxref{G-Expressions,
file-like objects}). These are the skeleton files that will be added to
the home directory of newly-created user accounts.
For instance, a valid value may look like this:
@example
(mlet %store-monad ((bashrc (text-file "bashrc" "\
export PATH=$HOME/.guix-profile/bin")))
(return `((".bashrc" ,bashrc))))
`((".bashrc" ,(plain-file "bashrc" "echo Hello\n"))
(".guile" ,(plain-file "guile"
"(use-modules (ice-9 readline))
(activate-readline)")))
@end example
@item @code{issue} (default: @var{%default-issue})
@ -6686,13 +6719,29 @@ Mapped devices are declared using the @code{mapped-device} form:
(type luks-device-mapping))
@end example
@noindent
Or, better yet, like this:
@example
(mapped-device
(source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44"))
(target "home")
(type luks-device-mapping))
@end example
@cindex disk encryption
@cindex LUKS
This example specifies a mapping from @file{/dev/sda3} to
@file{/dev/mapper/home} using LUKS---the
@url{http://code.google.com/p/cryptsetup,Linux Unified Key Setup}, a
standard mechanism for disk encryption. The @file{/dev/mapper/home}
standard mechanism for disk encryption. In the second example, the UUID
(unique identifier) is the LUKS UUID returned for the device by a
command like:
@example
cryptsetup luksUUID /dev/sdx9
@end example
The @file{/dev/mapper/home}
device can then be used as the @code{device} of a @code{file-system}
declaration (@pxref{File Systems}). The @code{mapped-device} form is
detailed below.
@ -7260,10 +7309,25 @@ Return a service that runs the Guix build daemon according to
Run @var{udev}, which populates the @file{/dev} directory dynamically.
@end deffn
@deffn {Scheme Procedure} console-keymap-service @var{file}
@deffn {Scheme Procedure} console-keymap-service @var{files} ...
@cindex keyboard layout
Return a service to load console keymap from @var{file} using
@command{loadkeys} command.
Return a service to load console keymaps from @var{files} using
@command{loadkeys} command. Most likely, you want to load some default
keymap, which can be done like this:
@example
(console-keymap-service "dvorak")
@end example
Or, for example, for a Swedish keyboard, you may need to combine
the following keymaps:
@example
(console-keymap-service "se-lat6" "se-fi-lat6")
@end example
Also you can specify a full file name (or file names) of your keymap(s).
See @code{man loadkeys} for details.
@end deffn
@deffn {Scheme Procedure} gpm-service-type [#:gpm @var{gpm}] @
@ -9315,14 +9379,22 @@ explicitly add it. The @file{/etc/ssl/certs} directory, which is where
most applications and libraries look for certificates by default, points
to the certificates installed globally.
Unprivileged users can also install their own certificate package in
Unprivileged users, including users of Guix on a foreign distro,
can also install their own certificate package in
their profile. A number of environment variables need to be defined so
that applications and libraries know where to find them. Namely, the
OpenSSL library honors the @code{SSL_CERT_DIR} and @code{SSL_CERT_FILE}
variables. Some applications add their own environment variables; for
instance, the Git version control system honors the certificate bundle
pointed to by the @code{GIT_SSL_CAINFO} environment variable.
pointed to by the @code{GIT_SSL_CAINFO} environment variable. Thus, you
would typically run something like:
@example
$ guix package -i nss-certs
$ export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
$ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
$ export GIT_SSL_CAINFO="$SSL_CERT_FILE"
@end example
@node Name Service Switch
@subsection Name Service Switch
@ -10733,6 +10805,7 @@ needed is to review and apply the patch.
* Synopses and Descriptions:: Helping users find the right package.
* Python Modules:: Taming the snake.
* Perl Modules:: Little pearls.
* Java Packages:: Coffee break.
* Fonts:: Fond of fonts.
@end menu
@ -10974,6 +11047,25 @@ are also prepended by @code{perl-}. Such modules tend to have the word
prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}.
@node Java Packages
@subsection Java Packages
Java programs standing for themselves are named as any other package,
using the lowercase upstream name.
To avoid confusion and naming clashes with other programming languages,
it is desirable that the name of a package for a Java package is
prefixed with @code{java-}. If a project already contains the word
@code{java}, we drop this; for instance, the package @code{ngsjava} is
packaged under the name @code{java-ngs}.
For Java packages containing a single class or a small class hierarchy,
we use the lowercase class name, replace all occurrences of @code{.} by
dashes and prepend the prefix @code{java-}. So the class
@code{apache.commons.cli} becomes package
@code{java-apache-commons-cli}.
@node Fonts
@subsection Fonts
@ -11204,7 +11296,7 @@ to be updated to refer to these binaries on the target platform. That
is, the hashes and URLs of the bootstrap tarballs for the new platform
must be added alongside those of the currently supported platforms. The
bootstrap Guile tarball is treated specially: it is expected to be
available locally, and @file{gnu-system.am} has rules do download it for
available locally, and @file{gnu/local.mk} has rules do download it for
the supported architectures; a rule for the new platform must be added
as well.

View file

@ -82,7 +82,7 @@ If you have a slow system, try to increase this time."
:type 'string
:group 'guix-repl)
(defcustom guix-after-start-repl-hook ()
(defcustom guix-after-start-repl-hook '(guix-set-directory)
"Hook called after Guix REPL is started."
:type 'hook
:group 'guix-repl)
@ -336,6 +336,28 @@ additional internal REPL if it exists."
(interactive "P")
(geiser-repl--switch-to-buffer (guix-get-repl-buffer internal)))
;;; Guix directory
(defvar guix-directory nil
"Default directory with Guix source.
If it is not set by a user, it is set after starting Guile REPL.
This directory is used to define package locations.")
(defun guix-read-directory ()
"Return `guix-directory' or prompt for it.
This function is intended for using in `interactive' forms."
(if current-prefix-arg
(read-directory-name "Directory with Guix modules: "
guix-directory)
guix-directory))
(defun guix-set-directory ()
"Set `guix-directory' if needed."
(or guix-directory
(setq guix-directory
(guix-eval-read "%guix-dir"))))
;;; Evaluating expressions

View file

@ -48,53 +48,7 @@
(when output (concat ":" output))))
;;; Location of packages, profiles and manifests
(defvar guix-directory nil
"Default Guix directory.
If it is not set by a user, it is set after starting Guile REPL.
This directory is used to define location of the packages.")
(defun guix-read-directory ()
"Return `guix-directory' or prompt for it.
This function is intended for using in `interactive' forms."
(if current-prefix-arg
(read-directory-name "Directory with Guix modules: "
guix-directory)
guix-directory))
(defun guix-set-directory ()
"Set `guix-directory' if needed."
(or guix-directory
(setq guix-directory
(guix-eval-read "%guix-dir"))))
(add-hook 'guix-after-start-repl-hook 'guix-set-directory)
(defun guix-find-location (location &optional directory)
"Go to LOCATION of a package.
LOCATION is a string of the form:
\"PATH:LINE:COLUMN\"
If PATH is relative, it is considered to be relative to
DIRECTORY (`guix-directory' by default)."
(cl-multiple-value-bind (path line col)
(split-string location ":")
(let ((file (expand-file-name path (or directory guix-directory)))
(line (string-to-number line))
(col (string-to-number col)))
(find-file file)
(goto-char (point-min))
(forward-line (- line 1))
(move-to-column col)
(recenter 1))))
(defun guix-package-location (id-or-name)
"Return location of a package with ID-OR-NAME.
For the meaning of location, see `guix-find-location'."
(guix-eval-read (guix-make-guile-expression
'package-location-string id-or-name)))
;;; Location of profiles and manifests
(defun guix-generation-file (profile generation)
"Return the file name of a PROFILE's GENERATION."
@ -120,20 +74,6 @@ See `guix-packages-profile'."
(expand-file-name "manifest"
(guix-packages-profile profile generation system?)))
;;;###autoload
(defun guix-edit (id-or-name &optional directory)
"Edit (go to location of) package with ID-OR-NAME.
See `guix-find-location' for the meaning of package location and
DIRECTORY.
Interactively, with prefix argument, prompt for DIRECTORY."
(interactive
(list (guix-read-package-name)
(guix-read-directory)))
(let ((loc (guix-package-location id-or-name)))
(if loc
(guix-find-location loc directory)
(message "Couldn't find package location."))))
;;; Actions on packages and generations

View file

@ -24,7 +24,7 @@
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
(defconst guix-config-state-directory
;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'.
(or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
(defconst guix-config-guile-program "@GUILE@"

View file

@ -23,14 +23,15 @@
;;; Code:
(require 'guix-buffer)
(require 'guix-list)
(require 'guix-info)
(require 'guix-read)
(require 'guix-backend)
(require 'guix-guile)
(guix-define-entry-type license)
(defun guix-license-file (&optional directory)
"Return name of the file with license definitions.
DIRECTORY is a directory with Guix source (`guix-directory' by default)."
(expand-file-name "guix/licenses.scm"
(or directory guix-directory)))
(defun guix-lookup-license-url (license)
"Return URL of a LICENSE."
@ -38,80 +39,20 @@
'lookup-license-uri license))
(error "Hm, I don't know URL of '%s' license" license)))
(defun guix-license-get-entries (search-type &rest args)
"Receive 'license' entries.
SEARCH-TYPE may be one of the following symbols: `all', `id', `name'."
(guix-eval-read
(apply #'guix-make-guile-expression
'license-entries search-type args)))
(defun guix-license-get-display (search-type &rest args)
"Search for licenses and show results."
(apply #'guix-list-get-display-entries
'license search-type args))
;;; License 'info'
(guix-info-define-interface license
:buffer-name "*Guix License Info*"
:get-entries-function 'guix-license-get-entries
:format '((name ignore (simple guix-info-heading))
ignore
guix-license-insert-packages-button
(url ignore (simple guix-url))
guix-license-insert-comment)
:titles '((url . "URL")))
(declare-function guix-packages-by-license "guix-ui-package")
(defun guix-license-insert-packages-button (entry)
"Insert button to display packages by license ENTRY."
(guix-info-insert-action-button
"Packages"
(lambda (btn)
(guix-packages-by-license (button-get btn 'license)))
"Show packages with this license"
'license (guix-entry-value entry 'name)))
(defun guix-license-insert-comment (entry)
"Insert 'comment' of a license ENTRY."
(let ((comment (guix-entry-value entry 'comment)))
(if (and comment
(string-match-p "^http" comment))
(guix-info-insert-value-simple comment 'guix-url)
(guix-info-insert-title-simple
(guix-info-param-title 'license 'comment))
(guix-info-insert-value-indent comment))))
;;; License 'list'
(guix-list-define-interface license
:buffer-name "*Guix Licenses*"
:get-entries-function 'guix-license-get-entries
:describe-function 'guix-license-list-describe
:format '((name nil 40 t)
(url guix-list-get-url 50 t))
:titles '((name . "License"))
:sort-key '(name))
(let ((map guix-license-list-mode-map))
(define-key map (kbd "RET") 'guix-license-list-show-packages))
(defun guix-license-list-describe (ids)
"Describe licenses with IDS (list of identifiers)."
(guix-buffer-display-entries
(guix-entries-by-ids ids (guix-buffer-current-entries))
'info 'license (cl-list* 'id ids) 'add))
(defun guix-license-list-show-packages ()
"Display packages with the license at point."
(interactive)
(guix-packages-by-license (guix-list-current-id)))
;;; Interactive commands
;;;###autoload
(defun guix-find-license-definition (license &optional directory)
"Open licenses file from DIRECTORY and move to the LICENSE definition.
See `guix-license-file' for the meaning of DIRECTORY.
Interactively, with prefix argument, prompt for DIRECTORY."
(interactive
(list (guix-read-license-name)
(guix-read-directory)))
(find-file (guix-license-file directory))
(goto-char (point-min))
(when (re-search-forward (concat "\"" (regexp-quote license) "\"")
nil t)
(beginning-of-defun)
(recenter 1)))
;;;###autoload
(defun guix-browse-license-url (license)
@ -119,12 +60,6 @@ SEARCH-TYPE may be one of the following symbols: `all', `id', `name'."
(interactive (list (guix-read-license-name)))
(browse-url (guix-lookup-license-url license)))
;;;###autoload
(defun guix-licenses ()
"Display licenses of the Guix packages."
(interactive)
(guix-license-get-display 'all))
(provide 'guix-license)
;;; guix-license.el ends here

79
emacs/guix-location.el Normal file
View file

@ -0,0 +1,79 @@
;;; guix-location.el --- Package locations
;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
;; GNU Guix is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public Location as published by
;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.
;; You should have received a copy of the GNU General Public Location
;; along with this program. If not, see <http://www.gnu.org/locations/>.
;;; Commentary:
;; This file provides the code to work with locations of Guix packages.
;;; Code:
(require 'cl-lib)
(require 'guix-backend)
(require 'guix-read)
(require 'guix-guile)
(defun guix-package-location (id-or-name)
"Return location of a package with ID-OR-NAME.
For the meaning of location, see `guix-find-location'."
(guix-eval-read (guix-make-guile-expression
'package-location-string id-or-name)))
;;;###autoload
(defun guix-find-location (location &optional directory)
"Go to LOCATION of a package.
LOCATION is a string of the form:
\"FILE:LINE:COLUMN\"
If FILE is relative, it is considered to be relative to
DIRECTORY (`guix-directory' by default).
Interactively, prompt for LOCATION. With prefix argument, prompt
for DIRECTORY as well."
(interactive
(list (guix-read-package-location)
(guix-read-directory)))
(cl-multiple-value-bind (file line column)
(split-string location ":")
(find-file (expand-file-name file (or directory guix-directory)))
(when (and line column)
(let ((line (string-to-number line))
(column (string-to-number column)))
(goto-char (point-min))
(forward-line (- line 1))
(move-to-column column)
(recenter 1)))))
;;;###autoload
(defun guix-edit (id-or-name &optional directory)
"Edit (go to location of) package with ID-OR-NAME.
See `guix-find-location' for the meaning of package location and
DIRECTORY.
Interactively, with prefix argument, prompt for DIRECTORY."
(interactive
(list (guix-read-package-name)
(guix-read-directory)))
(let ((loc (guix-package-location id-or-name)))
(if loc
(guix-find-location loc directory)
(message "Couldn't find package location."))))
(provide 'guix-location)
;;; guix-location.el ends here

View file

@ -684,6 +684,8 @@ (define %patterns-makers
(license-proc (lambda (_ license-name)
(packages-by-license
(lookup-license license-name))))
(location-proc (lambda (_ location)
(packages-by-location-file location)))
(all-proc (lambda _ (all-available-packages)))
(newest-proc (lambda _ (newest-available-packages))))
`((package
@ -693,6 +695,7 @@ (define %patterns-makers
(obsolete . ,(apply-to-first obsolete-package-patterns))
(regexp . ,regexp-proc)
(license . ,license-proc)
(location . ,location-proc)
(all-available . ,all-proc)
(newest-available . ,newest-proc))
(output
@ -702,6 +705,7 @@ (define %patterns-makers
(obsolete . ,(apply-to-first obsolete-output-patterns))
(regexp . ,regexp-proc)
(license . ,license-proc)
(location . ,location-proc)
(all-available . ,all-proc)
(newest-available . ,newest-proc)))))
@ -1097,3 +1101,41 @@ (define (find-licenses search-type . search-values)
(define (license-entries search-type . search-values)
(map license->sexp
(apply find-licenses search-type search-values)))
;;; Package locations
(define-values (packages-by-location-file
package-location-files)
(let* ((table (delay (fold-packages
(lambda (package table)
(let ((file (location-file
(package-location package))))
(vhash-cons file package table)))
vlist-null)))
(files (delay (vhash-fold
(lambda (file _ result)
(if (member file result)
result
(cons file result)))
'()
(force table)))))
(values
(lambda (file)
"Return the (possibly empty) list of packages defined in location FILE."
(vhash-fold* cons '() file (force table)))
(lambda ()
"Return the list of file names of all package locations."
(force files)))))
(define %package-location-param-alist
`((id . ,identity)
(location . ,identity)
(number-of-packages . ,(lambda (location)
(length (packages-by-location-file location))))))
(define package-location->sexp
(object-transformer %package-location-param-alist))
(define (package-location-entries)
(map package-location->sexp (package-location-files)))

View file

@ -40,6 +40,10 @@
,(lambda (_ entries licenses)
(apply #'guix-message-packages-by-license
entries 'package licenses)))
(location
,(lambda (_ entries locations)
(apply #'guix-message-packages-by-location
entries 'package locations)))
(regexp
(0 "No packages matching '%s'." val)
(1 "A single package matching '%s'." val)
@ -72,6 +76,10 @@
,(lambda (_ entries licenses)
(apply #'guix-message-packages-by-license
entries 'output licenses)))
(location
,(lambda (_ entries locations)
(apply #'guix-message-packages-by-location
entries 'output locations)))
(regexp
(0 "No package outputs matching '%s'." val)
(1 "A single package output matching '%s'." val)
@ -174,6 +182,13 @@ Try \"M-x guix-search-by-name\"."
(str-end (format "with license '%s'" license)))
(message "%s %s." str-beg str-end)))
(defun guix-message-packages-by-location (entries entry-type location)
"Display a message for packages or outputs searched by LOCATION."
(let* ((count (length entries))
(str-beg (guix-message-string-entries count entry-type))
(str-end (format "placed in '%s'" location)))
(message "%s %s." str-beg str-end)))
(defun guix-message-generations-by-time (profile entries times)
"Display a message for generations searched by TIMES."
(let* ((count (length entries))

View file

@ -62,6 +62,12 @@
"Return a list of names of available licenses."
(guix-eval-read (guix-make-guile-expression 'license-names)))
(guix-memoized-defun guix-package-locations ()
"Return a list of available package locations."
(sort (guix-eval-read (guix-make-guile-expression
'package-location-files))
#'string<))
;;; Readers
@ -131,6 +137,11 @@
:single-reader guix-read-license-name
:single-prompt "License: ")
(guix-define-readers
:completions-getter guix-package-locations
:single-reader guix-read-package-location
:single-prompt "Location: ")
(provide 'guix-read)
;;; guix-read.el ends here

150
emacs/guix-ui-license.el Normal file
View file

@ -0,0 +1,150 @@
;;; guix-ui-license.el --- Interface for displaying licenses
;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
;; GNU Guix is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Guix is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This file provides 'list'/'info' interface for displaying licenses of
;; Guix packages.
;;; Code:
(require 'guix-buffer)
(require 'guix-list)
(require 'guix-info)
(require 'guix-backend)
(require 'guix-guile)
(require 'guix-license)
(guix-define-entry-type license)
(defun guix-license-get-entries (search-type &rest args)
"Receive 'license' entries.
SEARCH-TYPE may be one of the following symbols: `all', `id', `name'."
(guix-eval-read
(apply #'guix-make-guile-expression
'license-entries search-type args)))
(defun guix-license-get-display (search-type &rest args)
"Search for licenses and show results."
(apply #'guix-list-get-display-entries
'license search-type args))
(defun guix-license-message (entries search-type &rest args)
"Display a message after showing license ENTRIES."
;; Some objects in (guix licenses) module are procedures (e.g.,
;; 'non-copyleft' or 'x11-style'). Such licenses cannot be "described".
(when (null entries)
(if (cdr args)
(message "Unknown licenses.")
(message "Unknown license."))))
;;; License 'info'
(guix-info-define-interface license
:buffer-name "*Guix License Info*"
:get-entries-function 'guix-license-get-entries
:message-function 'guix-license-message
:format '((name ignore (simple guix-info-heading))
ignore
guix-license-insert-packages-button
(url ignore (simple guix-url))
guix-license-insert-comment
ignore
guix-license-insert-file)
:titles '((url . "URL")))
(declare-function guix-packages-by-license "guix-ui-package")
(defun guix-license-insert-packages-button (entry)
"Insert button to display packages by license ENTRY."
(let ((license (guix-entry-value entry 'name)))
(guix-info-insert-action-button
"Packages"
(lambda (btn)
(guix-packages-by-license (button-get btn 'license)))
(format "Display packages with license '%s'" license)
'license license)))
(defun guix-license-insert-comment (entry)
"Insert 'comment' of a license ENTRY."
(let ((comment (guix-entry-value entry 'comment)))
(if (and comment
(string-match-p "^http" comment))
(guix-info-insert-value-simple comment 'guix-url)
(guix-info-insert-title-simple
(guix-info-param-title 'license 'comment))
(guix-info-insert-value-indent comment))))
(defun guix-license-insert-file (entry)
"Insert button to open license definition."
(let ((license (guix-entry-value entry 'name)))
(guix-insert-button
(guix-license-file) 'guix-file
'help-echo (format "Open definition of license '%s'" license)
'action (lambda (btn)
(guix-find-license-definition (button-get btn 'license)))
'license license)))
;;; License 'list'
(guix-list-define-interface license
:buffer-name "*Guix Licenses*"
:get-entries-function 'guix-license-get-entries
:describe-function 'guix-license-list-describe
:message-function 'guix-license-message
:format '((name nil 40 t)
(url guix-list-get-url 50 t))
:titles '((name . "License"))
:sort-key '(name))
(let ((map guix-license-list-mode-map))
(define-key map (kbd "e") 'guix-license-list-edit)
(define-key map (kbd "RET") 'guix-license-list-show-packages))
(defun guix-license-list-describe (ids)
"Describe licenses with IDS (list of identifiers)."
(guix-buffer-display-entries
(guix-entries-by-ids ids (guix-buffer-current-entries))
'info 'license (cl-list* 'id ids) 'add))
(defun guix-license-list-show-packages ()
"Display packages with the license at point."
(interactive)
(guix-packages-by-license (guix-list-current-id)))
(defun guix-license-list-edit (&optional directory)
"Go to the location of the current license definition.
See `guix-license-file' for the meaning of DIRECTORY."
(interactive (list (guix-read-directory)))
(guix-find-license-definition (guix-list-current-id) directory))
;;; Interactive commands
;;;###autoload
(defun guix-licenses ()
"Display licenses of the Guix packages."
(interactive)
(guix-license-get-display 'all))
(provide 'guix-ui-license)
;;; guix-ui-license.el ends here

83
emacs/guix-ui-location.el Normal file
View file

@ -0,0 +1,83 @@
;;; guix-ui-location.el --- Interface for displaying package locations
;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
;; GNU Guix is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public Location as published by
;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.
;; You should have received a copy of the GNU General Public Location
;; along with this program. If not, see <http://www.gnu.org/locations/>.
;;; Commentary:
;; This file provides a 'list' interface for displaying locations of Guix
;; packages.
;;; Code:
(require 'guix-buffer)
(require 'guix-list)
(require 'guix-location)
(require 'guix-backend)
(guix-define-entry-type location)
(defun guix-location-get-entries ()
"Receive 'package location' entries."
(guix-eval-read "(package-location-entries)"))
;;; Location 'list'
(guix-list-define-interface location
:buffer-name "*Guix Package Locations*"
:get-entries-function 'guix-location-get-entries
:format '((location guix-location-list-file-name-specification 50 t)
(number-of-packages nil 10 guix-list-sort-numerically-1
:right-align t))
:sort-key '(location))
(let ((map guix-location-list-mode-map))
(define-key map (kbd "RET") 'guix-location-list-show-packages)
;; "Location Info" buffer is not defined (it would be useless), so
;; unbind "i" key (by default, it is used to display Info buffer).
(define-key map (kbd "i") nil))
(defun guix-location-list-file-name-specification (location &optional _)
"Return LOCATION button specification for `tabulated-list-entries'."
(list location
'face 'guix-list-file-name
'action (lambda (btn)
(guix-find-location (button-get btn 'location)))
'follow-link t
'help-echo (concat "Find location: " location)
'location location))
(declare-function guix-packages-by-location "guix-ui-package")
(defun guix-location-list-show-packages ()
"Display packages placed in the location at point."
(interactive)
(guix-packages-by-location (guix-list-current-id)))
;;; Interactive commands
;;;###autoload
(defun guix-locations ()
"Display locations of the Guix packages."
(interactive)
(guix-list-get-display-entries 'location))
(provide 'guix-ui-location)
;;; guix-ui-location.el ends here

View file

@ -1,6 +1,6 @@
;;; guix-ui-package.el --- Interface for displaying packages -*- lexical-binding: t -*-
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@ -38,6 +38,7 @@
(require 'guix-hydra-build)
(require 'guix-read)
(require 'guix-license)
(require 'guix-location)
(require 'guix-profiles)
(guix-ui-define-entry-type package)
@ -222,7 +223,7 @@ ENTRIES is a list of package entries to get info about packages."
ignore
(outputs simple guix-package-info-insert-outputs)
(source simple guix-package-info-insert-source)
(location format (format guix-package-location))
(location simple guix-package-info-insert-location)
(home-url format (format guix-url))
(license format (format guix-package-license))
(systems format guix-package-info-insert-systems)
@ -345,9 +346,13 @@ formatted with this string, an action button is inserted.")
(define-button-type 'guix-package-license
:supertype 'guix
'face 'guix-package-info-license
'help-echo "Browse license URL"
'help-echo "Display license info"
'action (lambda (btn)
(guix-browse-license-url (button-label btn))))
(require 'guix-ui-license)
(guix-buffer-get-display-entries
'info 'license
(list 'name (button-label btn))
'add)))
(define-button-type 'guix-package-name
:supertype 'guix
@ -382,6 +387,22 @@ formatted with this string, an action button is inserted.")
'guix-package-heading
'spec (guix-package-entry->name-specification entry)))
(defun guix-package-info-insert-location (location &optional _)
"Insert package LOCATION at point."
(if (null location)
(guix-format-insert nil)
(let ((location-file (car (split-string location ":"))))
(guix-info-insert-value-indent location 'guix-package-location)
(guix-info-insert-indent)
(guix-info-insert-action-button
"Packages"
(lambda (btn)
(guix-package-get-display (guix-ui-current-profile)
'location
(button-get btn 'location)))
(format "Display packages from location '%s'" location-file)
'location location-file))))
(defun guix-package-info-insert-systems (systems entry)
"Insert supported package SYSTEMS at point."
(guix-info-insert-value-format
@ -797,7 +818,7 @@ for all ARGS."
(source simple guix-package-info-insert-source)
(path simple (indent guix-file))
(dependencies simple (indent guix-file))
(location format (format guix-package-location))
(location simple guix-package-info-insert-location)
(home-url format (format guix-url))
(license format (format guix-package-license))
(systems format guix-package-info-insert-systems)
@ -969,6 +990,16 @@ Interactively with prefix, prompt for PROFILE."
(guix-ui-read-profile)))
(guix-package-get-display profile 'license license))
;;;###autoload
(defun guix-packages-by-location (location &optional profile)
"Display Guix packages placed in LOCATION file.
If PROFILE is nil, use `guix-current-profile'.
Interactively with prefix, prompt for PROFILE."
(interactive
(list (guix-read-package-location)
(guix-ui-read-profile)))
(guix-package-get-display profile 'location location))
;;;###autoload
(defun guix-search-by-regexp (regexp &optional params profile)
"Search for Guix packages by REGEXP.

View file

@ -1,6 +1,6 @@
;;; guix-ui.el --- Common code for Guix package management interface -*- lexical-binding: t -*-
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@ -105,10 +105,11 @@ If `all', update all Guix buffers (not recommended)."
:group 'guix-ui)
(defcustom guix-ui-buffer-name-function
#'guix-ui-buffer-name-default
#'guix-ui-buffer-name-full
"Function used to define a name of a Guix buffer.
The function is called with 2 arguments: BASE-NAME and PROFILE."
:type '(choice (function-item guix-ui-buffer-name-default)
:type '(choice (function-item guix-ui-buffer-name-full)
(function-item guix-ui-buffer-name-short)
(function-item guix-ui-buffer-name-simple)
(function :tag "Other function"))
:group 'guix-ui)
@ -117,26 +118,14 @@ The function is called with 2 arguments: BASE-NAME and PROFILE."
"Return BASE-NAME."
base-name)
;; TODO separate '*...*' logic from the real profile appending. Also add
;; another function to return '*Guix ...: /full/path/to/profile*' name.
(defun guix-ui-buffer-name-default (base-name profile)
(defun guix-ui-buffer-name-short (base-name profile)
"Return buffer name by appending BASE-NAME and PROFILE's base file name."
(let ((profile-name (file-name-base (directory-file-name profile)))
(re (rx string-start
(group (? "*"))
(group (*? any))
(group (? "*"))
string-end)))
(or (string-match re base-name)
(error "Unexpected error in defining guix buffer name"))
(let ((first* (match-string 1 base-name))
(name-body (match-string 2 base-name))
(last* (match-string 3 base-name)))
;; Handle the case when buffer name is wrapped by '*'.
(if (and (string= "*" first*)
(string= "*" last*))
(concat "*" name-body ": " profile-name "*")
(concat base-name ": " profile-name)))))
(guix-compose-buffer-name base-name
(file-name-base (directory-file-name profile))))
(defun guix-ui-buffer-name-full (base-name profile)
"Return buffer name by appending BASE-NAME and PROFILE's full name."
(guix-compose-buffer-name base-name profile))
(defun guix-ui-buffer-name (base-name profile)
"Return Guix buffer name based on BASE-NAME and profile.

View file

@ -1,6 +1,6 @@
;;; guix-utils.el --- General utility functions -*- lexical-binding: t -*-
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@ -223,6 +223,32 @@ If NO-MESSAGE? is non-nil, do not display a message about it."
See also `guix-copy-as-kill'."
(guix-copy-as-kill (guix-command-string args) no-message?))
(defun guix-compose-buffer-name (base-name postfix)
"Return buffer name by appending BASE-NAME and POSTFIX.
In a simple case the result is:
BASE-NAME: POSTFIX
If BASE-NAME is wrapped by '*', then the result is:
*BASE-NAME: POSTFIX*"
(let ((re (rx string-start
(group (? "*"))
(group (*? any))
(group (? "*"))
string-end)))
(or (string-match re base-name)
(error "Unexpected error in defining buffer name"))
(let ((first* (match-string 1 base-name))
(name-body (match-string 2 base-name))
(last* (match-string 3 base-name)))
;; Handle the case when buffer name is wrapped by '*'.
(if (and (string= "*" first*)
(string= "*" last*))
(concat "*" name-body ": " postfix "*")
(concat base-name ": " postfix)))))
(defun guix-completing-read (prompt table &optional predicate
require-match initial-input
hist def inherit-input-method)

View file

@ -40,6 +40,7 @@ ELFILES = \
emacs/guix-init.el \
emacs/guix-license.el \
emacs/guix-list.el \
emacs/guix-location.el \
emacs/guix-messages.el \
emacs/guix-pcomplete.el \
emacs/guix-popup.el \
@ -47,6 +48,8 @@ ELFILES = \
emacs/guix-profiles.el \
emacs/guix-read.el \
emacs/guix-ui.el \
emacs/guix-ui-license.el \
emacs/guix-ui-location.el \
emacs/guix-ui-package.el \
emacs/guix-ui-generation.el \
emacs/guix-ui-system-generation.el \

View file

@ -11,5 +11,8 @@ RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog
# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
TasksMax=1024
[Install]
WantedBy=multi-user.target

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io>
;;;
;;; This file is part of GNU Guix.
@ -32,6 +32,7 @@ (define-module (gnu)
(begin
(define %public-modules
'((gnu system)
(gnu system mapped-devices)
(gnu system file-systems)
(gnu system grub) ; 'grub-configuration'
(gnu system pam)

View file

@ -32,8 +32,10 @@ (define-module (gnu build file-systems)
#:export (disk-partitions
partition-label-predicate
partition-uuid-predicate
partition-luks-uuid-predicate
find-partition-by-label
find-partition-by-uuid
find-partition-by-luks-uuid
canonicalize-device-spec
uuid->string
@ -79,6 +81,11 @@ (define (bind-mount source target)
"Bind-mount SOURCE at TARGET."
(mount source target "" MS_BIND))
;;;
;;; Ext2 file systems.
;;;
(define-syntax %ext2-endianness
;; Endianness of ext2 file systems.
(identifier-syntax (endianness little)))
@ -136,6 +143,63 @@ (define (ext2-superblock-volume-name sblock)
#f
(list->string (map integer->char bytes))))))
;;;
;;; LUKS encrypted devices.
;;;
;; The LUKS header format is described in "LUKS On-Disk Format Specification":
;; <http://wiki.cryptsetup.googlecode.com/git/LUKS-standard/>. We follow
;; version 1.2.1 of this document.
(define-syntax %luks-endianness
;; Endianness of LUKS headers.
(identifier-syntax (endianness big)))
(define-syntax %luks-header-size
;; Size in bytes of the LUKS header, including key slots.
(identifier-syntax 592))
(define %luks-magic
;; The 'LUKS_MAGIC' constant.
(u8-list->bytevector (append (map char->integer (string->list "LUKS"))
(list #xba #xbe))))
(define (sub-bytevector bv start size)
"Return a copy of the SIZE bytes of BV starting from offset START."
(let ((result (make-bytevector size)))
(bytevector-copy! bv start result 0 size)
result))
(define (read-luks-header file)
"Read a LUKS header from FILE. Return the raw header on success, and #f if
not valid header was found."
(call-with-input-file file
(lambda (port)
(let ((header (make-bytevector %luks-header-size)))
(match (get-bytevector-n! port header 0 (bytevector-length header))
((? eof-object?)
#f)
((? number? len)
(and (= len (bytevector-length header))
(let ((magic (sub-bytevector header 0 6)) ;XXX: inefficient
(version (bytevector-u16-ref header 6 %luks-endianness)))
(and (bytevector=? magic %luks-magic)
(= version 1)
header)))))))))
(define (luks-header-uuid header)
"Return the LUKS UUID from HEADER, as a 16-byte bytevector."
;; 40 bytes are reserved for the UUID, but in practice, it contains the 36
;; bytes of its ASCII representation.
(let ((uuid (sub-bytevector header 168 36)))
(string->uuid (utf8->string uuid))))
;;;
;;; Partition lookup.
;;;
(define (disk-partitions)
"Return the list of device names corresponding to valid disk partitions."
(define (partition? major minor)
@ -167,42 +231,53 @@ (define (partition? major minor)
(loop (cons name parts))
(loop parts))))))))))
(define (read-ext2-superblock* device)
"Like 'read-ext2-superblock', but return #f when DEVICE does not exist
instead of throwing an exception."
(catch 'system-error
(lambda ()
(read-ext2-superblock device))
(lambda args
;; When running on the hand-made /dev,
;; 'disk-partitions' could return partitions for which
;; we have no /dev node. Handle that gracefully.
(if (= ENOENT (system-error-errno args))
(begin
(format (current-error-port)
"warning: device '~a' not found~%" device)
#f)
(apply throw args)))))
(define (ENOENT-safe proc)
"Wrap the one-argument PROC such that ENOENT errors are caught and lead to a
warning and #f as the result."
(lambda (device)
(catch 'system-error
(lambda ()
(proc device))
(lambda args
;; When running on the hand-made /dev,
;; 'disk-partitions' could return partitions for which
;; we have no /dev node. Handle that gracefully.
(if (= ENOENT (system-error-errno args))
(begin
(format (current-error-port)
"warning: device '~a' not found~%" device)
#f)
(apply throw args))))))
(define (partition-predicate field =)
"Return a predicate that returns true if the FIELD of an ext2 superblock is
= to the given value."
(lambda (expected)
"Return a procedure that, when applied to a partition name such as \"sda1\",
(define (partition-predicate read field =)
"Return a predicate that returns true if the FIELD of partition header that
was READ is = to the given value."
(let ((read (ENOENT-safe read)))
(lambda (expected)
"Return a procedure that, when applied to a partition name such as \"sda1\",
returns #t if that partition's volume name is LABEL."
(lambda (part)
(let* ((device (string-append "/dev/" part))
(sblock (read-ext2-superblock* device)))
(and sblock
(let ((actual (field sblock)))
(and actual
(= actual expected))))))))
(lambda (part)
(let* ((device (string-append "/dev/" part))
(sblock (read device)))
(and sblock
(let ((actual (field sblock)))
(and actual
(= actual expected)))))))))
(define partition-label-predicate
(partition-predicate ext2-superblock-volume-name string=?))
(partition-predicate read-ext2-superblock
ext2-superblock-volume-name
string=?))
(define partition-uuid-predicate
(partition-predicate ext2-superblock-uuid bytevector=?))
(partition-predicate read-ext2-superblock
ext2-superblock-uuid
bytevector=?))
(define partition-luks-uuid-predicate
(partition-predicate read-luks-header
luks-header-uuid
bytevector=?))
(define (find-partition-by-label label)
"Return the first partition found whose volume name is LABEL, or #f if none
@ -218,6 +293,13 @@ (define (find-partition-by-uuid uuid)
(disk-partitions))
(cut string-append "/dev/" <>)))
(define (find-partition-by-luks-uuid uuid)
"Return the first LUKS partition whose unique identifier is UUID (a bytevector),
or #f if none was found."
(and=> (find (partition-luks-uuid-predicate uuid)
(disk-partitions))
(cut string-append "/dev/" <>)))
;;;
;;; UUIDs.

View file

@ -3,6 +3,8 @@
# Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
# Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
#
# This file is part of GNU Guix.
#
@ -35,6 +37,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/algebra.scm \
gnu/packages/aidc.scm \
gnu/packages/animation.scm \
gnu/packages/anthy.scm \
gnu/packages/apl.scm \
gnu/packages/apr.scm \
gnu/packages/asciidoc.scm \
@ -57,6 +60,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/boost.scm \
gnu/packages/bootstrap.scm \
gnu/packages/busybox.scm \
gnu/packages/c.scm \
gnu/packages/calcurse.scm \
gnu/packages/ccache.scm \
gnu/packages/cdrom.scm \
@ -87,6 +91,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/dejagnu.scm \
gnu/packages/dico.scm \
gnu/packages/dictionaries.scm \
gnu/packages/dillo.scm \
gnu/packages/disk.scm \
gnu/packages/djvu.scm \
gnu/packages/dns.scm \
@ -217,6 +222,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/mail.scm \
gnu/packages/make-bootstrap.scm \
gnu/packages/markdown.scm \
gnu/packages/marst.scm \
gnu/packages/mate.scm \
gnu/packages/maths.scm \
gnu/packages/mc.scm \
@ -379,6 +385,7 @@ GNU_SYSTEM_MODULES = \
gnu/system/linux-container.scm \
gnu/system/linux-initrd.scm \
gnu/system/locale.scm \
gnu/system/mapped-devices.scm \
gnu/system/nss.scm \
gnu/system/pam.scm \
gnu/system/shadow.scm \
@ -397,10 +404,6 @@ GNU_SYSTEM_MODULES = \
patchdir = $(guilemoduledir)/gnu/packages/patches
dist_patch_DATA = \
gnu/packages/patches/abiword-explictly-cast-bools.patch \
gnu/packages/patches/abiword-link-plugins-against-backend.patch \
gnu/packages/patches/abiword-no-include-glib-internal-headers.patch \
gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch \
gnu/packages/patches/abiword-use-proper-png-api.patch \
gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \
gnu/packages/patches/acl-hurd-path-max.patch \
gnu/packages/patches/aegis-constness-error.patch \
@ -412,7 +415,6 @@ dist_patch_DATA = \
gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \
gnu/packages/patches/apr-skip-getservbyname-test.patch \
gnu/packages/patches/arb-ldconfig.patch \
gnu/packages/patches/asymptote-gsl2.patch \
gnu/packages/patches/ath9k-htc-firmware-binutils.patch \
gnu/packages/patches/ath9k-htc-firmware-gcc.patch \
gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \
@ -473,6 +475,9 @@ dist_patch_DATA = \
gnu/packages/patches/flashrom-use-libftdi1.patch \
gnu/packages/patches/flint-ldconfig.patch \
gnu/packages/patches/fltk-shared-lib-defines.patch \
gnu/packages/patches/fltk-xfont-on-demand.patch \
gnu/packages/patches/fontforge-svg-modtime.patch \
gnu/packages/patches/fossil-test-fixes.patch \
gnu/packages/patches/freeimage-CVE-2015-0852.patch \
gnu/packages/patches/gawk-fts-test.patch \
gnu/packages/patches/gawk-shell.patch \
@ -522,31 +527,22 @@ dist_patch_DATA = \
gnu/packages/patches/hydra-automake-1.15.patch \
gnu/packages/patches/hydra-disable-darcs-test.patch \
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
gnu/packages/patches/icecat-update-graphite2.patch \
gnu/packages/patches/icecat-update-graphite2-pt2.patch \
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
gnu/packages/patches/icecat-CVE-2015-4477.patch \
gnu/packages/patches/icecat-CVE-2015-7207.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch \
gnu/packages/patches/icecat-CVE-2016-1954.patch \
gnu/packages/patches/icecat-CVE-2016-1960.patch \
gnu/packages/patches/icecat-CVE-2016-1961.patch \
gnu/packages/patches/icecat-CVE-2016-1962.patch \
gnu/packages/patches/icecat-CVE-2016-1964.patch \
gnu/packages/patches/icecat-CVE-2016-1965.patch \
gnu/packages/patches/icecat-CVE-2016-1966.patch \
gnu/packages/patches/icecat-CVE-2016-1974.patch \
gnu/packages/patches/icecat-bug-1248851.patch \
gnu/packages/patches/icecat-update-bundled-graphite2.patch \
gnu/packages/patches/icecat-CVE-2016-2805.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch \
gnu/packages/patches/icecat-CVE-2016-2808.patch \
gnu/packages/patches/icecat-CVE-2016-2814.patch \
gnu/packages/patches/icu4c-CVE-2014-6585.patch \
gnu/packages/patches/icu4c-CVE-2015-1270.patch \
gnu/packages/patches/icu4c-CVE-2015-4760.patch \
gnu/packages/patches/ilmbase-fix-tests.patch \
gnu/packages/patches/imagemagick-test-segv.patch \
gnu/packages/patches/imlib2-CVE-2016-4024.patch \
gnu/packages/patches/irrlicht-mesa-10.patch \
gnu/packages/patches/jasper-CVE-2007-2721.patch \
gnu/packages/patches/jasper-CVE-2008-3520.patch \
@ -649,6 +645,7 @@ dist_patch_DATA = \
gnu/packages/patches/openimageio-boost-1.60.patch \
gnu/packages/patches/openjpeg-CVE-2015-6581.patch \
gnu/packages/patches/openjpeg-use-after-free-fix.patch \
gnu/packages/patches/openssh-CVE-2015-8325.patch \
gnu/packages/patches/openssl-runpath.patch \
gnu/packages/patches/openssl-c-rehash-in.patch \
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
@ -681,6 +678,7 @@ dist_patch_DATA = \
gnu/packages/patches/plink-1.07-unclobber-i.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/poppler-CVE-2015-8868.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/procmail-ambiguous-getline-debian.patch \
gnu/packages/patches/pt-scotch-build-parallelism.patch \
@ -705,6 +703,7 @@ dist_patch_DATA = \
gnu/packages/patches/python-paste-remove-website-test.patch \
gnu/packages/patches/python-paste-remove-timing-test.patch \
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \
gnu/packages/patches/qemu-CVE-2015-8558.patch \
gnu/packages/patches/qemu-CVE-2015-8567.patch \
gnu/packages/patches/qemu-CVE-2015-8613.patch \
@ -722,6 +721,7 @@ dist_patch_DATA = \
gnu/packages/patches/readline-link-ncurses.patch \
gnu/packages/patches/ripperx-missing-file.patch \
gnu/packages/patches/rsem-makefile.patch \
gnu/packages/patches/ruby-symlinkfix.patch \
gnu/packages/patches/sed-hurd-path-max.patch \
gnu/packages/patches/scheme48-tests.patch \
gnu/packages/patches/scotch-test-threading.patch \
@ -746,6 +746,8 @@ dist_patch_DATA = \
gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \
gnu/packages/patches/tinyxml-use-stl.patch \
gnu/packages/patches/tk-find-library.patch \
gnu/packages/patches/ttf2eot-cstddef.patch \
gnu/packages/patches/ttfautohint-source-date-epoch.patch \
gnu/packages/patches/tophat-build-with-later-seqan.patch \
gnu/packages/patches/torsocks-dns-test.patch \
gnu/packages/patches/tvtime-gcc41.patch \
@ -782,6 +784,7 @@ dist_patch_DATA = \
gnu/packages/patches/wicd-urwid-1.3.patch \
gnu/packages/patches/wicd-wpa2-ttls.patch \
gnu/packages/patches/wmctrl-64-fix.patch \
gnu/packages/patches/woff2-libbrotli.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \
gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \

View file

@ -37,6 +37,7 @@ (define-module (gnu packages)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-39)
#:export (search-patch
search-patches
search-bootstrap-binary
%patch-path
%bootstrap-binaries-path
@ -76,6 +77,11 @@ (define (search-patch file-name)
(&message (message (format #f (_ "~a: patch not found")
file-name)))))))
(define-syntax-rule (search-patches file-name ...)
"Return the list of absolute file names corresponding to each
FILE-NAME found in %PATCH-PATH."
(list (search-patch file-name) ...))
(define (search-bootstrap-binary file-name system)
"Search the bootstrap binary FILE-NAME for SYSTEM. Raise an error if not
found."

View file

@ -25,7 +25,7 @@ (define-module (gnu packages abduco)
(define-public abduco
(package
(name "abduco")
(version "0.5")
(version "0.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -33,7 +33,7 @@ (define-public abduco
version ".tar.gz"))
(sha256
(base32
"11phry5wnvwm9ckij5gxbrjfgdz3x38vpnm505q5ldc88im248mz"))))
"1x1m58ckwsprljgmdy93mvgjyg9x3cqrzdf3mysp0mx97zhhj2f9"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "CC=gcc"

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,6 +23,7 @@ (define-module (gnu packages abiword)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages enchant)
@ -41,7 +43,7 @@ (define-module (gnu packages abiword)
(define-public abiword
(package
(name "abiword")
(version "2.8.6")
(version "3.0.1")
(source
(origin
(method url-fetch)
@ -49,15 +51,10 @@ (define-public abiword
(string-append "http://abisource.org/downloads/" name "/" version
"/source/" name "-" version ".tar.gz"))
(sha256
(base32 "059sd2apxdmcacc4pll880i7vm18h0kyjsq299m1mz3c7ak8k46r"))
(base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570"))
(patches
(list
(search-patch "abiword-wmf-version-lookup-fix.patch")
(search-patch "abiword-no-include-glib-internal-headers.patch")
(search-patch "abiword-explictly-cast-bools.patch")
(search-patch "abiword-use-proper-png-api.patch")
(search-patch "abiword-pass-no-undefined-to-linker.patch")
(search-patch "abiword-link-plugins-against-backend.patch")))))
(search-patches "abiword-wmf-version-lookup-fix.patch"
"abiword-explictly-cast-bools.patch"))))
(build-system gnu-build-system)
(arguments ;; NOTE: rsvg is disabled, since Abiword
@ -65,22 +62,31 @@ (define-public abiword
(list
"--enable-clipart" ;; TODO: The following plugins have unresolved
"--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda,
(string-append ;; wordperfect, psion, mathview, goffice.
(string-append ;; wordperfect, psion, mathview.
"--enable-plugins="
"applix " "babelfish " "bmp " "clarisworks " "collab " "command "
"docbook " "eml " "freetranslation " "garble " "gdict " "gimp "
"google " "hancom " "hrtext " "iscii " "kword " "latex "
"loadbindings " "mht " "mif " "mswrite " "opendocument "
"docbook " "eml " "epub " "freetranslation " "garble " "gdict "
"gimp " "goffice " "google " "hancom " "hrtext " "iscii " "kword "
"latex " "loadbindings " "mht " "mif " "mswrite " "opendocument "
"openwriter " "openxml " "opml " "ots " "paint " "passepartout "
"pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict "
"wikipedia " "wmf " "wml " "xslfo"))))
"wikipedia " "wmf " "wml " "xslfo"))
;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen:
;; assertion 'GDK_IS_SCREEN (screen)' failed
;; GLib-GObject-CRITICAL **: g_object_get_qdata:
;; assertion 'G_IS_OBJECT (object)' failed
;; Manually starting the X server before the test phase did not help
;; the tests to pass.
#:tests? #f))
(inputs
`(("boost" ,boost)
("enchant" ,enchant)
("fontconfig" ,fontconfig)
("fribidi" ,fribidi)
("glib" ,glib)
("gtk+" ,gtk+-2)
("goffice" ,goffice)
("gtk+" ,gtk+)
("libchamplain" ,libchamplain)
("libglade" ,libglade)
("libgsf" ,libgsf)
("libjpeg" ,libjpeg)
@ -88,14 +94,17 @@ (define-public abiword
("librsvg" ,librsvg)
("libwmf" ,libwmf)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("ots" ,ots)
("popt" ,popt)
("readline" ,readline)
("telepathy" ,telepathy-glib)
("wv" ,wv)
("zlib" ,zlib)))
(native-inputs
`(("intltool" ,intltool)
("glib:bin" ,glib "bin")
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "http://abisource.org/")
(synopsis "Word processing program")

View file

@ -41,7 +41,7 @@ (define-public acl
(sha256
(base32
"08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p"))
(patches (list (search-patch "acl-hurd-path-max.patch")))))
(patches (search-patches "acl-hurd-path-max.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; FIXME: Investigate test suite failures

View file

@ -100,6 +100,35 @@ (define-public aide
(home-page "http://aide.sourceforge.net/")
(license license:gpl2+)))
(define-public progress
(package
(name "progress")
(version "0.13")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/Xfennec/"
name "/archive/v" version ".tar.gz"))
(sha256
(base32 "133iar4vq5vlklydb4cyazjy6slmpbndrws474mg738bd8avc30n"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
(arguments
`(#:tests? #f ; There is no test suite.
#:make-flags (list "CC=gcc" "LDFLAGS+=-lncurses"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; There's no configure phase.
(home-page "https://github.com/Xfennec/progress")
(synopsis "Program to view the progress of the coreutils commands")
(description "A program that looks for coreutils basic commands (cp, mv,
dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays
the percentage of copied data. It can also show estimated time and throughput,
and provides a \"top-like\" mode (monitoring).")
(license license:gpl3+)))
(define-public dmd
;; Deprecated. Kept around "just in case."
(let ((base-version "0.2")
@ -768,7 +797,7 @@ (define-public sudo
(sha256
(base32
"0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3"))
(patches (list (search-patch "sudo-CVE-2015-5602.patch")))))
(patches (search-patches "sudo-CVE-2015-5602.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -842,10 +871,10 @@ (define-public wpa-supplicant-minimal
(base32
"05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc"))
(patches
(map search-patch '("wpa-supplicant-CVE-2015-5310.patch"
"wpa-supplicant-CVE-2015-5314.patch"
"wpa-supplicant-CVE-2015-5315.patch"
"wpa-supplicant-CVE-2015-5316.patch")))))
(search-patches "wpa-supplicant-CVE-2015-5310.patch"
"wpa-supplicant-CVE-2015-5314.patch"
"wpa-supplicant-CVE-2015-5315.patch"
"wpa-supplicant-CVE-2015-5316.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-replace

View file

@ -1,7 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,12 +24,21 @@ (define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages fltk)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages perl)
#:use-module (gnu packages readline)
#:use-module (gnu packages flex)
#:use-module (gnu packages python)
#:use-module (gnu packages tcsh)
#:use-module (gnu packages texlive)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@ -188,6 +199,68 @@ (define-public gp2c
(license license:gpl2)
(home-page "http://pari.math.u-bordeaux.fr/")))
(define-public giac-xcas
(package
(name "giac-xcas")
(version "1.2.2-41")
(source (origin
(method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly
;; overwrites the release tarball there, introducing a checksum
;; mismatch every time. See
;; <https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/README>
(uri (string-append "https://www-fourier.ujf-grenoble.fr/"
"~parisse/debian/dists/stable/main/"
"source/giac_" version ".tar.gz"))
(sha256
(base32
"061a0p5l1qlb9iqk7n7yznhv2f3hvll1hrzjbhn81bf31f2wj6sq"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-bin-cp
(lambda _
;; Some Makefiles contain hard-coded "/bin/cp".
(substitute* (find-files "doc" "^Makefile")
(("/bin/cp") (which "cp")))
#t))
(add-after 'unpack 'disable-broken-test
(lambda _
;; Disable failing test. Actually, the results are correct but
;; a sorting discrepancy prevents the test from being validated.
(substitute* "check/Makefile.in"
(("chk_fhan16") ""))
#t)))))
(inputs
`(("fltk" ,fltk)
("gmp" ,gmp)
("gsl" ,gsl)
("lapack" ,lapack)
("libao" ,ao)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libx11" ,libx11)
("libxinerama" ,libxinerama)
("libxft" ,libxft)
("libxt" ,libxt)
("mesa" ,mesa)
("mpfi" ,mpfi)
("mpfr" ,mpfr)
("ntl" ,ntl)
("perl" ,perl)
("pari-gp" ,pari-gp)
("tcsh" ,tcsh)
("texlive" ,texlive-minimal)))
(native-inputs `(("readline" ,readline)))
(home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
(synopsis "Computer algebra system")
(description
"Giac/Xcas is a computer algebra system. It has a compatibility mode for
maple, mupad and the TI89. It is available as a standalone program (graphic
or text interfaces) or as a C++ library.")
(license license:gpl3+)))
(define-public flint
(package
(name "flint")
@ -199,7 +272,7 @@ (define-public flint
version ".tar.gz"))
(sha256 (base32
"11syazv1a8rrnac3wj3hnyhhflpqcmq02q8pqk2m6g2k6h0gxwfb"))
(patches (map search-patch '("flint-ldconfig.patch")))))
(patches (search-patches "flint-ldconfig.patch"))))
(build-system gnu-build-system)
(propagated-inputs
`(("gmp" ,gmp)
@ -248,7 +321,7 @@ (define-public arb
(sha256
(base32
"04hhcpshfkcq9fr4hixbhpps50yf9drk62xgkvlcaj5kb4nyrx7l"))
(patches (map search-patch '("arb-ldconfig.patch")))))
(patches (search-patches "arb-ldconfig.patch"))))
(build-system gnu-build-system)
(propagated-inputs
`(("flint" ,flint))) ; flint.h is included by arf.h
@ -322,6 +395,76 @@ (define-public ntl
(license license:gpl2+)
(home-page "http://shoup.net/ntl/")))
(define-public singular
(package
(name "singular")
(version "4.0.3")
(source (origin
(method url-fetch)
(uri (string-append "http://www.mathematik.uni-kl.de/ftp/pub/"
"Math/Singular/SOURCES/"
(string-join (string-split version #\.) "-")
"/singular-" version ".tar.gz"))
(sha256 (base32
"0viidy2fz62rln9p0s9qfs7fnm55c6fw1agydd1py26gxylp1ksc"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
("graphviz" ,graphviz)
("perl" ,perl)))
(inputs
`(("cddlib" ,cddlib)
("gmp" ,gmp)
("flint" ,flint)
("mpfr" ,mpfr)
("ntl" ,ntl)
("python" ,python-2)
("readline" ,readline)))
(arguments
`(#:configure-flags
(list (string-append "--with-ntl="
(assoc-ref %build-inputs "ntl")))))
(synopsis "Computer algebra system for polynomial computations")
(description
"Singular is a computer algebra system for polynomial computations,
with special emphasis on commutative and non-commutative algebra, algebraic
geometry and singularity theory.")
;; Singular itself is dual licensed gpl2 or gpl3, but some of the
;; libraries with which it links are licensed under lgpl3+, so the
;; combined work becomes gpl3. See COPYING in the source code.
(license license:gpl3)
(home-page "http://www.singular.uni-kl.de/index.php")))
(define-public gmp-ecm
(package
(name "gmp-ecm")
(version "7.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/"
"file/35642/ecm-"
version ".tar.gz"))
(sha256 (base32
"00jzzwqp49m01vwsr9z1w7bvm8lb69l3f62x7qr8sfz0xiczxnpm"))))
(build-system gnu-build-system)
(inputs
`(("gmp" ,gmp)))
(arguments
`(#:configure-flags '("--enable-shared"
;; Disable specific assembly routines, which depend
;; on the subarchitecture of the build machine,
;; and use gmp instead.
"--disable-asm-redc")))
(synopsis "Integer factorization library using the elliptic curve method")
(description
"GMP-ECM factors integers using the elliptic curve method (ECM) as well
as the P-1 and P+1 algorithms. It provides a library and a stand-alone
binary.")
;; Most files are under lgpl3+, but some are under gpl3+ or gpl2+,
;; so the combined work is under gpl3+.
(license license:gpl3+)
(home-page "http://ecm.gforge.inria.fr/")))
(define-public bc
(package
(name "bc")
@ -424,14 +567,14 @@ (define-public fftw-openmpi
(define-public eigen
(package
(name "eigen")
(version "3.2.7")
(version "3.2.8")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/eigen/eigen/get/"
version ".tar.bz2"))
(sha256
(base32
"0gigbjjdlw2q0gvcnyiwc6in314a647rkidk6977bwiwn88im3p5"))
"0mby6my1djsg8681fcvlaq0i4kd17fja9qn5f713j3xpfbb66akj"))
(file-name (string-append name "-" version ".tar.bz2"))
(modules '((guix build utils)))
(snippet

View file

@ -68,7 +68,7 @@ (define-public synfig
(sha256
(base32
"1d3z2r78j3rkff47q3wl0ami69y3l4nyi5r9zclymb8ar7mgkk9l"))
(patches (list (search-patch "synfig-build-fix.patch")))))
(patches (search-patches "synfig-build-fix.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

64
gnu/packages/anthy.scm Normal file
View file

@ -0,0 +1,64 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages anthy)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public anthy
(package
(name "anthy")
(version "9100h")
(source (origin
(method url-fetch)
;; The URI does not appear to be easily guessable. For
;; example, you cannot download version "9100g" simply
;; by replacing "9100h" in the URI.
(uri "http://tcpdiag.dl.osdn.jp/anthy/37536/anthy-9100h.tar.gz")
(sha256
(base32
"0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj"))))
(build-system gnu-build-system)
;; Anthy also contains elisp modules for using anthy within Emacs.
;; However, these modules are incompatible with the latest version
;; of Emacs. This is because they rely on the presence of
;; last-command-char, which was removed in Emacs 24.3. So, we
;; don't try to install them here at this time.
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(with-directory-excursion "test"
(zero? (system* "./anthy" "--all"))))))))
(home-page "http://anthy.osdn.jp/")
(synopsis "Japanese input method")
(description "Anthy is a Japanese input method for converting
hiragana text to mixed kana and kanji. It is written in the C
programming language. Anthy stores personal customizations (words it
has learned from the user's input, words the user has explicitly
added, etc.) in the ~/.anthy/ directory. This package contains the
anthy C libraries, the cannadic and alt-cannadic kana dictionaries, as
well as command-line tools for using anthy and managing
dictionaries.")
;; Most of anthy is lgpl2.1+. However, some files (e.g., from
;; alt-cannadic) use gpl2. See the file "COPYING" in the anthy
;; source for details.
(license (list lgpl2.1+ gpl2))))

View file

@ -39,7 +39,7 @@ (define-public apr
(base32
"0ypn51xblix5ys9xy7da3ngdydip0qqh9rdq8nz54w9aq8lys0vx"))
(patches
(list (search-patch "apr-skip-getservbyname-test.patch")))
(search-patches "apr-skip-getservbyname-test.patch"))
(patch-flags '("-p0"))))
(build-system gnu-build-system)
(arguments

View file

@ -47,7 +47,7 @@ (define-public audacity
"mirror://sourceforge/audacity/audacity-minsrc-" version ".tar.xz"))
(sha256
(base32 "1cs2w3fwqylpqmfwkvlgdx5lhclpckfil7pqibl37qlbnf4qvndh"))
(patches (list (search-patch "audacity-fix-ffmpeg-binding.patch")))))
(patches (search-patches "audacity-fix-ffmpeg-binding.patch"))))
(build-system gnu-build-system)
(inputs
;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree

View file

@ -333,7 +333,7 @@ (define-public csound
(sha256
(base32
"0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
(patches (list (search-patch "csound-header-ordering.patch")))))
(patches (search-patches "csound-header-ordering.patch"))))
(build-system cmake-build-system)
(arguments
;; Work around this error on x86_64 with libc 2.22+:
@ -862,15 +862,15 @@ (define-public freepats
(define-public guitarix
(package
(name "guitarix")
(version "0.34.0")
(version "0.35.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/guitarix/guitarix2-"
version ".tar.bz2"))
version ".tar.xz"))
(sha256
(base32
"0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8"))))
"10hijqrrl8xil46kgsac10ysfxysisxlibm2rz133zyig5n63jdw"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@ -2064,7 +2064,7 @@ (define-public portaudio
".tgz"))
(sha256
(base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g"))
(patches (list (search-patch "portaudio-audacity-compat.patch")))))
(patches (search-patches "portaudio-audacity-compat.patch"))))
(build-system gnu-build-system)
(inputs
;; TODO: Add ASIHPI.
@ -2096,14 +2096,14 @@ (define-public portaudio
(define-public qsynth
(package
(name "qsynth")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
(sha256
(base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
(base32 "034p6mbwrjnxd9b6h20cidxi4ilkk3cgpjp154j0jzjs1ipf7x2h"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no "check" phase

View file

@ -195,9 +195,8 @@ (define-public automake
(base32
"0dl6vfi2lzz8alnklwxzfz624b95hb1ipjvd3mk177flmddcf24r"))
(patches
(map search-patch
'("automake-regexp-syntax.patch"
"automake-skip-amhello-tests.patch")))))
(search-patches "automake-regexp-syntax.patch"
"automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,(autoconf-wrapper))
@ -273,8 +272,7 @@ (define-public libtool
(sha256
(base32
"0vxj52zm709125gwv9qqlw02silj8bnjnh4y07arrz60r31ai1vw"))
(patches
(list (search-patch "libtool-skip-tests2.patch")))))
(patches (search-patches "libtool-skip-tests2.patch"))))
(build-system gnu-build-system)
(propagated-inputs `(("m4" ,m4)))
(native-inputs `(("m4" ,m4)

View file

@ -41,7 +41,7 @@ (define-public avahi
(sha256
(base32
"0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))
(patches (list (search-patch "avahi-localstatedir.patch")))))
(patches (search-patches "avahi-localstatedir.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-distro=none"

View file

@ -61,8 +61,8 @@ (define-public duplicity
(sha256
(base32
"0jh79syhr8n3l81jxlwsmwm1pklb4d923m2lgqbswyavh1fqmvwb"))
(patches (list (search-patch "duplicity-piped-password.patch")
(search-patch "duplicity-test_selection-tmp.patch")))))
(patches (search-patches "duplicity-piped-password.patch"
"duplicity-test_selection-tmp.patch"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
@ -146,10 +146,10 @@ (define-public libarchive
(base32
"0pixqnrcf35dnqgv0lp7qlcw7k13620qkhgxr288v7p4iz6ym1zb"))
(patches
(list (search-patch "libarchive-mtree-filename-length-fix.patch")
(search-patch "libarchive-fix-lzo-test-case.patch")
(search-patch "libarchive-CVE-2013-0211.patch")
(search-patch "libarchive-bsdtar-test.patch")))))
(search-patches "libarchive-mtree-filename-length-fix.patch"
"libarchive-fix-lzo-test-case.patch"
"libarchive-CVE-2013-0211.patch"
"libarchive-bsdtar-test.patch"))))
(build-system gnu-build-system)
;; TODO: Add -L/path/to/nettle in libarchive.pc.
(inputs
@ -377,8 +377,7 @@ (define-public libchop
(sha256
(base32
"0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g"))
(patches
(list (search-patch "diffutils-gets-undeclared.patch")))))
(patches (search-patches "diffutils-gets-undeclared.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("guile" ,guile-2.0)
@ -410,13 +409,13 @@ (define-public libchop
(define-public borg
(package
(name "borg")
(version "1.0.0")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32
"0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh"))))
"1myz10pwxnac9z59gw1w3xjhz6ghx03vngpl97ca527pj0r39shi"))))
(build-system python-build-system)
(arguments
`(#:phases

View file

@ -82,8 +82,7 @@ (define-public grep
(sha256
(base32
"0c38b67cnwchwzv4wq2gpz6smkhdxrac2hhssv8f0l04qnx867p2"))
(patches
(list (search-patch "grep-timing-sensitive-test.patch")))))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) ;some of the tests require it
(synopsis "Print lines matching a pattern")
@ -109,7 +108,7 @@ (define-public sed
(sha256
(base32
"1myvrmh99jsvk7v3d7crm0gcrq51hmmm1r2kjyyci152in1x2j7h"))
(patches (list (search-patch "sed-hurd-path-max.patch")))))
(patches (search-patches "sed-hurd-path-max.patch"))))
(build-system gnu-build-system)
(synopsis "Stream editor")
(arguments
@ -145,9 +144,8 @@ (define-public tar
(sha256
(base32
"1wi2zwm4c9r3h3b8y4w0nm0qq897kn8kyj9k22ba0iqvxj48vvk4"))
(patches (map search-patch
'("tar-d_ino_in_dirent-fix.patch"
"tar-skip-unreliable-tests.patch")))))
(patches (search-patches "tar-d_ino_in_dirent-fix.patch"
"tar-skip-unreliable-tests.patch"))))
(build-system gnu-build-system)
(synopsis "Managing tar archives")
(description
@ -171,7 +169,7 @@ (define-public patch
(sha256
(base32
"16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx"))
(patches (list (search-patch "patch-hurd-path-max.patch")))))
(patches (search-patches "patch-hurd-path-max.patch"))))
(build-system gnu-build-system)
(native-inputs `(("ed" ,ed)))
(synopsis "Apply differences to originals, with optional backups")
@ -217,9 +215,8 @@ (define-public findutils
(sha256
(base32
"178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y"))
(patches (map search-patch
'("findutils-localstatedir.patch"
"findutils-test-xargs.patch")))))
(patches (search-patches "findutils-localstatedir.patch"
"findutils-test-xargs.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list
@ -316,7 +313,7 @@ (define-public gnu-make
(sha256
(base32
"19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb"))
(patches (list (search-patch "make-impure-dirs.patch")))))
(patches (search-patches "make-impure-dirs.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile
(inputs `(("guile" ,guile-2.0)))
@ -354,8 +351,8 @@ (define-public binutils
(sha256
(base32
"08lzmhidzc16af1zbx34f8cy4z7mzrswpdbhrb8shy3xxpflmcdm"))
(patches (list (search-patch "binutils-ld-new-dtags.patch")
(search-patch "binutils-loongson-workaround.patch")))))
(patches (search-patches "binutils-ld-new-dtags.patch"
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
;; TODO: Add dependency on zlib + those for Gold.
@ -475,10 +472,9 @@ (define-public glibc
(("use_ldconfig=yes")
"use_ldconfig=no")))
(modules '((guix build utils)))
(patches (map search-patch
'("glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-o-largefile.patch")))))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-o-largefile.patch"))))
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@ -644,7 +640,7 @@ (define-public glibc-2.21
(sha256
(base32
"1f135546j34s9bfkydmx2nhh9vwxlx60jldi80zmsnln6wj3dsxf"))
(patches (list (search-patch "glibc-ldd-x86_64.patch")))))))
(patches (search-patches "glibc-ldd-x86_64.patch"))))))
(define-public glibc-locales
(package
@ -764,8 +760,7 @@ (define-public glibc/hurd
(base32
"17gsh0kaz0zyvghjmx861mi2p65m9901lngi179x61zm6v2v3xc4"))
(file-name (string-append name "-" version))
(patches (map search-patch
'("glibc-hurd-extern-inline.patch")))))
(patches (search-patches "glibc-hurd-extern-inline.patch"))))
;; Libc provides <hurd.h>, which includes a bunch of Hurd and Mach headers,
;; so both should be propagated.

View file

@ -285,7 +285,7 @@ (define-public bash-completion
(base32
"0kxf8s5bw7y50x0ksb77d3kv0dwadixhybl818w27y6mlw26hq1b"))
(patches
(list (search-patch "bash-completion-directories.patch")))))
(search-patches "bash-completion-directories.patch"))))
(build-system gnu-build-system)
(native-inputs `(("util-linux" ,util-linux)))
(arguments

View file

@ -716,7 +716,7 @@ (define-public tophat
(sha256
(base32
"168zlzykq622zbgkh90a90f1bdgsxkscq2zxzbj8brq80hbjpyp7"))
(patches (list (search-patch "tophat-build-with-later-seqan.patch")))
(patches (search-patches "tophat-build-with-later-seqan.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -922,6 +922,75 @@ (define-public python-pysam
(define-public python2-pysam
(package-with-python2 python-pysam))
(define-public python-twobitreader
(package
(name "python-twobitreader")
(version "3.1.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "twobitreader" version))
(sha256
(base32
"0y408fp6psqzwxpcpqn0wp7fr41dwz8d54wpj6j261fj5q8vs169"))))
(properties `((python2-variant . ,(delay python2-twobitreader))))
(build-system python-build-system)
(native-inputs
`(("python-sphinx" ,python-sphinx)))
(home-page "https://github.com/benjschiller/twobitreader")
(synopsis "Python library for reading .2bit files")
(description
"twobitreader is a Python library for reading .2bit files as used by the
UCSC genome browser.")
(license license:artistic2.0)))
(define-public python2-twobitreader
(let ((base (package-with-python2 (strip-python2-variant python-twobitreader))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public python-plastid
(package
(name "python-plastid")
(version "0.4.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "plastid" version))
(sha256
(base32
"1nhxw8a5gn9as58i2ih52c5cjwj48ik418pzsjwph3s66mmy9yvq"))))
(properties `((python2-variant . ,(delay python2-plastid))))
(build-system python-build-system)
(arguments
;; Some test files are not included.
`(#:tests? #f))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)
("python-pandas" ,python-pandas)
("python-pysam" ,python-pysam)
("python-matplotlib" ,python-matplotlib)
("python-biopython" ,python-biopython)
("python-twobitreader" ,python-twobitreader)))
(native-inputs
`(("python-cython" ,python-cython)
("python-nose" ,python-nose)))
(home-page "https://github.com/joshuagryphon/plastid")
(synopsis "Python library for genomic analysis")
(description
"plastid is a Python library for genomic analysis in particular,
high-throughput sequencing data with an emphasis on simplicity.")
(license license:bsd-3)))
(define-public python2-plastid
(let ((base (package-with-python2 (strip-python2-variant python-plastid))))
(package
(inherit base)
;; setuptools is required at runtime
(propagated-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-propagated-inputs base))))))
(define-public cd-hit
(package
(name "cd-hit")
@ -1156,8 +1225,7 @@ (define-public crossmap
"07y179f63d7qnzdvkqcziwk9bs3k4zhp81q392fp1hwszjdvy22f"))
;; This patch has been sent upstream already and is available
;; for download from Sourceforge, but it has not been merged.
(patches (list
(search-patch "crossmap-allow-system-pysam.patch")))
(patches (search-patches "crossmap-allow-system-pysam.patch"))
(modules '((guix build utils)))
;; remove bundled copy of pysam
(snippet
@ -2076,9 +2144,9 @@ (define-public htseq
from high-throughput sequencing assays.")
(license license:gpl3+)))
(define-public htsjdk
(define-public java-htsjdk
(package
(name "htsjdk")
(name "java-htsjdk")
(version "1.129")
(source (origin
(method url-fetch)
@ -2480,6 +2548,41 @@ (define-public miso
that a read originated from a particular isoform.")
(license license:gpl2)))
(define-public muscle
(package
(name "muscle")
(version "3.8.1551")
(source (origin
(method url-fetch/tarbomb)
(file-name (string-append name "-" version))
(uri (string-append
"http://www.drive5.com/muscle/muscle_src_"
version ".tar.gz"))
(sha256
(base32
"0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "LDLIBS = -lm")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'check
;; There are no tests, so just test if it runs.
(lambda _ (zero? (system* "./muscle" "-version"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "muscle" bin)))))))
(home-page "http://www.drive5.com/muscle")
(synopsis "Multiple sequence alignment program")
(description
"MUSCLE aims to be a fast and accurate multiple sequence alignment
program for nucleotide and protein sequences.")
;; License information found in 'muscle -h' and usage.cpp.
(license license:public-domain)))
(define-public orfm
(package
(name "orfm")
@ -2722,7 +2825,7 @@ (define-public rsem
version ".tar.gz"))
(sha256
(base32 "0nzdc0j0hjllhsd5f2xli95dafm3nawskigs140xzvjk67xh0r9q"))
(patches (list (search-patch "rsem-makefile.patch")))
(patches (search-patches "rsem-makefile.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2834,7 +2937,7 @@ (define-public rseqc
(define-public samtools
(package
(name "samtools")
(version "1.3")
(version "1.3.1")
(source
(origin
(method url-fetch)
@ -2843,7 +2946,7 @@ (define-public samtools
version "/samtools-" version ".tar.bz2"))
(sha256
(base32
"03mnf0mhbfwhqlqfslrhfnw68s3g0fs1as354i9a584mqw1l1smy"))))
"0znnnxc467jbf1as2dpskrjhfh8mbll760j6w6rdkwlwbqsp8gbc"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
@ -3013,9 +3116,9 @@ (define-public ngs-sdk
simultaneously.")
(license license:public-domain)))
(define-public ngs-java
(define-public java-ngs
(package (inherit ngs-sdk)
(name "ngs-java")
(name "java-ngs")
(arguments
`(,@(substitute-keyword-arguments
`(#:modules ((guix build gnu-build-system)
@ -3078,7 +3181,7 @@ (define-public ncbi-vdb
(string-append "--with-ngs-sdk-prefix="
(assoc-ref inputs "ngs-sdk"))
(string-append "--with-ngs-java-prefix="
(assoc-ref inputs "ngs-java"))
(assoc-ref inputs "java-ngs"))
(string-append "--with-hdf5-prefix="
(assoc-ref inputs "hdf5"))))))
(alist-cons-after
@ -3104,7 +3207,7 @@ (define-public ncbi-vdb
(inputs
`(("libxml2" ,libxml2)
("ngs-sdk" ,ngs-sdk)
("ngs-java" ,ngs-java)
("java-ngs" ,java-ngs)
("libmagic" ,file)
("hdf5" ,hdf5)))
(native-inputs `(("perl" ,perl)))
@ -3129,7 +3232,7 @@ (define-public plink
version "-src.zip"))
(sha256
(base32 "0as8gxm4pjyc8dxmm1sl873rrd7wn5qs0l29nqfnl31x8i467xaa"))
(patches (list (search-patch "plink-1.07-unclobber-i.patch")))))
(patches (search-patches "plink-1.07-unclobber-i.patch"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no "check" target
@ -3889,13 +3992,13 @@ (define-public bioruby
(define-public r-acsnminer
(package
(name "r-acsnminer")
(version "0.15.11")
(version "0.16.01.29")
(source (origin
(method url-fetch)
(uri (cran-uri "ACSNMineR" version))
(sha256
(base32
"1dl4drhjyazwm9wxlm8yfppwvvj4h6jxwmz8kfw5bxpb3jdnsqvy"))))
"1b1243wkncanm1blkqzicjgzb576vzcg4iwinsgn2xqr7f264amf"))))
(properties `((upstream-name . "ACSNMineR")))
(build-system r-build-system)
(propagated-inputs
@ -4036,6 +4139,38 @@ (define-public r-genomeinfodb
names in their natural, rather than lexicographic, order.")
(license license:artistic2.0)))
(define-public r-variantannotation
(package
(name "r-variantannotation")
(version "1.16.4")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "VariantAnnotation" version))
(sha256
(base32
"1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb"))))
(properties
`((upstream-name . "VariantAnnotation")))
(inputs
`(("zlib" ,zlib)))
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
("r-biocgenerics" ,r-biocgenerics)
("r-bsgenome" ,r-bsgenome)
("r-dbi" ,r-dbi)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicfeatures" ,r-genomicfeatures)
("r-genomicranges" ,r-genomicranges)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-rsamtools" ,r-rsamtools)
("r-zlibbioc" ,r-zlibbioc)))
(build-system r-build-system)
(home-page "https://bioconductor.org/packages/VariantAnnotation")
(synopsis "Package for annotation of genetic variants")
(description "This R package can annotate variants, compute amino acid
coding changes and predict coding outcomes.")
(license license:artistic2.0)))
(define-public r-xvector
(package
(name "r-xvector")
@ -4716,10 +4851,184 @@ (define-public r-org-mm-eg-db
annotations for the genome of the model mouse Mus musculus.")
(license license:artistic2.0)))
(define-public r-seqlogo
(package
(name "r-seqlogo")
(version "1.36.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "seqLogo" version))
(sha256
(base32
"0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k"))))
(properties `((upstream-name . "seqLogo")))
(build-system r-build-system)
(home-page "http://bioconductor.org/packages/seqLogo")
(synopsis "Sequence logos for DNA sequence alignments")
(description
"seqLogo takes the position weight matrix of a DNA sequence motif and
plots the corresponding sequence logo as introduced by Schneider and
Stephens (1990).")
(license license:lgpl2.0+)))
(define-public r-bsgenome-hsapiens-ucsc-hg19
(package
(name "r-bsgenome-hsapiens-ucsc-hg19")
(version "1.4.0")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Hsapiens.UCSC.hg19_"
version ".tar.gz"))
(sha256
(base32
"1y0nqpk8cw5a34sd9hmin3z4v7iqm6hf6l22cl81vlbxqbjibxc8"))))
(properties
`((upstream-name . "BSgenome.Hsapiens.UCSC.hg19")))
(build-system r-build-system)
;; As this package provides little more than a very large data file it
;; doesn't make sense to build substitutes.
(arguments `(#:substitutable? #f))
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
"http://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/")
(synopsis "Full genome sequences for Homo sapiens")
(description
"This package provides full genome sequences for Homo sapiens as provided
by UCSC (hg19, February 2009) and stored in Biostrings objects.")
(license license:artistic2.0)))
(define-public r-bsgenome-mmusculus-ucsc-mm9
(package
(name "r-bsgenome-mmusculus-ucsc-mm9")
(version "1.4.0")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Mmusculus.UCSC.mm9_"
version ".tar.gz"))
(sha256
(base32
"1birqw30g2azimxpnjfzmkphan7x131yy8b9h85lfz5fjdg7841i"))))
(properties
`((upstream-name . "BSgenome.Mmusculus.UCSC.mm9")))
(build-system r-build-system)
;; As this package provides little more than a very large data file it
;; doesn't make sense to build substitutes.
(arguments `(#:substitutable? #f))
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
"http://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9/")
(synopsis "Full genome sequences for Mouse")
(description
"This package provides full genome sequences for Mus musculus (Mouse) as
provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
(license license:artistic2.0)))
(define-public r-bsgenome-celegans-ucsc-ce6
(package
(name "r-bsgenome-celegans-ucsc-ce6")
(version "1.4.0")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Celegans.UCSC.ce6_"
version ".tar.gz"))
(sha256
(base32
"0mqzb353xv2c3m3vkb315dkmnxkgczp7ndnknyhpgjlybyf715v9"))))
(properties
`((upstream-name . "BSgenome.Celegans.UCSC.ce6")))
(build-system r-build-system)
;; As this package provides little more than a very large data file it
;; doesn't make sense to build substitutes.
(arguments `(#:substitutable? #f))
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
"http://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce6/")
(synopsis "Full genome sequences for Worm")
(description
"This package provides full genome sequences for Caenorhabditis
elegans (Worm) as provided by UCSC (ce6, May 2008) and stored in Biostrings
objects.")
(license license:artistic2.0)))
(define-public r-bsgenome-dmelanogaster-ucsc-dm3
(package
(name "r-bsgenome-dmelanogaster-ucsc-dm3")
(version "1.4.0")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Dmelanogaster.UCSC.dm3_"
version ".tar.gz"))
(sha256
(base32
"19bm3lkhhkag3gnwp419211fh0cnr0x6fa0r1lr0ycwrikxdxsv8"))))
(properties
`((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3")))
(build-system r-build-system)
;; As this package provides little more than a very large data file it
;; doesn't make sense to build substitutes.
(arguments `(#:substitutable? #f))
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
"http://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3/")
(synopsis "Full genome sequences for Fly")
(description
"This package provides full genome sequences for Drosophila
melanogaster (Fly) as provided by UCSC (dm3, April 2006) and stored in
Biostrings objects.")
(license license:artistic2.0)))
(define-public r-motifrg
(package
(name "r-motifrg")
(version "1.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "motifRG" version))
(sha256
(base32
"1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn"))))
(properties `((upstream-name . "motifRG")))
(build-system r-build-system)
(propagated-inputs
`(("r-biostrings" ,r-biostrings)
("r-bsgenome" ,r-bsgenome)
("r-bsgenome.hsapiens.ucsc.hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
("r-iranges" ,r-iranges)
("r-seqlogo" ,r-seqlogo)
("r-xvector" ,r-xvector)))
(home-page "http://bioconductor.org/packages/motifRG")
(synopsis "Discover motifs in high throughput sequencing data")
(description
"This package provides tools for discriminative motif discovery in high
throughput genetic sequencing data sets using regression methods.")
(license license:artistic2.0)))
(define-public r-qtl
(package
(name "r-qtl")
(version "1.38-4")
(version "1.39-5")
(source
(origin
(method url-fetch)
@ -4727,7 +5036,7 @@ (define-public r-qtl
version ".tar.gz"))
(sha256
(base32
"0rv9xhp8lyldpgwxqirhyjqvg07dr5x4x1x2jpyj37dada9ccyx3"))))
"1grwgvyv7x0dgay1858bg7qf4wk47gpnq7qkqpcda9cn0h970d6f"))))
(build-system r-build-system)
(home-page "http://rqtl.org/")
(synopsis "R package for analyzing QTL experiments in genetics")
@ -4741,6 +5050,25 @@ (define-public r-qtl
two-dimensional genome scans.")
(license license:gpl3)))
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
(version "1.16.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "zlibbioc" version))
(sha256
(base32
"01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw"))))
(properties
`((upstream-name . "zlibbioc")))
(build-system r-build-system)
(home-page "https://bioconductor.org/packages/zlibbioc")
(synopsis "Provider for zlib-1.2.5 to R packages")
(description "This package uses the source code of zlib-1.2.5 to create
libraries for systems that do not have these available via other means.")
(license license:artistic2.0)))
(define-public pepr
(package
(name "pepr")
@ -4781,3 +5109,31 @@ (define-public pepr
the same group, and look for consistent differences between ChIP and control
group or two ChIP groups run under different conditions.")
(license license:gpl3+)))
(define-public filevercmp
(let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
(package
(name "filevercmp")
(version (string-append "0-1." (string-take commit 7)))
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ekg/filevercmp/archive/"
commit ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests to run.
#:phases
(modify-phases %standard-phases
(delete 'configure) ; There is no configure phase.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "filevercmp" bin)))))))
(home-page "https://github.com/ekg/filevercmp")
(synopsis "This program compares version strings")
(description "This program compares version strings. It intends to be a
replacement for strverscmp.")
(license license:gpl3+))))

View file

@ -207,7 +207,7 @@ (define-public transmission-remote-cli
(define-public aria2
(package
(name "aria2")
(version "1.21.0")
(version "1.22.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/tatsuhiro-t/aria2/"
@ -215,7 +215,7 @@ (define-public aria2
name "-" version ".tar.xz"))
(sha256
(base32
"1035rzx9y7qv4p7cv04f461343dxha7ikprch059x2fci8n5yp12"))))
"12agwdvvkr34wqhyyfp418dj0k7nbr297qmcd3wj5kkn7brv6gxc"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-libaria2")

View file

@ -125,7 +125,7 @@ (define* (package-from-tarball name source program-to-test description
("tarball" ,(bootstrap-origin (source (%current-system))))))
(source #f)
(synopsis description)
(description #f)
(description description)
(home-page #f)
(license gpl3+)))
@ -166,11 +166,13 @@ (define* (glibc-dynamic-linker
((string=? system "mips64el-linux") "/lib/ld.so.1")
((string=? system "i586-gnu") "/lib/ld.so.1")
((string=? system "i686-gnu") "/lib/ld.so.1")
((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1")
;; XXX: This one is used bare-bones, without a libc, so add a case
;; here just so we can keep going.
((string=? system "xtensa-elf") "no-ld.so")
((string=? system "avr") "no-ld.so")
((string=? system "i686-mingw") "no-ld.so")
(else (error "dynamic linker name not known for this system"
system))))
@ -410,7 +412,7 @@ (define %bootstrap-glibc
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description #f)
(description synopsis)
(home-page #f)
(license lgpl2.1+)))
@ -495,7 +497,7 @@ (define %bootstrap-gcc
(variable "LIBRARY_PATH")
(files '("lib" "lib64")))))
(synopsis "Bootstrap binaries of the GNU Compiler Collection")
(description #f)
(description synopsis)
(home-page #f)
(license gpl3+)))

127
gnu/packages/c.scm Normal file
View file

@ -0,0 +1,127 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages c)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages perl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages guile))
(define-public tcc
(package
(name "tcc") ;aka. "tinycc"
(version "0.9.26")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/tinycc/tcc-"
version ".tar.bz2"))
(sha256
(base32
"0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("texinfo" ,texinfo)))
(arguments
`(#:configure-flags (list (string-append "--elfinterp="
(assoc-ref %build-inputs "libc")
,(glibc-dynamic-linker))
(string-append "--crtprefix="
(assoc-ref %build-inputs "libc")
"/lib")
(string-append "--sysincludepaths="
(assoc-ref %build-inputs "libc")
"/include:"
(assoc-ref %build-inputs
"linux-headers")
"/include:{B}/include")
(string-append "--libpaths="
(assoc-ref %build-inputs "libc")
"/lib"))
#:test-target "test"))
(synopsis "Tiny and fast C compiler")
(description
"TCC, also referred to as \"TinyCC\", is a small and fast C compiler
written in C. It supports ANSI C with GNU and extensions and most of the C99
standard.")
(home-page "http://www.tinycc.org/")
(license license:lgpl2.1+)))
(define-public tcc-wrapper
(package
(inherit tcc)
(name "tcc-wrapper")
(build-system trivial-build-system)
(native-inputs '())
(inputs `(("tcc" ,tcc)
("guile" ,guile-2.0)))
;; By default TCC does not honor any search path environment variable.
;; This wrapper adds them.
;;
;; FIXME: TCC includes its own linker so our 'ld-wrapper' hack to set the
;; RUNPATH is ineffective here. We should modify TCC itself.
(native-search-paths
(list (search-path-specification
(variable "TCC_CPATH")
(files '("include")))
(search-path-specification
(variable "TCC_LIBRARY_PATH")
(files '("lib" "lib64")))))
(arguments
'(#:builder
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin"))
(tcc (assoc-ref %build-inputs "tcc"))
(guile (assoc-ref %build-inputs "guile")))
(mkdir out)
(mkdir bin)
(call-with-output-file (string-append bin "/cc")
(lambda (port)
(format port "#!~a/bin/guile --no-auto-compile~%!#~%" guile)
(write
`(begin
(use-modules (ice-9 match)
(srfi srfi-26))
(define (split path)
(string-tokenize path (char-set-complement
(char-set #\:))))
(apply execl ,(string-append tcc "/bin/tcc")
,(string-append tcc "/bin/tcc") ;argv[0]
(append (cdr (command-line))
(match (getenv "TCC_CPATH")
(#f '())
(str
(map (cut string-append "-I" <>)
(split str))))
(match (getenv "TCC_LIBRARY_PATH")
(#f '())
(str
(map (cut string-append "-L" <>)
(split str)))))))
port)
(chmod port #o777)))
#t)))
(synopsis "Wrapper providing the 'cc' command for TCC")))

View file

@ -164,7 +164,7 @@ (define-public cdparanoia
(sha256
(base32
"1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))
(patches (list (search-patch "cdparanoia-fpic.patch")))
(patches (search-patches "cdparanoia-fpic.patch"))
(modules '((guix build utils)))
(snippet
;; Make libraries respect LDFLAGS.

View file

@ -52,10 +52,10 @@ (define-public hydra
(sha256
(base32
"08vc76xb7f42hh65j7qvjf58hw36aki5ml343170pq94vk75b1nh"))
(patches (map search-patch
'("hydra-automake-1.15.patch"
;; TODO: Remove once we have a darcs input
"hydra-disable-darcs-test.patch")))))
(patches (search-patches
"hydra-automake-1.15.patch"
;; TODO: Remove once we have a darcs input
"hydra-disable-darcs-test.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("unzip" ,unzip)

View file

@ -46,7 +46,7 @@ (define-public cmake
(sha256
(base32
"1yly38mpk2s08b4rglp9xcw5pxalk0whp9hrcg7j8qpxlkc3mj4j"))
(patches (list (search-patch "cmake-fix-tests.patch")))))
(patches (search-patches "cmake-fix-tests.patch"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"

View file

@ -3,12 +3,13 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,6 +34,7 @@ (define-module (gnu packages compression)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages perl)
@ -688,3 +690,68 @@ (define-public pixz
possible and can compress in parallel. This is especially useful for large
tarballs.")
(license license:bsd-2)))
(define-public brotli
(let ((commit "e992cce7a174d6e2b3486616499d26bb0bad6448")
(revision "1"))
(package
(name "brotli")
(version (string-append "0.1-" revision "."
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bagder/libbrotli.git")
(commit commit)
(recursive? #t)))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
"1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
(modules '((guix build utils)))
(snippet
;; This is a recursive submodule that is unnecessary for this
;; package, so delete it.
'(delete-file-recursively "brotli/terryfy"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(mkdir "m4")
(zero? (system* "autoreconf" "-vfi")))))))
(home-page "https://github.com/bagder/libbrotli/")
(synopsis "Implementation of the Brotli compression algorithm")
(description
"Brotli is a general-purpose lossless compression algorithm. It is
similar in speed to deflate but offers denser compression. This package
provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,
respectively, based on the reference implementation from Google.")
(license license:expat))))
(define-public cabextract
(package
(name "cabextract")
(version "1.6")
(source (origin
(method url-fetch)
(uri (string-append
"http://cabextract.org.uk/cabextract-" version ".tar.gz"))
(sha256
(base32
"1ysmmz25fjghq7mxb2anyyvr1ljxqxzi4piwjhk0sdamcnsn3rnf"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--with-external-libmspack")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libmspack" ,libmspack)))
(home-page "http://www.cabextract.org.uk/")
(synopsis "Tool to unpack Cabinet archives")
(description "Extracts files out of Microsoft Cabinet (.cab) archives")
;; Some source files specify gpl2+, lgpl2+, however COPYING is gpl3.
(license license:gpl3+)))

View file

@ -36,7 +36,7 @@ (define-public cpio
(sha256
(base32
"0vi9q475h1rki53100zml75vxsykzyhrn70hidy41s5c2rc8r6bh"))
(patches (list (search-patch "cpio-CVE-2016-2037.patch")))))
(patches (search-patches "cpio-CVE-2016-2037.patch"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/cpio/")
(synopsis "Manage cpio and tar file archives")

View file

@ -201,7 +201,7 @@ (define (cross-gcc-patches target)
"Return GCC patches needed for TARGET."
(cond ((string-prefix? "xtensa-" target)
;; Patch by Qualcomm needed to build the ath9k-htc firmware.
(list (search-patch "ath9k-htc-firmware-gcc.patch")))
(search-patches "ath9k-htc-firmware-gcc.patch"))
(else '())))
(define* (cross-gcc target

View file

@ -1,7 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,6 +27,10 @@ (define-module (gnu packages cups)
#:use-module (gnu packages)
#:use-module (gnu packages avahi)
#:use-module (gnu packages compression)
#:use-module (gnu packages libusb)
#:use-module (gnu packages autotools)
#:use-module (gnu packages python)
#:use-module (gnu packages scanner)
#:use-module (gnu packages image)
#:use-module (gnu packages fonts) ;font-dejavu
#:use-module (gnu packages fontutils)
@ -297,3 +302,113 @@ (define-public cups
("gnutls" ,gnutls)
("cups-filters" ,cups-filters)
("zlib" ,zlib)))))
(define-public hplip
(package
(name "hplip")
(version "3.16.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/"
"hplip-" version ".tar.gz"))
(sha256
(base32
"1501qdnkjp1ybgagy5188fmf6cgmj5555ygjl3543nlbwcp31lj2"))))
(build-system gnu-build-system)
(home-page "http://hplipopensource.com/")
(synopsis "HP Printer Drivers")
(description "Hewlett-Packard Printer Drivers and PPDs.")
;; The 'COPYING' file lists directories where each of these 3 licenses
;; applies.
(license (list license:gpl2+ license:bsd-3 license:expat))
;; TODO install apparmor profile files eventually.
(arguments
`(#:configure-flags
`("--disable-network-build"
,(string-append "--prefix=" (assoc-ref %outputs "out"))
,(string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc")
;; Disable until mime.types merging works (FIXME).
"--disable-fax-build"
"--enable-hpcups-install"
"--enable-new-hpcups"
"--enable-cups_ppd_install"
"--enable-cups_drv_install"
;; TODO add foomatic drv install eventually.
;; TODO --enable-policykit eventually.
,(string-append "--with-cupsfilterdir="
(assoc-ref %outputs "out") "/lib/cups/filter")
,(string-append "--with-cupsbackenddir="
(assoc-ref %outputs "out") "/lib/cups/backend")
,(string-append "--with-icondir="
(assoc-ref %outputs "out") "/share/applications")
,(string-append "--with-systraydir="
(assoc-ref %outputs "out") "/etc/xdg"))
#:imported-modules ((guix build python-build-system)
,@%gnu-build-system-modules)
#:modules ((guix build gnu-build-system)
(guix build utils)
((guix build python-build-system) #:prefix python:))
#:phases (modify-phases %standard-phases
(add-after 'unpack 'fix-hard-coded-file-names
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
;; FIXME: use merged ppds (I think actually only
;; drvs need to be merged).
(cupsdir (assoc-ref inputs "cups-minimal")))
(substitute* "base/g.py"
(("'/usr/share;[^']*'")
(string-append "'" cupsdir "/share'"))
(("'/etc/hp/hplip.conf'")
(string-append "'" out
"/etc/hp/hplip.conf" "'")))
(substitute* "Makefile.in"
(("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
;; FIXME Use beginning-of-word in regexp.
(("[[:blank:]]plugin\\.py[[:blank:]]") " ")
(("/usr/include/libusb-1.0")
(string-append (assoc-ref inputs "libusb")
"/include/libusb-1.0"))
(("^\tinstall-dist_hplip_stateDATA")
;; Remove dependencies on
;; 'install-dist_hplip_stateDATA' so we don't bail
;; out while trying to create /var/lib/hplip.
"\t")
(("hplip_confdir = /etc/hp")
;; This is only used for installing the default config.
(string-append "hplip_confdir = " out
"/etc/hp"))
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
;; Note: We don't use hal.
(string-append "halpredir = " out
"/share/hal/fdi/preprobe/10osvendor"))
(("rulesdir = /etc/udev/rules.d")
;; udev rules will be merged by base service.
(string-append "rulesdir = " out
"/lib/udev/rules.d"))
(("rulessystemdir = /usr/lib/systemd/system")
;; We don't use systemd.
(string-append "rulessystemdir = " out
"/lib/systemd/system"))
(("/etc/sane.d")
(string-append out "/etc/sane.d"))))))
;; Wrap bin/* so that the Python libs are found.
(add-after 'install 'wrap-binaries
(assoc-ref python:%standard-phases 'wrap)))))
;; Python3 support is available starting from hplip@3.15.2.
(inputs `(("libjpeg" ,libjpeg)
("cups-minimal" ,cups-minimal)
("libusb" ,libusb)
("sane-backends" ,sane-backends)
("dbus" ,dbus)
("python-wrapper" ,python-wrapper)
("python" ,python)
;; TODO: Make hp-setup find python-dbus.
("python-dbus" ,python-dbus)))
(native-inputs `(("pkg-config" ,pkg-config)))))

View file

@ -133,7 +133,7 @@ (define-public bdb
(define-public mysql
(package
(name "mysql")
(version "5.7.11")
(version "5.7.12")
(source (origin
(method url-fetch)
(uri (list (string-append
@ -145,7 +145,7 @@ (define-public mysql
name "-" version ".tar.gz")))
(sha256
(base32
"03hzd2ikabxhh5ch2yvml2nks2wpv3qbkqmx3520in6khypwgy2l"))))
"11qwbid666fspq143ymi86yva2b01lybaqh26k92rciasav3r11j"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
@ -810,14 +810,14 @@ (define-public unqlite
(define-public redis
(package
(name "redis")
(version "3.0.4")
(version "3.0.7")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
"1kqjc4qrasadgnl3cg71x3g5qpw2rilyk4pwl151698rb2nr0pm3"))))
"08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests related to master/slave and replication fail

View file

@ -52,13 +52,16 @@ (define-public radicale
(define-public vdirsyncer
(package
(name "vdirsyncer")
(version "0.9.2")
(version "0.10.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "vdirsyncer" version))
(uri (string-append "https://pypi.python.org/packages/0b/fb/"
"c42223e1e9169e4770194e62143d431755724b080d8cb"
"77f14705b634815/"
"vdirsyncer-" version ".tar.gz"))
(sha256
(base32
"1g1107cz4sk41d2z6k6pn9n2fzd26m72j8aj33zn483vfvmyrc4q"))))
"1gf86sbd6w0w4zayh9r3irlp5jwrzbjikjc0vs5zkdpa5c199f78"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -100,7 +103,6 @@ (define-public vdirsyncer
("python-click" ,python-click)
("python-click-log" ,python-click-log)
("python-click-threading" ,python-click-threading)
("python-lxml" ,python-lxml)
("python-requests-toolbelt" ,python-requests-toolbelt)))
(synopsis "Synchronize calendars and contacts")
(description "Vdirsyncer synchronizes your calendars and addressbooks

View file

@ -43,9 +43,8 @@ (define-public dico
(sha256
(base32
"04pjks075x20d19l623mj50bw64g8i41s63z4kzzqcbg9qg96x64"))
(patches (map search-patch
'("cpio-gets-undeclared.patch"
"dico-libtool-deterministic.patch")))))
(patches (search-patches "cpio-gets-undeclared.patch"
"dico-libtool-deterministic.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--with-guile-site-dir=" %output

63
gnu/packages/dillo.scm Normal file
View file

@ -0,0 +1,63 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages dillo)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages image)
#:use-module (gnu packages tls)
#:use-module (gnu packages xorg)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public dillo
(package
(name "dillo")
(version "3.0.5")
(source (origin
(method url-fetch)
(uri (string-append "http://www.dillo.org/download/"
name "-" version ".tar.bz2"))
(sha256
(base32
"12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv"))))
(build-system gnu-build-system)
(arguments `(#:configure-flags '("--enable-ssl" "--enable-ipv6")))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("fltk" ,fltk)
("fontconfig" ,fontconfig)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libxcursor" ,libxcursor)
("libxft" ,libxft)
("libxi" ,libxi)
("libxinerama" ,libxinerama)
("openssl" ,openssl)
("perl" ,perl)
("zlib" ,zlib)))
(synopsis "Very small and fast graphical web browser")
(description "Dillo is a minimalistic web browser particularly intended for
older or slower computers and embedded systems.")
(home-page "http://www.dillo.org")
(license license:gpl3+)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -74,7 +75,7 @@ (define-public docbook-xml
(define-public docbook-xml-4.4
(package (inherit docbook-xml)
(version "4.4")
(version "4.4")
(source (origin
(method url-fetch)
(uri (string-append "http://www.docbook.org/xml/" version
@ -85,7 +86,7 @@ (define-public docbook-xml-4.4
(define-public docbook-xml-4.3
(package (inherit docbook-xml)
(version "4.3")
(version "4.3")
(source (origin
(method url-fetch)
(uri (string-append "http://www.docbook.org/xml/" version
@ -96,7 +97,7 @@ (define-public docbook-xml-4.3
(define-public docbook-xml-4.2
(package (inherit docbook-xml)
(version "4.2")
(version "4.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.docbook.org/xml/" version
@ -105,6 +106,29 @@ (define-public docbook-xml-4.2
(base32
"18hgwvmywh6a5jh38szjmg3hg2r4v5lb6r3ydc3rd8cp9wg61i5c"))))))
(define-public docbook-xml-4.1.2
(package (inherit docbook-xml)
(version "4.1.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.docbook.org/xml/" version
"/docbkx412.zip"))
(sha256
(base32
"0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h"))))
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source"))
(unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(dtd (string-append (assoc-ref %outputs "out")
"/xml/dtd/docbook")))
(mkdir-p dtd)
(zero? (system* unzip source "-d" dtd))))))))
(define-public docbook-xsl
(package
(name "docbook-xsl")

View file

@ -40,7 +40,7 @@ (define-public doxygen
(sha256
(base32
"0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35"))
(patches (list (search-patch "doxygen-test.patch")))))
(patches (search-patches "doxygen-test.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("bison" ,bison)

View file

@ -50,7 +50,7 @@ (define-public chmlib
(sha256
(base32
"18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l"))
(patches (list (search-patch "chmlib-inttypes.patch")))))
(patches (search-patches "chmlib-inttypes.patch"))))
(build-system gnu-build-system)
(home-page "http://www.jedrea.com/chmlib/")
(synopsis "Library for CHM files")
@ -77,8 +77,8 @@ (define-public calibre
'(begin
(delete-file-recursively "src/unrar")
(delete-file "src/odf/thumbnail.py")))
(patches (list (search-patch "calibre-drop-unrar.patch")
(search-patch "calibre-no-updates-dialog.patch")))))
(patches (search-patches "calibre-drop-unrar.patch"
"calibre-no-updates-dialog.patch"))))
(build-system python-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)

View file

@ -39,8 +39,7 @@ (define-public elfutils
(sha256
(base32
"0w50szymyqvx8g0vkwrvnv17grqxva6x1z9dm9m3i99zg2hr232p"))
(patches
(list (search-patch "elfutils-tests-ptrace.patch")))))
(patches (search-patches "elfutils-tests-ptrace.patch"))))
(build-system gnu-build-system)
;; Separate programs because that's usually not what elfutils users want,
@ -108,7 +107,7 @@ (define-public patchelf
(sha256
(base32
"1rqpg84wrd3fa16wa9vqdvasnc05yz49w207cz1l0wrl4k8q97y9"))
(patches (list (search-patch "patchelf-page-size.patch")))))
(patches (search-patches "patchelf-page-size.patch"))))
(build-system gnu-build-system)
;; XXX: The upstream 'patchelf' doesn't support ARM. The only available

View file

@ -6,6 +6,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -76,8 +77,8 @@ (define-public emacs
(sha256
(base32
"0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
(patches (list (search-patch "emacs-exec-path.patch")
(search-patch "emacs-source-date-epoch.patch")))))
(patches (search-patches "emacs-exec-path.patch"
"emacs-source-date-epoch.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@ -300,7 +301,7 @@ (define-public paredit
(define-public git-modes
(package
(name "git-modes")
(version "1.2.1")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -309,7 +310,7 @@ (define-public git-modes
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"088wyddh8y0yw77i0hx449n9zg4wzyc90h63wlmxba1ijg4dzm0p"))))
"0gb9c18jib8rpm14vig9774104lwmd8353ps0259m861syf6664d"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@ -345,7 +346,7 @@ (define-public git-modes
(define-public emacs-with-editor
(package
(name "emacs-with-editor")
(version "2.5.0")
(version "2.5.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -354,7 +355,7 @@ (define-public emacs-with-editor
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"19gb381z61l2icg5v5pymgi1a11g3zdp5aysl2j5fh7fxxg4d4c0"))))
"1lqm0msc9lzb05ys96bsx8bf2y1qrw27dh5h6qz8lf5i4cbhflw2"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
@ -370,7 +371,7 @@ (define-public emacs-with-editor
(define-public magit
(package
(name "magit")
(version "2.6.0")
(version "2.6.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -378,7 +379,7 @@ (define-public magit
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"04km5j6118yqz7h3dyfd4ijjd6w3pb76pjlaj25wh1bchf1yilir"))))
"0im1jrqw29g5anrrjflj6b2gpyqkvpghnq8zvywxyhmjwzar4rn7"))))
(build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-no-x)))
@ -1300,7 +1301,7 @@ (define-public emacs-scheme-complete
(base32
"141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
(patches
(list (search-patch "emacs-scheme-complete-scheme-r5rs-info.patch")))))
(search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
(build-system emacs-build-system)
(home-page "https://github.com/ashinn/scheme-complete")
(synopsis "Smart tab completion for Scheme in Emacs")
@ -1377,8 +1378,7 @@ (define-public emacs-constants
(file-name (string-append name "-" version ".el"))
(method uncompressed-file-fetch)
(uri "https://staff.fnwi.uva.nl/c.dominik/Tools/constants/constants.el")
(patches
(list (search-patch "emacs-constants-lisp-like.patch")))
(patches (search-patches "emacs-constants-lisp-like.patch"))
(sha256
(base32
"14q094aphsjhq8gklv7i5a7byl0ygz63cv3n6b5p8ji2jy0mnnw3"))))
@ -1499,3 +1499,55 @@ (define-public emacs-god-mode
insertion mode. When enabled all keys are implicitly prefixed with
@samp{C-} (among other helpful shortcuts).")
(license license:gpl3+))))
(define-public emacs-rfcview
(package
(name "emacs-rfcview")
(version "0.13")
(home-page "http://www.loveshack.ukfsn.org/emacs")
(source (origin
(method uncompressed-file-fetch)
(uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
(sha256
(base32
"0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
(build-system emacs-build-system)
(native-inputs
`(("emacs" ,emacs-no-x)))
(synopsis "Prettify Request for Comments (RFC) documents")
(description "The Internet Engineering Task Force (IETF) and the Internet
Society (ISOC) publish various Internet-related protocols and specifications
as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
documents. RFCs and STDs are published in a simple text form. This package
provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
read these documents in Emacs. It prettifies the text and adds
hyperlinks/menus for easier navigation. It also provides functions for
browsing the index of RFC documents and fetching them from remote servers or
local directories.")
(license license:gpl3+)))
(define-public emacs-ffap-rfc-space
(package
(name "emacs-ffap-rfc-space")
(version "12")
(home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html")
(source (origin
(method uncompressed-file-fetch)
(uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
(sha256
(base32
"1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
(build-system emacs-build-system)
(native-inputs
`(("emacs" ,emacs-no-x)))
(synopsis "Make ffap recognize an RFC with a space before its number")
(description "The Internet Engineering Task Force (IETF) and the
Internet Society (ISOC) publish various Internet-related protocols and
specifications as \"Request for Comments\" (RFC) documents. The
built-in Emacs module \"ffap\" (Find File at Point) has the ability to
recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
and load the appropriate RFC from a remote server. However, it fails
to recognize a name like \"RFC 1234\". This package enhances ffap so
that it correctly finds RFCs even when a space appears before the
number.")
(license license:gpl3+)))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -45,6 +46,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@ -124,13 +126,22 @@ (define-public geda-gaf
'check 'set-home
(lambda _
(setenv "HOME" (getenv "TMPDIR")))
%standard-phases)))
%standard-phases
)
#:configure-flags
(let ((pcb (assoc-ref %build-inputs "pcb")))
(list (string-append "--with-pcb-datadir=" pcb "/share")
(string-append "--with-pcb-lib-path="
pcb "/share/pcb/pcblib-newlib:"
pcb "/share/pcb/newlib")))))
(inputs
`(("glib" ,glib)
("gtk" ,gtk+-2)
("guile" ,guile-2.0)
("desktop-file-utils" ,desktop-file-utils)
("shared-mime-info" ,shared-mime-info)))
("shared-mime-info" ,shared-mime-info)
("m4" ,m4)
("pcb" ,pcb)))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl))) ; for tests
@ -221,8 +232,8 @@ (define-public fastcap
(modules '((guix build utils)
(guix build download)
(guix ftp-client)))
(patches (list (search-patch "fastcap-mulSetup.patch")
(search-patch "fastcap-mulGlobal.patch")))))
(patches (search-patches "fastcap-mulSetup.patch"
"fastcap-mulGlobal.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,texlive)
@ -318,11 +329,11 @@ (define-public fasthenry
"-" version ".tar.z"))
(sha256
(base32 "1a06xyyd40zhknrkz17xppl2zd5ig4w9g1grc8qrs0zqqcl5hpzi"))
(patches (list (search-patch "fasthenry-spAllocate.patch")
(search-patch "fasthenry-spBuild.patch")
(search-patch "fasthenry-spUtils.patch")
(search-patch "fasthenry-spSolve.patch")
(search-patch "fasthenry-spFactor.patch")))))
(patches (search-patches "fasthenry-spAllocate.patch"
"fasthenry-spBuild.patch"
"fasthenry-spUtils.patch"
"fasthenry-spSolve.patch"
"fasthenry-spFactor.patch"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all")

View file

@ -39,7 +39,7 @@ (define-public ath9k-htc-firmware
(base32
"16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
(file-name (string-append name "-" version "-checkout"))
(patches (list (search-patch "ath9k-htc-firmware-objcopy.patch")))))
(patches (search-patches "ath9k-htc-firmware-objcopy.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-before

View file

@ -44,7 +44,7 @@ (define-public flashrom
(sha256
(base32
"1s9pc4yls2s1gcg2ar4q75nym2z5v6lxq36bl6lq26br00nj2mas"))
(patches (list (search-patch "flashrom-use-libftdi1.patch")))))
(patches (search-patches "flashrom-use-libftdi1.patch"))))
(build-system gnu-build-system)
(inputs `(("dmidecode" ,dmidecode)
("pciutils" ,pciutils)
@ -88,7 +88,7 @@ (define-public avrdude
(sha256
(base32
"0frxg0q09nrm95z7ymzddx7ysl77ilfbdix1m81d9jjpiv5bm64y"))
(patches (list (search-patch "avrdude-fix-libusb.patch")))))
(patches (search-patches "avrdude-fix-libusb.patch"))))
(build-system gnu-build-system)
(inputs
`(("libelf" ,libelf)
@ -117,7 +117,7 @@ (define-public dfu-programmer
(sha256
(base32
"15gr99y1z9vbvhrkd25zqhnzhg6zjmaam3vfjzf2mazd39mx7d0x"))
(patches (list (search-patch "dfu-programmer-fix-libusb.patch")))))
(patches (search-patches "dfu-programmer-fix-libusb.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -46,12 +47,14 @@ (define-public fltk
(sha256
(base32
"15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))
(patches (list (search-patch "fltk-shared-lib-defines.patch")))))
(patches (search-patches "fltk-shared-lib-defines.patch"
"fltk-xfont-on-demand.patch"))))
(build-system gnu-build-system)
(inputs
`(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
("libpng" ,libpng)
("libx11" ,libx11)
("libxft" ,libxft)
("mesa" ,mesa)
("zlib" ,zlib)))
(arguments

View file

@ -8,6 +8,7 @@
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Jookia <166291@gmail.com>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -306,7 +307,9 @@ (define-public font-gnu-freefont-ttf
"The GNU Freefont project aims to provide a set of free outline
(PostScript Type0, TrueType, OpenType...) fonts covering the ISO
10646/Unicode UCS (Universal Character Set).")
(license license:gpl3+)))
(license license:gpl3+)
(properties '((upstream-name . "freefont")
(ftp-directory . "/gnu/freefont")))))
(define-public font-liberation
(package
@ -759,3 +762,49 @@ (define-public font-un
@item UnGungseo: cursive, brush-stroke.
@end enumerate\n")
(license license:gpl2+)))
(define-public font-fantasque-sans
(package
(name "font-fantasque-sans")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/belluzj/fantasque-sans/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"07fpy53k2x2nz5q61swkab6cfk9gw2kc4x4brsj6zjgbm16fap85"))))
(build-system gnu-build-system)
(native-inputs
`(("ttfautohint" ,ttfautohint)
("woff-tools" ,woff-tools)
("fontforge" ,fontforge)
("woff2" ,woff2)
("ttf2eot" ,ttf2eot)))
(arguments
`(#:tests? #f ;test target intended for visual inspection
#:phases (modify-phases %standard-phases
(delete 'configure) ;no configuration
(replace 'install
;; 'make install' wants to install to ~/.fonts, install to
;; output instead.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(font-dir (string-append out "/share/fonts"))
(truetype-dir (string-append font-dir "/truetype"))
(opentype-dir (string-append font-dir "/opentype"))
(webfonts-dir (string-append font-dir "/webfonts")))
(copy-recursively "OTF" opentype-dir)
(for-each (lambda (f) (install-file f truetype-dir))
(find-files "." "\\.ttf$"))
(copy-recursively "Webfonts" webfonts-dir)
#t))))))
(synopsis "Font family with a monospaced variant for programmers")
(description
"Fantasque Sans Mono is a programming font designed with functionality in
mind. The font includes a bold version and a good italic version with new
glyph designs, not just an added slant.")
(home-page "https://fontlibrary.org/en/font/fantasque-sans-mono")
(license license:silofl1.1)))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
@ -29,6 +29,8 @@ (define-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages python)
#:use-module (gnu packages image)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages glib)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gtk)
@ -37,6 +39,7 @@ (define-module (gnu packages fontutils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix svn-download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
@ -70,6 +73,155 @@ (define-public freetype
(license license:freetype) ; some files have other licenses
(home-page "http://www.freetype.org/")))
(define-public ttfautohint
(package
(name "ttfautohint")
(version "1.5")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/freetype/ttfautohint-"
version ".tar.gz"))
(sha256
(base32
"1lgghck46p33z3hg8dnl76jryig4fh6d8rhzms837zp7x4hyfkv4"))
(patches (list (search-patch "ttfautohint-source-date-epoch.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
("bison" ,bison)
("pkg-config" ,pkg-config)))
(inputs
`(("freetype" ,freetype)
("harfbuzz" ,harfbuzz)))
(arguments
`(#:configure-flags '("--with-qt=no"))) ;no gui
(synopsis "Automated font hinting")
(description
"ttfautohint provides a 99% automated hinting process and a platform for
finely hand-hinting the last 1%. It is ideal for web fonts and supports many
scripts.")
(license (list license:gpl2+ license:freetype)) ;choose one or the other
(home-page "http://www.freetype.org/ttfautohint/")))
(define-public woff-tools
(package
(name "woff-tools")
(version "2009.10.04")
(source
(origin
(method url-fetch)
;; Upstream source is unversioned, so use Debian's versioned tarball
(uri (string-append "mirror://debian/pool/main/w/woff-tools/"
"woff-tools_" version ".orig.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(arguments
`(#:make-flags '("CC=gcc")
#:tests? #f ;no tests
#:phases
(modify-phases %standard-phases
(delete 'configure) ;no configuration
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "sfnt2woff" bin)
(install-file "woff2sfnt" bin)))))))
(synopsis "Convert between OpenType and WOFF fonts")
(description
"This package provides two tools:
@table @code
@item sfnt2woff
Converts OpenType fonts to WOFF fonts
@item woff2sfnt
Converts WOFF fonts to OpenType fonts
@end table")
(license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+))
(home-page "https://people.mozilla.com/~jkew/woff/")))
(define-public ttf2eot
(package
(name "ttf2eot")
(version "0.0.2-2")
(source
(origin
(method url-fetch)
(uri (string-append "https://storage.googleapis.com/"
"google-code-archive-downloads/v2/"
"code.google.com/ttf2eot/"
"ttf2eot-" version ".tar.gz"))
(sha256
(base32
"1f4dzzmhn0208dvbm3ia5ar6ls9apwc6ampy5blmfxkigi6z0g02"))
(patches (list (search-patch "ttf2eot-cstddef.patch")))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
#:phases
(modify-phases %standard-phases
(delete 'configure) ;no configuration
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "ttf2eot" bin)))))))
(synopsis "Convert from TrueType to Embeddable Open Type")
(description
"This package contains a commandline wrapper around OpenTypeUtilities.cpp
from Chromium, used to make EOT (Embeddable Open Type) files from
TTF (TrueType/OpenType Font) files.")
;; While the README states "License: Derived from WebKit, so BSD/LGPL
;; 2/LGPL 2.1", the single derived source file includes only BSD in its
;; license header, and the wrapper source contains no license header.
(license license:bsd-2)
(home-page "https://code.google.com/archive/p/ttf2eot/")))
(define-public woff2
(let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
(revision "1"))
(package
(name "woff2")
(version (string-append "20160306-" revision "."
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/woff2.git")
(commit commit)))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
"0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp"))
(patches (list (search-patch "woff2-libbrotli.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("brotli" ,brotli)))
(arguments
`(#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "woff2_compress" bin)
(install-file "woff2_decompress" bin)
#t))))))
(synopsis "Compress TrueType fonts to WOFF2")
(description
"This package provides utilities for compressing/decompressing TrueType
fonts to/from the WOFF2 format.")
(license license:asl2.0)
(home-page "https://github.com/google/woff2"))))
(define-public fontconfig
(package
(name "fontconfig")
@ -341,30 +493,26 @@ (define-public libuninameslist
(define-public fontforge
(package
(name "fontforge")
(version "20150824")
(version "20160404")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/fontforge/fontforge/releases/download/"
version "/fontforge-" version ".tar.gz"))
version "/fontforge-dist-" version ".tar.gz"))
(sha256 (base32
"0gfcm8yn1d30giqhdwbchnfnspcqypqdzrxlhqhwy1i18wgl0v2v"))
"1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc"))
(modules '((guix build utils)))
(snippet
'(begin
;; Make builds bit-reproducible by using fixed date strings.
(substitute* "configure"
(("^FONTFORGE_MODTIME=.*$")
"FONTFORGE_MODTIME=\"1458399002\"\n")
"FONTFORGE_MODTIME=\"1459819518L\"\n")
(("^FONTFORGE_MODTIME_STR=.*$")
"FONTFORGE_MODTIME_STR=\"15:50 CET 19-Mar-2016\"\n")
"FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n")
(("^FONTFORGE_VERSIONDATE=.*$")
"FONTFORGE_VERSIONDATE=\"20160319\"\n"))
;; Make TTF builds bit-reproducible by clearing the timestamp
;; that goes in TTF files.
(substitute* "fontforge/tottf.c"
(("cvt_unix_to_1904\\(now") "cvt_unix_to_1904(0"))))))
"FONTFORGE_VERSIONDATE=\"20160404\"\n"))))
(patches (list (search-patch "fontforge-svg-modtime.patch")))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -372,7 +520,6 @@ (define-public fontforge
("fontconfig" ,fontconfig) ;dlopen'd
("freetype" ,freetype)
("gettext" ,gnu-gettext)
("giflib" ,giflib) ;needs giflib 4.*
("glib" ,glib) ;needed for pango detection
("libICE" ,libice)
("libSM" ,libsm)
@ -383,6 +530,7 @@ (define-public fontforge
("libpng" ,libpng)
("libspiro" ,libspiro)
("libtiff" ,libtiff)
("libungif" ,libungif)
("libuninameslist" ,libuninameslist)
("libxft" ,libxft)
("libxml2" ,libxml2)
@ -393,39 +541,30 @@ (define-public fontforge
(arguments
'(#:tests? #f
#:phases
(alist-cons-before
'configure 'patch-configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((libxml2 (assoc-ref inputs "libxml2"))
(cairo (assoc-ref inputs "cairo"))
(pango (assoc-ref inputs "pango")))
(substitute* "configure"
;; configure looks for a directory to be present to determine
;; whether libxml2 is available, rather than checking for the
;; library or headers. Point it to the correct directory.
(("/usr/include/libxml2")
(string-append libxml2 "/include/libxml2"))
;; Similary, the search directories for cairo and pango are
;; hard-coded.
(("gww_prefix in.*") (string-append "gww_prefix in "
cairo " " pango "\n")))))
(alist-cons-after
'install 'set-library-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(potrace (string-append (assoc-ref inputs "potrace") "/bin")))
(wrap-program (string-append out "/bin/fontforge")
;; Fontforge dynamically opens libraries.
`("LD_LIBRARY_PATH" ":" prefix
,(map (lambda (input)
(string-append (assoc-ref inputs input)
"/lib"))
'("libtiff" "libjpeg" "libpng" "giflib"
"libxml2" "zlib" "libspiro" "freetype"
"pango" "cairo" "fontconfig")))
;; Checks for potrace program at runtime
`("PATH" ":" prefix (,potrace)))))
%standard-phases))))
(modify-phases %standard-phases
(add-after 'build 'build-contrib
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(and (zero? (system* "make" "-Ccontrib/fonttools"
"CC=gcc" "showttf"))
(begin (install-file "contrib/fonttools/showttf" bin)
#t)))))
(add-after 'install 'set-library-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(potrace (string-append (assoc-ref inputs "potrace") "/bin")))
(wrap-program (string-append out "/bin/fontforge")
;; Fontforge dynamically opens libraries.
`("LD_LIBRARY_PATH" ":" prefix
,(map (lambda (input)
(string-append (assoc-ref inputs input)
"/lib"))
'("libtiff" "libjpeg" "libpng" "libungif"
"libxml2" "zlib" "libspiro" "freetype"
"pango" "cairo" "fontconfig")))
;; Checks for potrace program at runtime
`("PATH" ":" prefix (,potrace)))))))))
(synopsis "Outline font editor")
(description
"FontForge allows you to create and modify postscript, truetype and

View file

@ -43,9 +43,8 @@ (define-public lftp
(sha256
(base32
"1grmp8zg7cjgjinz66mrh53whigkqzl90nlxj05hapnhk3ns3vni"))
(patches
(list (search-patch
"lftp-dont-save-unknown-host-fingerprint.patch")))))
(patches (search-patches
"lftp-dont-save-unknown-host-fingerprint.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -126,7 +125,7 @@ (define-public weex
(sha256
(base32
"0f5cj5p852wkm24mzy2sxgxyahv2p9rk4wlq21j310pi7wlhgwyl"))
(patches (list (search-patch "weex-vacopy.patch")))))
(patches (search-patches "weex-vacopy.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -6,6 +6,7 @@
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -407,3 +408,35 @@ (define-public aseprite
the creation of animations, tiled graphics, texture atlases, and more.")
(home-page "http://www.aseprite.org/")
(license license:gpl2+)))
(define-public qqwing
(package
(name "qqwing")
(version "1.3.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://qqwing.com/"
name "-" version ".tar.gz"))
(sha256
(base32
"0bw0papyqjg22z6irf36gs54y8236wa37b6gyn2h1spy65n76lqp"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://qqwing.com/")
(synopsis "Sudoku puzzle solver and generator")
(description
"QQWing is a Sudoku puzzle generator and solver.
It offers the following features:
@enumerate
@item Can solve 1000 puzzles in 1 second and generate 1000 puzzles in 25 seconds.
@item Uses logic. Uses as many solve techniques as possible when solving
puzzles rather than guessing.
@item Rates puzzles. Most generators don't give an indication of the difficulty
of a Sudoku puzzle. QQwing does.
@item Can print solve instructions for any puzzle.
@item Customizable output style, including a CSV style that is easy to
import into a database.
@end enumerate")
(license license:gpl2+)))

View file

@ -17,6 +17,8 @@
;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,6 +36,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages games)
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@ -61,6 +64,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages haskell)
#:use-module (gnu packages mp3)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
@ -220,7 +224,7 @@ (define-public pingus
(sha256
(base32
"0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m"))
(patches (list (search-patch "pingus-sdl-libs-config.patch")))))
(patches (search-patches "pingus-sdl-libs-config.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("scons" ,scons)))
@ -598,8 +602,8 @@ (define-public mars
(sha256
(base32
"1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh"))
(patches (list (search-patch "mars-sfml-2.3.patch")
(search-patch "mars-install.patch")))))
(patches (search-patches "mars-sfml-2.3.patch"
"mars-install.patch"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; There are no tests
@ -1185,7 +1189,7 @@ (define-public raincat
(define-public manaplus
(package
(name "manaplus")
(version "1.6.3.12")
(version "1.6.4.23")
(source (origin
(method url-fetch)
(uri (string-append
@ -1193,7 +1197,7 @@ (define-public manaplus
version "/manaplus-" version ".tar.xz"))
(sha256
(base32
"02bnd4nk1qzrfqckqkwb6sbjzsmacv968ih74cdgcykslpsr684d"))))
"1ja2w86rz3pliq0sdc7yxppsdjg3d1ymcx9fdsiwnw6fv5a8nbzj"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@ -1709,8 +1713,7 @@ (define-public mupen64plus-ui-console
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
(patches
(list (search-patch "mupen64plus-ui-console-notice.patch")))))
(patches (search-patches "mupen64plus-ui-console-notice.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -1859,6 +1862,74 @@ (define-public emulation-station
(home-page "http://www.emulationstation.org")
(license license:expat)))
(define openttd-engine
(package
(name "openttd-engine")
(version "1.6.0")
(source
(origin (method url-fetch)
(uri (string-append "http://binaries.openttd.org/releases/"
version "/openttd-" version "-source.tar.xz"))
(sha256
(base32
"1cjf9gz7d0sn7893wv9d00q724sxv3d81bgb0c5f5ppz2ssyc4jc"))
(modules '((guix build utils)))
(snippet
;; The DOS port contains proprietary software.
'(delete-file-recursively "os/dos"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; The build process fails if the configure script is passed the
;; option "--enable-fast-install".
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(lzo (assoc-ref inputs "lzo")))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
;; Provide the "lzo" path.
(string-append "--with-liblzo2="
lzo "/lib/liblzo2.a")
;; Put the binary in 'bin' instead of 'games'.
"--binary-dir=bin"))))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("allegro" ,allegro-4)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("icu4c" ,icu4c)
("libpng" ,libpng)
("lzo" ,lzo)
("sdl" ,sdl)
("xz" ,xz)
("zlib" ,zlib)))
(synopsis "Transportation economics simulator")
(description "OpenTTD is a game in which you transport goods and
passengers by land, water and air. It is a re-implementation of Transport
Tycoon Deluxe with many enhancements including multiplayer mode,
internationalization support, conditional orders and the ability to clone,
autoreplace and autoupdate vehicles.")
(home-page "http://openttd.org/")
;; This package is GPLv2, except for a few files located in
;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib
;; licenses. In addition, this software contains an in-game downloader
;; from which the user may find non-functional data licensed under
;; different terms.
(license (list license:bsd-3 license:gpl2 license:lgpl2.1+ license:zlib))))
;; TODO Add 'openttd-opengfx' and 'openttd-openmsx' packages and make
;; 'openttd' a wrapper around them. The engine is playable by itself,
;; but it asks a user to download graphics if it's not found.
(define-public openttd
(package
(inherit openttd-engine)
(name "openttd")))
(define-public pinball
(package
(name "pinball")
@ -1871,12 +1942,11 @@ (define-public pinball
(sha256
(base32
"1f2whlrfidwfh8lvr8cspcyirc6840r5d1ajm7x99qmngygrhixs"))
(patches (map search-patch
'("pinball-const-fix.patch"
"pinball-cstddef.patch"
"pinball-missing-separators.patch"
"pinball-src-deps.patch"
"pinball-system-ltdl.patch")))))
(patches (search-patches "pinball-const-fix.patch"
"pinball-cstddef.patch"
"pinball-missing-separators.patch"
"pinball-src-deps.patch"
"pinball-system-ltdl.patch"))))
(build-system gnu-build-system)
(inputs
`(("glu" ,glu)
@ -1965,7 +2035,7 @@ (define-public einstein
(sha256
(base32
"1hxrlv6n8py48j487i6wbb4n4vd55w0na69r7ccmmr9vmrsw5mlk"))
(patches (list (search-patch "einstein-build.patch")))))
(patches (search-patches "einstein-build.patch"))))
(build-system gnu-build-system)
(inputs
`(("freetype" ,freetype)
@ -2026,3 +2096,148 @@ (define-public powwow
the chat server psyced with the specific config located at
http://lavachat.symlynx.com/unix/")
(license license:gpl2+)))
(define-public redeclipse
(let ((data-sources
'(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q")
("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il")
("appleflap" "1cn41c6xs68l88rmphqh4rlsh6h04xnkkvklxdpqpvvr4zlsmi85")
("blendbrush" "0wjbgnniirl9arv274m8mpdqbbq7d09g0pq1z9dl56sazmbk5yy0")
("caustics" "0gxv1pqhi6c27mqi9mwqyfnzv9rq5sva1vgxhb9ljh231rmkdc15")
("crosshairs" "0vlyhd10mly2qnjpwvss9ani7dg3v2njpf7457ilx7fk9a3hlbkk")
("elyvisions" "0s0l77rd9fd09imvj05pwcz4bqrn3j8qsw8prv5pi5bqa50mbn19")
("fonts" "0apn8j9lf43nmnidq1f0azhrr1n896g7si4djbix1bwll6ild0mq")
("freezurbern" "0y60s3g8v8bl2m6pk2yr9fzl67ymv821x6l2f9hszzydlcjwlscn")
("john" "1lmwn0r7qpyac2qrnkv9llhsbyzqpgr27hxq2qn1rfbq12fja0ld")
("jojo" "0sh3ricqlqw868a0mz2n9iw7lhp650pysd2wkcdizhcmw2hlayx9")
("jwin" "1r459jhxx64j3vdw886ypkm6zg0yg6cr2qark54i1zdskjhp762k")
("luckystrike" "08xq87crcz0jq45q1g6p8h4xrm1bcqzd019zp7n0f9c3p9j6al91")
("maps" "1f0hqh8mbd4nzqi4hja4k5f380nszhx8igajg5ini4p9cp39x9vi")
("mayhem" "1hn9jp64aiz8k6p2nxyg82h2nc8fadgghzhrm26y7i4bz9xwxacm")
("mikeplus64" "1kj2zznxykgm3f1h1fvd8xzim5f292lyh96l2gj5km1nynzjmaap")
("misc" "1phmzjs5rmika3568b7jb6ywbsi40r711rhg8cbsflllcp7hdidf")
("nobiax" "08in9c24m2pq7x371q10ny4q3l1l3zb8m029iypy2lx9gr99i7hm")
("particles" "0wcd3s6vhrjknffnfqrcpkcqk1r01f1fiz6q7n4srhpdv3i4d6vm")
("philipk" "1s0kmap8iv5sddanrhycblskj3ywvz9xg2m11f6vnfy108palkga")
("projectiles" "0xdhrs9rsncd1f88s5igdbfksli7h0irg5jdbj6p2a3rgdzb3gnj")
("props" "1sbh3a94pmzic78bil0dvdh4fd8s6gh52f77jdram3w0gwv79x3r")
("skyboxes" "0hy95a6ps0fk4cq8j6pjipk8rnsjna9bm0ly2l373gbshlfg6zgi")
("sounds" "1pnyd7acm19sj1k1cy9hq3n3dnzzaiak7j5f0h7fikiybq5rdk7b")
("textures" "0gxfnc4xm0kp3pd7lhd4yy1dqq00g727h21l64nyiw2b2d6n1755")
("torley" "1cri5mf8ls8mvpn1x1p9hacyg9ibilaiz07gqv2hl2q8ww5xc1s6")
("trak" "0xyk5z59kn9ym9n5fdcrwhqig6gjcjgnrgi9rqbbai713w9vpsbq")
("ulukai" "0ziv9c4inmza40mas1w9dp048y6f646x00bs7kqv33hd1snbg3v3")
("unnamed" "0hm291k9azilnp0m04zhm52vml1rhxk1z4l74v66spbikr6s2zdx")
("vanities" "1qbc2v67kdrlvq10miw3dfmg3j9w9bq1hgqrzjcbph0l4gra1ndw")
("vegetation" "13928yw0wflcj620cmp8rqwplaw8508f3j4zi32vxida1ksz6xn0")
("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3")
("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g"))))
(package
(name "redeclipse")
(version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/red-eclipse/base"
"/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1y0jv5lz69zisiw8sd5z9a9v21zc83by1sx9b7dly78ngif4gc4l"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
#:make-flags (list "CC=gcc" "-Csrc"
(string-append "INSTDIR="
(assoc-ref %outputs "out") "/bin"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-data
(lambda* (#:key inputs #:allow-other-keys)
(delete-file-recursively "data")
(mkdir "data")
(for-each (lambda (name)
(system* "tar" "-xvf"
(assoc-ref inputs name)
"-Cdata"
"--transform"
(string-append "s/"
name "-1.5.3/"
name "/")))
(list ,@(map car data-sources)))
#t))
(delete 'configure) ; no configure script
(add-after 'set-paths 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append (assoc-ref inputs "sdl-union")
"/include/SDL"))
#t))
(add-after 'install 'copy-data
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively "config"
(string-append out "/config"))
(copy-recursively "data"
(string-append out "/data")))
#t))
(add-after 'copy-data 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(with-directory-excursion bin
(rename-file "redeclipse_linux"
".redeclipse_linux-real")
(rename-file "redeclipse_server_linux"
".redeclipse_server_linux-real")
(call-with-output-file "redeclipse_linux"
(lambda (port)
(format port "#!~a/bin/sh
# Run the thing from its home, otherwise it just bails out.
cd \"~a\"
exec -a \"$0\" ~a/.redeclipse_linux-real~%"
(assoc-ref inputs "bash") ;implicit input
(string-append out)
(string-append bin))))
(call-with-output-file "redeclipse_server_linux"
(lambda (port)
(format port "#!~a/bin/sh
# Run the thing from its home, otherwise it just bails out.
cd \"~a\"
exec -a \"$0\" ~a/.redeclipse_server_linux-real~%"
(assoc-ref inputs "bash") ;implicit input
(string-append out)
(string-append bin))))
(chmod "redeclipse_linux" #o555)
(chmod "redeclipse_server_linux" #o555)))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("glu" ,glu)
("sdl-union" ,(sdl-union))
;; Create origin records for the many separate data packages.
,@(map (match-lambda
((name hash)
(list name
(origin
(method url-fetch)
(uri (string-append
"https://github.com/red-eclipse/"
name "/archive/v" version ".tar.gz"))
(sha256 (base32 hash))
(file-name (string-append name "-" version
".tar.gz"))))))
data-sources)))
(home-page "http://redeclipse.net/")
(synopsis "Arena shooter derived from the Cube 2 engine")
(description
"Red Eclipse is an arena shooter, created from the Cube2 engine.
Offering an innovative parkour system and distinct but all potent weapons,
Red Eclipse provides fast paced and accessible gameplay.")
;; The engine is under Zlib; data files are covered by the other
;; licenses. More details at <http://redeclipse.net/wiki/License>.
(license (list license:expat
license:zlib
license:cc-by-sa3.0
license:cc-by3.0
license:cc0)))))

View file

@ -36,7 +36,7 @@ (define-public gawk
".tar.xz"))
(sha256
(base32 "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3"))
(patches (list (search-patch "gawk-fts-test.patch")))))
(patches (search-patches "gawk-fts-test.patch"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; test suite fails in parallel

View file

@ -328,7 +328,7 @@ (define-public gcc-4.8
(sha256
(base32
"08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"))
(patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
(patches (search-patches "gcc-arm-link-spec-fix.patch"))))))
(define-public gcc-4.9
(package (inherit gcc-4.8)
@ -340,7 +340,7 @@ (define-public gcc-4.9
(sha256
(base32
"0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3"))
(patches (list (search-patch "gcc-libvtv-runpath.patch")))))))
(patches (search-patches "gcc-libvtv-runpath.patch"))))))
(define-public gcc-5
(package (inherit gcc-4.9)
@ -352,10 +352,8 @@ (define-public gcc-5
(sha256
(base32
"1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"))
(patches (list (search-patch "gcc-5.0-libvtv-runpath.patch")
(search-patch
"gcc-libiberty-printf-decl.patch")))))
(patches (search-patches "gcc-5.0-libvtv-runpath.patch"
"gcc-libiberty-printf-decl.patch"))))
;; GCC 5 ships with .info files, so no need for Texinfo.
(native-inputs '())))

View file

@ -83,9 +83,8 @@ (define-public perl-gd
(sha256
(base32
"1ya8f9hpiax8j29vwaiwlvvgah0vkyvpzva28r8231nyk0f3s40z"))
(patches
(list
(search-patch "perl-gd-options-passthrough-and-fontconfig.patch")))))
(patches (search-patches
"perl-gd-options-passthrough-and-fontconfig.patch"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build))) ;needs Module::Build >= 0.42

View file

@ -133,8 +133,8 @@ (define-public ghostscript
(sha256
(base32
"0q4jj41p0qbr4mgcc9q78f5zs8cm1g57wgryhsm2yq4lfslm3ib1"))
(patches (map search-patch '("ghostscript-CVE-2015-3228.patch"
"ghostscript-runpath.patch")))
(patches (search-patches "ghostscript-CVE-2015-3228.patch"
"ghostscript-runpath.patch"))
(modules '((guix build utils)))
(snippet
;; Honor --docdir.

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,9 +20,11 @@
(define-module (gnu packages gimp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages algebra)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
@ -157,3 +160,53 @@ (define-public gimp
as well as specialized ones. It features a highly customizable interface
that is extensible via a plugin system.")
(license license:gpl3+))) ; some files are lgplv3
(define-public gimp-fourier
(package
(name "gimp-fourier")
(version "0.4.3-2")
(source (origin
(method url-fetch)
(uri (string-append "http://registry.gimp.org/files/fourier-"
version ".tar.gz"))
(sha256
(base32
"1rpacyad678lqgxa3hh2n0zpg4azs8dpa8q079bqsl12812k9184"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'set-prefix
(lambda* (#:key outputs #:allow-other-keys)
;; gimptool-2.0 does not allow us to install to any target
;; directory.
(let ((target (string-append (assoc-ref outputs "out")
"/lib/gimp/"
(car (string-split ,(package-version gimp) #\.))
".0/plug-ins")))
(substitute* "Makefile"
(("\\$\\(PLUGIN_INSTALL\\) fourier")
(string-append "cp fourier " target)))
(mkdir-p target))
#t)))))
(inputs
`(("fftw" ,fftw)
("gimp" ,gimp)
;; needed by gimp-2.0.pc
("gdk-pixbuf" ,gdk-pixbuf)
("cairo" ,cairo)
("glib" ,glib)
;; needed by gimpui-2.0.pc
("gtk+" ,gtk+-2)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://registry.gimp.org/node/19596")
(synopsis "GIMP plug-in to edit image in fourier space")
(description
"This package provides a simple plug-in to apply the fourier transform on
an image, allowing you to work with the transformed image inside GIMP. You
can draw or apply filters in fourier space and get the modified image with an
inverse fourier transform.")
(license license:gpl3+)))

View file

@ -68,8 +68,7 @@ (define dbus
(sha256
(base32
"0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx"))
(patches
(list (search-patch "dbus-helper-search-path.patch")))))
(patches (search-patches "dbus-helper-search-path.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@ -139,11 +138,11 @@ (define glib
(sha256
(base32
"1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss"))
(patches (list (search-patch "glib-tests-homedir.patch")
(search-patch "glib-tests-desktop.patch")
(search-patch "glib-tests-prlimit.patch")
(search-patch "glib-tests-timer.patch")
(search-patch "glib-tests-gapplication.patch")))))
(patches (search-patches "glib-tests-homedir.patch"
"glib-tests-desktop.patch"
"glib-tests-prlimit.patch"
"glib-tests-timer.patch"
"glib-tests-gapplication.patch"))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"bin" ; glib-mkenums, gtester, etc.; depends on Python
@ -231,12 +230,10 @@ (define gobject-introspection
(snippet
'(substitute* "tools/g-ir-tool-template.in"
(("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")))
(patches (list
(search-patch "gobject-introspection-cc.patch")
(search-patch
"gobject-introspection-girepository.patch")
(search-patch
"gobject-introspection-absolute-shlib-path.patch")))))
(patches (search-patches
"gobject-introspection-cc.patch"
"gobject-introspection-girepository.patch"
"gobject-introspection-absolute-shlib-path.patch"))))
(build-system gnu-build-system)
(inputs
`(("bison" ,bison)
@ -479,9 +476,8 @@ (define-public python2-pygobject-2
(sha256
(base32
"1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv"))
(patches
(list (search-patch
"python2-pygobject-2-gi-info-type-error-domain.patch")))))
(patches (search-patches
"python2-pygobject-2-gi-info-type-error-domain.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)

View file

@ -15,6 +15,7 @@
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -57,6 +58,7 @@ (define-module (gnu packages gnome)
#:use-module (gnu packages flex)
#:use-module (gnu packages docbook)
#:use-module (gnu packages enchant)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
@ -737,8 +739,8 @@ (define-public gtkglext
version "/gtkglext-" version ".tar.gz"))
(sha256
(base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
(patches (list
(search-patch "gtkglext-disable-disable-deprecated.patch")))))
(patches (search-patches
"gtkglext-disable-disable-deprecated.patch"))))
(build-system gnu-build-system)
(inputs `(("gtk+" ,gtk+-2)
("mesa" ,mesa)
@ -1008,7 +1010,8 @@ (define-public libbonobo
"/" name "-" version ".tar.bz2"))
(sha256
(base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
(patches (list (search-patch "libbonobo-activation-test-race.patch")))))
(patches (search-patches
"libbonobo-activation-test-race.patch"))))
(build-system gnu-build-system)
(arguments
;; The programmer kindly gives us a hook to turn off deprecation warnings ...
@ -1974,7 +1977,7 @@ (define-public glib-networking
(base32
"1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym"))
(patches
(list (search-patch "glib-networking-ssl-cert-file.patch")))))
(search-patches "glib-networking-ssl-cert-file.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -2207,6 +2210,41 @@ (define-public gnome-mines
floating in an ocean using only your brain and a little bit of luck.")
(license license:gpl2+)))
(define-public gnome-sudoku
(package
(name "gnome-sudoku")
(version "3.18.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1b60z22fjrjzsz0kfhv0kfhvigzn54wvh9s31zrlp7sx2h2dxvsf"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils)
("intltool" ,intltool)
("itstool" ,itstool)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
("json-glib" ,json-glib)
("libgee" ,libgee)
("librsvg" ,librsvg)
("qqwing" ,qqwing)))
(home-page "https://wiki.gnome.org/Apps/Sudoku")
(synopsis "Japanese logic game")
(description
"Sudoku is a Japanese logic game that exploded in popularity in 2005.
GNOME Sudoku is meant to have an interface as simple and unobstrusive as
possible while still providing features that make playing difficult Sudoku
more fun.")
(license license:gpl2+)))
(define-public gnome-terminal
(package
(name "gnome-terminal")
@ -2334,7 +2372,7 @@ (define-public geoclue
(sha256
(base32
"0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454"))
(patches (list (search-patch "geoclue-config.patch")))))
(patches (search-patches "geoclue-config.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
'(;; The tests want to run the system bus.
@ -2413,7 +2451,7 @@ (define-public upower
(sha256
(base32
"0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9"))
(patches (list (search-patch "upower-builddir.patch")))))
(patches (search-patches "upower-builddir.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
'( ;; The tests want to contact the system bus, which can't be done in the

View file

@ -47,7 +47,7 @@ (define-public gnucash
(sha256
(base32
"0x84f07p30pwhriamv8ifljgw755cj87rc12jy1xddf47spyj7rp"))
(patches (list (search-patch "gnucash-price-quotes-perl.patch")))))
(patches (search-patches "gnucash-price-quotes-perl.patch"))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.0)

View file

@ -67,7 +67,7 @@ (define-public libextractor
(sha256
(base32
"0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6"))
(patches (list (search-patch "libextractor-ffmpeg-3.patch")))
(patches (search-patches "libextractor-ffmpeg-3.patch"))
(modules '((guix build utils)))
(snippet
;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
@ -66,7 +66,9 @@ (define-public libgpg-error
for all GnuPG components. Among these are GPG, GPGSM, GPGME,
GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard
Daemon and possibly more in the future.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgpg-error")))))
(define-public libgcrypt
(package
@ -100,7 +102,9 @@ (define-public libgcrypt
standard cryptographic building blocks such as symmetric ciphers, hash
algorithms, public key algorithms, large integer functions and random number
generation.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt")))))
(define-public libgcrypt-1.5
(package (inherit libgcrypt)
@ -137,7 +141,9 @@ (define-public libassuan
protocol. This protocol is used for IPC between most newer
GnuPG components. Both, server and client side functions are
provided.")
(license license:lgpl2.0+)))
(license license:lgpl2.0+)
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libassuan")))))
(define-public libksba
(package
@ -170,7 +176,9 @@ (define-public libksba
"KSBA (pronounced Kasbah) is a library to make X.509 certificates
as well as the CMS easily accessible by other applications. Both
specifications are building blocks of S/MIME and TLS.")
(license license:gpl3+)))
(license license:gpl3+)
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libksba")))))
(define-public npth
(package
@ -208,9 +216,8 @@ (define-public gnupg
(sha256
(base32
"06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p"))
(patches
(list (search-patch
"gnupg-simple-query-ignore-status-messages.patch")))))
(patches (search-patches
"gnupg-simple-query-ignore-status-messages.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -245,7 +252,9 @@ (define-public gnupg
servers. It includes several libraries: libassuan (IPC between GnuPG
components), libgpg-error (centralized GnuPG error values), and
libskba (working with X.509 certificates and CMS data).")
(license license:gpl3+)))
(license license:gpl3+)
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/gnupg")))))
(define-public gnupg-2.0
(package (inherit gnupg)
@ -352,7 +361,7 @@ (define-public python-pygpgme
;; Unfortunately, we have to disable some tests due to some gpg-agent
;; goofiness... see:
;; https://bugs.launchpad.net/pygpgme/+bug/999949
(patches (list (search-patch "pygpgme-disable-problematic-tests.patch")))))
(patches (search-patches "pygpgme-disable-problematic-tests.patch"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -563,14 +572,14 @@ (define-public signing-party
(define-public pinentry
(package
(name "pinentry")
(version "0.9.6")
(version "0.9.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/pinentry/pinentry-"
version ".tar.bz2"))
(sha256
(base32
"0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a"))))
"1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)
@ -580,7 +589,7 @@ (define-public pinentry
("glib" ,glib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://gnupg.org/aegypten2/")
(home-page "https://gnupg.org/aegypten2/")
(synopsis "GnuPG's interface to passphrase input")
(description
"Pinentry provides a console and a GTK+ GUI that allows users to

View file

@ -127,3 +127,92 @@ (define-public wmbattery
graph), and battery status (high - green, low - yellow, or critical - red).")
(license gpl2)))
(define-public wmnd
(package
(name "wmnd")
(version "0.4.17")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.thregr.org/~wavexx/software/wmnd/releases/"
name "-" version ".tar.gz"))
(sha256
(base32
"1amkbiwgr31gwkcp7wrjsr7aj1kns8bpmjpv70n86wb8v9mpm828"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
("libxpm" ,libxpm)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.thregr.org/~wavexx/software/wmnd/")
(synopsis "Network interface monitor")
(description
"WMND is a dockapp for monitoring network interfaces under WindowMaker and
other compatible window managers.")
(license gpl2+)))
(define-public wmcpuload
(package
(name "wmcpuload")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://debian/pool/main/w/wmcpuload/"
name "_" version ".orig.tar.gz"))
(sha256
(base32
"0irlns4cvxy2mnicx75bya166hdxq7h8bphds3ligijcl9fzgs6n"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
("libxpm" ,libxpm)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://windowmaker.org/dockapps/?name=wmcpuload")
(synopsis "Monitor CPU usage")
(description
"Wmcpuload displays the current CPU usage, expressed as a percentile and a
chart, and has an LCD look-alike user interface. The back-light may be turned
on and off by clicking the mouse button over the application. If the CPU usage
hits a certain threshold, an alarm-mode will alert you by turning back-light
on.")
(license gpl2+)))
(define-public wmclock
(package
(name "wmclock")
(version "1.0.16")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://debian/pool/main/w/wmclock/"
name "_" version ".orig.tar.gz"))
(sha256
(base32
"1lx276ba8r2yydhmwj1g586jdqg695ad89ng36fr3mb067gvb2rz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autoconf
(lambda _ (zero? (system* "autoreconf" "-vfi")))))))
;; wmclock requires autoreconf to generate its configure script.
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
("libxpm" ,libxpm)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(home-page "http://windowmaker.org/dockapps/?name=wmclock")
(synopsis "Display the date and time")
(description
"wmclock is an applet for Window Maker which displays the date and time in
a dockable tile. It features multiple language support, 24h or 12h time
display, and can run a user-specified program on mouse click.")
(license gpl2+)))

View file

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -143,7 +144,7 @@ (define-public mozjs-24
(define-public nspr
(package
(name "nspr")
(version "4.10.10")
(version "4.12")
(source (origin
(method url-fetch)
(uri (string-append
@ -151,7 +152,7 @@ (define-public nspr
version "/src/nspr-" version ".tar.gz"))
(sha256
(base32
"01ria9wk6329hxqsy75p9dkxiqkq4nkz0jjzll7hslih3jbi8dil"))))
"1pk98bmc5xzbl62q5wf2d6mryf0v95z6rsmxz27nclwiaqg0mcg0"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
@ -177,7 +178,7 @@ (define-public nspr
(define-public nss
(package
(name "nss")
(version "3.21.1")
(version "3.23")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@ -188,9 +189,9 @@ (define-public nss
"nss-" version ".tar.gz")))
(sha256
(base32
"0knr99yc8sba2ga6x1gwhg9gr1dmgcl344g3bmxm8c364i2vpxns"))
"1kqidv91icq96m9m8zx50n7px08km2l88458rkgyjwcn3kiq7cwl"))
;; Create nss.pc and nss-config.
(patches (list (search-patch "nss-pkgconfig.patch")))))
(patches (search-patches "nss-pkgconfig.patch"))))
(build-system gnu-build-system)
(outputs '("out" "bin"))
(arguments
@ -250,7 +251,16 @@ (define-public nss
;; Install other files.
(copy-recursively "dist/public/nss" inc)
(copy-recursively (string-append obj "/bin") bin)
(copy-recursively (string-append obj "/lib") lib)))
(copy-recursively (string-append obj "/lib") lib)
;; FIXME: libgtest1.so is installed in the above step, and it's
;; (unnecessarily) linked with several NSS libraries, but
;; without the needed rpaths, causing the 'validate-runpath'
;; phase to fail. Here we simply delete libgtest1.so, since it
;; seems to be used only during the tests.
(delete-file (string-append lib "/libgtest1.so"))
#t))
%standard-phases)))))
(inputs
`(("sqlite" ,sqlite)
@ -277,7 +287,7 @@ (define-public nss
(define-public icecat
(package
(name "icecat")
(version "38.6.0-gnu1")
(version "38.7.1-gnu1")
(source
(origin
(method url-fetch)
@ -286,29 +296,19 @@ (define-public icecat
name "-" version ".tar.bz2"))
(sha256
(base32
"0bd4k5cwr8ynscaxffvj2x3kgky3dmjq0qhpcb931l98bh0103lx"))
(patches (map search-patch
'("icecat-avoid-bundled-includes.patch"
"icecat-re-enable-DHE-cipher-suites.patch"
"icecat-update-graphite2.patch"
"icecat-update-graphite2-pt2.patch"
"icecat-CVE-2015-4477.patch"
"icecat-CVE-2015-7207.patch"
"icecat-CVE-2016-1952-pt01.patch"
"icecat-CVE-2016-1952-pt02.patch"
"icecat-CVE-2016-1952-pt03.patch"
"icecat-CVE-2016-1952-pt04.patch"
"icecat-CVE-2016-1952-pt05.patch"
"icecat-CVE-2016-1952-pt06.patch"
"icecat-CVE-2016-1954.patch"
"icecat-CVE-2016-1960.patch"
"icecat-CVE-2016-1961.patch"
"icecat-CVE-2016-1962.patch"
"icecat-CVE-2016-1964.patch"
"icecat-CVE-2016-1965.patch"
"icecat-CVE-2016-1966.patch"
"icecat-CVE-2016-1974.patch"
"icecat-bug-1248851.patch")))
"1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g"))
(patches (search-patches
"icecat-avoid-bundled-includes.patch"
"icecat-re-enable-DHE-cipher-suites.patch"
"icecat-update-bundled-graphite2.patch"
"icecat-CVE-2016-2805.patch"
"icecat-CVE-2016-2807-pt1.patch"
"icecat-CVE-2016-2807-pt2.patch"
"icecat-CVE-2016-2807-pt3.patch"
"icecat-CVE-2016-2807-pt4.patch"
"icecat-CVE-2016-2807-pt5.patch"
"icecat-CVE-2016-2808.patch"
"icecat-CVE-2016-2814.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -526,4 +526,5 @@ (define-public icecat
"IceCat is the GNU version of the Firefox browser. It is entirely free
software, which does not recommend non-free plugins and addons. It also
features built-in privacy-protecting features.")
(license license:mpl2.0))) ; and others, see toolkit/content/license.html
(license license:mpl2.0) ;and others, see toolkit/content/license.html
(properties '((ftp-directory . "/gnu/gnuzilla")))))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
@ -31,9 +31,13 @@ (define-module (gnu packages graphics)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages haskell)
#:use-module (gnu packages image)
#:use-module (gnu packages python)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
@ -41,13 +45,19 @@ (define-module (gnu packages graphics)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages boost)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages image)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages photo)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages video)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public blender
@ -108,7 +118,7 @@ (define-public blender
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libtiff" ,libtiff)
("ffmpeg" ,ffmpeg)
("ffmpeg-2.8" ,ffmpeg-2.8) ;<https://lists.gnu.org/archive/html/guix-devel/2016-04/msg01019.html>
("fftw" ,fftw)
("jack" ,jack-1)
("libsndfile" ,libsndfile)
@ -176,7 +186,7 @@ (define-public ilmbase
(sha256
(base32
"1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
(patches (map search-patch '("ilmbase-fix-tests.patch")))))
(patches (search-patches "ilmbase-fix-tests.patch"))))
(build-system gnu-build-system)
(home-page "http://www.openexr.com/")
(synopsis "Utility C++ libraries for threads, maths, and exceptions")
@ -204,7 +214,7 @@ (define-public openexr
'(substitute* (find-files "." "tmpDir\\.h")
(("\"/var/tmp/\"")
"\"/tmp/\"")))
(patches (list (search-patch "openexr-missing-samples.patch")))))
(patches (search-patches "openexr-missing-samples.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -245,7 +255,7 @@ (define-public openimageio
(sha256
(base32
"0mn7cz19mn8dcrhkq15h25gl20ammr1wz0j2j3c2vxs6ph7zn8jy"))
(patches (list (search-patch "openimageio-boost-1.60.patch")))))
(patches (search-patches "openimageio-boost-1.60.patch"))))
(build-system cmake-build-system)
;; FIXME: To run all tests successfully, test image sets from multiple
;; third party sources have to be present. For details see
@ -272,6 +282,59 @@ (define-public openimageio
(home-page "http://www.openimageio.org")
(license license:bsd-3)))
(define-public rapicorn
(package
(name "rapicorn")
(version "16.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://testbit.eu/pub/dists/rapicorn/"
"rapicorn-" version ".tar.xz"))
(sha256
(base32
"1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d"))))
(build-system gnu-build-system)
(arguments
`(;; FIXME: At least "testrcore1" fails.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'replace-/bin/ls
(lambda _
(substitute* (cons "Makefile.decl"
(find-files "." "^Makefile\\.in$"))
(("/bin/ls") (which "ls")))
#t)))))
;; These libraries are listed in the "Required" section of the pkg-config
;; file.
(propagated-inputs
`(("librsvg" ,librsvg)
("cairo" ,cairo)
("pango" ,pango)
("libxml2" ,libxml2)))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("libpng" ,libpng-1.2)
("readline" ,readline)
("libcroco" ,libcroco)
("python" ,python-2)
("cython" ,python2-cython)))
(native-inputs
`(("pandoc" ,ghc-pandoc)
("bison" ,bison)
("flex" ,flex)
("doxygen" ,doxygen)
("graphviz" ,graphviz)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://rapicorn.org")
(synopsis "Toolkit for rapid development of user interfaces")
(description
"Rapicorn is a toolkit for rapid development of user interfaces in C++
and Python. The user interface is designed in a declarative markup language
and is connected to the programming logic using data bindings and commands.")
(license license:mpl2.0)))
(define-public ctl
(package
(name "ctl")
@ -385,7 +448,7 @@ (define-public agg
version ".tar.gz")))
(sha256
(base32 "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb"))
(patches (list (search-patch "agg-am_c_prototype.patch")))))
(patches (search-patches "agg-am_c_prototype.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags

View file

@ -83,9 +83,9 @@ (define-public grub
(sha256
(base32
"0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq"))
(patches (list (search-patch "grub-gets-undeclared.patch")
(search-patch "grub-freetype.patch")
(search-patch "grub-CVE-2015-8370.patch")))))
(patches (search-patches "grub-gets-undeclared.patch"
"grub-freetype.patch"
"grub-CVE-2015-8370.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-werror")

View file

@ -554,7 +554,7 @@ (define-public gtk+-2
(sha256
(base32
"0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj"))
(patches (list (search-patch "gtk2-respect-GUIX_GTK2_PATH.patch")))))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@ -615,7 +615,7 @@ (define-public gtk+
(sha256
(base32
"0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx"))
(patches (list (search-patch "gtk3-respect-GUIX_GTK3_PATH.patch")))))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
@ -752,7 +752,7 @@ (define-public guile-rsvg
(sha256
(base32
"136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
(patches (list (search-patch "guile-rsvg-pkgconfig.patch")))
(patches (search-patches "guile-rsvg-pkgconfig.patch"))
(modules '((guix build utils)))
(snippet
'(substitute* (find-files "." "Makefile\\.am")
@ -791,7 +791,7 @@ (define-public guile-present
(sha256
(base32
"1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
(patches (list (search-patch "guile-present-coding.patch")))
(patches (search-patches "guile-present-coding.patch"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile.in"
@ -977,7 +977,7 @@ (define-public python-pycairo
(sha256
(base32
"1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"))
(patches (list (search-patch "pycairo-wscript.patch")))))
(patches (search-patches "pycairo-wscript.patch"))))
(build-system waf-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)

View file

@ -4,6 +4,7 @@
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -72,7 +73,7 @@ (define-public guile-1.8
(sha256
(base32
"0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))
(patches (list (search-patch "guile-1.8-cpp-4.5.patch")))))
(patches (search-patches "guile-1.8-cpp-4.5.patch"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--disable-error-on-warning")
@ -132,7 +133,7 @@ (define-public guile-2.0
(sha256
(base32
"1qh3j7308qvsjgwf7h94yqgckpbgz2k3yqdkzsyhqcafvfka9l5f"))
(patches (list (search-patch "guile-arm-fixes.patch")))))
(patches (search-patches "guile-arm-fixes.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkgconfig" ,pkg-config)))
(inputs `(("libffi" ,libffi)
@ -410,7 +411,7 @@ (define-public mcron
(sha256
(base32
"0zparwgf01jgl1x53ik71ghabldq6zz18ha4dscps1i0qrzgap1b"))
(patches (list (search-patch "mcron-install.patch")))))
(patches (search-patches "mcron-install.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.0)))
@ -529,7 +530,7 @@ (define-public guile-minikanren
(setenv "GUILE_AUTO_COMPILE" "0")
(for-each (lambda (file)
(let* ((dest-file (string-append module-dir "/"
file ".scm"))
file))
(go-file (match (string-split file #\.)
((base _)
(string-append module-dir "/"
@ -711,14 +712,14 @@ (define-public guile-gdbm-ffi
(define-public haunt
(package
(name "haunt")
(version "0.1")
(version "0.2")
(source (origin
(method url-fetch)
(uri (string-append "http://files.dthompson.us/haunt/haunt-"
(uri (string-append "https://files.dthompson.us/haunt/haunt-"
version ".tar.gz"))
(sha256
(base32
"15q1qwjnay7k90ppqrzqsmikvwyj61mjvf1zahyd9gm4vi2fgb3x"))))
"1id83n8fs7jxys1d8jy70vylg8gzcvlw1y7hb41y3qxv5zi4671m"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 match) (ice-9 ftw)
@ -742,8 +743,13 @@ (define-public haunt
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
(,modules)))
#t)))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
(inputs
`(("guile" ,guile-2.0)))
(propagated-inputs
`(("guile-reader" ,guile-reader)))
(synopsis "Functional static site generator")
(description "Haunt is a static site generator written in Guile
Scheme. Haunt features a functional build system and an extensible

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,10 +25,12 @@ (define-module (gnu packages ibus)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
#:use-module (gnu packages anthy)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
@ -205,3 +208,54 @@ (define-public libpinyin
Chinese pinyin input methods.")
(home-page "https://github.com/libpinyin/libpinyin")
(license gpl2+)))
(define-public ibus-anthy
(package
(name "ibus-anthy")
(version "1.5.8")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ibus/ibus-anthy/releases/download/"
version "/ibus-anthy-" version ".tar.gz"))
(sha256
(base32
"1aj7vnfky7izl23xyjky78z3qas3q72l3kr8dnql2lnivsrb8q1y"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
;; Use absolute exec path in the anthy.xml.
(list (string-append "--libexecdir=" %output "/libexec"))
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each
(lambda (prog)
(wrap-program (string-append out "/libexec/" prog)
`("PYTHONPATH" ":" prefix
(,(getenv "PYTHONPATH")))
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH")
,(string-append out "/lib/girepository-1.0")))))
'("ibus-engine-anthy" "ibus-setup-anthy"))
#t))))))
(native-inputs
`(("gettext" ,gnu-gettext)
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("python" ,python)))
(inputs
`(("anthy" ,anthy)
("gtk+" ,gtk+)
("ibus" ,ibus)
("gobject-introspection" ,gobject-introspection)
("python-pygobject" ,python-pygobject)))
(synopsis "Anthy Japanese language input method for IBus")
(description "IBus-Anthy is an engine for the input bus \"IBus\"). It
adds the Anthy Japanese language input method to IBus. Because most graphical
applications allow text input via IBus, installing this package will enable
Japanese language input in most graphical applications.")
(home-page "https://github.com/fujiwarat/ibus-anthy")
(license gpl2+)))

View file

@ -39,9 +39,9 @@ (define-public icu4c
"-src.tgz"))
(sha256
(base32 "0ys5f5spizg45qlaa31j2lhgry0jka2gfha527n4ndfxxz5j4sz1"))
(patches (map search-patch '("icu4c-CVE-2014-6585.patch"
"icu4c-CVE-2015-1270.patch"
"icu4c-CVE-2015-4760.patch")))))
(patches (search-patches "icu4c-CVE-2014-6585.patch"
"icu4c-CVE-2015-1270.patch"
"icu4c-CVE-2015-4760.patch"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)))

View file

@ -35,8 +35,7 @@ (define-public idutils
(sha256
(base32
"1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
(patches (list
(search-patch "diffutils-gets-undeclared.patch")))))
(patches (search-patches "diffutils-gets-undeclared.patch"))))
(build-system gnu-build-system)
(native-inputs `(("emacs" ,emacs-no-x)))
(home-page "http://www.gnu.org/software/idutils/")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2014, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
@ -76,6 +76,22 @@ (define-public libpng
(license license:zlib)
(home-page "http://www.libpng.org/pub/png/libpng.html")))
(define-public libpng-1.2
(package
(inherit libpng)
(version "1.2.56")
(source
(origin
(method url-fetch)
;; Note: upstream removes older tarballs.
(uri (list (string-append "mirror://sourceforge/libpng/libpng12/"
version "/libpng-" version ".tar.xz")
(string-append
"ftp://ftp.simplesystems.org/pub/libpng/png/src"
"/libpng12/libpng-" version ".tar.xz")))
(sha256
(base32 "1ghd03p353x0vi4dk83n1nlldg11w7vqdk3f99rkgfb82ic59ki4"))))))
(define-public libjpeg
(package
(name "libjpeg")
@ -140,10 +156,10 @@ (define-public libtiff
version ".tar.gz"))
(sha256 (base32
"136nf1rj9dp5jgv1p7z4dk0xy3wki1w0vfjbk82f645m0w4samsd"))
(patches (map search-patch
'("libtiff-oob-accesses-in-decode.patch"
"libtiff-oob-write-in-nextdecode.patch"
"libtiff-CVE-2015-8665+CVE-2015-8683.patch")))))
(patches (search-patches
"libtiff-oob-accesses-in-decode.patch"
"libtiff-oob-write-in-nextdecode.patch"
"libtiff-CVE-2015-8665+CVE-2015-8683.patch"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1.3 MiB of HTML documentation
@ -178,18 +194,18 @@ (define-public libwmf
(sha256
(base32 "1y3wba4q8pl7kr51212jwrsz1x6nslsx1gsjml1x0i8549lmqd2v"))
(patches
(map search-patch '("libwmf-CAN-2004-0941.patch"
"libwmf-CVE-2006-3376.patch"
"libwmf-CVE-2007-0455.patch"
"libwmf-CVE-2007-2756.patch"
"libwmf-CVE-2007-3472.patch"
"libwmf-CVE-2007-3473.patch"
"libwmf-CVE-2007-3477.patch"
"libwmf-CVE-2009-1364.patch"
"libwmf-CVE-2009-3546.patch"
"libwmf-CVE-2015-0848+CVE-2015-4588.patch"
"libwmf-CVE-2015-4695.patch"
"libwmf-CVE-2015-4696.patch")))))
(search-patches "libwmf-CAN-2004-0941.patch"
"libwmf-CVE-2006-3376.patch"
"libwmf-CVE-2007-0455.patch"
"libwmf-CVE-2007-2756.patch"
"libwmf-CVE-2007-3472.patch"
"libwmf-CVE-2007-3473.patch"
"libwmf-CVE-2007-3477.patch"
"libwmf-CVE-2009-1364.patch"
"libwmf-CVE-2009-3546.patch"
"libwmf-CVE-2015-0848+CVE-2015-4588.patch"
"libwmf-CVE-2015-4695.patch"
"libwmf-CVE-2015-4696.patch"))))
(build-system gnu-build-system)
(inputs
@ -291,7 +307,7 @@ (define-public jbig2dec
version ".tar.gz"))
(sha256
(base32 "1ffhgmf2fqzk0h4k736pp06z7q5y4x41fg844bd6a9vgncq86bby"))
(patches (list (search-patch "jbig2dec-ignore-testtest.patch")))))
(patches (search-patches "jbig2dec-ignore-testtest.patch"))))
(build-system gnu-build-system)
(synopsis "Decoder of the JBIG2 image compression format")
@ -320,8 +336,8 @@ (define-public openjpeg
version ".tar.gz"))
(sha256
(base32 "00zzm303zvv4ijzancrsb1cqbph3pgz0nky92k9qx3fq9y0vnchj"))
(patches (map search-patch '("openjpeg-use-after-free-fix.patch"
"openjpeg-CVE-2015-6581.patch")))))
(patches (search-patches "openjpeg-use-after-free-fix.patch"
"openjpeg-CVE-2015-6581.patch"))))
(build-system cmake-build-system)
(arguments
;; Trying to run `$ make check' results in a no rule fault.
@ -357,8 +373,8 @@ (define-public openjpeg-2.0
version ".tar.gz"))
(sha256
(base32 "1c2xc3nl2mg511b63rk7hrckmy14681p1m44mzw3n1fyqnjm0b0z"))
(patches (map search-patch '("openjpeg-use-after-free-fix.patch"
"openjpeg-CVE-2015-6581.patch")))))))
(patches (search-patches "openjpeg-use-after-free-fix.patch"
"openjpeg-CVE-2015-6581.patch"))))))
(define-public openjpeg-1
(package (inherit openjpeg)
@ -443,7 +459,7 @@ (define-public libungif
(define-public imlib2
(package
(name "imlib2")
(version "1.4.7")
(version "1.4.8")
(source (origin
(method url-fetch)
(uri (string-append
@ -451,7 +467,8 @@ (define-public imlib2
version ".tar.bz2"))
(sha256
(base32
"00a7jbwj10x3jcvxa5rplnkvhv35gv9rb400zy636zdd4g737mrm"))))
"0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9"))
(patches (search-patches "imlib2-CVE-2016-4024.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkgconfig" ,pkg-config)))
@ -520,7 +537,7 @@ (define-public freeimage
(sha256
(base32
"12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
(patches (list (search-patch "freeimage-CVE-2015-0852.patch")))))
(patches (search-patches "freeimage-CVE-2015-0852.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-delete
@ -673,7 +690,7 @@ (define-public devil
"1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8"))
;; Backported from upstream:
;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch
(patches (list (search-patch "devil-fix-libpng.patch")))
(patches (search-patches "devil-fix-libpng.patch"))
(modules '((guix build utils)))
(snippet
;; Fix old lcms include directives and lib flags.
@ -723,21 +740,20 @@ (define-public jasper
(sha256
(base32
"154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b"))
(patches
(list
(search-patch "jasper-CVE-2007-2721.patch")
(search-patch "jasper-CVE-2008-3520.patch")
(search-patch "jasper-CVE-2008-3522.patch")
(search-patch "jasper-CVE-2011-4516-and-CVE-2011-4517.patch")
(search-patch "jasper-CVE-2014-8137.patch")
(search-patch "jasper-CVE-2014-8138.patch")
(search-patch "jasper-CVE-2014-8157.patch")
(search-patch "jasper-CVE-2014-8158.patch")
(search-patch "jasper-CVE-2014-9029.patch")
(search-patch "jasper-CVE-2016-1577.patch")
(search-patch "jasper-CVE-2016-1867.patch")
(search-patch "jasper-CVE-2016-2089.patch")
(search-patch "jasper-CVE-2016-2116.patch")))))
(patches (search-patches
"jasper-CVE-2007-2721.patch"
"jasper-CVE-2008-3520.patch"
"jasper-CVE-2008-3522.patch"
"jasper-CVE-2011-4516-and-CVE-2011-4517.patch"
"jasper-CVE-2014-8137.patch"
"jasper-CVE-2014-8138.patch"
"jasper-CVE-2014-8157.patch"
"jasper-CVE-2014-8158.patch"
"jasper-CVE-2014-9029.patch"
"jasper-CVE-2016-1577.patch"
"jasper-CVE-2016-1867.patch"
"jasper-CVE-2016-2089.patch"
"jasper-CVE-2016-2116.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("unzip" ,unzip)))

View file

@ -48,7 +48,7 @@ (define-public imagemagick
(sha256
(base32
"159afhqrj22jlz745ccbgnkdiwvn8pjcc96jic0iv9ms7gqxwln5"))
(patches (list (search-patch "imagemagick-test-segv.patch")))))
(patches (search-patches "imagemagick-test-segv.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths")

View file

@ -52,7 +52,7 @@ (define-module (gnu packages irc)
(define-public quassel
(package
(name "quassel")
(version "0.12.3")
(version "0.12.4")
(source
(origin
(method url-fetch)
@ -60,7 +60,7 @@ (define-public quassel
version ".tar.bz2"))
(sha256
(base32
"0d6lwf6qblj1ia5j9mjy112zrmpbbg9mmxgscbgxiqychldyjgjd"))))
"0ka456fb8ha3w7g74xlzfg6w4azxjjxgrhl4aqpbwg3lnd6fbr4k"))))
(build-system cmake-build-system)
(arguments
;; The three binaries are not mutually exlusive, and are all built
@ -142,7 +142,7 @@ (define-public weechat
(sha256
(base32
"19apd3hav77v74j7flicai0843k7wrkr2fd3q2ayvzkgnbrrp1ai"))
(patches (list (search-patch "weechat-python.patch")))))
(patches (search-patches "weechat-python.patch"))))
(build-system gnu-build-system)
(native-inputs `(("autoconf" ,autoconf)
("pkg-config" ,pkg-config)

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,6 +23,7 @@ (define-module (gnu packages java)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages attr)
@ -51,19 +53,19 @@ (define-module (gnu packages java)
#:use-module (gnu packages texinfo)
#:use-module ((srfi srfi-1) #:select (fold alist-delete)))
(define-public swt
(define-public java-swt
(package
(name "swt")
(version "4.4.2")
(name "java-swt")
(version "4.5")
(source (origin
(method url-fetch)
(uri (string-append
"http://ftp-stud.fht-esslingen.de/pub/Mirrors/"
"eclipse/eclipse/downloads/drops4/R-" version
"-201502041700/swt-" version "-gtk-linux-x86.zip"))
"-201506032000/swt-" version "-gtk-linux-x86.zip"))
(sha256
(base32
"0lzyqr8k2zm5s8fmnrx5kxpslxfs0i73y26fwfms483x45izzwj8"))))
"03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("-f" "make_linux.mak")
@ -577,7 +579,7 @@ (define-public icedtea-6
(license license:gpl2+)))
(define-public icedtea-7
(let* ((version "2.6.4")
(let* ((version "2.6.6")
(drop (lambda (name hash)
(origin
(method url-fetch)
@ -594,7 +596,7 @@ (define-public icedtea-7
version ".tar.xz"))
(sha256
(base32
"0r31h8nlsrbfdkgbjbb7phwgcwglc9siznzrr40lqnm9xrgkc2nj"))
"0jjldnig382yqvzzsflilcz897v2lwnw4n57sggdjn318d29g53r"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile.in"
@ -669,6 +671,8 @@ (define-public icedtea-7
(setenv "CC" "gcc")
(setenv "CPATH"
(string-append gcjinclude ":"
(assoc-ref inputs "libxcomposite")
"/include/X11/extensions" ":"
(assoc-ref inputs "libxrender")
"/include/X11/extensions" ":"
(assoc-ref inputs "libxtst")
@ -719,26 +723,139 @@ (define-public icedtea-7
(native-inputs
`(("openjdk-src"
,(drop "openjdk"
"1qjjf71nq80ac2d08hbaa8589d31vk313z3rkirnwq5df8cyf0mv"))
"1wxd5kbsmd4gdiz78iq7pq9hp0l6m946pd1pvaj750lkrgk17y14"))
("corba-drop"
,(drop "corba"
"025warxhjal3nr7w1xyd16k0f32fwkchifpaslzyidsga3hgmfr6"))
"0bba7drdpbggzgn7cnqv10myxa3bygaq2hkclgrmsijhl6bnr26f"))
("jaxp-drop"
,(drop "jaxp"
"0qiz6swb78w9c0mf88pf0gflgm5rp9k0l6fv6sdl7dki691b0z09"))
"0c1d4yjaxzh9fi9bx50yi2psb9f475bfivivf6c31smgaihb97k7"))
("jaxws-drop"
,(drop "jaxws"
"18fz4gl4fdlcmqvh1mlpd9h0gj0qizpfa7njkax97aysmsm08xns"))
"0662wzws45jwzwfc4pgizxdywz737vflkj9w3hw1xlgljs017bzr"))
("jdk-drop"
,(drop "jdk"
"0qsx5d9pgwlz9vbpapw4jwpajqc6rwk1150cjb33i4n3z709jccx"))
"17qaf5mdijsn6jzyxv7rgn9g5mazkva6p8lcy7zq06yvfb595ahv"))
("langtools-drop"
,(drop "langtools"
"1k6plx96smf86z303gb30hncssa8f40qdryzsdv349iwqwacxc7r"))
"1wv34cyba1f4wynjkwf765agf4ifc04717ac7b3bpiagggp2rfsl"))
("hotspot-drop"
,(drop "hotspot"
"0r9ffzyf5vxs8wg732szqcil0ksc8lcxzihdv3viz7d67dy42irp"))
"1hhd5q2g7mnw3pqqv72labki5zv09vgc3hp3xig4x8r4yzzg9s54"))
,@(fold alist-delete (package-native-inputs icedtea-6)
'("openjdk6-src")))))))
'("openjdk6-src"))))
(inputs
`(("libxcomposite" ,libxcomposite)
,@(package-inputs icedtea-6))))))
(define-public icedtea-8
(let* ((version "3.0.1")
(drop (lambda (name hash)
(origin
(method url-fetch)
(uri (string-append
"http://icedtea.classpath.org/download/drops/"
"/icedtea8/" version "/" name ".tar.xz"))
(sha256 (base32 hash))))))
(package (inherit icedtea-7)
(version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://icedtea.wildebeest.org/download/source/icedtea-"
version ".tar.xz"))
(sha256
(base32
"1wislw090zx955rf9sppimdzqf044mpj96xp54vljv6yw46y6v1l"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile.am"
;; do not leak information about the build host
(("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
"DISTRIBUTION_ID=\"\\\"guix\\\"\"")))))
(arguments
(substitute-keyword-arguments (package-arguments icedtea-7)
((#:configure-flags flags)
`(let ((jdk (assoc-ref %build-inputs "jdk")))
`(;;"--disable-bootstrap"
"--enable-bootstrap"
"--enable-nss"
"--disable-downloading"
"--disable-tests" ;they are run in the check phase instead
"--with-openjdk-src-dir=./openjdk.src"
,(string-append "--with-jdk-home=" jdk))))
((#:phases phases)
`(modify-phases ,phases
(delete 'fix-x11-extension-include-path)
(delete 'patch-paths)
(delete 'set-additional-paths)
(delete 'patch-patches)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/icedtea"))
(jre (assoc-ref outputs "out"))
(jdk (assoc-ref outputs "jdk")))
(copy-recursively "openjdk.build/docs" doc)
(copy-recursively "openjdk.build/images/j2re-image" jre)
(copy-recursively "openjdk.build/images/j2sdk-image" jdk)
#t)))))))
(native-inputs
`(("jdk" ,icedtea-7 "jdk")
("openjdk-src"
,(drop "openjdk"
"1141wfz6vz889f5naj7zdbyw42ibw0ixvkd808lfcrwxlgznyxlb"))
("corba-drop"
,(drop "corba"
"0l3fmfw88hf8709z033az1x6wzmcb0jnakj2br1r721zw01i0da2"))
("jaxp-drop"
,(drop "jaxp"
"1i1pvyrdkk3w8vcnk6kfcbsjkfpbbrcywiypdl39bf2ishixbaf0"))
("jaxws-drop"
,(drop "jaxws"
"0f1kglci65zsfy8ygw5w2zza7v1280znihvls4kraz06dgsc2y73"))
("jdk-drop"
,(drop "jdk"
"1pcwb1kjd1ph4jbv07icgk0fb8jqnck2y24qjfd7dzg7gm45c1am"))
("langtools-drop"
,(drop "langtools"
"1jjil9s244wp0blj1qkzk7sy7y1jrxb4wq18c1rj2q2pa88n00i6"))
("hotspot-drop"
,(drop "hotspot"
"1pl0cz1gja6z5zbywni1x1pj4qkh745fpj55fcmj4lpfj2p98my1"))
("nashorn-drop"
,(drop "nashorn"
"1p0ynm2caraq1sal38qrrf42yah7j14c9vfwdv6h5h4rliahs177"))
,@(fold alist-delete (package-native-inputs icedtea-7)
'("gcj" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop"
"jdk-drop" "langtools-drop" "hotspot-drop")))))))
(define-public icedtea icedtea-7)
(define-public java-xz
(package
(name "java-xz")
(version "1.5")
(source (origin
(method url-fetch)
(uri (string-append "http://tukaani.org/xz/xz-java-" version ".zip"))
(sha256
(base32
"0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; There are no tests to run.
#:jar-name ,(string-append "xz-" version ".jar")
#:phases
(modify-phases %standard-phases
;; The unpack phase enters the "maven" directory by accident.
(add-after 'unpack 'chdir
(lambda _ (chdir "..") #t)))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://tukaani.org/xz/java.html")
(synopsis "Implementation of XZ data compression in pure Java")
(description "This library aims to be a complete implementation of XZ data
compression in pure Java. Single-threaded streamed compression and
decompression and random access decompression have been fully implemented.")
(license license:public-domain)))

View file

@ -27,7 +27,7 @@ (define-module (gnu packages kde-frameworks)
#:use-module (gnu packages qt)
#:use-module (gnu packages xorg))
(define kde-frameworks-version "5.19.0")
(define kde-frameworks-version "5.21.0")
(define-public extra-cmake-modules
(package
@ -41,7 +41,7 @@ (define-public extra-cmake-modules
name "-" version ".tar.xz"))
(sha256
(base32
"1dl3hhbara7iswb5wsc5dp17ar3ljw5f0nrncl8vry9smaz2zl63"))))
"1kbc5fkcbz9vkg0jpz10vsfgwajlrsmbl0vrbls5qvrdgbgrwlm3"))))
;; The package looks for Qt5LinguistTools provided by Qt, but apparently
;; compiles without it; it might be needed for building the
;; documentation, which requires the additional Sphinx package.
@ -66,7 +66,7 @@ (define-public kwindowsystem
name "-" version ".tar.xz"))
(sha256
(base32
"115xs34r74j9zcsw69glnh8w59iyh764n3gniawwrk23c6yb8fch"))))
"13lfwpw5a4in0mp5y8d15jg6xhhrka2qmw73wrdzcvj22n6ldzzi"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -104,7 +104,7 @@ (define-public oxygen-icons
name "5-"version ".tar.xz"))
(sha256
(base32
"09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0"))))
"00qh1h3xx392hh73zdlknc1j9i2sck9ys74a9ffkf6an4rl0hws5"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View file

@ -129,7 +129,7 @@ (define-public ldc
(sha256
(base32
"0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
(patches (list (search-patch "ldc-disable-tests.patch")))))
(patches (search-patches "ldc-disable-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)

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