Merge branch 'master' into core-updates
commit
768f0ac9dd
|
@ -11,6 +11,7 @@
|
||||||
/INSTALL
|
/INSTALL
|
||||||
/aclocal.m4
|
/aclocal.m4
|
||||||
/autom4te.cache
|
/autom4te.cache
|
||||||
|
/build-aux/ar-lib
|
||||||
/build-aux/compile
|
/build-aux/compile
|
||||||
/build-aux/config.guess
|
/build-aux/config.guess
|
||||||
/build-aux/config.rpath
|
/build-aux/config.rpath
|
||||||
|
|
|
@ -64,6 +64,7 @@ MODULES = \
|
||||||
guix/build-system/ant.scm \
|
guix/build-system/ant.scm \
|
||||||
guix/build-system/cargo.scm \
|
guix/build-system/cargo.scm \
|
||||||
guix/build-system/cmake.scm \
|
guix/build-system/cmake.scm \
|
||||||
|
guix/build-system/dub.scm \
|
||||||
guix/build-system/emacs.scm \
|
guix/build-system/emacs.scm \
|
||||||
guix/build-system/asdf.scm \
|
guix/build-system/asdf.scm \
|
||||||
guix/build-system/glib-or-gtk.scm \
|
guix/build-system/glib-or-gtk.scm \
|
||||||
|
@ -88,6 +89,7 @@ MODULES = \
|
||||||
guix/build/download.scm \
|
guix/build/download.scm \
|
||||||
guix/build/cargo-build-system.scm \
|
guix/build/cargo-build-system.scm \
|
||||||
guix/build/cmake-build-system.scm \
|
guix/build/cmake-build-system.scm \
|
||||||
|
guix/build/dub-build-system.scm \
|
||||||
guix/build/emacs-build-system.scm \
|
guix/build/emacs-build-system.scm \
|
||||||
guix/build/asdf-build-system.scm \
|
guix/build/asdf-build-system.scm \
|
||||||
guix/build/git.scm \
|
guix/build/git.scm \
|
||||||
|
@ -126,6 +128,7 @@ MODULES = \
|
||||||
guix/import/cabal.scm \
|
guix/import/cabal.scm \
|
||||||
guix/import/cran.scm \
|
guix/import/cran.scm \
|
||||||
guix/import/hackage.scm \
|
guix/import/hackage.scm \
|
||||||
|
guix/import/stackage.scm \
|
||||||
guix/import/elpa.scm \
|
guix/import/elpa.scm \
|
||||||
guix/scripts.scm \
|
guix/scripts.scm \
|
||||||
guix/scripts/download.scm \
|
guix/scripts/download.scm \
|
||||||
|
@ -147,6 +150,7 @@ MODULES = \
|
||||||
guix/scripts/import/gnu.scm \
|
guix/scripts/import/gnu.scm \
|
||||||
guix/scripts/import/nix.scm \
|
guix/scripts/import/nix.scm \
|
||||||
guix/scripts/import/hackage.scm \
|
guix/scripts/import/hackage.scm \
|
||||||
|
guix/scripts/import/stackage.scm \
|
||||||
guix/scripts/import/elpa.scm \
|
guix/scripts/import/elpa.scm \
|
||||||
guix/scripts/environment.scm \
|
guix/scripts/environment.scm \
|
||||||
guix/scripts/publish.scm \
|
guix/scripts/publish.scm \
|
||||||
|
|
|
@ -5,6 +5,7 @@ AC_MSG_RESULT([$guix_build_daemon])
|
||||||
|
|
||||||
dnl C++ environment. This macro must be used unconditionnaly.
|
dnl C++ environment. This macro must be used unconditionnaly.
|
||||||
AC_PROG_CXX
|
AC_PROG_CXX
|
||||||
|
AM_PROG_AR
|
||||||
AC_LANG([C++])
|
AC_LANG([C++])
|
||||||
|
|
||||||
if test "x$guix_build_daemon" = "xyes"; then
|
if test "x$guix_build_daemon" = "xyes"; then
|
||||||
|
|
|
@ -236,6 +236,15 @@ dnl Emacs (optional), for 'etc/indent-package.el'.
|
||||||
AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs])
|
AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs])
|
||||||
AC_SUBST([EMACS])
|
AC_SUBST([EMACS])
|
||||||
|
|
||||||
|
case "$storedir" in
|
||||||
|
/gnu/store)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_WARN([Using a store directory other than '/gnu/store' will prevent you])
|
||||||
|
AC_MSG_WARN([from downloading substitutes from gnu.org.])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
po/guix/Makefile.in
|
po/guix/Makefile.in
|
||||||
po/packages/Makefile.in
|
po/packages/Makefile.in
|
||||||
|
|
|
@ -31,7 +31,8 @@ Copyright @copyright{} 2016 Jan Nieuwenhuizen@*
|
||||||
Copyright @copyright{} 2016 Julien Lepiller@*
|
Copyright @copyright{} 2016 Julien Lepiller@*
|
||||||
Copyright @copyright{} 2016 Alex ter Weele@*
|
Copyright @copyright{} 2016 Alex ter Weele@*
|
||||||
Copyright @copyright{} 2017 Clément Lassieur@*
|
Copyright @copyright{} 2017 Clément Lassieur@*
|
||||||
Copyright @copyright{} 2017 Mathieu Othacehe
|
Copyright @copyright{} 2017 Mathieu Othacehe@*
|
||||||
|
Copyright @copyright{} 2017 Federico Beffa
|
||||||
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||||
|
@ -3437,6 +3438,16 @@ Which Haskell compiler is used can be specified with the @code{#:haskell}
|
||||||
parameter which defaults to @code{ghc}.
|
parameter which defaults to @code{ghc}.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
|
@defvr {Scheme Variable} dub-build-system
|
||||||
|
This variable is exported by @code{(guix build-system dub)}. It
|
||||||
|
implements the Dub build procedure used by D packages, which
|
||||||
|
involves running @code{dub build} and @code{dub run}.
|
||||||
|
Installation is done by copying the files manually.
|
||||||
|
|
||||||
|
Which D compiler is used can be specified with the @code{#:ldc}
|
||||||
|
parameter which defaults to @code{ldc}.
|
||||||
|
@end defvr
|
||||||
|
|
||||||
@defvr {Scheme Variable} emacs-build-system
|
@defvr {Scheme Variable} emacs-build-system
|
||||||
This variable is exported by @code{(guix build-system emacs)}. It
|
This variable is exported by @code{(guix build-system emacs)}. It
|
||||||
implements an installation procedure similar to the packaging system
|
implements an installation procedure similar to the packaging system
|
||||||
|
@ -5340,6 +5351,34 @@ package name by an at-sign and a version number as in the following example:
|
||||||
guix import hackage mtl@@2.1.3.1
|
guix import hackage mtl@@2.1.3.1
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@item stackage
|
||||||
|
@cindex stackage
|
||||||
|
The @code{stackage} importer is a wrapper around the @code{hackage} one.
|
||||||
|
It takes a package name, looks up the package version included in a
|
||||||
|
long-term support (LTS) @uref{https://www.stackage.org, Stackage}
|
||||||
|
release and uses the @code{hackage} importer to retrieve its metadata.
|
||||||
|
Note that it is up to you to select an LTS release compatible with the
|
||||||
|
GHC compiler used by Guix.
|
||||||
|
|
||||||
|
Specific command-line options are:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item --no-test-dependencies
|
||||||
|
@itemx -t
|
||||||
|
Do not include dependencies required only by the test suites.
|
||||||
|
@item --lts-version=@var{version}
|
||||||
|
@itemx -r @var{version}
|
||||||
|
@var{version} is the desired LTS release version. If omitted the latest
|
||||||
|
release is used.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
The command below imports metadata for the @code{HTTP} Haskell package
|
||||||
|
included in the LTS Stackage release version 7.18:
|
||||||
|
|
||||||
|
@example
|
||||||
|
guix import stackage --lts-version=7.18 HTTP
|
||||||
|
@end example
|
||||||
|
|
||||||
@item elpa
|
@item elpa
|
||||||
@cindex elpa
|
@cindex elpa
|
||||||
Import metadata from an Emacs Lisp Package Archive (ELPA) package
|
Import metadata from an Emacs Lisp Package Archive (ELPA) package
|
||||||
|
@ -5504,6 +5543,8 @@ the updater for @uref{https://rubygems.org, RubyGems} packages.
|
||||||
the updater for @uref{https://github.com, GitHub} packages.
|
the updater for @uref{https://github.com, GitHub} packages.
|
||||||
@item hackage
|
@item hackage
|
||||||
the updater for @uref{https://hackage.haskell.org, Hackage} packages.
|
the updater for @uref{https://hackage.haskell.org, Hackage} packages.
|
||||||
|
@item stackage
|
||||||
|
the updater for @uref{https://www.stackage.org, Stackage} packages.
|
||||||
@item crate
|
@item crate
|
||||||
the updater for @uref{https://crates.io, Crates} packages.
|
the updater for @uref{https://crates.io, Crates} packages.
|
||||||
@end table
|
@end table
|
||||||
|
@ -8272,6 +8313,50 @@ this:
|
||||||
@end example
|
@end example
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
|
@defvr {Scheme Variable} special-files-service-type
|
||||||
|
This is the service that sets up ``special files'' such as
|
||||||
|
@file{/bin/sh}; an instance of it is part of @code{%base-services}.
|
||||||
|
|
||||||
|
The value associated with @code{special-files-service-type} services
|
||||||
|
must be a list of tuples where the first element is the ``special file''
|
||||||
|
and the second element is its target. By default it is:
|
||||||
|
|
||||||
|
@cindex @file{/bin/sh}
|
||||||
|
@cindex @file{sh}, in @file{/bin}
|
||||||
|
@example
|
||||||
|
`(("/bin/sh" ,(file-append @var{bash} "/bin/sh")))
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@cindex @file{/usr/bin/env}
|
||||||
|
@cindex @file{env}, in @file{/usr/bin}
|
||||||
|
If you want to add, say, @code{/usr/bin/env} to your system, you can
|
||||||
|
change it to:
|
||||||
|
|
||||||
|
@example
|
||||||
|
`(("/bin/sh" ,(file-append @var{bash} "/bin/sh"))
|
||||||
|
("/usr/bin/env" ,(file-append @var{coreutils} "/bin/env")))
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Since this is part of @code{%base-services}, you can use
|
||||||
|
@code{modify-services} to customize the set of special files
|
||||||
|
(@pxref{Service Reference, @code{modify-services}}). But the simple way
|
||||||
|
to add a special file is @i{via} the @code{extra-special-file} procedure
|
||||||
|
(see below.)
|
||||||
|
@end defvr
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} extra-special-file @var{file} @var{target}
|
||||||
|
Use @var{target} as the ``special file'' @var{file}.
|
||||||
|
|
||||||
|
For example, adding the following lines to the @code{services} field of
|
||||||
|
your operating system declaration leads to a @file{/usr/bin/env}
|
||||||
|
symlink:
|
||||||
|
|
||||||
|
@example
|
||||||
|
(extra-special-file "/usr/bin/env"
|
||||||
|
(file-append coreutils "/bin/env"))
|
||||||
|
@end example
|
||||||
|
@end deffn
|
||||||
|
|
||||||
@deffn {Scheme Procedure} host-name-service @var{name}
|
@deffn {Scheme Procedure} host-name-service @var{name}
|
||||||
Return a service that sets the host name to @var{name}.
|
Return a service that sets the host name to @var{name}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
# Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Guix.
|
# This file is part of GNU Guix.
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@ _guix_complete_subcommand ()
|
||||||
local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null \
|
local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null \
|
||||||
| grep '^ [a-z]' \
|
| grep '^ [a-z]' \
|
||||||
| sed -e's/^ \+\([a-z-]\+\).*$/\1/g')"
|
| sed -e's/^ \+\([a-z-]\+\).*$/\1/g')"
|
||||||
COMPREPLY=($(compgen -W "$subcommands" -- "${COMP_WORDS[${#COMP_WORDS[*]} - 1]}"))
|
COMPREPLY=($(compgen -W "$subcommands" -- "${COMP_WORDS[$COMP_CWORD]}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
_guix_complete_available_package ()
|
_guix_complete_available_package ()
|
||||||
|
@ -113,6 +113,12 @@ _guix_complete_file ()
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_guix_complete_pid ()
|
||||||
|
{
|
||||||
|
local pids="$(cd /proc; echo [0-9]*)"
|
||||||
|
COMPREPLY=($(compgen -W "$pids" -- "$1"))
|
||||||
|
}
|
||||||
|
|
||||||
declare _guix_subcommands
|
declare _guix_subcommands
|
||||||
|
|
||||||
_guix_complete ()
|
_guix_complete ()
|
||||||
|
@ -154,11 +160,21 @@ _guix_complete ()
|
||||||
fi
|
fi
|
||||||
elif _guix_is_command "system"
|
elif _guix_is_command "system"
|
||||||
then
|
then
|
||||||
_guix_complete_subcommand
|
case $COMP_CWORD in
|
||||||
|
2) _guix_complete_subcommand;;
|
||||||
|
*) _guix_complete_file;; # TODO: restrict to *.scm
|
||||||
|
esac
|
||||||
|
elif _guix_is_command "container"
|
||||||
|
then
|
||||||
|
case $COMP_CWORD in
|
||||||
|
2) _guix_complete_subcommand;;
|
||||||
|
3) _guix_complete_pid "$word_at_point";;
|
||||||
|
*) _guix_complete_file;;
|
||||||
|
esac
|
||||||
elif _guix_is_command "import"
|
elif _guix_is_command "import"
|
||||||
then
|
then
|
||||||
_guix_complete_subcommand
|
_guix_complete_subcommand
|
||||||
elif _guix_is_command "hash"
|
elif _guix_is_command "hash" || _guix_is_command "gc"
|
||||||
then
|
then
|
||||||
_guix_complete_file
|
_guix_complete_file
|
||||||
else
|
else
|
||||||
|
|
|
@ -40,17 +40,29 @@ do
|
||||||
else
|
else
|
||||||
if [ "$remote_sha" = $z40 ]
|
if [ "$remote_sha" = $z40 ]
|
||||||
then
|
then
|
||||||
# New branch, examine all commits
|
# We are pushing a new branch. To prevent wasting too
|
||||||
range="$local_sha"
|
# much time for this relatively rare case, we examine
|
||||||
|
# all commits since the first signed commit, rather than
|
||||||
|
# the full history. This check *will* fail, and the user
|
||||||
|
# will need to temporarily disable the hook to push the
|
||||||
|
# new branch.
|
||||||
|
range="e3d0fcbf7e55e8cbe8d0a1c5a24d73f341d7243b..$local_sha"
|
||||||
else
|
else
|
||||||
# Update to existing branch, examine new commits
|
# Update to existing branch, examine new commits
|
||||||
range="$remote_sha..$local_sha"
|
range="$remote_sha..$local_sha"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify the signatures of all commits being pushed.
|
# Verify the signatures of all commits being pushed.
|
||||||
git verify-commit $(git rev-list $range) >/dev/null 2>&1
|
ret=0
|
||||||
|
for commit in $(git rev-list $range)
|
||||||
exit $?
|
do
|
||||||
|
if ! git verify-commit $commit >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
printf "%s failed signature check\n" $commit
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit $ret
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
activate-user-home
|
activate-user-home
|
||||||
activate-etc
|
activate-etc
|
||||||
activate-setuid-programs
|
activate-setuid-programs
|
||||||
activate-/bin/sh
|
activate-special-files
|
||||||
activate-modprobe
|
activate-modprobe
|
||||||
activate-firmware
|
activate-firmware
|
||||||
activate-ptrace-attach
|
activate-ptrace-attach
|
||||||
|
@ -80,16 +80,27 @@
|
||||||
(member file '("." "..")))
|
(member file '("." "..")))
|
||||||
|
|
||||||
(define* (copy-account-skeletons home
|
(define* (copy-account-skeletons home
|
||||||
#:optional (directory %skeleton-directory))
|
#:key
|
||||||
"Copy the account skeletons from DIRECTORY to HOME."
|
(directory %skeleton-directory)
|
||||||
|
uid gid)
|
||||||
|
"Copy the account skeletons from DIRECTORY to HOME. When UID is an integer,
|
||||||
|
make it the owner of all the files created; likewise for GID."
|
||||||
|
(define (set-owner file)
|
||||||
|
(when (or uid gid)
|
||||||
|
(chown file (or uid -1) (or gid -1))))
|
||||||
|
|
||||||
(let ((files (scandir directory (negate dot-or-dot-dot?)
|
(let ((files (scandir directory (negate dot-or-dot-dot?)
|
||||||
string<?)))
|
string<?)))
|
||||||
(mkdir-p home)
|
(mkdir-p home)
|
||||||
|
(set-owner home)
|
||||||
(for-each (lambda (file)
|
(for-each (lambda (file)
|
||||||
(let ((target (string-append home "/" file)))
|
(let ((target (string-append home "/" file)))
|
||||||
(copy-recursively (string-append directory "/" file)
|
(copy-recursively (string-append directory "/" file)
|
||||||
target
|
target
|
||||||
#:log (%make-void-port "w"))
|
#:log (%make-void-port "w"))
|
||||||
|
(for-each set-owner
|
||||||
|
(find-files target (const #t)
|
||||||
|
#:directories? #t))
|
||||||
(make-file-writable target)))
|
(make-file-writable target)))
|
||||||
files)))
|
files)))
|
||||||
|
|
||||||
|
@ -272,9 +283,14 @@ they already exist."
|
||||||
((name uid group supplementary-groups comment home create-home?
|
((name uid group supplementary-groups comment home create-home?
|
||||||
shell password system?)
|
shell password system?)
|
||||||
(unless (or (not home) (directory-exists? home))
|
(unless (or (not home) (directory-exists? home))
|
||||||
(mkdir-p home)
|
(let* ((pw (getpwnam name))
|
||||||
(unless system?
|
(uid (passwd:uid pw))
|
||||||
(copy-account-skeletons home))))))
|
(gid (passwd:gid pw)))
|
||||||
|
(mkdir-p home)
|
||||||
|
(chown home uid gid)
|
||||||
|
(unless system?
|
||||||
|
(copy-account-skeletons home
|
||||||
|
#:uid uid #:gid gid)))))))
|
||||||
|
|
||||||
(for-each ensure-user-home users))
|
(for-each ensure-user-home users))
|
||||||
|
|
||||||
|
@ -362,10 +378,23 @@ copy SOURCE to TARGET."
|
||||||
|
|
||||||
(for-each make-setuid-program programs))
|
(for-each make-setuid-program programs))
|
||||||
|
|
||||||
(define (activate-/bin/sh shell)
|
(define (activate-special-files special-files)
|
||||||
"Change /bin/sh to point to SHELL."
|
"Install the files listed in SPECIAL-FILES. Each element of SPECIAL-FILES
|
||||||
(symlink shell "/bin/sh.new")
|
is a pair where the first element is the name of the special file and the
|
||||||
(rename-file "/bin/sh.new" "/bin/sh"))
|
second element is the name it should appear at, such as:
|
||||||
|
|
||||||
|
((\"/bin/sh\" \"/gnu/store/…-bash/bin/sh\")
|
||||||
|
(\"/usr/bin/env\" \"/gnu/store/…-coreutils/bin/env\"))
|
||||||
|
"
|
||||||
|
(define install-special-file
|
||||||
|
(match-lambda
|
||||||
|
((target file)
|
||||||
|
(let ((pivot (string-append target ".new")))
|
||||||
|
(mkdir-p (dirname target))
|
||||||
|
(symlink file pivot)
|
||||||
|
(rename-file pivot target)))))
|
||||||
|
|
||||||
|
(for-each install-special-file special-files))
|
||||||
|
|
||||||
(define (activate-modprobe modprobe)
|
(define (activate-modprobe modprobe)
|
||||||
"Tell the kernel to use MODPROBE to load modules."
|
"Tell the kernel to use MODPROBE to load modules."
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
|
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -32,7 +33,8 @@
|
||||||
%namespaces
|
%namespaces
|
||||||
run-container
|
run-container
|
||||||
call-with-container
|
call-with-container
|
||||||
container-excursion))
|
container-excursion
|
||||||
|
container-excursion*))
|
||||||
|
|
||||||
(define (user-namespace-supported?)
|
(define (user-namespace-supported?)
|
||||||
"Return #t if user namespaces are supported on this system."
|
"Return #t if user namespaces are supported on this system."
|
||||||
|
@ -128,13 +130,19 @@ for the process."
|
||||||
"/dev/fuse"))
|
"/dev/fuse"))
|
||||||
|
|
||||||
;; Setup the container's /dev/console by bind mounting the pseudo-terminal
|
;; Setup the container's /dev/console by bind mounting the pseudo-terminal
|
||||||
;; associated with standard input.
|
;; associated with standard input when there is one.
|
||||||
(let ((in (current-input-port))
|
(let* ((in (current-input-port))
|
||||||
(console (scope "/dev/console")))
|
(tty (catch 'system-error
|
||||||
(when (isatty? in)
|
(lambda ()
|
||||||
|
;; This call throws if IN does not correspond to a tty.
|
||||||
|
;; This is more reliable than 'isatty?'.
|
||||||
|
(ttyname in))
|
||||||
|
(const #f)))
|
||||||
|
(console (scope "/dev/console")))
|
||||||
|
(when tty
|
||||||
(touch console)
|
(touch console)
|
||||||
(chmod console #o600)
|
(chmod console #o600)
|
||||||
(bind-mount (ttyname in) console)))
|
(bind-mount tty console)))
|
||||||
|
|
||||||
;; Setup standard input/output/error.
|
;; Setup standard input/output/error.
|
||||||
(symlink "/proc/self/fd" (scope "/dev/fd"))
|
(symlink "/proc/self/fd" (scope "/dev/fd"))
|
||||||
|
@ -229,6 +237,8 @@ host user identifiers to map into the user namespace."
|
||||||
namespaces)))
|
namespaces)))
|
||||||
(lambda args
|
(lambda args
|
||||||
;; Forward the exception to the parent process.
|
;; Forward the exception to the parent process.
|
||||||
|
;; FIXME: SRFI-35 conditions and non-trivial objects
|
||||||
|
;; cannot be 'read' so they shouldn't be written as is.
|
||||||
(write args child)
|
(write args child)
|
||||||
(primitive-exit 3))))
|
(primitive-exit 3))))
|
||||||
;; TODO: Manage capabilities.
|
;; TODO: Manage capabilities.
|
||||||
|
@ -318,3 +328,21 @@ return the exit status."
|
||||||
(match (waitpid pid)
|
(match (waitpid pid)
|
||||||
((_ . status)
|
((_ . status)
|
||||||
(status:exit-val status))))))
|
(status:exit-val status))))))
|
||||||
|
|
||||||
|
(define (container-excursion* pid thunk)
|
||||||
|
"Like 'container-excursion', but return the return value of THUNK."
|
||||||
|
(match (pipe)
|
||||||
|
((in . out)
|
||||||
|
(match (container-excursion pid
|
||||||
|
(lambda ()
|
||||||
|
(close-port in)
|
||||||
|
(write (thunk) out)))
|
||||||
|
(0
|
||||||
|
(close-port out)
|
||||||
|
(let ((result (read in)))
|
||||||
|
(close-port in)
|
||||||
|
result))
|
||||||
|
(_ ;maybe PID died already
|
||||||
|
(close-port out)
|
||||||
|
(close-port in)
|
||||||
|
#f)))))
|
||||||
|
|
|
@ -0,0 +1,177 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2017 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 build shepherd)
|
||||||
|
#:use-module (gnu system file-systems)
|
||||||
|
#:use-module (gnu build linux-container)
|
||||||
|
#:use-module (guix build utils)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:export (make-forkexec-constructor/container))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; This module provides extensions to the GNU Shepherd. In particular, it
|
||||||
|
;;; provides a helper to start services in a container.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(define (clean-up file)
|
||||||
|
(when file
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(delete-file file))
|
||||||
|
(lambda args
|
||||||
|
(unless (= ENOENT (system-error-errno args))
|
||||||
|
(apply throw args))))))
|
||||||
|
|
||||||
|
(define-syntax-rule (catch-system-error exp)
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
exp)
|
||||||
|
(const #f)))
|
||||||
|
|
||||||
|
(define (default-namespaces args)
|
||||||
|
;; Most daemons are here to talk to the network, and most of them expect to
|
||||||
|
;; run under a non-zero UID.
|
||||||
|
(fold delq %namespaces '(net user)))
|
||||||
|
|
||||||
|
(define* (default-mounts #:key (namespaces (default-namespaces '())))
|
||||||
|
(define (tmpfs directory)
|
||||||
|
(file-system
|
||||||
|
(device "none")
|
||||||
|
(title 'device)
|
||||||
|
(mount-point directory)
|
||||||
|
(type "tmpfs")
|
||||||
|
(check? #f)))
|
||||||
|
|
||||||
|
(define passwd
|
||||||
|
;; This is for processes in the default user namespace but living in a
|
||||||
|
;; different mount namespace, so that they can lookup users.
|
||||||
|
(file-system-mapping
|
||||||
|
(source "/etc/passwd") (target source)))
|
||||||
|
|
||||||
|
(define nscd-socket
|
||||||
|
(file-system-mapping
|
||||||
|
(source "/var/run/nscd") (target source)
|
||||||
|
(writable? #t)))
|
||||||
|
|
||||||
|
(append (cons (tmpfs "/tmp") %container-file-systems)
|
||||||
|
(let ((mappings `(,@(if (memq 'net namespaces)
|
||||||
|
'()
|
||||||
|
(cons nscd-socket
|
||||||
|
%network-file-mappings))
|
||||||
|
,@(if (and (memq 'mnt namespaces)
|
||||||
|
(not (memq 'user namespaces)))
|
||||||
|
(list passwd)
|
||||||
|
'())
|
||||||
|
,%store-mapping))) ;XXX: coarse-grain
|
||||||
|
(map file-system-mapping->bind-mount
|
||||||
|
(filter (lambda (mapping)
|
||||||
|
(file-exists? (file-system-mapping-source mapping)))
|
||||||
|
mappings)))))
|
||||||
|
|
||||||
|
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
|
||||||
|
(module-autoload! (current-module)
|
||||||
|
'(shepherd service) '(read-pid-file exec-command))
|
||||||
|
|
||||||
|
(define* (read-pid-file/container pid pid-file #:key (max-delay 5))
|
||||||
|
"Read PID-FILE in the container namespaces of PID, which exists in a
|
||||||
|
separate mount and PID name space. Return the \"outer\" PID. "
|
||||||
|
(match (container-excursion* pid
|
||||||
|
(lambda ()
|
||||||
|
(read-pid-file pid-file
|
||||||
|
#:max-delay max-delay)))
|
||||||
|
(#f
|
||||||
|
(catch-system-error (kill pid SIGTERM))
|
||||||
|
#f)
|
||||||
|
((? integer? container-pid)
|
||||||
|
;; XXX: When COMMAND is started in a separate PID namespace, its
|
||||||
|
;; PID is always 1, but that's not what Shepherd needs to know.
|
||||||
|
pid)))
|
||||||
|
|
||||||
|
(define* (make-forkexec-constructor/container command
|
||||||
|
#:key
|
||||||
|
(namespaces
|
||||||
|
(default-namespaces args))
|
||||||
|
(mappings '())
|
||||||
|
(user #f)
|
||||||
|
(group #f)
|
||||||
|
(log-file #f)
|
||||||
|
pid-file
|
||||||
|
(pid-file-timeout 5)
|
||||||
|
(directory "/")
|
||||||
|
(environment-variables
|
||||||
|
(environ))
|
||||||
|
#:rest args)
|
||||||
|
"This is a variant of 'make-forkexec-constructor' that starts COMMAND in
|
||||||
|
NAMESPACES, a list of Linux namespaces such as '(mnt ipc). MAPPINGS is the
|
||||||
|
list of <file-system-mapping> to make in the case of a separate mount
|
||||||
|
namespace, in addition to essential bind-mounts such /proc."
|
||||||
|
(define container-directory
|
||||||
|
(match command
|
||||||
|
((program _ ...)
|
||||||
|
(string-append "/var/run/containers/" (basename program)))))
|
||||||
|
|
||||||
|
(define auto-mappings
|
||||||
|
`(,@(if log-file
|
||||||
|
(list (file-system-mapping
|
||||||
|
(source log-file)
|
||||||
|
(target source)
|
||||||
|
(writable? #t)))
|
||||||
|
'())))
|
||||||
|
|
||||||
|
(define mounts
|
||||||
|
(append (map file-system-mapping->bind-mount
|
||||||
|
(append auto-mappings mappings))
|
||||||
|
(default-mounts #:namespaces namespaces)))
|
||||||
|
|
||||||
|
(lambda args
|
||||||
|
(mkdir-p container-directory)
|
||||||
|
|
||||||
|
(when log-file
|
||||||
|
;; Create LOG-FILE so we can map it in the container.
|
||||||
|
(unless (file-exists? log-file)
|
||||||
|
(call-with-output-file log-file (const #t))))
|
||||||
|
|
||||||
|
(let ((pid (run-container container-directory
|
||||||
|
mounts namespaces 1
|
||||||
|
(lambda ()
|
||||||
|
(mkdir-p "/var/run")
|
||||||
|
(clean-up pid-file)
|
||||||
|
(clean-up log-file)
|
||||||
|
|
||||||
|
(exec-command command
|
||||||
|
#:user user
|
||||||
|
#:group group
|
||||||
|
#:log-file log-file
|
||||||
|
#:directory directory
|
||||||
|
#:environment-variables
|
||||||
|
environment-variables)))))
|
||||||
|
(if pid-file
|
||||||
|
(if (or (memq 'mnt namespaces) (memq 'pid namespaces))
|
||||||
|
(read-pid-file/container pid pid-file
|
||||||
|
#:max-delay pid-file-timeout)
|
||||||
|
(read-pid-file pid-file #:max-delay pid-file-timeout))
|
||||||
|
pid))))
|
||||||
|
|
||||||
|
;; Local Variables:
|
||||||
|
;; eval: (put 'container-excursion* 'scheme-indent-function 1)
|
||||||
|
;; End:
|
||||||
|
|
||||||
|
;;; shepherd.scm ends here
|
14
gnu/local.mk
14
gnu/local.mk
|
@ -4,7 +4,7 @@
|
||||||
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||||
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||||
# Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
# Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
|
||||||
# Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
# Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||||
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
|
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
|
||||||
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
@ -64,6 +64,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/bittorrent.scm \
|
%D%/packages/bittorrent.scm \
|
||||||
%D%/packages/bison.scm \
|
%D%/packages/bison.scm \
|
||||||
%D%/packages/boost.scm \
|
%D%/packages/boost.scm \
|
||||||
|
%D%/packages/bootloaders.scm \
|
||||||
%D%/packages/bootstrap.scm \
|
%D%/packages/bootstrap.scm \
|
||||||
%D%/packages/busybox.scm \
|
%D%/packages/busybox.scm \
|
||||||
%D%/packages/c.scm \
|
%D%/packages/c.scm \
|
||||||
|
@ -170,7 +171,6 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/graphics.scm \
|
%D%/packages/graphics.scm \
|
||||||
%D%/packages/graphviz.scm \
|
%D%/packages/graphviz.scm \
|
||||||
%D%/packages/groff.scm \
|
%D%/packages/groff.scm \
|
||||||
%D%/packages/grub.scm \
|
|
||||||
%D%/packages/gsasl.scm \
|
%D%/packages/gsasl.scm \
|
||||||
%D%/packages/gstreamer.scm \
|
%D%/packages/gstreamer.scm \
|
||||||
%D%/packages/gtk.scm \
|
%D%/packages/gtk.scm \
|
||||||
|
@ -318,6 +318,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/ratpoison.scm \
|
%D%/packages/ratpoison.scm \
|
||||||
%D%/packages/rdesktop.scm \
|
%D%/packages/rdesktop.scm \
|
||||||
%D%/packages/rdf.scm \
|
%D%/packages/rdf.scm \
|
||||||
|
%D%/packages/re2c.scm \
|
||||||
%D%/packages/readline.scm \
|
%D%/packages/readline.scm \
|
||||||
%D%/packages/regex.scm \
|
%D%/packages/regex.scm \
|
||||||
%D%/packages/rrdtool.scm \
|
%D%/packages/rrdtool.scm \
|
||||||
|
@ -372,7 +373,6 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/unrtf.scm \
|
%D%/packages/unrtf.scm \
|
||||||
%D%/packages/upnp.scm \
|
%D%/packages/upnp.scm \
|
||||||
%D%/packages/uucp.scm \
|
%D%/packages/uucp.scm \
|
||||||
%D%/packages/u-boot.scm \
|
|
||||||
%D%/packages/valgrind.scm \
|
%D%/packages/valgrind.scm \
|
||||||
%D%/packages/version-control.scm \
|
%D%/packages/version-control.scm \
|
||||||
%D%/packages/video.scm \
|
%D%/packages/video.scm \
|
||||||
|
@ -450,6 +450,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/build/linux-initrd.scm \
|
%D%/build/linux-initrd.scm \
|
||||||
%D%/build/linux-modules.scm \
|
%D%/build/linux-modules.scm \
|
||||||
%D%/build/marionette.scm \
|
%D%/build/marionette.scm \
|
||||||
|
%D%/build/shepherd.scm \
|
||||||
%D%/build/svg.scm \
|
%D%/build/svg.scm \
|
||||||
%D%/build/vm.scm \
|
%D%/build/vm.scm \
|
||||||
\
|
\
|
||||||
|
@ -603,6 +604,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/grub-gets-undeclared.patch \
|
%D%/packages/patches/grub-gets-undeclared.patch \
|
||||||
%D%/packages/patches/grub-freetype.patch \
|
%D%/packages/patches/grub-freetype.patch \
|
||||||
%D%/packages/patches/gsl-test-i686.patch \
|
%D%/packages/patches/gsl-test-i686.patch \
|
||||||
|
%D%/packages/patches/gst-plugins-base-fix-test-on-32bit.patch \
|
||||||
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||||
%D%/packages/patches/guile-arm-fixes.patch \
|
%D%/packages/patches/guile-arm-fixes.patch \
|
||||||
%D%/packages/patches/guile-default-utf8.patch \
|
%D%/packages/patches/guile-default-utf8.patch \
|
||||||
|
@ -771,6 +773,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/ninja-zero-mtime.patch \
|
%D%/packages/patches/ninja-zero-mtime.patch \
|
||||||
%D%/packages/patches/node-9077.patch \
|
%D%/packages/patches/node-9077.patch \
|
||||||
%D%/packages/patches/nss-pkgconfig.patch \
|
%D%/packages/patches/nss-pkgconfig.patch \
|
||||||
|
%D%/packages/patches/ntfs-3g-CVE-2017-0358.patch \
|
||||||
%D%/packages/patches/nvi-assume-preserve-path.patch \
|
%D%/packages/patches/nvi-assume-preserve-path.patch \
|
||||||
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
||||||
%D%/packages/patches/nvi-db4.patch \
|
%D%/packages/patches/nvi-db4.patch \
|
||||||
|
@ -793,6 +796,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/openssl-c-rehash-in.patch \
|
%D%/packages/patches/openssl-c-rehash-in.patch \
|
||||||
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
|
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
|
||||||
%D%/packages/patches/ots-no-include-missing-file.patch \
|
%D%/packages/patches/ots-no-include-missing-file.patch \
|
||||||
|
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
|
||||||
%D%/packages/patches/p7zip-remove-unused-code.patch \
|
%D%/packages/patches/p7zip-remove-unused-code.patch \
|
||||||
%D%/packages/patches/patchelf-page-size.patch \
|
%D%/packages/patches/patchelf-page-size.patch \
|
||||||
%D%/packages/patches/patchelf-rework-for-arm.patch \
|
%D%/packages/patches/patchelf-rework-for-arm.patch \
|
||||||
|
@ -855,9 +859,13 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
||||||
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2016-10155.patch \
|
%D%/packages/patches/qemu-CVE-2016-10155.patch \
|
||||||
|
%D%/packages/patches/qemu-CVE-2017-2615.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2017-5525.patch \
|
%D%/packages/patches/qemu-CVE-2017-5525.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2017-5526.patch \
|
%D%/packages/patches/qemu-CVE-2017-5526.patch \
|
||||||
%D%/packages/patches/qemu-CVE-2017-5552.patch \
|
%D%/packages/patches/qemu-CVE-2017-5552.patch \
|
||||||
|
%D%/packages/patches/qemu-CVE-2017-5578.patch \
|
||||||
|
%D%/packages/patches/qemu-CVE-2017-5579.patch \
|
||||||
|
%D%/packages/patches/qemu-CVE-2017-5856.patch \
|
||||||
%D%/packages/patches/qt4-ldflags.patch \
|
%D%/packages/patches/qt4-ldflags.patch \
|
||||||
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
||||||
%D%/packages/patches/rapicorn-isnan.patch \
|
%D%/packages/patches/rapicorn-isnan.patch \
|
||||||
|
|
|
@ -474,7 +474,7 @@ connection alive.")
|
||||||
(bind-minor-version "9")
|
(bind-minor-version "9")
|
||||||
(bind-patch-version "9")
|
(bind-patch-version "9")
|
||||||
(bind-release-type "-P") ; for patch release, use "-P"
|
(bind-release-type "-P") ; for patch release, use "-P"
|
||||||
(bind-release-version "5") ; for patch release, e.g. "4"
|
(bind-release-version "6") ; for patch release, e.g. "6"
|
||||||
(bind-version (string-append bind-major-version
|
(bind-version (string-append bind-major-version
|
||||||
"."
|
"."
|
||||||
bind-minor-version
|
bind-minor-version
|
||||||
|
@ -590,7 +590,7 @@ connection alive.")
|
||||||
"/bind-" bind-version ".tar.gz"))
|
"/bind-" bind-version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1yn15chkfqf4d7961ip2x10jm27a9wqymz2xqh0a2g89arrirkaw"))))
|
"1qf9j0nyqx0qy871mj22xh4dg0n1pqlv94lpiijb8vr7n7m3svhr"))))
|
||||||
|
|
||||||
;; When cross-compiling, we need the cross Coreutils and sed.
|
;; When cross-compiling, we need the cross Coreutils and sed.
|
||||||
;; Otherwise just use those from %FINAL-INPUTS.
|
;; Otherwise just use those from %FINAL-INPUTS.
|
||||||
|
@ -639,18 +639,8 @@ network statistics collection, security monitoring, network debugging, etc.")
|
||||||
(version "4.9.0")
|
(version "4.9.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
;; We use this Debian URL while the upstream URL is still
|
(uri (string-append "http://www.tcpdump.org/release/tcpdump-"
|
||||||
;; officially private. This is the result of a botched
|
version ".tar.gz"))
|
||||||
;; coordinated release of tcpdump 4.9.0. I verified with
|
|
||||||
;; the tcpdump maintainers that the upstream URL provides
|
|
||||||
;; the same data as this Debian URL.
|
|
||||||
(uri
|
|
||||||
(list
|
|
||||||
(string-append "http://http.debian.net/debian/pool/main/t/"
|
|
||||||
name "/" name "_" version ".orig.tar.gz")
|
|
||||||
(string-append "http://www.tcpdump.org/release/tcpdump-"
|
|
||||||
version ".tar.gz")))
|
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pjsxsy8l71i813sa934cwf1ryp9xbr7nxwsvnzavjdirchq3sga"))))
|
"0pjsxsy8l71i813sa934cwf1ryp9xbr7nxwsvnzavjdirchq3sga"))))
|
||||||
|
@ -1715,7 +1705,7 @@ throughput (in the same interval).")
|
||||||
("python-decorator" ,python-decorator)
|
("python-decorator" ,python-decorator)
|
||||||
("python-psutil" ,python-psutil)
|
("python-psutil" ,python-psutil)
|
||||||
("python-six" ,python-six)))
|
("python-six" ,python-six)))
|
||||||
(inputs
|
(native-inputs
|
||||||
;; Requires setuptools >= 17.1 due to some features used, while our
|
;; Requires setuptools >= 17.1 due to some features used, while our
|
||||||
;; python currently only includes 12.0. TODO: Remove this input.
|
;; python currently only includes 12.0. TODO: Remove this input.
|
||||||
`(("python-setuptools" ,python-setuptools)))
|
`(("python-setuptools" ,python-setuptools)))
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix monads)
|
||||||
|
#:use-module (guix store)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:autoload (guix gnupg) (gnupg-verify*)
|
#:autoload (guix gnupg) (gnupg-verify*)
|
||||||
#:autoload (guix hash) (port-sha256)
|
#:autoload (guix hash) (port-sha256)
|
||||||
|
@ -107,6 +110,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
||||||
(version "4.4"))
|
(version "4.4"))
|
||||||
(package
|
(package
|
||||||
(name "bash")
|
(name "bash")
|
||||||
|
(replacement bash/fixed)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -200,6 +204,7 @@ without modification.")
|
||||||
;; A stripped-down Bash for non-interactive use.
|
;; A stripped-down Bash for non-interactive use.
|
||||||
(package (inherit bash)
|
(package (inherit bash)
|
||||||
(name "bash-minimal")
|
(name "bash-minimal")
|
||||||
|
(replacement #f) ;not vulnerable to CVE-2017-5932 since it lacks completion
|
||||||
(inputs '()) ; no readline, no curses
|
(inputs '()) ; no readline, no curses
|
||||||
|
|
||||||
;; No "include" output because there's no support for loadable modules.
|
;; No "include" output because there's no support for loadable modules.
|
||||||
|
@ -255,6 +260,43 @@ without modification.")
|
||||||
(delete-file-recursively (string-append out "/share"))
|
(delete-file-recursively (string-append out "/share"))
|
||||||
#t))))))))))
|
#t))))))))))
|
||||||
|
|
||||||
|
(define* (url-fetch/reset-patch-level url hash-algo hash
|
||||||
|
#:optional name
|
||||||
|
#:key (system (%current-system)) guile)
|
||||||
|
"Fetch the Bash patch from URL and reset its 'PATCHLEVEL' definition so it
|
||||||
|
can apply to a patch-level 0 Bash."
|
||||||
|
(mlet* %store-monad ((name -> (or name (basename url)))
|
||||||
|
(patch (url-fetch url hash-algo hash
|
||||||
|
(string-append name ".orig")
|
||||||
|
#:system system
|
||||||
|
#:guile guile)))
|
||||||
|
(gexp->derivation name
|
||||||
|
(with-imported-modules '((guix build utils))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(copy-file #$patch #$output)
|
||||||
|
(substitute* #$output
|
||||||
|
(("PATCHLEVEL [0-6]+")
|
||||||
|
"PATCHLEVEL 0"))))
|
||||||
|
#:guile-for-build guile
|
||||||
|
#:system system)))
|
||||||
|
|
||||||
|
(define bash/fixed ;CVE-2017-5932 (RCE with completion)
|
||||||
|
(package
|
||||||
|
(inherit bash)
|
||||||
|
(version "4.4.A") ;4.4.0 + patch #7
|
||||||
|
(replacement #f)
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(inherit (package-source bash))
|
||||||
|
(patches (cons (origin
|
||||||
|
(method url-fetch/reset-patch-level)
|
||||||
|
(uri (patch-url 7))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1bzdsnqaf05gdbqpsixhan8vygjxpcxlz1dd8d9f5jdznw3wq76y")))
|
||||||
|
(origin-patches (package-source bash))))))))
|
||||||
|
|
||||||
(define-public bash-completion
|
(define-public bash-completion
|
||||||
(package
|
(package
|
||||||
(name "bash-completion")
|
(name "bash-completion")
|
||||||
|
|
|
@ -5748,7 +5748,7 @@ track. The database is exposed as a @code{TxDb} object.")
|
||||||
(define-public vsearch
|
(define-public vsearch
|
||||||
(package
|
(package
|
||||||
(name "vsearch")
|
(name "vsearch")
|
||||||
(version "2.3.4")
|
(version "2.4.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -5758,31 +5758,12 @@ track. The database is exposed as a @code{TxDb} object.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1xyraxmhyx62mxx8z7c8waygvcijwkh48ms1ar60w2cv2y2sn4al"))
|
"007q9a50hdw4vs2iajabvbw7qccml4r8cbqzyi5ipkkf42jk3vnr"))
|
||||||
(modules '((guix build utils)))
|
(patches (search-patches "vsearch-unbundle-cityhash.patch"))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
;; Remove bundled cityhash and '-mtune=native'.
|
;; Remove bundled cityhash sources. The vsearch source is adjusted
|
||||||
(substitute* "src/Makefile.am"
|
;; for this in the patch.
|
||||||
(("^AM_CXXFLAGS=-I\\$\\{srcdir\\}/cityhash \
|
|
||||||
-O3 -mtune=native -Wall -Wsign-compare")
|
|
||||||
(string-append "AM_CXXFLAGS=-lcityhash"
|
|
||||||
" -O3 -Wall -Wsign-compare"))
|
|
||||||
(("^__top_builddir__bin_vsearch_SOURCES = city.h \\\\")
|
|
||||||
"__top_builddir__bin_vsearch_SOURCES = \\")
|
|
||||||
(("^city.h \\\\") "\\")
|
|
||||||
(("^citycrc.h \\\\") "\\")
|
|
||||||
(("^libcityhash_a.*") "")
|
|
||||||
(("noinst_LIBRARIES = libcpu_sse2.a libcpu_ssse3.a \
|
|
||||||
libcityhash.a")
|
|
||||||
"noinst_LIBRARIES = libcpu_sse2.a libcpu_ssse3.a")
|
|
||||||
(("__top_builddir__bin_vsearch_LDADD = libcpu_ssse3.a \
|
|
||||||
libcpu_sse2.a libcityhash.a")
|
|
||||||
"__top_builddir__bin_vsearch_LDADD = libcpu_ssse3.a \
|
|
||||||
libcpu_sse2.a -lcityhash"))
|
|
||||||
(substitute* "src/vsearch.h"
|
|
||||||
(("^\\#include \"city.h\"") "#include <city.h>")
|
|
||||||
(("^\\#include \"citycrc.h\"") "#include <citycrc.h>"))
|
|
||||||
(delete-file "src/city.h")
|
(delete-file "src/city.h")
|
||||||
(delete-file "src/citycrc.h")
|
(delete-file "src/citycrc.h")
|
||||||
(delete-file "src/city.cc")
|
(delete-file "src/city.cc")
|
||||||
|
|
|
@ -0,0 +1,332 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||||
|
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||||
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
|
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
|
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
|
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
|
||||||
|
;;;
|
||||||
|
;;; 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 bootloaders)
|
||||||
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages admin)
|
||||||
|
#:use-module ((gnu packages algebra) #:select (bc))
|
||||||
|
#:use-module (gnu packages assembly)
|
||||||
|
#:use-module (gnu packages flex)
|
||||||
|
#:use-module (gnu packages disk)
|
||||||
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages cdrom)
|
||||||
|
#:use-module (gnu packages cross-base)
|
||||||
|
#:use-module (gnu packages disk)
|
||||||
|
#:use-module (gnu packages flex)
|
||||||
|
#:use-module (gnu packages fontutils)
|
||||||
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages man)
|
||||||
|
#:use-module (gnu packages ncurses)
|
||||||
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages qemu)
|
||||||
|
#:use-module (gnu packages texinfo)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix utils))
|
||||||
|
|
||||||
|
(define unifont
|
||||||
|
;; GNU Unifont, <http://gnu.org/s/unifont>.
|
||||||
|
;; GRUB needs it for its graphical terminal, gfxterm.
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri
|
||||||
|
"http://unifoundry.com/pub/unifont-7.0.06/font-builds/unifont-7.0.06.bdf.gz")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0p2vhnc18cnbmb39vq4m7hzv4mhnm2l0a2s7gx3ar277fwng3hys"))))
|
||||||
|
|
||||||
|
(define-public grub
|
||||||
|
(package
|
||||||
|
(name "grub")
|
||||||
|
(version "2.02rc1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"ftp://alpha.gnu.org/gnu/grub/grub-"
|
||||||
|
"2.02~rc1"
|
||||||
|
".tar.xz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0y02v19x9sb5jvj740f604vvi5j1rx8pily1jk0l64bdp7lkjlj4"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:phases (modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-stuff
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "grub-core/Makefile.in"
|
||||||
|
(("/bin/sh") (which "sh")))
|
||||||
|
|
||||||
|
;; Give the absolute file name of 'mdadm', used to
|
||||||
|
;; determine the root file system when it's a RAID
|
||||||
|
;; device. Failing to do that, 'grub-probe' silently
|
||||||
|
;; fails if 'mdadm' is not in $PATH.
|
||||||
|
(substitute* "grub-core/osdep/linux/getroot.c"
|
||||||
|
(("argv\\[0\\] = \"mdadm\"")
|
||||||
|
(string-append "argv[0] = \""
|
||||||
|
(assoc-ref inputs "mdadm")
|
||||||
|
"/sbin/mdadm\"")))
|
||||||
|
|
||||||
|
;; Make the font visible.
|
||||||
|
(copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz")
|
||||||
|
(system* "gunzip" "unifont.bdf.gz")
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("gettext" ,gettext-minimal)
|
||||||
|
|
||||||
|
;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and
|
||||||
|
;; 'grub-install' to recognize mapped devices (LUKS, etc.)
|
||||||
|
("lvm2" ,lvm2)
|
||||||
|
|
||||||
|
;; Depend on mdadm, which is invoked by 'grub-probe' and 'grub-install'
|
||||||
|
;; to determine whether the root file system is RAID.
|
||||||
|
("mdadm" ,mdadm)
|
||||||
|
|
||||||
|
("freetype" ,freetype)
|
||||||
|
;; ("libusb" ,libusb)
|
||||||
|
;; ("fuse" ,fuse)
|
||||||
|
("ncurses" ,ncurses)))
|
||||||
|
(native-inputs
|
||||||
|
`(("unifont" ,unifont)
|
||||||
|
("bison" ,bison)
|
||||||
|
("flex" ,flex)
|
||||||
|
("texinfo" ,texinfo)
|
||||||
|
("help2man" ,help2man)
|
||||||
|
|
||||||
|
;; Dependencies for the test suite. The "real" QEMU is needed here,
|
||||||
|
;; because several targets are used.
|
||||||
|
("parted" ,parted)
|
||||||
|
("qemu" ,qemu-minimal)
|
||||||
|
("xorriso" ,xorriso)))
|
||||||
|
(home-page "https://www.gnu.org/software/grub/")
|
||||||
|
(synopsis "GRand Unified Boot loader")
|
||||||
|
(description
|
||||||
|
"GRUB is a multiboot bootloader. It is used for initially loading the
|
||||||
|
kernel of an operating system and then transferring control to it. The kernel
|
||||||
|
then goes on to load the rest of the operating system. As a multiboot
|
||||||
|
bootloader, GRUB handles the presence of multiple operating systems installed
|
||||||
|
on the same computer; upon booting the computer, the user is presented with a
|
||||||
|
menu to select one of the installed operating systems.")
|
||||||
|
(license license:gpl3+)
|
||||||
|
(properties '((cpe-name . "grub2")))))
|
||||||
|
|
||||||
|
(define-public grub-efi
|
||||||
|
(package
|
||||||
|
(inherit grub)
|
||||||
|
(name "grub-efi")
|
||||||
|
(synopsis "GRand Unified Boot loader (UEFI version)")
|
||||||
|
(inputs
|
||||||
|
`(("efibootmgr" ,efibootmgr)
|
||||||
|
,@(package-inputs grub)))
|
||||||
|
(arguments
|
||||||
|
`(;; TODO: Tests need a UEFI firmware for qemu. There is one at
|
||||||
|
;; https://github.com/tianocore/edk2/tree/master/OvmfPkg .
|
||||||
|
;; Search for 'OVMF' in "tests/util/grub-shell.in".
|
||||||
|
#:tests? #f
|
||||||
|
,@(substitute-keyword-arguments (package-arguments grub)
|
||||||
|
((#:configure-flags flags ''())
|
||||||
|
`(cons "--with-platform=efi" ,flags))
|
||||||
|
((#:phases phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
(add-after 'patch-stuff 'use-absolute-efibootmgr-path
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "grub-core/osdep/unix/platform.c"
|
||||||
|
(("efibootmgr")
|
||||||
|
(string-append (assoc-ref inputs "efibootmgr")
|
||||||
|
"/sbin/efibootmgr")))
|
||||||
|
#t)))))))))
|
||||||
|
|
||||||
|
(define-public syslinux
|
||||||
|
(let ((commit "bb41e935cc83c6242de24d2271e067d76af3585c"))
|
||||||
|
(package
|
||||||
|
(name "syslinux")
|
||||||
|
(version (git-version "6.04-pre" "1" commit))
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/geneC/syslinux")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("nasm" ,nasm)
|
||||||
|
("perl" ,perl)
|
||||||
|
("python-2" ,python-2)))
|
||||||
|
(inputs
|
||||||
|
`(("libuuid" ,util-linux)))
|
||||||
|
(arguments
|
||||||
|
`(#:parallel-build? #f
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "BINDIR=" %output "/bin")
|
||||||
|
(string-append "SBINDIR=" %output "/sbin")
|
||||||
|
(string-append "LIBDIR=" %output "/lib")
|
||||||
|
(string-append "INCDIR=" %output "/include")
|
||||||
|
(string-append "DATADIR=" %output "/share")
|
||||||
|
(string-append "MANDIR=" %output "/share/man")
|
||||||
|
"PERL=perl"
|
||||||
|
"bios")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-files
|
||||||
|
(lambda _
|
||||||
|
(substitute* (find-files "." "Makefile.*|ppmtolss16")
|
||||||
|
(("/bin/pwd") (which "pwd"))
|
||||||
|
(("/bin/echo") (which "echo"))
|
||||||
|
(("/usr/bin/perl") (which "perl")))
|
||||||
|
#t))
|
||||||
|
(delete 'configure)
|
||||||
|
(add-before 'build 'set-permissions
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "chmod" "a+w" "utils/isohybrid.in"))))
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
(setenv "CC" "gcc")
|
||||||
|
(substitute* "tests/unittest/include/unittest/unittest.h"
|
||||||
|
;; Don't look up headers under /usr.
|
||||||
|
(("/usr/include/") ""))
|
||||||
|
(zero? (system* "make" "unittest")))))))
|
||||||
|
(home-page "http://www.syslinux.org")
|
||||||
|
(synopsis "Lightweight Linux bootloader")
|
||||||
|
(description "Syslinux is a lightweight Linux bootloader.")
|
||||||
|
(license (list license:gpl2+
|
||||||
|
license:bsd-3 ; gnu-efi/*
|
||||||
|
license:bsd-4 ; gnu-efi/inc/* gnu-efi/lib/*
|
||||||
|
;; Also contains:
|
||||||
|
license:expat license:isc license:zlib)))))
|
||||||
|
|
||||||
|
(define-public dtc
|
||||||
|
(package
|
||||||
|
(name "dtc")
|
||||||
|
(version "1.4.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://www.kernel.org/pub/software/utils/dtc/"
|
||||||
|
"dtc-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("bison" ,bison)
|
||||||
|
("flex" ,flex)))
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags
|
||||||
|
(list "CC=gcc"
|
||||||
|
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
"INSTALL=install")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure))))
|
||||||
|
(home-page "https://www.devicetree.org")
|
||||||
|
(synopsis "Compiles device tree source files")
|
||||||
|
(description "@command{dtc} compiles
|
||||||
|
@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
|
||||||
|
tree binary files. These are board description files used by Linux and BSD.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define u-boot
|
||||||
|
(package
|
||||||
|
(name "u-boot")
|
||||||
|
(version "2017.01")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"ftp://ftp.denx.de/pub/u-boot/"
|
||||||
|
"u-boot-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1wpc51jm3zyibgcr78jng2yksqvrya76bxgsr4pcyjrsz5sm2hkc"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("bc" ,bc)
|
||||||
|
("dtc" ,dtc)
|
||||||
|
("python-2" ,python-2)))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(home-page "http://www.denx.de/wiki/U-Boot/")
|
||||||
|
(synopsis "ARM bootloader")
|
||||||
|
(description "U-Boot is a bootloader used mostly for ARM boards. It
|
||||||
|
also initializes the boards (RAM etc).")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define (make-u-boot-package board triplet)
|
||||||
|
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
|
||||||
|
(package
|
||||||
|
(inherit u-boot)
|
||||||
|
(name (string-append "u-boot-" (string-downcase board)))
|
||||||
|
(native-inputs
|
||||||
|
`(("cross-gcc" ,(cross-gcc triplet))
|
||||||
|
("cross-binutils" ,(cross-binutils triplet))
|
||||||
|
,@(package-native-inputs u-boot)))
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((ice-9 ftw) (guix build utils) (guix build gnu-build-system))
|
||||||
|
#:test-target "test"
|
||||||
|
#:make-flags
|
||||||
|
(list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
||||||
|
(let ((config-name (string-append ,board "_defconfig")))
|
||||||
|
(if (file-exists? (string-append "configs/" config-name))
|
||||||
|
(zero? (apply system* "make" `(,@make-flags ,config-name)))
|
||||||
|
(begin
|
||||||
|
(display "Invalid board name. Valid board names are:")
|
||||||
|
(let ((suffix-len (string-length "_defconfig")))
|
||||||
|
(scandir "configs"
|
||||||
|
(lambda (file-name)
|
||||||
|
(when (string-suffix? "_defconfig" file-name)
|
||||||
|
(format #t
|
||||||
|
"- ~A\n"
|
||||||
|
(string-drop-right file-name
|
||||||
|
suffix-len))))))
|
||||||
|
#f)))))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(libexec (string-append out "/libexec"))
|
||||||
|
(uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
|
||||||
|
(mkdir-p libexec)
|
||||||
|
(for-each
|
||||||
|
(lambda (file)
|
||||||
|
(let ((target-file (string-append libexec "/" file)))
|
||||||
|
(mkdir-p (dirname target-file))
|
||||||
|
(copy-file file target-file)))
|
||||||
|
uboot-files)))))))))
|
||||||
|
|
||||||
|
(define-public u-boot-vexpress
|
||||||
|
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
|
||||||
|
|
||||||
|
(define-public u-boot-malta
|
||||||
|
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
|
||||||
|
|
||||||
|
(define-public u-boot-beagle-bone-black
|
||||||
|
(make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
|
|
@ -3,7 +3,7 @@
|
||||||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;;
|
;;;
|
||||||
|
@ -294,7 +294,7 @@ from an audio CD.")
|
||||||
(define-public abcde
|
(define-public abcde
|
||||||
(package
|
(package
|
||||||
(name "abcde")
|
(name "abcde")
|
||||||
(version "2.7.2")
|
(version "2.8.1")
|
||||||
(home-page "https://abcde.einval.com/")
|
(home-page "https://abcde.einval.com/")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -302,7 +302,7 @@ from an audio CD.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1pakpi41k8yd780mfp0snhia6mmwjwxk9lcrq6gynimch8b8hfda"))
|
"0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(substitute* "Makefile"
|
'(substitute* "Makefile"
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||||
|
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system perl)
|
#:use-module (guix build-system perl)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages assembly)
|
#:use-module (gnu packages assembly)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
|
@ -45,6 +47,7 @@
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages valgrind)
|
#:use-module (gnu packages valgrind)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module ((srfi srfi-1) #:select (last)))
|
#:use-module ((srfi srfi-1) #:select (last)))
|
||||||
|
@ -362,6 +365,44 @@ LZO is written in ANSI C. Both the source code and the compressed data
|
||||||
format are designed to be portable across platforms.")
|
format are designed to be portable across platforms.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public python-lzo
|
||||||
|
(package
|
||||||
|
(name "python-lzo")
|
||||||
|
(version "1.11")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "python-lzo" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"11p3ifg14p086byhhin6azx5svlkg8dzw2b5abixik97xd6fm81q"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "check"
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-setuppy
|
||||||
|
(lambda _
|
||||||
|
(substitute* "setup.py"
|
||||||
|
(("include_dirs.append\\(.*\\)")
|
||||||
|
(string-append "include_dirs.append('"
|
||||||
|
(assoc-ref %build-inputs "lzo")
|
||||||
|
"/include/lzo"
|
||||||
|
"')")))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("lzo" ,lzo)))
|
||||||
|
(home-page "https://github.com/jd-boyd/python-lzo")
|
||||||
|
(synopsis "Python bindings for the LZO data compression library")
|
||||||
|
(description
|
||||||
|
"Python-LZO provides Python bindings for LZO, i.e. you can access
|
||||||
|
the LZO library from your Python scripts thereby compressing ordinary
|
||||||
|
Python strings.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public python2-lzo
|
||||||
|
(package-with-python2 python-lzo))
|
||||||
|
|
||||||
(define-public lzop
|
(define-public lzop
|
||||||
(package
|
(package
|
||||||
(name "lzop")
|
(name "lzop")
|
||||||
|
@ -633,6 +674,31 @@ time for compression ratio.")
|
||||||
;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+.
|
;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+.
|
||||||
(license (list license:bsd-2 license:gpl2+))))
|
(license (list license:bsd-2 license:gpl2+))))
|
||||||
|
|
||||||
|
(define-public python-lz4
|
||||||
|
(package
|
||||||
|
(name "python-lz4")
|
||||||
|
(version "0.8.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "lz4" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1irad4sq4hdr30fr53smvv3zzk4rddcf9b4jx19w8s9xsxhr1x3b"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-nose" ,python-nose)))
|
||||||
|
(home-page "https://github.com/python-lz4/python-lz4")
|
||||||
|
(synopsis "LZ4 Bindings for Python")
|
||||||
|
(description
|
||||||
|
"This package provides python bindings for the lz4 compression library
|
||||||
|
by Yann Collet. The project contains bindings for the LZ4 block format and
|
||||||
|
the LZ4 frame format.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-lz4
|
||||||
|
(package-with-python2 python-lz4))
|
||||||
|
|
||||||
(define-public squashfs-tools
|
(define-public squashfs-tools
|
||||||
(package
|
(package
|
||||||
(name "squashfs-tools")
|
(name "squashfs-tools")
|
||||||
|
@ -924,7 +990,8 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
|
||||||
(delete-file-recursively "CPP/7zip/Archive/Rar")
|
(delete-file-recursively "CPP/7zip/Archive/Rar")
|
||||||
(delete-file-recursively "CPP/7zip/Compress/Rar")
|
(delete-file-recursively "CPP/7zip/Compress/Rar")
|
||||||
#t))
|
#t))
|
||||||
(patches (search-patches "p7zip-remove-unused-code.patch"))))
|
(patches (search-patches "p7zip-CVE-2016-9296.patch"
|
||||||
|
"p7zip-remove-unused-code.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags
|
`(#:make-flags
|
||||||
|
@ -1034,11 +1101,12 @@ functionality in a C++ iostream.")
|
||||||
(_ " -DNOJIT")))
|
(_ " -DNOJIT")))
|
||||||
;; These should be safe, lowest-common-denominator instruction sets,
|
;; These should be safe, lowest-common-denominator instruction sets,
|
||||||
;; allowing for some optimisation while remaining reproducible.
|
;; allowing for some optimisation while remaining reproducible.
|
||||||
(string-append "CXXFLAGS=-O3 -mtune=generic -DNDEBUG"
|
(string-append "CXXFLAGS=-O3 -DNDEBUG"
|
||||||
,(match (or (%current-target-system)
|
,(match (or (%current-target-system)
|
||||||
(%current-system))
|
(%current-system))
|
||||||
("x86_64-linux" " -march=nocona")
|
("x86_64-linux" " -march=nocona -mtune=generic")
|
||||||
("i686-linux" " -march=i686")
|
("i686-linux" " -march=i686 -mtune=generic")
|
||||||
|
("armhf-linux" " -mtune=generic-armv7-a")
|
||||||
(_ "")))
|
(_ "")))
|
||||||
(string-append "PREFIX="
|
(string-append "PREFIX="
|
||||||
(assoc-ref %outputs "out")))))
|
(assoc-ref %outputs "out")))))
|
||||||
|
|
|
@ -33,39 +33,37 @@
|
||||||
|
|
||||||
(define-module (gnu packages databases)
|
(define-module (gnu packages databases)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages algebra)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages avahi)
|
#:use-module (gnu packages avahi)
|
||||||
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
#:use-module (gnu packages crypto)
|
|
||||||
#:use-module (gnu packages gettext)
|
|
||||||
#:use-module (gnu packages glib)
|
|
||||||
#:use-module (gnu packages perl)
|
|
||||||
#:use-module (gnu packages language)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages tcl)
|
|
||||||
#:use-module (gnu packages tls)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages ncurses)
|
|
||||||
#:use-module (gnu packages readline)
|
|
||||||
#:use-module (gnu packages emacs)
|
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages algebra)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages crypto)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages cyrus-sasl)
|
#:use-module (gnu packages cyrus-sasl)
|
||||||
|
#:use-module (gnu packages emacs)
|
||||||
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnupg)
|
#:use-module (gnu packages gnupg)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages jemalloc)
|
||||||
|
#:use-module (gnu packages language)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages parallel)
|
#:use-module (gnu packages parallel)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages popt)
|
#:use-module (gnu packages popt)
|
||||||
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages rdf)
|
#:use-module (gnu packages rdf)
|
||||||
|
#:use-module (gnu packages readline)
|
||||||
|
#:use-module (gnu packages tcl)
|
||||||
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages bison)
|
|
||||||
#:use-module (gnu packages jemalloc)
|
|
||||||
#:use-module ((guix licenses)
|
|
||||||
#:select (gpl2 gpl3 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft
|
|
||||||
bsd-2 bsd-3 public-domain asl2.0))
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
@ -120,7 +118,7 @@
|
||||||
(synopsis "Clustered RDF storage and query engine")
|
(synopsis "Clustered RDF storage and query engine")
|
||||||
(description "4store is a RDF/SPARQL store written in C, supporting
|
(description "4store is a RDF/SPARQL store written in C, supporting
|
||||||
either single machines or networked clusters.")
|
either single machines or networked clusters.")
|
||||||
(license gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public gdbm
|
(define-public gdbm
|
||||||
(package
|
(package
|
||||||
|
@ -142,7 +140,7 @@ either single machines or networked clusters.")
|
||||||
"GDBM is a library for manipulating hashed databases. It is used to
|
"GDBM is a library for manipulating hashed databases. It is used to
|
||||||
store key/value pairs in a file in a manner similar to the Unix dbm library
|
store key/value pairs in a file in a manner similar to the Unix dbm library
|
||||||
and provides interfaces to the traditional file format.")
|
and provides interfaces to the traditional file format.")
|
||||||
(license gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public bdb
|
(define-public bdb
|
||||||
(package
|
(package
|
||||||
|
@ -194,8 +192,9 @@ and provides interfaces to the traditional file format.")
|
||||||
(description
|
(description
|
||||||
"Berkeley DB is an embeddable database allowing developers the choice of
|
"Berkeley DB is an embeddable database allowing developers the choice of
|
||||||
SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
||||||
(license (non-copyleft "file://LICENSE"
|
;; Starting with version 6, BDB is distributed under AGPL3. Many individual
|
||||||
"See LICENSE in the distribution."))
|
;; files are covered by the 3-clause BSD license.
|
||||||
|
(license (list license:agpl3+ license:bsd-3))
|
||||||
(home-page
|
(home-page
|
||||||
"http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))
|
"http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))
|
||||||
|
|
||||||
|
@ -203,6 +202,8 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
||||||
(package (inherit bdb)
|
(package (inherit bdb)
|
||||||
(name "bdb")
|
(name "bdb")
|
||||||
(version "5.3.28")
|
(version "5.3.28")
|
||||||
|
(license (license:non-copyleft "file://LICENSE"
|
||||||
|
"See LICENSE in the distribution."))
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://download.oracle.com/berkeley-db/db-"
|
(uri (string-append "http://download.oracle.com/berkeley-db/db-"
|
||||||
|
@ -247,7 +248,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
||||||
(description
|
(description
|
||||||
"LevelDB is a fast key-value storage library that provides an ordered
|
"LevelDB is a fast key-value storage library that provides an ordered
|
||||||
mapping from string keys to string values.")
|
mapping from string keys to string values.")
|
||||||
(license bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public mysql
|
(define-public mysql
|
||||||
(package
|
(package
|
||||||
|
@ -322,7 +323,7 @@ mapping from string keys to string values.")
|
||||||
"MySQL is a fast, reliable, and easy to use relational database
|
"MySQL is a fast, reliable, and easy to use relational database
|
||||||
management system that supports the standardized Structured Query
|
management system that supports the standardized Structured Query
|
||||||
Language.")
|
Language.")
|
||||||
(license gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public mariadb
|
(define-public mariadb
|
||||||
(package
|
(package
|
||||||
|
@ -390,7 +391,7 @@ Language.")
|
||||||
(description
|
(description
|
||||||
"MariaDB is a multi-user and multi-threaded SQL database server, designed
|
"MariaDB is a multi-user and multi-threaded SQL database server, designed
|
||||||
as a drop-in replacement of MySQL.")
|
as a drop-in replacement of MySQL.")
|
||||||
(license gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public postgresql
|
(define-public postgresql
|
||||||
(package
|
(package
|
||||||
|
@ -426,7 +427,7 @@ stored procedures (in multiple languages). It includes most SQL:2008 data
|
||||||
types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
|
types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
|
||||||
TIMESTAMP. It also supports storage of binary large objects, including
|
TIMESTAMP. It also supports storage of binary large objects, including
|
||||||
pictures, sounds, or video.")
|
pictures, sounds, or video.")
|
||||||
(license (x11-style "file://COPYRIGHT"))))
|
(license (license:x11-style "file://COPYRIGHT"))))
|
||||||
|
|
||||||
(define-public qdbm
|
(define-public qdbm
|
||||||
(package
|
(package
|
||||||
|
@ -509,13 +510,13 @@ manipulating text-based, human-editable databases. Despite being text-based,
|
||||||
databases created with Recutils carry all of the expected features such as
|
databases created with Recutils carry all of the expected features such as
|
||||||
unique fields, primary keys, time stamps and more. Many different field
|
unique fields, primary keys, time stamps and more. Many different field
|
||||||
types are supported, as is encryption.")
|
types are supported, as is encryption.")
|
||||||
(license gpl3+)
|
(license license:gpl3+)
|
||||||
(home-page "http://www.gnu.org/software/recutils/")))
|
(home-page "http://www.gnu.org/software/recutils/")))
|
||||||
|
|
||||||
(define-public rocksdb
|
(define-public rocksdb
|
||||||
(package
|
(package
|
||||||
(name "rocksdb")
|
(name "rocksdb")
|
||||||
(version "5.0.2")
|
(version "5.1.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/facebook/rocksdb"
|
(uri (string-append "https://github.com/facebook/rocksdb"
|
||||||
|
@ -523,7 +524,7 @@ types are supported, as is encryption.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jj8b50w8jr3bnyjzk2hmlzq9x49yihjilx3xlq2rfdx3q9x4fay"))
|
"1qdbs13al7g45xc2j44wzx0ywrg32q1gsdhk5j6j4952xg91rfmh"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -578,7 +579,8 @@ types are supported, as is encryption.")
|
||||||
`(("parallel" ,parallel)
|
`(("parallel" ,parallel)
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("procps" ,procps)
|
("procps" ,procps)
|
||||||
("python" ,python-2)))
|
("python" ,python-2)
|
||||||
|
("which" ,which)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("bzip2" ,bzip2)
|
`(("bzip2" ,bzip2)
|
||||||
("gflags" ,gflags)
|
("gflags" ,gflags)
|
||||||
|
@ -597,7 +599,7 @@ between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}
|
||||||
compactions, making it specially suitable for storing multiple terabytes of
|
compactions, making it specially suitable for storing multiple terabytes of
|
||||||
data in a single database. RocksDB is partially based on @code{LevelDB}.")
|
data in a single database. RocksDB is partially based on @code{LevelDB}.")
|
||||||
;; RocksDB is BSD-3 and the JNI adapter is Apache 2.0.
|
;; RocksDB is BSD-3 and the JNI adapter is Apache 2.0.
|
||||||
(license (list bsd-3 asl2.0))))
|
(license (list license:bsd-3 license:asl2.0))))
|
||||||
|
|
||||||
(define-public sparql-query
|
(define-public sparql-query
|
||||||
(package
|
(package
|
||||||
|
@ -658,7 +660,7 @@ edit previous queries, even across sessions. It can be used non-interactively,
|
||||||
for example from a shell script.")
|
for example from a shell script.")
|
||||||
;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while
|
;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while
|
||||||
;; others (like sparql-query.c) contain a GPLv2+ license header.
|
;; others (like sparql-query.c) contain a GPLv2+ license header.
|
||||||
(license (list gpl3+))))
|
(license (list license:gpl3+))))
|
||||||
|
|
||||||
(define-public sqlite
|
(define-public sqlite
|
||||||
(package
|
(package
|
||||||
|
@ -697,7 +699,7 @@ for example from a shell script.")
|
||||||
zero-configuration, transactional SQL database engine. SQLite is the most
|
zero-configuration, transactional SQL database engine. SQLite is the most
|
||||||
widely deployed SQL database engine in the world. The source code for SQLite
|
widely deployed SQL database engine in the world. The source code for SQLite
|
||||||
is in the public domain.")
|
is in the public domain.")
|
||||||
(license public-domain)))
|
(license license:public-domain)))
|
||||||
|
|
||||||
(define-public tdb
|
(define-public tdb
|
||||||
(package
|
(package
|
||||||
|
@ -734,7 +736,7 @@ is in the public domain.")
|
||||||
and BSD's DB except that it allows multiple simultaneous writers and uses
|
and BSD's DB except that it allows multiple simultaneous writers and uses
|
||||||
locking internally to keep writers from trampling on each other. TDB is also
|
locking internally to keep writers from trampling on each other. TDB is also
|
||||||
extremely small.")
|
extremely small.")
|
||||||
(license lgpl3+)))
|
(license license:lgpl3+)))
|
||||||
|
|
||||||
(define-public perl-dbi
|
(define-public perl-dbi
|
||||||
(package
|
(package
|
||||||
|
@ -1079,7 +1081,7 @@ valid SQL query.")
|
||||||
(description "Unixodbc is a library providing an API with which to access
|
(description "Unixodbc is a library providing an API with which to access
|
||||||
data sources. Data sources include SQL Servers and any software with an ODBC
|
data sources. Data sources include SQL Servers and any software with an ODBC
|
||||||
Driver.")
|
Driver.")
|
||||||
(license lgpl2.1+)
|
(license license:lgpl2.1+)
|
||||||
;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
|
;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
|
||||||
(home-page "http://www.unixodbc.org")))
|
(home-page "http://www.unixodbc.org")))
|
||||||
|
|
||||||
|
@ -1107,7 +1109,7 @@ self-contained, serverless, zero-configuration, transactional NoSQL
|
||||||
database engine. UnQLite is a document store database similar to
|
database engine. UnQLite is a document store database similar to
|
||||||
MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
|
MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
|
||||||
similar to BerkeleyDB, LevelDB, etc.")
|
similar to BerkeleyDB, LevelDB, etc.")
|
||||||
(license bsd-2)))
|
(license license:bsd-2)))
|
||||||
|
|
||||||
(define-public redis
|
(define-public redis
|
||||||
(package
|
(package
|
||||||
|
@ -1135,7 +1137,7 @@ similar to BerkeleyDB, LevelDB, etc.")
|
||||||
supports many data structures including strings, hashes, lists, sets, sorted
|
supports many data structures including strings, hashes, lists, sets, sorted
|
||||||
sets, bitmaps and hyperloglogs.")
|
sets, bitmaps and hyperloglogs.")
|
||||||
(home-page "http://redis.io/")
|
(home-page "http://redis.io/")
|
||||||
(license bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public kyotocabinet
|
(define-public kyotocabinet
|
||||||
(package
|
(package
|
||||||
|
@ -1162,7 +1164,7 @@ sets, bitmaps and hyperloglogs.")
|
||||||
"Kyoto Cabinet is a standalone file-based database that supports Hash
|
"Kyoto Cabinet is a standalone file-based database that supports Hash
|
||||||
and B+ Tree data storage models. It is a fast key-value lightweight
|
and B+ Tree data storage models. It is a fast key-value lightweight
|
||||||
database and supports many programming languages. It is a NoSQL database.")
|
database and supports many programming languages. It is a NoSQL database.")
|
||||||
(license gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public wiredtiger
|
(define-public wiredtiger
|
||||||
(package
|
(package
|
||||||
|
@ -1198,7 +1200,7 @@ row-oriented storage (where all columns of a row are stored together),
|
||||||
column-oriented storage (where columns are stored in groups, allowing for
|
column-oriented storage (where columns are stored in groups, allowing for
|
||||||
more efficient access and storage of column subsets) and log-structured merge
|
more efficient access and storage of column subsets) and log-structured merge
|
||||||
trees (LSM), for sustained throughput under random insert workloads.")
|
trees (LSM), for sustained throughput under random insert workloads.")
|
||||||
(license gpl3) ; or GPL-2
|
(license license:gpl3) ; or GPL-2
|
||||||
;; configure.ac: WiredTiger requires a 64-bit build.
|
;; configure.ac: WiredTiger requires a 64-bit build.
|
||||||
(supported-systems '("x86_64-linux" "mips64el-linux"))))
|
(supported-systems '("x86_64-linux" "mips64el-linux"))))
|
||||||
|
|
||||||
|
@ -1366,3 +1368,31 @@ development.")
|
||||||
;; test/crypto.test are licensed under a 3-clause BSD license. All other
|
;; test/crypto.test are licensed under a 3-clause BSD license. All other
|
||||||
;; source files are in the public domain.
|
;; source files are in the public domain.
|
||||||
(license (list license:public-domain license:bsd-3))))
|
(license (list license:public-domain license:bsd-3))))
|
||||||
|
|
||||||
|
(define-public python-pyodbc-c
|
||||||
|
(package
|
||||||
|
(name "python-pyodbc-c")
|
||||||
|
(version "3.1.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://gitlab.com/daym/pyodbc-c/repository/"
|
||||||
|
"archive.tar.gz?ref=v" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0nl11n3mgrcfnhimjqgv48rxqnb21l5m6s7p8ps2fa4nn4z6rzy0"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("unixodbc" ,unixodbc)))
|
||||||
|
(arguments
|
||||||
|
`(;; No unit tests exist.
|
||||||
|
#:tests? #f))
|
||||||
|
(home-page "https://github.com/mkleehammer/pyodbc")
|
||||||
|
(synopsis "Python ODBC Library")
|
||||||
|
(description "@code{python-pyodbc-c} provides a Python DB-API driver
|
||||||
|
for ODBC.")
|
||||||
|
(license (license:x11-style "file://LICENSE.TXT"))))
|
||||||
|
|
||||||
|
(define-public python2-pyodbc-c
|
||||||
|
(package-with-python2 python-pyodbc-c))
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages vim)
|
||||||
#:use-module (gnu packages xml))
|
#:use-module (gnu packages xml))
|
||||||
|
|
||||||
(define-public parted
|
(define-public parted
|
||||||
|
@ -154,7 +155,7 @@ tables.")
|
||||||
(define-public ddrescue
|
(define-public ddrescue
|
||||||
(package
|
(package
|
||||||
(name "ddrescue")
|
(name "ddrescue")
|
||||||
(version "1.21")
|
(version "1.22")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -162,9 +163,9 @@ tables.")
|
||||||
version ".tar.lz"))
|
version ".tar.lz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1b71hb42lh33y9843nd1mxlwkk9qh9ajvnz6ivzd1jq9lav4x7ph"))))
|
"19qhx9ggkkjl0g3a88g501wmybkj1y4n5lm5kp0km0blh0p7p189"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
|
(home-page "https://www.gnu.org/software/ddrescue/ddrescue.html")
|
||||||
(synopsis "Data recovery utility")
|
(synopsis "Data recovery utility")
|
||||||
(native-inputs `(("lzip" ,lzip)))
|
(native-inputs `(("lzip" ,lzip)))
|
||||||
(description
|
(description
|
||||||
|
@ -177,7 +178,7 @@ to recover data more efficiently by only reading the necessary blocks.")
|
||||||
(define-public dosfstools
|
(define-public dosfstools
|
||||||
(package
|
(package
|
||||||
(name "dosfstools")
|
(name "dosfstools")
|
||||||
(version "4.0")
|
(version "4.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -186,12 +187,13 @@ to recover data more efficiently by only reading the necessary blocks.")
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1bvxbv1w6vhbx0nx7ygp700wq5k2hjv0hm7w0kz1x7amaf4p6dwh"))))
|
"0wy13i3i4x2bw1hf5m4fd0myh61f9bcrs035fdlf6gyc1jksrcp6"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||||
"CC=gcc")
|
"CC=gcc")))
|
||||||
#:tests? #f)) ;no tests
|
(native-inputs
|
||||||
|
`(("xxd" ,vim))) ; for tests
|
||||||
(home-page "https://github.com/dosfstools/dosfstools")
|
(home-page "https://github.com/dosfstools/dosfstools")
|
||||||
(synopsis "Utilities for making and checking MS-DOS FAT file systems")
|
(synopsis "Utilities for making and checking MS-DOS FAT file systems")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -82,7 +82,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
||||||
(define-public bind
|
(define-public bind
|
||||||
(package
|
(package
|
||||||
(name "bind")
|
(name "bind")
|
||||||
(version "9.10.4-P5")
|
(version "9.10.4-P6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -90,7 +90,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1sqg7wg05h66vdjc8j215r04f8pg7lphkb93nsqxvzhk6r0ppi49"))))
|
"0rgffdm0h6dks0np4h9q4kd8nyb3azrdxw2skqnjzd8ws78vzpx1"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs `("out" "utils"))
|
(outputs `("out" "utils"))
|
||||||
(inputs
|
(inputs
|
||||||
|
|
|
@ -110,7 +110,18 @@
|
||||||
(find-files "." "loaddefs\\.el$")
|
(find-files "." "loaddefs\\.el$")
|
||||||
;; This is the only "autoloads" file that
|
;; This is the only "autoloads" file that
|
||||||
;; does not have "*loaddefs.el" name.
|
;; does not have "*loaddefs.el" name.
|
||||||
'("eshell/esh-groups.el")))))))
|
'("eshell/esh-groups.el")))
|
||||||
|
|
||||||
|
;; Make sure Tramp looks for binaries in the right places on
|
||||||
|
;; remote GuixSD machines, where 'getconf PATH' returns
|
||||||
|
;; something bogus.
|
||||||
|
(substitute* "net/tramp-sh.el"
|
||||||
|
;; Patch the line after "(defcustom tramp-remote-path".
|
||||||
|
(("\\(tramp-default-remote-path")
|
||||||
|
(format #f "(tramp-default-remote-path ~s ~s ~s ~s "
|
||||||
|
"~/.guix-profile/bin" "~/.guix-profile/sbin"
|
||||||
|
"/run/current-system/profile/bin"
|
||||||
|
"/run/current-system/profile/sbin")))))))
|
||||||
(build-system glib-or-gtk-build-system)
|
(build-system glib-or-gtk-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
|
;;; Copyright © 2017 David Craven <david@craven.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -18,17 +19,21 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (gnu packages firmware)
|
(define-module (gnu packages firmware)
|
||||||
#:use-module (guix licenses)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages admin)
|
||||||
|
#:use-module (gnu packages assembly)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages cmake)
|
#:use-module (gnu packages cmake)
|
||||||
#:use-module (gnu packages cross-base)
|
#:use-module (gnu packages cross-base)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages perl))
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages perl)
|
||||||
|
#:use-module (gnu packages python))
|
||||||
|
|
||||||
(define-public ath9k-htc-firmware
|
(define-public ath9k-htc-firmware
|
||||||
(package
|
(package
|
||||||
|
@ -85,7 +90,7 @@
|
||||||
"This is the firmware for the Qualcomm Atheros AR7010 and AR9271 USB
|
"This is the firmware for the Qualcomm Atheros AR7010 and AR9271 USB
|
||||||
802.11n NICs (aka Wi-Fi USB dongles). It is used by the ath9k driver of
|
802.11n NICs (aka Wi-Fi USB dongles). It is used by the ath9k driver of
|
||||||
Linux-libre.")
|
Linux-libre.")
|
||||||
(license (non-copyleft "http://directory.fsf.org/wiki/License:ClearBSD"))))
|
(license (license:non-copyleft "http://directory.fsf.org/wiki/License:ClearBSD"))))
|
||||||
|
|
||||||
(define-public b43-tools
|
(define-public b43-tools
|
||||||
(let ((commit "8dce53297966b31b6c70a7a03c2433978dd9f288")
|
(let ((commit "8dce53297966b31b6c70a7a03c2433978dd9f288")
|
||||||
|
@ -143,7 +148,7 @@ Linux-libre.")
|
||||||
"The b43 firmware tools is a collection of firmware extractor,
|
"The b43 firmware tools is a collection of firmware extractor,
|
||||||
assembler, disassembler, and debugging tools for the Linux kernel b43 wireless
|
assembler, disassembler, and debugging tools for the Linux kernel b43 wireless
|
||||||
driver.")
|
driver.")
|
||||||
(license gpl2))))
|
(license license:gpl2))))
|
||||||
|
|
||||||
(define-public openfwwf-firmware
|
(define-public openfwwf-firmware
|
||||||
(package
|
(package
|
||||||
|
@ -173,4 +178,125 @@ driver.")
|
||||||
"This is firmware from Open FirmWare for WiFi networks (OpenFWWF) for the
|
"This is firmware from Open FirmWare for WiFi networks (OpenFWWF) for the
|
||||||
Broadcom/AirForce chipset BCM43xx with Wireless-Core Revision 5. It is used
|
Broadcom/AirForce chipset BCM43xx with Wireless-Core Revision 5. It is used
|
||||||
by the b43-open driver of Linux-libre.")
|
by the b43-open driver of Linux-libre.")
|
||||||
(license gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public seabios
|
||||||
|
(package
|
||||||
|
(name "seabios")
|
||||||
|
(version "1.10.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://code.coreboot.org/p/seabios/downloads/get/"
|
||||||
|
"seabios-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1jyjl719drnl1v0gf0l5q6qjjmkyqcqkka6s28dfdi0yqsxdsqsh"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-2" ,python-2)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; No check target.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda _
|
||||||
|
(setenv "CC" "gcc")
|
||||||
|
#t))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(fmw (string-append out "/share/firmware")))
|
||||||
|
(mkdir-p fmw)
|
||||||
|
(copy-file "out/bios.bin" (string-append fmw "/bios.bin"))))))))
|
||||||
|
(home-page "https://www.seabios.org/SeaBIOS")
|
||||||
|
(synopsis "x86 BIOS implementation")
|
||||||
|
(description "SeaBIOS is an open source implementation of a 16bit x86 BIOS.
|
||||||
|
SeaBIOS can run in an emulator or it can run natively on X86 hardware with the
|
||||||
|
use of coreboot.")
|
||||||
|
;; Dual licensed.
|
||||||
|
(license (list license:gpl3+ license:lgpl3+
|
||||||
|
;; src/fw/acpi-dsdt.dsl is lgpl2
|
||||||
|
license:lgpl2.1
|
||||||
|
;; src/fw/lzmadecode.c and src/fw/lzmadecode.h are lgpl3+ and
|
||||||
|
;; cpl with a linking exception.
|
||||||
|
license:cpl1.0))))
|
||||||
|
|
||||||
|
;; OVMF is part of the edk2 source tree.
|
||||||
|
(define edk2-commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
|
||||||
|
(define edk2-version (git-version "20170116" "1" edk2-commit))
|
||||||
|
(define edk2-origin
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/tianocore/edk2")
|
||||||
|
(commit edk2-commit)))
|
||||||
|
(file-name (git-file-name "edk2" edk2-version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm948b"))))
|
||||||
|
|
||||||
|
(define-public ovmf
|
||||||
|
(package
|
||||||
|
(name "ovmf")
|
||||||
|
(version edk2-version)
|
||||||
|
(source edk2-origin)
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("acpica" ,acpica)
|
||||||
|
("nasm" ,nasm)
|
||||||
|
("python-2" ,python-2)
|
||||||
|
("util-linux" ,util-linux)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; No check target.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda _
|
||||||
|
(let* ((cwd (getcwd))
|
||||||
|
(tools (string-append cwd "/BaseTools"))
|
||||||
|
(bin (string-append tools "/BinWrappers/PosixLike")))
|
||||||
|
(setenv "WORKSPACE" cwd)
|
||||||
|
(setenv "EDK_TOOLS_PATH" tools)
|
||||||
|
(setenv "PATH" (string-append (getenv "PATH") ":" bin))
|
||||||
|
(system* "bash" "edksetup.sh" "BaseTools")
|
||||||
|
(substitute* "Conf/target.txt"
|
||||||
|
(("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
|
||||||
|
(("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n")
|
||||||
|
(("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
|
||||||
|
(format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
|
||||||
|
(number->string (parallel-job-count)))))
|
||||||
|
;; Build build support.
|
||||||
|
(setenv "BUILD_CC" "gcc")
|
||||||
|
(zero? (system* "make" "-C" (string-append tools "/Source/C"))))))
|
||||||
|
(add-after 'build 'build-ia32
|
||||||
|
(lambda _
|
||||||
|
(substitute* "Conf/target.txt"
|
||||||
|
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n")
|
||||||
|
(("^ACTIVE_PLATFORM[ ]*=.*$")
|
||||||
|
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n"))
|
||||||
|
(zero? (system* "build"))))
|
||||||
|
(add-after 'build 'build-x64
|
||||||
|
(lambda _
|
||||||
|
(substitute* "Conf/target.txt"
|
||||||
|
(("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n")
|
||||||
|
(("^ACTIVE_PLATFORM[ ]*=.*$")
|
||||||
|
"ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n"))
|
||||||
|
(zero? (system* "build"))))
|
||||||
|
(delete 'build)
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(fmw (string-append out "/share/firmware")))
|
||||||
|
(mkdir-p fmw)
|
||||||
|
(copy-file "Build/OvmfIa32/RELEASE_GCC49/FV/OVMF.fd"
|
||||||
|
(string-append fmw "/ovmf_ia32.bin"))
|
||||||
|
(copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd"
|
||||||
|
(string-append fmw "/ovmf_x64.bin")))
|
||||||
|
#t)))))
|
||||||
|
(supported-systems '("x86_64-linux" "i686-linux"))
|
||||||
|
(home-page "http://www.tianocore.org")
|
||||||
|
(synopsis "UEFI firmware for QEMU")
|
||||||
|
(description "OVMF is an EDK II based project to enable UEFI support for
|
||||||
|
Virtual Machines. OVMF contains a sample UEFI firmware for QEMU and KVM.")
|
||||||
|
(license (list license:expat
|
||||||
|
license:bsd-2 license:bsd-3 license:bsd-4))))
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
;;; Copyright © 2016 Toni Reina <areina@riseup.net>
|
;;; Copyright © 2016 Toni Reina <areina@riseup.net>
|
||||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
|
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
|
||||||
|
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -38,11 +39,13 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
@ -525,13 +528,11 @@ ko (Korean) locales for @code{fontconfig}.")
|
||||||
(let ((PATH (string-append (assoc-ref %build-inputs "tar") "/bin:"
|
(let ((PATH (string-append (assoc-ref %build-inputs "tar") "/bin:"
|
||||||
(assoc-ref %build-inputs "gzip") "/bin"))
|
(assoc-ref %build-inputs "gzip") "/bin"))
|
||||||
(font-dir (string-append (assoc-ref %outputs "out")
|
(font-dir (string-append (assoc-ref %outputs "out")
|
||||||
"/share/fonts/wenquanyi/")))
|
"/share/fonts/wenquanyi")))
|
||||||
(setenv "PATH" PATH)
|
|
||||||
(mkdir-p font-dir)
|
(mkdir-p font-dir)
|
||||||
|
(setenv "PATH" PATH)
|
||||||
(system* "tar" "xvf" (assoc-ref %build-inputs "source"))
|
(system* "tar" "xvf" (assoc-ref %build-inputs "source"))
|
||||||
(chdir "wqy-microhei")
|
(install-file "wqy-microhei/wqy-microhei.ttc" font-dir)))))
|
||||||
(copy-file "wqy-microhei.ttc"
|
|
||||||
(string-append font-dir "wqy-microhei.ttc"))))))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gzip" ,gzip)
|
`(("gzip" ,gzip)
|
||||||
("tar" ,tar)))
|
("tar" ,tar)))
|
||||||
|
@ -760,8 +761,7 @@ display all Unicode symbols.")
|
||||||
(mkdir-p font-dir)
|
(mkdir-p font-dir)
|
||||||
(chdir "roboto-hinted")
|
(chdir "roboto-hinted")
|
||||||
(for-each (lambda (ttf)
|
(for-each (lambda (ttf)
|
||||||
(copy-file ttf
|
(install-file ttf font-dir))
|
||||||
(string-append font-dir "/" ttf)))
|
|
||||||
(find-files "." "\\.ttf$"))))))
|
(find-files "." "\\.ttf$"))))))
|
||||||
(home-page "https://github.com/google/roboto")
|
(home-page "https://github.com/google/roboto")
|
||||||
(synopsis "The Roboto family of fonts")
|
(synopsis "The Roboto family of fonts")
|
||||||
|
@ -1034,3 +1034,111 @@ designed to work well in user interface environments.")
|
||||||
"Font Awesome is a full suite of pictographic icons for easy scalable
|
"Font Awesome is a full suite of pictographic icons for easy scalable
|
||||||
vector graphics.")
|
vector graphics.")
|
||||||
(license license:silofl1.1)))
|
(license license:silofl1.1)))
|
||||||
|
|
||||||
|
(define-public font-comic-neue
|
||||||
|
(package
|
||||||
|
(name "font-comic-neue")
|
||||||
|
(version "2.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"http://www.comicneue.com/comic-neue-" version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1695hkpd8kqnr2a88p8xs496slgzxjjkzpa9aa33ml3pnh7519zk"))))
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build utils))
|
||||||
|
#:builder (begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(let ((font-dir (string-append %output
|
||||||
|
"/share/fonts/truetype"))
|
||||||
|
(source (assoc-ref %build-inputs "source"))
|
||||||
|
(unzip (string-append (assoc-ref %build-inputs "unzip")
|
||||||
|
"/bin/unzip")))
|
||||||
|
(mkdir-p font-dir)
|
||||||
|
(system* unzip source)
|
||||||
|
(with-directory-excursion
|
||||||
|
(string-append "Web")
|
||||||
|
(for-each (lambda (ttf)
|
||||||
|
(install-file ttf font-dir))
|
||||||
|
(find-files "." "\\.ttf$")))))))
|
||||||
|
(native-inputs `(("unzip" ,unzip)))
|
||||||
|
(home-page "http://www.comicneue.com/")
|
||||||
|
(synopsis "Font that fixes the shortcomings of Comic Sans")
|
||||||
|
(description
|
||||||
|
"Comic Neue is a font that attempts to create a respectable casual
|
||||||
|
typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
|
||||||
|
(license license:silofl1.1)))
|
||||||
|
|
||||||
|
(define-public font-iosevka
|
||||||
|
(package
|
||||||
|
(name "font-iosevka")
|
||||||
|
(version "1.11.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/be5invis/Iosevka/releases/download/v"
|
||||||
|
version "/iosevka-pack-" version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0d8prdk7s5z94sdfd0y92cvqq531yqrlg7hnadbnhd7fs9jqr5hj"))))
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build utils))
|
||||||
|
#:builder (begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(let ((font-dir (string-append %output
|
||||||
|
"/share/fonts/truetype"))
|
||||||
|
(source (assoc-ref %build-inputs "source"))
|
||||||
|
(unzip (string-append (assoc-ref %build-inputs "unzip")
|
||||||
|
"/bin/unzip")))
|
||||||
|
(mkdir-p font-dir)
|
||||||
|
(system* unzip "-d" font-dir source)))))
|
||||||
|
(native-inputs `(("unzip" ,unzip)))
|
||||||
|
(home-page "https://be5invis.github.io/Iosevka/")
|
||||||
|
(synopsis "Coders' typeface, built from code")
|
||||||
|
(description
|
||||||
|
"Iosevka is a slender monospace sans-serif or slab-serif typeface inspired
|
||||||
|
by Pragmata Pro, M+, and PF DIN Mono, designed to be the ideal font for
|
||||||
|
programming. Iosevka is completely generated from its source code.")
|
||||||
|
(license (list license:silofl1.1 ; build artifacts (i.e. the fonts)
|
||||||
|
license:bsd-3)))) ; supporting code
|
||||||
|
|
||||||
|
(define-public font-go
|
||||||
|
(let ((commit "b7f8df6bc082334698d4505fb85fa05e99156b72")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "font-go")
|
||||||
|
(version (string-append "20161115-" revision "." (string-take commit 7)))
|
||||||
|
(source (origin
|
||||||
|
(file-name (string-append "go-image-" version "-checkout"))
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://go.googlesource.com/image")
|
||||||
|
(commit commit)))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1ywxs6dmcyzwwsmnan3qqza7znprnbvmdi260x6sjmydz6dyq2zs"))))
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build utils))
|
||||||
|
#:builder (begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(let ((font-dir (string-append %output
|
||||||
|
"/share/fonts/truetype"))
|
||||||
|
(source (assoc-ref %build-inputs "source")))
|
||||||
|
(mkdir-p font-dir)
|
||||||
|
(with-directory-excursion
|
||||||
|
(string-append source "/font/gofont/ttfs")
|
||||||
|
(for-each (lambda (ttf)
|
||||||
|
(install-file ttf font-dir))
|
||||||
|
(find-files "." "\\.ttf$")))))))
|
||||||
|
(home-page "https://blog.golang.org/go-fonts")
|
||||||
|
(synopsis "The Go font family")
|
||||||
|
(description
|
||||||
|
"The Go font family is a set of WGL4 TrueType fonts from the Bigelow &
|
||||||
|
Holmes type foundry, released under the same license as the Go programming
|
||||||
|
language. It includes a set of proportional, sans-serif fonts, and a set of
|
||||||
|
monospace, slab-serif fonts.")
|
||||||
|
(license (package-license go-1.4)))))
|
||||||
|
|
|
@ -17,13 +17,14 @@
|
||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||||
;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org>
|
;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org>
|
||||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
|
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
|
||||||
|
;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -177,22 +178,23 @@ scriptable with Guile.")
|
||||||
(define-public abbaye
|
(define-public abbaye
|
||||||
(package
|
(package
|
||||||
(name "abbaye")
|
(name "abbaye")
|
||||||
(version "1.13")
|
(version "2.0.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://storage.googleapis.com/"
|
(uri (string-append "https://github.com/nevat/abbayedesmorts-gpl/"
|
||||||
"google-code-archive-downloads/v2/code.google.com/"
|
"archive/v" version ".tar.gz"))
|
||||||
"abbaye-for-linux/abbaye-for-linux-src-"
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
version ".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1wgvckgqa2084rbskxif58wbb83xbas8s1i8s7d57xbj08ryq8rk"))))
|
"1a67b0hq6271dd7pvwndjq29cwn2n8gawwz17xafa3k1hrhf8vw3"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
;; Unbundle fonts.
|
||||||
|
'(delete-file-recursively "fonts"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:modules ((ice-9 match)
|
'(#:make-flags '("CC=gcc")
|
||||||
(guix build gnu-build-system)
|
|
||||||
(guix build utils))
|
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
(add-after 'set-paths 'set-sdl-paths
|
(add-after 'set-paths 'set-sdl-paths
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
@ -202,10 +204,8 @@ scriptable with Guile.")
|
||||||
(add-after 'patch-source-shebangs 'patch-makefile
|
(add-after 'patch-source-shebangs 'patch-makefile
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
;; Replace /usr with package output directory.
|
;; Replace /usr with package output directory.
|
||||||
(for-each (lambda (file)
|
(substitute* "Makefile"
|
||||||
(substitute* file
|
(("/usr") (assoc-ref outputs "out")))))
|
||||||
(("/usr") (assoc-ref outputs "out"))))
|
|
||||||
'("makefile" "src/pantallas.c" "src/comun.h"))))
|
|
||||||
(add-before 'install 'make-install-dirs
|
(add-before 'install 'make-install-dirs
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let ((prefix (assoc-ref outputs "out")))
|
(let ((prefix (assoc-ref outputs "out")))
|
||||||
|
@ -217,15 +217,15 @@ scriptable with Guile.")
|
||||||
(delete 'configure))
|
(delete 'configure))
|
||||||
#:tests? #f)) ;; No check target.
|
#:tests? #f)) ;; No check target.
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||||
(inputs `(("sdl-union" ,(sdl-union))))
|
(inputs `(("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer)))))
|
||||||
(home-page "http://code.google.com/p/abbaye-for-linux/")
|
(home-page "https://github.com/nevat/abbayedesmorts-gpl")
|
||||||
(synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
|
(synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
|
||||||
(description "L'Abbaye des Morts is a 2D platform game set in 13th century
|
(description "L'Abbaye des Morts is a 2D platform game set in 13th century
|
||||||
France. The Cathars, who preach about good Christian beliefs, were being
|
France. The Cathars, who preach about good Christian beliefs, were being
|
||||||
expelled by the Catholic Church out of the Languedoc region in France. One of
|
expelled by the Catholic Church out of the Languedoc region in France. One of
|
||||||
them, called Jean Raymond, found an old church in which to hide, not knowing
|
them, called Jean Raymond, found an old church in which to hide, not knowing
|
||||||
that beneath its ruins lay buried an ancient evil.")
|
that beneath its ruins lay buried an ancient evil.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
(define-public pingus
|
(define-public pingus
|
||||||
(package
|
(package
|
||||||
|
@ -3102,3 +3102,39 @@ inspired by the history of human civilization. The game commences in
|
||||||
prehistory and your mission is to lead your tribe from the Stone Age
|
prehistory and your mission is to lead your tribe from the Stone Age
|
||||||
to the Space Age.")
|
to the Space Age.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public no-more-secrets
|
||||||
|
(package
|
||||||
|
(name "no-more-secrets")
|
||||||
|
(version "0.3.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/bartobri/no-more-secrets/"
|
||||||
|
"archive/v" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"038flwqr0kqv55im2v76xjn01zbvvkb3nzb5ridwm2kbnk9cgg4v"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f
|
||||||
|
#:make-flags (list "CC=gcc" "all-ncurses"
|
||||||
|
(string-append "prefix="
|
||||||
|
(assoc-ref %outputs "out")))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure))))
|
||||||
|
(inputs
|
||||||
|
`(("ncurses" ,ncurses)))
|
||||||
|
(home-page "https://github.com/bartobri/no-more-secrets")
|
||||||
|
(synopsis "Recreation of data decryption effect in \"Sneakers\"")
|
||||||
|
(description
|
||||||
|
"@code{No More Secrets} provides a command line tool called \"nms\"
|
||||||
|
that recreates the famous data decryption effect seen on screen in the 1992
|
||||||
|
movie \"Sneakers\".
|
||||||
|
|
||||||
|
This command works on piped data. Pipe any ASCII or UTF-8 text to nms, and
|
||||||
|
it will apply the hollywood effect, initially showing encrypted data, then
|
||||||
|
starting a decryption sequence to reveal the original plaintext characters.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages backup)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages enlightenment)
|
#:use-module (gnu packages enlightenment)
|
||||||
|
@ -39,6 +40,7 @@
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages libffi)
|
#:use-module (gnu packages libffi)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages nettle)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
@ -665,7 +667,6 @@ many applications simultaneously.
|
||||||
This package provides the library for GLib applications.")
|
This package provides the library for GLib applications.")
|
||||||
(license license:lgpl2.1+)))
|
(license license:lgpl2.1+)))
|
||||||
|
|
||||||
|
|
||||||
(define-public dbus-c++
|
(define-public dbus-c++
|
||||||
(package
|
(package
|
||||||
(name "dbus-c++")
|
(name "dbus-c++")
|
||||||
|
@ -705,3 +706,46 @@ programming langauage. It also contains the utility
|
||||||
@command{dbuscxx-xml2cpp}.")
|
@command{dbuscxx-xml2cpp}.")
|
||||||
(home-page "https://sourceforge.net/projects/dbus-cplusplus/")
|
(home-page "https://sourceforge.net/projects/dbus-cplusplus/")
|
||||||
(license license:lgpl2.1+)))
|
(license license:lgpl2.1+)))
|
||||||
|
|
||||||
|
(define-public appstream-glib
|
||||||
|
(package
|
||||||
|
(name "appstream-glib")
|
||||||
|
(version "0.6.7")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://people.freedesktop.org/~hughsient/"
|
||||||
|
"appstream-glib/releases/"
|
||||||
|
"appstream-glib-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"08mrf4k0jhnpdd4fig2grmi2vbxkgdhrwk0d0zq0j1wp5ip7arwp"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("gdk-pixbuf" ,gdk-pixbuf)
|
||||||
|
("glib" ,glib)
|
||||||
|
("gtk+" ,gtk+)
|
||||||
|
("json-glib" ,json-glib)
|
||||||
|
("libarchive" ,libarchive)
|
||||||
|
("libsoup" ,libsoup)
|
||||||
|
("nettle" ,nettle)
|
||||||
|
("util-linux" ,util-linux)))
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
'("--disable-firmware" "--disable-dep11")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-tests
|
||||||
|
(lambda _
|
||||||
|
(substitute* "libappstream-glib/as-self-test.c"
|
||||||
|
(("g_test_add_func.*as_test_store_local_appdata_func);") "")
|
||||||
|
(("g_test_add_func.*as_test_store_speed_appdata_func);") "")
|
||||||
|
(("g_test_add_func.*as_test_store_speed_desktop_func);") ""))
|
||||||
|
#t)))))
|
||||||
|
(home-page "https://github.com/hughsie/appstream-glib")
|
||||||
|
(synopsis "Library for reading and writing AppStream metadata")
|
||||||
|
(description "This library provides objects and helper methods to help
|
||||||
|
reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream}
|
||||||
|
metadata.")
|
||||||
|
(license license:lgpl2.1+)))
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -96,11 +97,13 @@
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages pulseaudio)
|
#:use-module (gnu packages pulseaudio)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages rdesktop)
|
||||||
#:use-module (gnu packages scanner)
|
#:use-module (gnu packages scanner)
|
||||||
#:use-module (gnu packages ssh)
|
#:use-module (gnu packages ssh)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages spice)
|
||||||
#:use-module (gnu packages tex)
|
#:use-module (gnu packages tex)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
|
@ -321,6 +324,43 @@ Gnome project. It includes xml2po tool which makes it easier to translate
|
||||||
and keep up to date translations of documentation.")
|
and keep up to date translations of documentation.")
|
||||||
(license license:gpl2+))) ; xslt under lgpl
|
(license license:gpl2+))) ; xslt under lgpl
|
||||||
|
|
||||||
|
(define-public gnome-disk-utility
|
||||||
|
(package
|
||||||
|
(name "gnome-disk-utility")
|
||||||
|
(version "3.22.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hqynlcgwm72il2rdml98gcarz0alsgxs5xf6ww2x0czaj3s3953"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("glib:bin" ,glib "bin")
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("docbook-xml" ,docbook-xml)
|
||||||
|
("docbook-xsl" ,docbook-xsl)
|
||||||
|
("libxml2" ,libxml2)
|
||||||
|
("libxslt" ,libxslt)))
|
||||||
|
(inputs
|
||||||
|
`(("glib" ,glib)
|
||||||
|
("appstream-glib" ,appstream-glib)
|
||||||
|
("gnome-settings-daemon" ,gnome-settings-daemon)
|
||||||
|
("gtk+" ,gtk+)
|
||||||
|
("libcanberra" ,libcanberra)
|
||||||
|
("libdvdread" ,libdvdread)
|
||||||
|
("libnotify" ,libnotify)
|
||||||
|
("libpwquality" ,libpwquality)
|
||||||
|
("libsecret" ,libsecret)
|
||||||
|
("udisks" ,udisks)))
|
||||||
|
(home-page "https://git.gnome.org/browse/gnome-disk-utility")
|
||||||
|
(synopsis "Disk management utility for GNOME")
|
||||||
|
(description "Disk management utility for GNOME.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public gcr
|
(define-public gcr
|
||||||
(package
|
(package
|
||||||
(name "gcr")
|
(name "gcr")
|
||||||
|
@ -1824,7 +1864,7 @@ editors, IDEs, etc.")
|
||||||
(package
|
(package
|
||||||
(inherit vte)
|
(inherit vte)
|
||||||
(name "vte-ng")
|
(name "vte-ng")
|
||||||
(version "0.44.1.b")
|
(version "0.46.1.a")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("gtk-doc" ,gtk-doc)
|
`(("gtk-doc" ,gtk-doc)
|
||||||
("gperf" ,gperf)
|
("gperf" ,gperf)
|
||||||
|
@ -1839,7 +1879,7 @@ editors, IDEs, etc.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1mhz4i1qkdlrs49vgm7nsrb60lry9v6wsgwsmji7fln1nyrp1pag"))))
|
"1c0czhsn28b5h4pk3kx89jjbdc5d2qkxhl4ywqvxfivphf2nicbp"))))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("CXXFLAGS=-Wformat=0")
|
`(#:configure-flags '("CXXFLAGS=-Wformat=0")
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
|
@ -1900,6 +1940,43 @@ selection and URL hints.")))
|
||||||
`(("gtk+" ,gtk+-2) ; required by libvte.pc
|
`(("gtk+" ,gtk+-2) ; required by libvte.pc
|
||||||
("ncurses" ,ncurses))))) ; required by libvte.la
|
("ncurses" ,ncurses))))) ; required by libvte.la
|
||||||
|
|
||||||
|
(define-public vinagre
|
||||||
|
(package
|
||||||
|
(name "vinagre")
|
||||||
|
(version "3.22.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
|
||||||
|
(build-system glib-or-gtk-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("itstool" ,itstool)
|
||||||
|
("glib-bin" ,glib "bin") ;for glib-compile-schemas
|
||||||
|
("gtk+-bin" ,gtk+ "bin"))) ;for gtk-update-icon-cache
|
||||||
|
(inputs
|
||||||
|
`(("libxml2" ,libxml2)
|
||||||
|
("gtk-vnc" ,gtk-vnc)
|
||||||
|
("gnome-keyring" ,gnome-keyring)
|
||||||
|
("libsecret" ,libsecret)
|
||||||
|
("freerdp" ,freerdp)
|
||||||
|
("spice" ,spice)
|
||||||
|
("spice-gtk" ,spice-gtk)
|
||||||
|
("telepathy-glib" ,telepathy-glib)
|
||||||
|
("vte" ,vte)))
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags '("--enable-rdp")))
|
||||||
|
(home-page "https://wiki.gnome.org/Apps/Vinagre")
|
||||||
|
(synopsis "Remote desktop viewer for GNOME")
|
||||||
|
(description "Vinagre is a remote display client supporting the VNC, SPICE
|
||||||
|
and RDP protocols.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public dconf
|
(define-public dconf
|
||||||
(package
|
(package
|
||||||
(name "dconf")
|
(name "dconf")
|
||||||
|
@ -3634,7 +3711,7 @@ work and the interface is well tested.")
|
||||||
(define-public epiphany
|
(define-public epiphany
|
||||||
(package
|
(package
|
||||||
(name "epiphany")
|
(name "epiphany")
|
||||||
(version "3.22.4")
|
(version "3.22.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
@ -3642,7 +3719,7 @@ work and the interface is well tested.")
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0skdsma9rmq01703andigmpbdn2rl34y3lqny19a93v1ph3jb9qk"))))
|
"1hpwjwiviwh9dgc9cwq0gmr5jy40rvigjcq0cbg2nw2hqiyshzny"))))
|
||||||
(build-system glib-or-gtk-build-system)
|
(build-system glib-or-gtk-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; FIXME: tests run under Xvfb, but fail with:
|
;; FIXME: tests run under Xvfb, but fail with:
|
||||||
|
@ -3650,7 +3727,8 @@ work and the interface is well tested.")
|
||||||
;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
|
;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
|
||||||
;; subsystem
|
;; subsystem
|
||||||
;; FAIL
|
;; FAIL
|
||||||
'(#:tests? #f))
|
'(#:tests? #f
|
||||||
|
#:configure-flags '("CFLAGS=-std=gnu99")))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("dconf" ,dconf)))
|
`(("dconf" ,dconf)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -4203,17 +4281,20 @@ to display dialog boxes from the commandline and shell scripts.")
|
||||||
(license license:lgpl2.0+)))
|
(license license:lgpl2.0+)))
|
||||||
|
|
||||||
(define-public mutter
|
(define-public mutter
|
||||||
|
;; Uses the gnome 3.22 branch that only contains bug fixes.
|
||||||
|
(let ((commit "23c315ea7121e9bd108e2837d0b4beeba53c5e18"))
|
||||||
(package
|
(package
|
||||||
(name "mutter")
|
(name "mutter")
|
||||||
(version "3.22.2")
|
(version (git-version "3.22.2" "1" commit))
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (git-reference
|
||||||
(version-major+minor version) "/"
|
(url "git://git.gnome.org/mutter")
|
||||||
name "-" version ".tar.xz"))
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"18lj80klfnkwh0cb3ab0i1vfvzbp0zjl73x9d7pna4dsdhsmi6ym"))))
|
"1v1f9xyzjr1ihmfwpq9kzlv2lyr9qn63ck8zny699mbp5hsi11mb"))))
|
||||||
;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
|
;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
|
||||||
;; versions of cogl and clutter. As a result, many of the inputs,
|
;; versions of cogl and clutter. As a result, many of the inputs,
|
||||||
;; propagated-inputs, and configure flags used in cogl and clutter are
|
;; propagated-inputs, and configure flags used in cogl and clutter are
|
||||||
|
@ -4236,12 +4317,21 @@ to display dialog boxes from the commandline and shell scripts.")
|
||||||
"--enable-cogl-gst"
|
"--enable-cogl-gst"
|
||||||
(string-append "--with-gl-libname="
|
(string-append "--with-gl-libname="
|
||||||
(assoc-ref %build-inputs "mesa")
|
(assoc-ref %build-inputs "mesa")
|
||||||
"/lib/libGL.so"))))
|
"/lib/libGL.so"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'autoreconf
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "autoreconf" "-vfi")))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
||||||
("gobject-introspection" ,gobject-introspection)
|
("gobject-introspection" ,gobject-introspection)
|
||||||
("intltool" ,intltool)
|
("intltool" ,intltool)
|
||||||
("pkg-config" ,pkg-config)))
|
("pkg-config" ,pkg-config)
|
||||||
|
;; For git build
|
||||||
|
("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)
|
||||||
|
("libtool" ,libtool)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(;; libmutter.pc refers to these:
|
`(;; libmutter.pc refers to these:
|
||||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||||
|
@ -4287,7 +4377,7 @@ to display dialog boxes from the commandline and shell scripts.")
|
||||||
desktop via OpenGL. Mutter combines a sophisticated display engine using the
|
desktop via OpenGL. Mutter combines a sophisticated display engine using the
|
||||||
Clutter toolkit with solid window-management logic inherited from the Metacity
|
Clutter toolkit with solid window-management logic inherited from the Metacity
|
||||||
window manager.")
|
window manager.")
|
||||||
(license license:gpl2+)))
|
(license license:gpl2+))))
|
||||||
|
|
||||||
(define-public gnome-online-accounts
|
(define-public gnome-online-accounts
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -44,7 +44,9 @@
|
||||||
#:use-module (gnu packages libunistring)
|
#:use-module (gnu packages libunistring)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (gnu packages multiprecision)
|
||||||
|
#:use-module (gnu packages music)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pulseaudio)
|
#:use-module (gnu packages pulseaudio)
|
||||||
|
@ -87,13 +89,11 @@
|
||||||
;; The following dependencies are all optional, but should be
|
;; The following dependencies are all optional, but should be
|
||||||
;; available for maximum coverage:
|
;; available for maximum coverage:
|
||||||
;; * libmagic (file)
|
;; * libmagic (file)
|
||||||
;; * libmp4v2 ; package it
|
;; * librpm (rpm) ; investigate failure
|
||||||
;; * librpm ; package it
|
|
||||||
;; * libsmf ; package it
|
|
||||||
;; * libtidy ; package it
|
|
||||||
;; * libgif (giflib) ; investigate failure
|
;; * libgif (giflib) ; investigate failure
|
||||||
(inputs
|
(inputs
|
||||||
`(("exiv2" ,exiv2)
|
`(("exiv2" ,exiv2)
|
||||||
|
("bzip2" ,bzip2)
|
||||||
("flac" ,flac)
|
("flac" ,flac)
|
||||||
("ffmpeg" ,ffmpeg)
|
("ffmpeg" ,ffmpeg)
|
||||||
("file" ,file) ;libmagic, for the MIME plug-in
|
("file" ,file) ;libmagic, for the MIME plug-in
|
||||||
|
@ -106,17 +106,39 @@
|
||||||
("libjpeg" ,libjpeg)
|
("libjpeg" ,libjpeg)
|
||||||
("libltdl" ,libltdl)
|
("libltdl" ,libltdl)
|
||||||
("libmpeg2" ,libmpeg2)
|
("libmpeg2" ,libmpeg2)
|
||||||
|
("libmp4v2" ,libmp4v2)
|
||||||
|
("libsmf" ,libsmf)
|
||||||
|
("tidy-html" ,tidy-html)
|
||||||
("libogg" ,libogg)
|
("libogg" ,libogg)
|
||||||
("libtiff" ,libtiff)
|
("libtiff" ,libtiff)
|
||||||
("libvorbis" ,libvorbis)
|
("libvorbis" ,libvorbis)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(outputs '("out"
|
||||||
|
"static")) ; 396 KiB .a files
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
(list (string-append "--with-ltdl="
|
(list (string-append "--with-ltdl="
|
||||||
(assoc-ref %build-inputs "libltdl")))
|
(assoc-ref %build-inputs "libltdl"))
|
||||||
#:parallel-tests? #f))
|
(string-append "--with-tidy="
|
||||||
|
(assoc-ref %build-inputs "tidy-html")))
|
||||||
|
#:parallel-tests? #f
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'move-static-libraries
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Move static libraries to the "static" output.
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(lib (string-append out "/lib"))
|
||||||
|
(static (assoc-ref outputs "static"))
|
||||||
|
(slib (string-append static "/lib")))
|
||||||
|
(mkdir-p slib)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file slib)
|
||||||
|
(delete-file file))
|
||||||
|
(find-files lib "\\.a$"))
|
||||||
|
#t))))))
|
||||||
(synopsis "Library to extract meta-data from media files")
|
(synopsis "Library to extract meta-data from media files")
|
||||||
(description
|
(description
|
||||||
"GNU libextractor is a library for extracting metadata from files. It
|
"GNU libextractor is a library for extracting metadata from files. It
|
||||||
|
|
|
@ -1,161 +0,0 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
|
||||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@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 grub)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix utils)
|
|
||||||
#:use-module ((guix licenses) #:select (gpl3+))
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (gnu packages)
|
|
||||||
#:use-module (gnu packages flex)
|
|
||||||
#:use-module (gnu packages disk)
|
|
||||||
#:use-module (gnu packages bison)
|
|
||||||
#:use-module (gnu packages gettext)
|
|
||||||
#:use-module (gnu packages fontutils)
|
|
||||||
#:use-module (gnu packages linux)
|
|
||||||
#:use-module (gnu packages qemu)
|
|
||||||
#:use-module (gnu packages man)
|
|
||||||
#:use-module (gnu packages texinfo)
|
|
||||||
#:use-module (gnu packages ncurses)
|
|
||||||
#:use-module (gnu packages cdrom))
|
|
||||||
|
|
||||||
(define unifont
|
|
||||||
;; GNU Unifont, <http://gnu.org/s/unifont>.
|
|
||||||
;; GRUB needs it for its graphical terminal, gfxterm.
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri
|
|
||||||
"http://unifoundry.com/pub/unifont-7.0.06/font-builds/unifont-7.0.06.bdf.gz")
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0p2vhnc18cnbmb39vq4m7hzv4mhnm2l0a2s7gx3ar277fwng3hys"))))
|
|
||||||
|
|
||||||
(define-public grub
|
|
||||||
(package
|
|
||||||
(name "grub")
|
|
||||||
(version "2.02beta3")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"ftp://alpha.gnu.org/gnu/grub/grub-"
|
|
||||||
"2.02~beta3"
|
|
||||||
".tar.xz"))
|
|
||||||
(file-name (string-append name "-" version ".tar.xz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"18ddwnw0vxs7zigvah0g6a5z5vvlz0p8fjglxv1h59sjbrakvv1h"))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(arguments
|
|
||||||
'(;; Two warnings: suggest braces, signed/unsigned comparison.
|
|
||||||
#:configure-flags '("--disable-werror")
|
|
||||||
|
|
||||||
#:phases (modify-phases %standard-phases
|
|
||||||
(add-after 'unpack 'patch-stuff
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(substitute* "grub-core/Makefile.in"
|
|
||||||
(("/bin/sh") (which "sh")))
|
|
||||||
|
|
||||||
;; Give the absolute file name of 'mdadm', used to
|
|
||||||
;; determine the root file system when it's a RAID
|
|
||||||
;; device. Failing to do that, 'grub-probe' silently
|
|
||||||
;; fails if 'mdadm' is not in $PATH.
|
|
||||||
(substitute* "grub-core/osdep/linux/getroot.c"
|
|
||||||
(("argv\\[0\\] = \"mdadm\"")
|
|
||||||
(string-append "argv[0] = \""
|
|
||||||
(assoc-ref inputs "mdadm")
|
|
||||||
"/sbin/mdadm\"")))
|
|
||||||
|
|
||||||
;; Make the font visible.
|
|
||||||
(copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz")
|
|
||||||
(system* "gunzip" "unifont.bdf.gz")
|
|
||||||
|
|
||||||
;; We hit an assertion failure in
|
|
||||||
;; grub-core/tests/video_checksum.c, as reported at
|
|
||||||
;; <https://lists.gnu.org/archive/html/grub-devel/2016-07/msg00026.html>.
|
|
||||||
;; Disable this test for now.
|
|
||||||
(substitute* "tests/grub_func_test.in"
|
|
||||||
(("set -e") "exit 77\nset -e"))
|
|
||||||
#t)))))
|
|
||||||
(inputs
|
|
||||||
`(("gettext" ,gettext-minimal)
|
|
||||||
|
|
||||||
;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and
|
|
||||||
;; 'grub-install' to recognize mapped devices (LUKS, etc.)
|
|
||||||
("lvm2" ,lvm2)
|
|
||||||
|
|
||||||
;; Depend on mdadm, which is invoked by 'grub-probe' and 'grub-install'
|
|
||||||
;; to determine whether the root file system is RAID.
|
|
||||||
("mdadm" ,mdadm)
|
|
||||||
|
|
||||||
("freetype" ,freetype)
|
|
||||||
;; ("libusb" ,libusb)
|
|
||||||
;; ("fuse" ,fuse)
|
|
||||||
("ncurses" ,ncurses)))
|
|
||||||
(native-inputs
|
|
||||||
`(("unifont" ,unifont)
|
|
||||||
("bison" ,bison)
|
|
||||||
("flex" ,flex)
|
|
||||||
("texinfo" ,texinfo)
|
|
||||||
("help2man" ,help2man)
|
|
||||||
|
|
||||||
;; Dependencies for the test suite. The "real" QEMU is needed here,
|
|
||||||
;; because several targets are used.
|
|
||||||
("parted" ,parted)
|
|
||||||
("qemu" ,qemu-minimal)
|
|
||||||
("xorriso" ,xorriso)))
|
|
||||||
(home-page "https://www.gnu.org/software/grub/")
|
|
||||||
(synopsis "GRand Unified Boot loader")
|
|
||||||
(description
|
|
||||||
"GRUB is a multiboot bootloader. It is used for initially loading the
|
|
||||||
kernel of an operating system and then transferring control to it. The kernel
|
|
||||||
then goes on to load the rest of the operating system. As a multiboot
|
|
||||||
bootloader, GRUB handles the presence of multiple operating systems installed
|
|
||||||
on the same computer; upon booting the computer, the user is presented with a
|
|
||||||
menu to select one of the installed operating systems.")
|
|
||||||
(license gpl3+)
|
|
||||||
(properties '((cpe-name . "grub2")))))
|
|
||||||
|
|
||||||
(define-public grub-efi
|
|
||||||
(package
|
|
||||||
(inherit grub)
|
|
||||||
(name "grub-efi")
|
|
||||||
(synopsis "GRand Unified Boot loader (UEFI version)")
|
|
||||||
(inputs
|
|
||||||
`(("efibootmgr" ,efibootmgr)
|
|
||||||
,@(package-inputs grub)))
|
|
||||||
(arguments
|
|
||||||
`(;; TODO: Tests need a UEFI firmware for qemu. There is one at
|
|
||||||
;; https://github.com/tianocore/edk2/tree/master/OvmfPkg .
|
|
||||||
;; Search for 'OVMF' in "tests/util/grub-shell.in".
|
|
||||||
#:tests? #f
|
|
||||||
,@(substitute-keyword-arguments (package-arguments grub)
|
|
||||||
((#:configure-flags flags) `(cons* "--with-platform=efi"
|
|
||||||
,flags))
|
|
||||||
((#:phases phases)
|
|
||||||
`(modify-phases ,phases
|
|
||||||
(add-after 'patch-stuff 'use-absolute-efibootmgr-path
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(substitute* "grub-core/osdep/unix/platform.c"
|
|
||||||
(("efibootmgr")
|
|
||||||
(string-append (assoc-ref inputs "efibootmgr")
|
|
||||||
"/sbin/efibootmgr")))
|
|
||||||
#t)))))))))
|
|
|
@ -154,7 +154,9 @@ This package provides the core library and elements.")
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"040pifl4cgsqqz2si4s1y5khj3zwm39w21siagxwp805swbrcag6"))))
|
"040pifl4cgsqqz2si4s1y5khj3zwm39w21siagxwp805swbrcag6"))
|
||||||
|
(patches
|
||||||
|
(search-patches "gst-plugins-base-fix-test-on-32bit.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "doc"))
|
(outputs '("out" "doc"))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
|
|
@ -624,12 +624,15 @@ for Guile\".")
|
||||||
(home-page "http://savannah.nongnu.org/projects/guile-json/")
|
(home-page "http://savannah.nongnu.org/projects/guile-json/")
|
||||||
(synopsis "JSON module for Guile")
|
(synopsis "JSON module for Guile")
|
||||||
(description
|
(description
|
||||||
"Guile-json supports parsing and building JSON documents according to the
|
"Guile-JSON supports parsing and building JSON documents according to the
|
||||||
http:://json.org specification. These are the main features:
|
specification. These are the main features:
|
||||||
- Strictly complies to http://json.org specification.
|
|
||||||
- Build JSON documents programmatically via macros.
|
@itemize
|
||||||
- Unicode support for strings.
|
@item Strictly complies to @uref{http://json.org, specification}.
|
||||||
- Allows JSON pretty printing.")
|
@item Build JSON documents programmatically via macros.
|
||||||
|
@item Unicode support for strings.
|
||||||
|
@item Allows JSON pretty printing.
|
||||||
|
@end itemize\n")
|
||||||
(license lgpl3+)))
|
(license lgpl3+)))
|
||||||
|
|
||||||
(define-public guile2.2-json
|
(define-public guile2.2-json
|
||||||
|
|
|
@ -46,14 +46,14 @@
|
||||||
;; The 7 release series has an incompatible API, while the 6 series is still
|
;; The 7 release series has an incompatible API, while the 6 series is still
|
||||||
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
|
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
|
||||||
;; users are ready for the 7-series API.
|
;; users are ready for the 7-series API.
|
||||||
(version "6.9.7-5")
|
(version "6.9.7-7")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"013f3g9pvvqgxchdkjxx4nr80sfq51nmkc3ij39m2xzyc438bq8c"))))
|
"02x463z31j449pfm8czb7jlpkd3nx4a3yyjxq3bhpjfq13i20d62"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
|
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
||||||
|
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -180,14 +181,13 @@ SILC and ICB protocols via plugins.")
|
||||||
(add-before 'configure 'autogen
|
(add-before 'configure 'autogen
|
||||||
(lambda _
|
(lambda _
|
||||||
(zero? (system* "./autogen.sh"))))
|
(zero? (system* "./autogen.sh"))))
|
||||||
(add-before 'build 'set-python-file-name
|
(add-after 'install 'wrap
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(substitute* "src/plugins/python/weechat-python.c"
|
(let ((out (assoc-ref outputs "out"))
|
||||||
(("python2_bin = weechat_python_get_python2_bin.*;")
|
(py2 (assoc-ref inputs "python")))
|
||||||
(string-append "python2_bin = strdup (\""
|
(wrap-program (string-append out "/bin/weechat")
|
||||||
(assoc-ref inputs "python")
|
`("PATH" ":" prefix (,(string-append py2 "/bin"))))
|
||||||
"/bin/python\");\n")))
|
#t))))))
|
||||||
#t)))))
|
|
||||||
(synopsis "Extensible chat client")
|
(synopsis "Extensible chat client")
|
||||||
(description "WeeChat (Wee Enhanced Environment for Chat) is an
|
(description "WeeChat (Wee Enhanced Environment for Chat) is an
|
||||||
Internet Relay Chat client, which is designed to be light and fast.
|
Internet Relay Chat client, which is designed to be light and fast.
|
||||||
|
|
|
@ -37,47 +37,44 @@
|
||||||
#:use-module (gnu packages zip))
|
#:use-module (gnu packages zip))
|
||||||
|
|
||||||
(define-public rdmd
|
(define-public rdmd
|
||||||
(let ((commit "da0a2e0a379b08294015eec9d531f1e5dd4226f0"))
|
(package
|
||||||
(package
|
(name "rdmd")
|
||||||
(name "rdmd")
|
(version "2.073.0")
|
||||||
(version (string-append "v2.070.0-1." (string-take commit 7)))
|
(source (origin
|
||||||
(source (origin
|
(method url-fetch)
|
||||||
(method git-fetch)
|
(uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
|
||||||
(uri (git-reference
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(url "https://github.com/D-Programming-Language/tools.git")
|
(sha256
|
||||||
(commit commit)))
|
(base32
|
||||||
(file-name (string-append name "-" version "-checkout"))
|
"01if3ivnb7g2myfhymp4d9346s4vmvcl82i1kxfs5iza45almh7v"))))
|
||||||
(sha256
|
(build-system gnu-build-system)
|
||||||
(base32
|
(arguments
|
||||||
"1pcx5lyqzrip86f4vv60x292rpvnwsq2hvl1znm9x9rn68f34m45"))))
|
'(#:phases
|
||||||
(build-system gnu-build-system)
|
(modify-phases %standard-phases
|
||||||
(arguments
|
(delete 'configure)
|
||||||
'(#:phases
|
(delete 'check) ; There is no Makefile, so there's no 'make check'.
|
||||||
(modify-phases %standard-phases
|
(replace
|
||||||
(delete 'configure)
|
'build
|
||||||
(delete 'check) ; There is no Makefile, so there's no 'make check'.
|
(lambda _
|
||||||
(replace
|
(zero? (system* "ldc2" "rdmd.d"))))
|
||||||
'build
|
(replace
|
||||||
(lambda _
|
'install
|
||||||
(zero? (system* "ldc2" "rdmd.d"))))
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(replace
|
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
|
||||||
'install
|
(install-file "rdmd" bin)))))))
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(native-inputs
|
||||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
|
`(("ldc" ,ldc)))
|
||||||
(install-file "rdmd" bin)))))))
|
(home-page "https://github.com/D-Programming-Language/tools/")
|
||||||
(native-inputs
|
(synopsis "Specialized equivalent to 'make' for the D language")
|
||||||
`(("ldc" ,ldc)))
|
(description
|
||||||
(home-page "https://github.com/D-Programming-Language/tools/")
|
"rdmd is a companion to the dmd compiler that simplifies the typical
|
||||||
(synopsis "Specialized equivalent to 'make' for the D language")
|
|
||||||
(description
|
|
||||||
"rdmd is a companion to the dmd compiler that simplifies the typical
|
|
||||||
edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
|
edit-compile-link-run or edit-make-run cycle to a rapid edit-run cycle. Like
|
||||||
make and other tools, rdmd uses the relative dates of the files involved to
|
make and other tools, rdmd uses the relative dates of the files involved to
|
||||||
minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
|
minimize the amount of work necessary. Unlike make, rdmd tracks dependencies
|
||||||
and freshness without requiring additional information from the user.")
|
and freshness without requiring additional information from the user.")
|
||||||
(license license:boost1.0))))
|
(license license:boost1.0)))
|
||||||
|
|
||||||
(define-public ldc
|
(define-public ldc-bootstrap
|
||||||
(package
|
(package
|
||||||
(name "ldc")
|
(name "ldc")
|
||||||
(version "0.17.2")
|
(version "0.17.2")
|
||||||
|
@ -176,15 +173,15 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
license:boost1.0))))
|
license:boost1.0))))
|
||||||
|
|
||||||
|
|
||||||
(define-public ldc-1.1.0-beta6
|
(define-public ldc
|
||||||
;; The phobos, druntime and dmd-testsuite dependencies do not have a newer
|
;; The phobos, druntime and dmd-testsuite dependencies do not have a newer
|
||||||
;; release than 1.1.0-beta4, hence the need to make use of the older-version
|
;; release than 1.1.0-beta4, hence the need to make use of the older-version
|
||||||
;; variable to hold this variable.
|
;; variable to hold this variable.
|
||||||
(let ((older-version "1.1.0-beta4"))
|
(let ((older-version "1.1.0"))
|
||||||
(package
|
(package
|
||||||
(inherit ldc)
|
(inherit ldc-bootstrap)
|
||||||
(name "ldc")
|
(name "ldc")
|
||||||
(version "1.1.0-beta6")
|
(version "1.1.0")
|
||||||
;; Beta version needed to compile various scientific tools that require
|
;; Beta version needed to compile various scientific tools that require
|
||||||
;; the newer beta versions, and won't compile successfully with the
|
;; the newer beta versions, and won't compile successfully with the
|
||||||
;; older stable version.
|
;; older stable version.
|
||||||
|
@ -196,7 +193,7 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0n53brlkm86jjkppy9xmzx7nyxykzj68kcxgv8q7d10s5hfscxs8"))))
|
"10zkrmx9bcmhfxvgykm3fkjamzc8js96wm032bv0fyil5c9ja2y1"))))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
@ -227,7 +224,7 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("llvm" ,llvm)
|
`(("llvm" ,llvm)
|
||||||
("clang" ,clang)
|
("clang" ,clang)
|
||||||
("ldc" ,ldc)
|
("ldc" ,ldc-bootstrap)
|
||||||
("python-lit" ,python-lit)
|
("python-lit" ,python-lit)
|
||||||
("python-wrapper" ,python-wrapper)
|
("python-wrapper" ,python-wrapper)
|
||||||
("unzip" ,unzip)
|
("unzip" ,unzip)
|
||||||
|
@ -240,7 +237,7 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
older-version ".tar.gz"))
|
older-version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1iwy5rs0rqkicj1zfsa5yqvk8ard99bfr8g69qmhlbzb98q0kpks"))
|
"0z5v55b9s1ppf0c2ivjq7sbmq688c37c92ihc3qwrbxnqvkkvrlk"))
|
||||||
;; This patch deactivates some tests that depend on network access
|
;; This patch deactivates some tests that depend on network access
|
||||||
;; to pass. It also deactivates some tests that have some reliance
|
;; to pass. It also deactivates some tests that have some reliance
|
||||||
;; on timezone.
|
;; on timezone.
|
||||||
|
@ -259,7 +256,7 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
older-version ".tar.gz"))
|
older-version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1qsiw5lz1pr8ms9myjf8b94nqi7f1781k226jvxwnhkjg11d0s63"))))
|
"07qvrqj6vgakd6qr4x5f70w6zwkzd1li5x8i1b5ywnds1z5lnfp6"))))
|
||||||
("dmd-testsuite-src"
|
("dmd-testsuite-src"
|
||||||
,(origin
|
,(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -268,13 +265,13 @@ latest DMD frontend and uses LLVM as backend.")
|
||||||
older-version ".tar.gz"))
|
older-version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jp54hyi75i9g41rvgmm3zg21yzv57q8dghrhb432rb0n9j15mbp"))
|
"12cak7yqmsgjlflx0dp6fwmwb9dac25amgi86n0bb95ard3547wy"))
|
||||||
;; Remove the gdb tests that fails with a "Error: No such file or
|
;; Remove the gdb tests that fails with a "Error: No such file or
|
||||||
;; directory" error, despite the files being present in the debug
|
;; directory" error, despite the files being present in the debug
|
||||||
;; files left with the --keep-failed flag to guix build.
|
;; files left with the --keep-failed flag to guix build.
|
||||||
(patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch")))))))))
|
(patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch")))))))))
|
||||||
|
|
||||||
(define-public ldc-beta ldc-1.1.0-beta6)
|
(define-public ldc-beta ldc)
|
||||||
|
|
||||||
(define-public dub
|
(define-public dub
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
(define-module (gnu packages libidn)
|
(define-module (gnu packages libidn)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages libunistring)
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
@ -51,14 +52,16 @@ Java libraries.")
|
||||||
(define-public libidn2
|
(define-public libidn2
|
||||||
(package
|
(package
|
||||||
(name "libidn2")
|
(name "libidn2")
|
||||||
(version "0.11")
|
(version "0.16")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "ftp://alpha.gnu.org/gnu/libidn/libidn2-"
|
(uri (string-append "ftp://alpha.gnu.org/gnu/libidn/libidn2-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zxzhzx14q2b1xkx746pz4lawvqd8d055yy84n52ndwb4pf7nfax"))))
|
"13v8kh4d5nfkymai88zlw3h7k4x9khrpdpv97waf4ah8ykzrxb9g"))))
|
||||||
|
(inputs
|
||||||
|
`(("libunistring" ,libunistring)))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(synopsis "Internationalized domain name library for IDNA2008")
|
(synopsis "Internationalized domain name library for IDNA2008")
|
||||||
(description "Libidn2 is an internationalized domain library implementing
|
(description "Libidn2 is an internationalized domain library implementing
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
||||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
|
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
|
||||||
|
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
|
||||||
|
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -45,6 +47,7 @@
|
||||||
#:use-module (gnu packages attr)
|
#:use-module (gnu packages attr)
|
||||||
#:use-module (gnu packages autotools)
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages calendar)
|
#:use-module (gnu packages calendar)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
|
@ -66,6 +69,7 @@
|
||||||
#:use-module (gnu packages man)
|
#:use-module (gnu packages man)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
|
#:use-module (gnu packages networking)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages pciutils)
|
#:use-module (gnu packages pciutils)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
@ -344,15 +348,18 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
|
|
||||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
||||||
|
|
||||||
|
(define %linux-libre-version "4.9.9")
|
||||||
|
(define %linux-libre-hash "0grk94jym0wz581c7pimia0rszq4h2xqjmf818i4l4qrjd0bnqvk")
|
||||||
|
|
||||||
(define-public linux-libre
|
(define-public linux-libre
|
||||||
(make-linux-libre "4.9.6"
|
(make-linux-libre %linux-libre-version
|
||||||
"0mafa628la5qj26rff014mmih2widl5k2sjxg152lmpgijmf6qhd"
|
%linux-libre-hash
|
||||||
%intel-compatible-systems
|
%intel-compatible-systems
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-4.4
|
(define-public linux-libre-4.4
|
||||||
(make-linux-libre "4.4.45"
|
(make-linux-libre "4.4.48"
|
||||||
"1c6nigbl8yrqpaz89954la956lshr3p0llm52phxq2h06zblsp87"
|
"0g7ram0b5b7p0c6v5m5im6m5pwa348mhkhf67rs036lzvcw1bvyk"
|
||||||
%intel-compatible-systems
|
%intel-compatible-systems
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
|
@ -362,10 +369,6 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
%intel-compatible-systems
|
%intel-compatible-systems
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
;; Avoid rebuilding kernel variants when there is a minor version bump.
|
|
||||||
(define %linux-libre-version "4.9.6")
|
|
||||||
(define %linux-libre-hash "0mafa628la5qj26rff014mmih2widl5k2sjxg152lmpgijmf6qhd")
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-generic
|
(define-public linux-libre-arm-generic
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
%linux-libre-hash
|
%linux-libre-hash
|
||||||
|
@ -1770,14 +1773,14 @@ time.")
|
||||||
(define-public lvm2
|
(define-public lvm2
|
||||||
(package
|
(package
|
||||||
(name "lvm2")
|
(name "lvm2")
|
||||||
(version "2.02.166")
|
(version "2.02.168")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
|
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
|
||||||
version ".tgz"))
|
version ".tgz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"150v0mawd2swdvypcmkjd3h3s4n5i1220h6sxx94a8jvp1kb0871"))
|
"03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -2915,6 +2918,7 @@ from userspace.")
|
||||||
(base32
|
(base32
|
||||||
"180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp"))
|
"180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
|
(patches (search-patches "ntfs-3g-CVE-2017-0358.patch"))
|
||||||
(snippet
|
(snippet
|
||||||
;; Install under $prefix.
|
;; Install under $prefix.
|
||||||
'(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
|
'(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
|
||||||
|
@ -3129,14 +3133,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
|
||||||
(define-public mcelog
|
(define-public mcelog
|
||||||
(package
|
(package
|
||||||
(name "mcelog")
|
(name "mcelog")
|
||||||
(version "147")
|
(version "148")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
|
(uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
|
||||||
"mcelog.git/snapshot/v" version ".tar.gz"))
|
"mcelog.git/snapshot/v" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"10xxmqpd348ifbs7w8j0m53agp28r6imv237ha3kmhp632hmyf1d"))
|
"1d5g09ndfsnl56vyhb5xw0zxspnh0f937biw3agqhdfbvw40j9jr"))
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
|
@ -3417,3 +3421,126 @@ set the screen to be pitch black at a vaĺue of 0 (or higher).
|
||||||
|
|
||||||
Light is the successor of lightscript.")
|
Light is the successor of lightscript.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public tlp
|
||||||
|
(package
|
||||||
|
(name "tlp")
|
||||||
|
(version "0.9")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/linrunner/"
|
||||||
|
(string-upcase name)
|
||||||
|
"/archive/" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0xksm8ar6dbq0azbfz8qs9yyzqg1j333lyd5znc074rz8inj4yw8"))))
|
||||||
|
(inputs `(("bash" ,bash)
|
||||||
|
("dbus" ,dbus)
|
||||||
|
("ethtool" ,ethtool)
|
||||||
|
("eudev" ,eudev)
|
||||||
|
("grep" ,grep)
|
||||||
|
("hdparm" ,hdparm)
|
||||||
|
("inetutils" ,inetutils)
|
||||||
|
("iw" ,iw)
|
||||||
|
("kmod" ,kmod)
|
||||||
|
("pciutils" ,pciutils)
|
||||||
|
("perl" ,perl)
|
||||||
|
("rfkill" ,rfkill)
|
||||||
|
("sed" ,sed)
|
||||||
|
("usbutils" ,usbutils)
|
||||||
|
("util-linux" ,util-linux)
|
||||||
|
("wireless-tools" ,wireless-tools)))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(add-before 'build 'setenv
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(setenv "TLP_WITH_SYSTEMD" "0")
|
||||||
|
(setenv "TLP_NO_INIT" "1")
|
||||||
|
(setenv "TLP_NO_PMUTILS" "1")
|
||||||
|
(setenv "TLP_SBIN" (string-append out "/bin"))
|
||||||
|
(setenv "TLP_BIN" (string-append out "/bin"))
|
||||||
|
(setenv "TLP_TLIB" (string-append out "/share/tlp-pm"))
|
||||||
|
(setenv "TLP_ULIB" (string-append out "/lib/udev"))
|
||||||
|
(setenv "TLP_CONF" (string-append out "/etc/tlp"))
|
||||||
|
(setenv "TLP_SHCPL"
|
||||||
|
(string-append out "/share/bash-completion/completions"))
|
||||||
|
(setenv "TLP_MAN" (string-append out "/share/man")))))
|
||||||
|
(delete 'check)
|
||||||
|
(replace 'install
|
||||||
|
(lambda _
|
||||||
|
(system "make install-tlp install-man")))
|
||||||
|
(add-after 'install 'wrap
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||||
|
(bin-files (find-files bin ".*")))
|
||||||
|
(define (bin-directory input-name)
|
||||||
|
(string-append (assoc-ref inputs input-name) "/bin"))
|
||||||
|
(define (sbin-directory input-name)
|
||||||
|
(string-append (assoc-ref inputs input-name) "/sbin"))
|
||||||
|
(for-each (lambda (program)
|
||||||
|
(wrap-program program
|
||||||
|
`("PATH" ":" prefix
|
||||||
|
,(append
|
||||||
|
(map bin-directory '("bash"
|
||||||
|
"coreutils"
|
||||||
|
"dbus"
|
||||||
|
"eudev"
|
||||||
|
"grep"
|
||||||
|
"inetutils"
|
||||||
|
"kmod"
|
||||||
|
"perl"
|
||||||
|
"sed"
|
||||||
|
"usbutils"
|
||||||
|
"util-linux"))
|
||||||
|
(map sbin-directory '("ethtool"
|
||||||
|
"hdparm"
|
||||||
|
"iw"
|
||||||
|
"pciutils"
|
||||||
|
"rfkill"
|
||||||
|
"wireless-tools"))))))
|
||||||
|
bin-files)))))))
|
||||||
|
(home-page "http://linrunner.de/en/tlp/tlp.html")
|
||||||
|
(synopsis "Power management tool for Linux")
|
||||||
|
(description "TLP is a power management tool for Linux. It comes with
|
||||||
|
a default configuration already optimized for battery life. Nevertheless,
|
||||||
|
TLP is customizable to fulfil system requirements. TLP settings are applied
|
||||||
|
every time the power supply source is changed.")
|
||||||
|
|
||||||
|
;; 'COPYING' is a custom version that says that one file is GPLv3+ and the
|
||||||
|
;; rest is GPLv2+.
|
||||||
|
(license (list license:gpl2+ license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public lshw
|
||||||
|
(package
|
||||||
|
(name "lshw")
|
||||||
|
(version "B.02.18")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://www.ezix.org/software/"
|
||||||
|
"files/lshw-" version
|
||||||
|
".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0brwra4jld0d53d7jsgca415ljglmmx1l2iazpj4ndilr48yy8mf"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases (modify-phases %standard-phases (delete 'configure))
|
||||||
|
#:tests? #f ; no tests
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
|
||||||
|
(synopsis "List hardware information")
|
||||||
|
(description
|
||||||
|
"@command{lshw} (Hardware Lister) is a small tool to provide
|
||||||
|
detailed information on the hardware configuration of the machine.
|
||||||
|
It can report exact memory configuration, firmware version, mainboard
|
||||||
|
configuration, CPU version and speed, cache configuration, bus speed,
|
||||||
|
and more on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC
|
||||||
|
machines (PowerMac G4 is known to work).")
|
||||||
|
(home-page "https://www.ezix.org/project/wiki/HardwareLiSter")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -43,13 +43,13 @@
|
||||||
(define-public lua
|
(define-public lua
|
||||||
(package
|
(package
|
||||||
(name "lua")
|
(name "lua")
|
||||||
(version "5.3.3")
|
(version "5.3.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.lua.org/ftp/lua-"
|
(uri (string-append "https://www.lua.org/ftp/lua-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "18mcfbbmjyp8f2l9yy7n6dzk066nq6man0kpwly4bppphilc04si"))
|
(base32 "0320a8dg3aci4hxla380dx1ifkw8gj4gbw5c4dz41g1kh98sm0gn"))
|
||||||
(patches (search-patches "lua-pkgconfig.patch"
|
(patches (search-patches "lua-pkgconfig.patch"
|
||||||
"lua-liblua-so.patch"))))
|
"lua-liblua-so.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||||
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -79,6 +80,7 @@
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages gdb)
|
#:use-module (gnu packages gdb)
|
||||||
#:use-module (gnu packages man)
|
#:use-module (gnu packages man)
|
||||||
|
#:use-module (gnu packages ruby)
|
||||||
#:use-module (gnu packages samba)
|
#:use-module (gnu packages samba)
|
||||||
#:use-module (gnu packages screen)
|
#:use-module (gnu packages screen)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
|
@ -455,6 +457,57 @@ can read the same mailbox from multiple computers. It supports IMAP as REMOTE
|
||||||
repository and Maildir/IMAP as LOCAL repository.")
|
repository and Maildir/IMAP as LOCAL repository.")
|
||||||
(license gpl2+)))
|
(license gpl2+)))
|
||||||
|
|
||||||
|
(define-public emacs-mew
|
||||||
|
(package
|
||||||
|
(name "emacs-mew")
|
||||||
|
(version "6.7")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://mew.org/Release/mew-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("emacs" ,emacs)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
|
||||||
|
("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
(let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
|
||||||
|
(icon-dir "/share/mew"))
|
||||||
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
(guix build utils)
|
||||||
|
(guix build emacs-utils))
|
||||||
|
#:imported-modules (,@%gnu-build-system-modules
|
||||||
|
(guix build emacs-utils))
|
||||||
|
#:configure-flags
|
||||||
|
(list (string-append "--with-elispdir=" %output ,elisp-dir)
|
||||||
|
(string-append "--with-etcdir=" %output ,icon-dir))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'configure 'patch-mew-icon-directory
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(emacs-substitute-sexps "mew-key.el"
|
||||||
|
("(def.* mew-icon-directory"
|
||||||
|
`(progn
|
||||||
|
(add-to-list 'image-load-path 'mew-icon-directory)
|
||||||
|
,(string-append (assoc-ref outputs "out") ,icon-dir))))
|
||||||
|
#t))
|
||||||
|
(add-after 'install 'generate-autoloads
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(emacs-generate-autoloads
|
||||||
|
"mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
|
||||||
|
#t)))
|
||||||
|
#:tests? #f)))
|
||||||
|
(home-page "http://www.mew.org")
|
||||||
|
(synopsis "Emacs e-mail client")
|
||||||
|
(description "Mew (Messaging in the Emacs World) is a user interface
|
||||||
|
for text messages, multimedia messages (MIME), news articles and
|
||||||
|
security functionality including PGP, S/MIME, SSH, and SSL.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
(define-public mu
|
(define-public mu
|
||||||
(package
|
(package
|
||||||
(name "mu")
|
(name "mu")
|
||||||
|
|
|
@ -313,7 +313,7 @@ integer programming problems and computes Markov bases for statistics.")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "ftp://ftp.ifor.math.ethz.ch/pub/fukuda/cdd/cddlib-"
|
(uri (string-append "ftp://ftp.math.ethz.ch/users/fukudak/cdd/cddlib-"
|
||||||
(string-delete #\. version) ".tar.gz"))
|
(string-delete #\. version) ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
|
@ -1035,6 +1035,7 @@ Open CASCADE library.")
|
||||||
("lapack" ,lapack)
|
("lapack" ,lapack)
|
||||||
("mesa" ,mesa)
|
("mesa" ,mesa)
|
||||||
("glu" ,glu)
|
("glu" ,glu)
|
||||||
|
("opencascade-oce" ,opencascade-oce)
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("libxext" ,libxext)))
|
("libxext" ,libxext)))
|
||||||
(inputs
|
(inputs
|
||||||
|
@ -1043,15 +1044,7 @@ Open CASCADE library.")
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
|
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
|
||||||
"-DENABLE_BUILD_SHARED:BOOL=ON"
|
"-DENABLE_BUILD_SHARED:BOOL=ON"
|
||||||
"-DENABLE_BUILD_DYNAMIC:BOOL=ON")
|
"-DENABLE_BUILD_DYNAMIC:BOOL=ON")))
|
||||||
#:phases (modify-phases %standard-phases
|
|
||||||
(replace
|
|
||||||
'check
|
|
||||||
(lambda _
|
|
||||||
(zero? (system* "make" "test"
|
|
||||||
;; Disable this test. See
|
|
||||||
;; https://geuz.org/trac/gmsh/ticket/271
|
|
||||||
"ARGS=-E component8_in_a_box")))))))
|
|
||||||
(home-page "http://www.geuz.org/gmsh/")
|
(home-page "http://www.geuz.org/gmsh/")
|
||||||
(synopsis "3D finite element grid generator")
|
(synopsis "3D finite element grid generator")
|
||||||
(description "Gmsh is a 3D finite element grid generator with a built-in
|
(description "Gmsh is a 3D finite element grid generator with a built-in
|
||||||
|
@ -1992,7 +1985,7 @@ point numbers.")
|
||||||
(define-public wxmaxima
|
(define-public wxmaxima
|
||||||
(package
|
(package
|
||||||
(name "wxmaxima")
|
(name "wxmaxima")
|
||||||
(version "16.12.0")
|
(version "16.12.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -2000,7 +1993,7 @@ point numbers.")
|
||||||
version "/" name "-" version ".tar.gz"))
|
version "/" name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01kas9viqabw5id6crbhz8ahjimmv78gqzizs5hgnj9kngrgrm1h"))))
|
"0y22zhyhyxj2cbhzvs9c4pxr44i55ryfy5xi96d39bg2nbgs9h22"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("wxwidgets" ,wxwidgets)
|
`(("wxwidgets" ,wxwidgets)
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
|
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
|
||||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||||
|
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2769,3 +2770,51 @@ collections and wantlists, inventory, and orders.")
|
||||||
|
|
||||||
(define-public python2-discogs-client
|
(define-public python2-discogs-client
|
||||||
(package-with-python2 python-discogs-client))
|
(package-with-python2 python-discogs-client))
|
||||||
|
|
||||||
|
(define-public libsmf
|
||||||
|
(package
|
||||||
|
(name "libsmf")
|
||||||
|
(version "1.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
;; SF download page says development moved, but the link it points to
|
||||||
|
;; is gone (https://github.com/nilsgey/libsmf). Someone else adopted
|
||||||
|
;; it but made no release so far (https://github.com/stump/libsmf).
|
||||||
|
(uri (string-append "mirror://sourceforge/libsmf/libsmf/"
|
||||||
|
version "/libsmf-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"16c0n40h0r56gzbh5ypxa4dwp296dan3jminml2qkb4lvqarym6k"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(outputs '("out"
|
||||||
|
"static")) ; 88KiB of .a files
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'move-static-libraries
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Move static libraries to the "static" output.
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(lib (string-append out "/lib"))
|
||||||
|
(static (assoc-ref outputs "static"))
|
||||||
|
(slib (string-append static "/lib")))
|
||||||
|
(mkdir-p slib)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file slib)
|
||||||
|
(delete-file file))
|
||||||
|
(find-files lib "\\.a$"))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("readline" ,readline)
|
||||||
|
("glib" ,glib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("doxygen" ,doxygen)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "http://libsmf.sourceforge.net/")
|
||||||
|
(synopsis "Standard MIDI File format library")
|
||||||
|
(description
|
||||||
|
"LibSMF is a C library for handling SMF (\"*.mid\") files. It transparently handles
|
||||||
|
conversions between time and pulses, tempo map handling and more. The only dependencies
|
||||||
|
are a C compiler and glib. Full API documentation and examples are included.")
|
||||||
|
(license license:bsd-2)))
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module ((guix build utils) #:select (with-directory-excursion))
|
|
||||||
#:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0))
|
#:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0))
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
|
@ -53,10 +52,6 @@
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages ssh)
|
#:use-module (gnu packages ssh)
|
||||||
#:use-module (gnu packages vim)
|
#:use-module (gnu packages vim)
|
||||||
#:use-module (srfi srfi-1)
|
|
||||||
#:use-module (srfi srfi-26)
|
|
||||||
#:use-module (ice-9 popen)
|
|
||||||
#:use-module (ice-9 rdelim)
|
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define (boot-guile-uri arch)
|
(define (boot-guile-uri arch)
|
||||||
|
@ -275,38 +270,8 @@ generated file."
|
||||||
(_
|
(_
|
||||||
#t)))
|
#t)))
|
||||||
|
|
||||||
(define (make-git-predicate directory)
|
|
||||||
"Return a predicate that returns true if a file is part of the Git checkout
|
|
||||||
living at DIRECTORY. Upon Git failure, return #f instead of a predicate."
|
|
||||||
(define (parent-directory? thing directory)
|
|
||||||
;; Return #t if DIRECTORY is the parent of THING.
|
|
||||||
(or (string-suffix? thing directory)
|
|
||||||
(and (string-index thing #\/)
|
|
||||||
(parent-directory? (dirname thing) directory))))
|
|
||||||
|
|
||||||
(let* ((pipe (with-directory-excursion directory
|
|
||||||
(open-pipe* OPEN_READ "git" "ls-files")))
|
|
||||||
(files (let loop ((lines '()))
|
|
||||||
(match (read-line pipe)
|
|
||||||
((? eof-object?)
|
|
||||||
(reverse lines))
|
|
||||||
(line
|
|
||||||
(loop (cons line lines))))))
|
|
||||||
(status (close-pipe pipe)))
|
|
||||||
(and (zero? status)
|
|
||||||
(lambda (file stat)
|
|
||||||
(match (stat:type stat)
|
|
||||||
('directory
|
|
||||||
;; 'git ls-files' does not list directories, only regular files,
|
|
||||||
;; so we need this special trick.
|
|
||||||
(any (cut parent-directory? <> file) files))
|
|
||||||
((or 'regular 'symlink)
|
|
||||||
(any (cut string-suffix? <> file) files))
|
|
||||||
(_
|
|
||||||
#f))))))
|
|
||||||
|
|
||||||
(define-public current-guix
|
(define-public current-guix
|
||||||
(let ((select? (delay (or (make-git-predicate
|
(let ((select? (delay (or (git-predicate
|
||||||
(string-append (current-source-directory)
|
(string-append (current-source-directory)
|
||||||
"/../.."))
|
"/../.."))
|
||||||
source-file?))))
|
source-file?))))
|
||||||
|
@ -329,14 +294,14 @@ out) and returning a package that uses that as its 'source'."
|
||||||
(define-public nix
|
(define-public nix
|
||||||
(package
|
(package
|
||||||
(name "nix")
|
(name "nix")
|
||||||
(version "1.11.2")
|
(version "1.11.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://nixos.org/releases/nix/nix-"
|
(uri (string-append "http://nixos.org/releases/nix/nix-"
|
||||||
version "/nix-" version ".tar.xz"))
|
version "/nix-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1mk9z75gklxcv6kzwwz1h5r2ci5kjy6bh7qwk4m5lf5v9s0k64pw"))))
|
"18xjg7cfvqzhsmvir6xmw95jxvl2w7icphbbll462xbnj9ddaag7"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also
|
;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also
|
||||||
;; need '--localstatedir=/var'. But then! The thing would use /var/nix
|
;; need '--localstatedir=/var'. But then! The thing would use /var/nix
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
This fixes a test failure on i686.
|
||||||
|
|
||||||
|
Patch copied from upstream source repository:
|
||||||
|
|
||||||
|
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=5e2e111627871c566ffc6607eda8f4ef4699d040
|
||||||
|
|
||||||
|
From 5e2e111627871c566ffc6607eda8f4ef4699d040 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
|
||||||
|
Date: Thu, 2 Feb 2017 14:56:39 +0200
|
||||||
|
Subject: [PATCH] multifdsink: Make sure to use a 64 bit integer for the
|
||||||
|
units-max property
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/check/elements/multifdsink.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c
|
||||||
|
index af138cc92..951b1b9fa 100644
|
||||||
|
--- a/tests/check/elements/multifdsink.c
|
||||||
|
+++ b/tests/check/elements/multifdsink.c
|
||||||
|
@@ -869,7 +869,7 @@ GST_START_TEST (test_client_kick)
|
||||||
|
gint i, initial_buffers = 3, num_buffers = 0;
|
||||||
|
|
||||||
|
sink = setup_multifdsink ();
|
||||||
|
- g_object_set (sink, "units-max", initial_buffers, NULL);
|
||||||
|
+ g_object_set (sink, "units-max", (gint64) initial_buffers, NULL);
|
||||||
|
|
||||||
|
fail_if (pipe (pfd1) == -1);
|
||||||
|
fail_if (pipe (pfd2) == -1);
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
|
@ -9,15 +9,15 @@ Patch contents copied from Mozilla esr45 changeset 312077:7ebfe49f001c
|
||||||
|
|
||||||
--- libvpx-1.5.0/vp8/vp8_cx_iface.c.orig 2015-11-09 17:12:38.000000000 -0500
|
--- libvpx-1.5.0/vp8/vp8_cx_iface.c.orig 2015-11-09 17:12:38.000000000 -0500
|
||||||
+++ libvpx-1.5.0/vp8/vp8_cx_iface.c 2016-06-08 08:48:46.037213092 -0400
|
+++ libvpx-1.5.0/vp8/vp8_cx_iface.c 2016-06-08 08:48:46.037213092 -0400
|
||||||
@@ -925,11 +925,19 @@
|
@@ -860,11 +860,20 @@
|
||||||
{
|
if (img != NULL) {
|
||||||
res = image2yuvconfig(img, &sd);
|
res = image2yuvconfig(img, &sd);
|
||||||
|
|
||||||
- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags, &sd,
|
||||||
- &sd, dst_time_stamp, dst_end_time_stamp))
|
- dst_time_stamp, dst_end_time_stamp)) {
|
||||||
- {
|
- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||||
- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
- res = update_error_state(ctx, &cpi->common.error);
|
||||||
- res = update_error_state(ctx, &cpi->common.error);
|
- }
|
||||||
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
||||||
+ /* from vp8_encoder.h for g_w/g_h:
|
+ /* from vp8_encoder.h for g_w/g_h:
|
||||||
+ "Note that the frames passed as input to the encoder must have this resolution"
|
+ "Note that the frames passed as input to the encoder must have this resolution"
|
||||||
|
@ -31,6 +31,7 @@ Patch contents copied from Mozilla esr45 changeset 312077:7ebfe49f001c
|
||||||
+ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
+ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||||
+ res = update_error_state(ctx, &cpi->common.error);
|
+ res = update_error_state(ctx, &cpi->common.error);
|
||||||
+ }
|
+ }
|
||||||
}
|
+ }
|
||||||
|
|
||||||
/* reset for next frame */
|
/* reset for next frame */
|
||||||
|
ctx->next_frame_flag = 0;
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
Fix CVE-2017-0358:
|
||||||
|
http://seclists.org/oss-sec/2017/q1/259
|
||||||
|
This patch was copied from the above URL.
|
||||||
|
|
||||||
|
diff -ur ntfs-3g.old/src/lowntfs-3g.c ntfs-3g/src/lowntfs-3g.c
|
||||||
|
--- ntfs-3g.old/src/lowntfs-3g.c 2017-02-09 15:01:04.074331542 -0500
|
||||||
|
+++ ntfs-3g/src/lowntfs-3g.c 2017-02-09 15:06:35.757580937 -0500
|
||||||
|
@@ -3827,13 +3827,14 @@
|
||||||
|
struct stat st;
|
||||||
|
pid_t pid;
|
||||||
|
const char *cmd = "/sbin/modprobe";
|
||||||
|
+ char *env = (char*)NULL;
|
||||||
|
struct timespec req = { 0, 100000000 }; /* 100 msec */
|
||||||
|
fuse_fstype fstype;
|
||||||
|
|
||||||
|
if (!stat(cmd, &st) && !geteuid()) {
|
||||||
|
pid = fork();
|
||||||
|
if (!pid) {
|
||||||
|
- execl(cmd, cmd, "fuse", NULL);
|
||||||
|
+ execle(cmd, cmd, "fuse", NULL, &env);
|
||||||
|
_exit(1);
|
||||||
|
} else if (pid != -1)
|
||||||
|
waitpid(pid, NULL, 0);
|
||||||
|
diff -ur ntfs-3g.old/src/ntfs-3g.c ntfs-3g/src/ntfs-3g.c
|
||||||
|
--- ntfs-3g.old/src/ntfs-3g.c 2017-02-09 15:01:04.074331542 -0500
|
||||||
|
+++ ntfs-3g/src/ntfs-3g.c 2017-02-09 15:06:26.077252571 -0500
|
||||||
|
@@ -3612,13 +3612,14 @@
|
||||||
|
struct stat st;
|
||||||
|
pid_t pid;
|
||||||
|
const char *cmd = "/sbin/modprobe";
|
||||||
|
+ char *env = (char*)NULL;
|
||||||
|
struct timespec req = { 0, 100000000 }; /* 100 msec */
|
||||||
|
fuse_fstype fstype;
|
||||||
|
|
||||||
|
if (!stat(cmd, &st) && !geteuid()) {
|
||||||
|
pid = fork();
|
||||||
|
if (!pid) {
|
||||||
|
- execl(cmd, cmd, "fuse", NULL);
|
||||||
|
+ execle(cmd, cmd, "fuse", NULL, &env);
|
||||||
|
_exit(1);
|
||||||
|
} else if (pid != -1)
|
||||||
|
waitpid(pid, NULL, 0);
|
|
@ -0,0 +1,24 @@
|
||||||
|
From: Robert Luberda <robert@debian.org>
|
||||||
|
Date: Sat, 19 Nov 2016 08:48:08 +0100
|
||||||
|
Subject: Fix nullptr dereference (CVE-2016-9296)
|
||||||
|
|
||||||
|
Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
|
||||||
|
This patch file taken from Debian's patch set for p7zip
|
||||||
|
---
|
||||||
|
CPP/7zip/Archive/7z/7zIn.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CPP/7zip/Archive/7z/7zIn.cpp b/CPP/7zip/Archive/7z/7zIn.cpp
|
||||||
|
index b0c6b98..7c6dde2 100644
|
||||||
|
--- a/CPP/7zip/Archive/7z/7zIn.cpp
|
||||||
|
+++ b/CPP/7zip/Archive/7z/7zIn.cpp
|
||||||
|
@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams(
|
||||||
|
if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
|
||||||
|
ThrowIncorrect();
|
||||||
|
}
|
||||||
|
- HeadersSize += folders.PackPositions[folders.NumPackStreams];
|
||||||
|
+ if (folders.PackPositions)
|
||||||
|
+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
http://git.qemu.org/?p=qemu.git;a=patch;h=62d4c6bd5263bb8413a06c80144fc678df6dfb64
|
||||||
|
this patch is from qemu-git.
|
||||||
|
|
||||||
|
|
||||||
|
From 62d4c6bd5263bb8413a06c80144fc678df6dfb64 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li Qiang <liqiang6-s@360.cn>
|
||||||
|
Date: Wed, 1 Feb 2017 09:35:01 +0100
|
||||||
|
Subject: [PATCH] cirrus: fix oob access issue (CVE-2017-2615)
|
||||||
|
|
||||||
|
When doing bitblt copy in backward mode, we should minus the
|
||||||
|
blt width first just like the adding in the forward mode. This
|
||||||
|
can avoid the oob access of the front of vga's vram.
|
||||||
|
|
||||||
|
Signed-off-by: Li Qiang <liqiang6-s@360.cn>
|
||||||
|
|
||||||
|
{ kraxel: with backward blits (negative pitch) addr is the topmost
|
||||||
|
address, so check it as-is against vram size ]
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Cc: P J P <ppandit@redhat.com>
|
||||||
|
Cc: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Cc: Wolfgang Bumiller <w.bumiller@proxmox.com>
|
||||||
|
Fixes: d3532a0db02296e687711b8cdc7791924efccea0 (CVE-2014-8106)
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Message-id: 1485938101-26602-1-git-send-email-kraxel@redhat.com
|
||||||
|
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
---
|
||||||
|
hw/display/cirrus_vga.c | 7 +++----
|
||||||
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
|
||||||
|
index 7db6409dc5..16f27e8ac5 100644
|
||||||
|
--- a/hw/display/cirrus_vga.c
|
||||||
|
+++ b/hw/display/cirrus_vga.c
|
||||||
|
@@ -274,10 +274,9 @@ static bool blit_region_is_unsafe(struct CirrusVGAState *s,
|
||||||
|
{
|
||||||
|
if (pitch < 0) {
|
||||||
|
int64_t min = addr
|
||||||
|
- + ((int64_t)s->cirrus_blt_height-1) * pitch;
|
||||||
|
- int32_t max = addr
|
||||||
|
- + s->cirrus_blt_width;
|
||||||
|
- if (min < 0 || max > s->vga.vram_size) {
|
||||||
|
+ + ((int64_t)s->cirrus_blt_height - 1) * pitch
|
||||||
|
+ - s->cirrus_blt_width;
|
||||||
|
+ if (min < -1 || addr >= s->vga.vram_size) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
http://git.qemu.org/?p=qemu.git;a=patch;h=204f01b30975923c64006f8067f0937b91eea68b
|
||||||
|
this patch is from qemu-git.
|
||||||
|
|
||||||
|
|
||||||
|
From 204f01b30975923c64006f8067f0937b91eea68b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li Qiang <liq3ea@gmail.com>
|
||||||
|
Date: Thu, 29 Dec 2016 04:28:41 -0500
|
||||||
|
Subject: [PATCH] virtio-gpu: fix memory leak in resource attach backing
|
||||||
|
|
||||||
|
In the resource attach backing function, everytime it will
|
||||||
|
allocate 'res->iov' thus can leading a memory leak. This
|
||||||
|
patch avoid this.
|
||||||
|
|
||||||
|
Signed-off-by: Li Qiang <liq3ea@gmail.com>
|
||||||
|
Message-id: 1483003721-65360-1-git-send-email-liq3ea@gmail.com
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
---
|
||||||
|
hw/display/virtio-gpu.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
|
||||||
|
index 6a26258cac..ca88cf478d 100644
|
||||||
|
--- a/hw/display/virtio-gpu.c
|
||||||
|
+++ b/hw/display/virtio-gpu.c
|
||||||
|
@@ -714,6 +714,11 @@ virtio_gpu_resource_attach_backing(VirtIOGPU *g,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (res->iov) {
|
||||||
|
+ cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
ret = virtio_gpu_create_mapping_iov(&ab, cmd, &res->addrs, &res->iov);
|
||||||
|
if (ret != 0) {
|
||||||
|
cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
http://git.qemu.org/?p=qemu.git;a=patch;h=8409dc884a201bf74b30a9d232b6bbdd00cb7e2b
|
||||||
|
this patch is from qemu-git.
|
||||||
|
|
||||||
|
|
||||||
|
From 8409dc884a201bf74b30a9d232b6bbdd00cb7e2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li Qiang <liqiang6-s@360.cn>
|
||||||
|
Date: Wed, 4 Jan 2017 00:43:16 -0800
|
||||||
|
Subject: [PATCH] serial: fix memory leak in serial exit
|
||||||
|
|
||||||
|
The serial_exit_core function doesn't free some resources.
|
||||||
|
This can lead memory leak when hotplug and unplug. This
|
||||||
|
patch avoid this.
|
||||||
|
|
||||||
|
Signed-off-by: Li Qiang <liqiang6-s@360.cn>
|
||||||
|
Message-Id: <586cb5ab.f31d9d0a.38ac3.acf2@mx.google.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
---
|
||||||
|
hw/char/serial.c | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/char/serial.c b/hw/char/serial.c
|
||||||
|
index ffbacd8227..67b18eda12 100644
|
||||||
|
--- a/hw/char/serial.c
|
||||||
|
+++ b/hw/char/serial.c
|
||||||
|
@@ -906,6 +906,16 @@ void serial_realize_core(SerialState *s, Error **errp)
|
||||||
|
void serial_exit_core(SerialState *s)
|
||||||
|
{
|
||||||
|
qemu_chr_fe_deinit(&s->chr);
|
||||||
|
+
|
||||||
|
+ timer_del(s->modem_status_poll);
|
||||||
|
+ timer_free(s->modem_status_poll);
|
||||||
|
+
|
||||||
|
+ timer_del(s->fifo_timeout_timer);
|
||||||
|
+ timer_free(s->fifo_timeout_timer);
|
||||||
|
+
|
||||||
|
+ fifo8_destroy(&s->recv_fifo);
|
||||||
|
+ fifo8_destroy(&s->xmit_fifo);
|
||||||
|
+
|
||||||
|
qemu_unregister_reset(serial_reset, s);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
http://git.qemu.org/?p=qemu.git;a=patch;h=765a707000e838c30b18d712fe6cb3dd8e0435f3
|
||||||
|
this patch is from qemu-git.
|
||||||
|
|
||||||
|
|
||||||
|
From 765a707000e838c30b18d712fe6cb3dd8e0435f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Date: Mon, 2 Jan 2017 11:03:33 +0100
|
||||||
|
Subject: [PATCH] megasas: fix guest-triggered memory leak
|
||||||
|
|
||||||
|
If the guest sets the sglist size to a value >=2GB, megasas_handle_dcmd
|
||||||
|
will return MFI_STAT_MEMORY_NOT_AVAILABLE without freeing the memory.
|
||||||
|
Avoid this by returning only the status from map_dcmd, and loading
|
||||||
|
cmd->iov_size in the caller.
|
||||||
|
|
||||||
|
Reported-by: Li Qiang <liqiang6-s@360.cn>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
---
|
||||||
|
hw/scsi/megasas.c | 11 ++++++-----
|
||||||
|
1 files changed, 6 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
|
||||||
|
index 67fc1e7..6233865 100644
|
||||||
|
--- a/hw/scsi/megasas.c
|
||||||
|
+++ b/hw/scsi/megasas.c
|
||||||
|
@@ -683,14 +683,14 @@ static int megasas_map_dcmd(MegasasState *s, MegasasCmd *cmd)
|
||||||
|
trace_megasas_dcmd_invalid_sge(cmd->index,
|
||||||
|
cmd->frame->header.sge_count);
|
||||||
|
cmd->iov_size = 0;
|
||||||
|
- return -1;
|
||||||
|
+ return -EINVAL;
|
||||||
|
}
|
||||||
|
iov_pa = megasas_sgl_get_addr(cmd, &cmd->frame->dcmd.sgl);
|
||||||
|
iov_size = megasas_sgl_get_len(cmd, &cmd->frame->dcmd.sgl);
|
||||||
|
pci_dma_sglist_init(&cmd->qsg, PCI_DEVICE(s), 1);
|
||||||
|
qemu_sglist_add(&cmd->qsg, iov_pa, iov_size);
|
||||||
|
cmd->iov_size = iov_size;
|
||||||
|
- return cmd->iov_size;
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void megasas_finish_dcmd(MegasasCmd *cmd, uint32_t iov_size)
|
||||||
|
@@ -1559,19 +1559,20 @@ static const struct dcmd_cmd_tbl_t {
|
||||||
|
|
||||||
|
static int megasas_handle_dcmd(MegasasState *s, MegasasCmd *cmd)
|
||||||
|
{
|
||||||
|
- int opcode, len;
|
||||||
|
+ int opcode;
|
||||||
|
int retval = 0;
|
||||||
|
+ size_t len;
|
||||||
|
const struct dcmd_cmd_tbl_t *cmdptr = dcmd_cmd_tbl;
|
||||||
|
|
||||||
|
opcode = le32_to_cpu(cmd->frame->dcmd.opcode);
|
||||||
|
trace_megasas_handle_dcmd(cmd->index, opcode);
|
||||||
|
- len = megasas_map_dcmd(s, cmd);
|
||||||
|
- if (len < 0) {
|
||||||
|
+ if (megasas_map_dcmd(s, cmd) < 0) {
|
||||||
|
return MFI_STAT_MEMORY_NOT_AVAILABLE;
|
||||||
|
}
|
||||||
|
while (cmdptr->opcode != -1 && cmdptr->opcode != opcode) {
|
||||||
|
cmdptr++;
|
||||||
|
}
|
||||||
|
+ len = cmd->iov_size;
|
||||||
|
if (cmdptr->opcode == -1) {
|
||||||
|
trace_megasas_dcmd_unhandled(cmd->index, opcode, len);
|
||||||
|
retval = megasas_dcmd_dummy(s, cmd);
|
||||||
|
--
|
||||||
|
1.7.0.4
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
|
index e56a8a2..4adcc48 100644
|
||||||
|
--- a/src/Makefile.am
|
||||||
|
+++ b/src/Makefile.am
|
||||||
|
@@ -3,7 +3,7 @@ bin_PROGRAMS = $(top_builddir)/bin/vsearch
|
||||||
|
if TARGET_PPC
|
||||||
|
AM_CXXFLAGS=-Wall -Wsign-compare -O3 -g -mcpu=power8
|
||||||
|
else
|
||||||
|
-AM_CXXFLAGS=-Wall -Wsign-compare -O3 -g
|
||||||
|
+AM_CXXFLAGS=-Wall -Wsign-compare -O3 -g -lcityhash
|
||||||
|
endif
|
||||||
|
|
||||||
|
AM_CFLAGS=$(AM_CXXFLAGS)
|
||||||
|
@@ -18,8 +18,6 @@ allpairs.h \
|
||||||
|
arch.h \
|
||||||
|
bitmap.h \
|
||||||
|
chimera.h \
|
||||||
|
-city.h \
|
||||||
|
-citycrc.h \
|
||||||
|
cluster.h \
|
||||||
|
cpu.h \
|
||||||
|
db.h \
|
||||||
|
@@ -59,31 +57,26 @@ xstring.h
|
||||||
|
|
||||||
|
if TARGET_PPC
|
||||||
|
libcpu_a_SOURCES = cpu.cc $(VSEARCHHEADERS)
|
||||||
|
-noinst_LIBRARIES = libcpu.a libcityhash.a
|
||||||
|
+noinst_LIBRARIES = libcpu.a
|
||||||
|
else
|
||||||
|
libcpu_sse2_a_SOURCES = cpu.cc $(VSEARCHHEADERS)
|
||||||
|
libcpu_sse2_a_CXXFLAGS = $(AM_CXXFLAGS) -msse2
|
||||||
|
libcpu_ssse3_a_SOURCES = cpu.cc $(VSEARCHHEADERS)
|
||||||
|
libcpu_ssse3_a_CXXFLAGS = $(AM_CXXFLAGS) -mssse3 -DSSSE3
|
||||||
|
-noinst_LIBRARIES = libcpu_sse2.a libcpu_ssse3.a libcityhash.a
|
||||||
|
+noinst_LIBRARIES = libcpu_sse2.a libcpu_ssse3.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
-libcityhash_a_SOURCES = city.cc city.h
|
||||||
|
-
|
||||||
|
if TARGET_WIN
|
||||||
|
|
||||||
|
-libcityhash_a_CXXFLAGS = -Wall -Wno-sign-compare -O3 -g -D_MSC_VER
|
||||||
|
-__top_builddir__bin_vsearch_LDFLAGS = -static
|
||||||
|
-__top_builddir__bin_vsearch_LDADD = libregex.a libcityhash.a libcpu_ssse3.a libcpu_sse2.a
|
||||||
|
+__top_builddir__bin_vsearch_LDFLAGS = -static -lcityhash
|
||||||
|
+__top_builddir__bin_vsearch_LDADD = libregex.a libcpu_ssse3.a libcpu_sse2.a
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
-libcityhash_a_CXXFLAGS = -Wall -Wno-sign-compare -O3 -g
|
||||||
|
-
|
||||||
|
if TARGET_PPC
|
||||||
|
-__top_builddir__bin_vsearch_LDADD = libcityhash.a libcpu.a
|
||||||
|
+__top_builddir__bin_vsearch_LDADD = libcpu.a
|
||||||
|
else
|
||||||
|
-__top_builddir__bin_vsearch_LDADD = libcityhash.a libcpu_ssse3.a libcpu_sse2.a
|
||||||
|
+__top_builddir__bin_vsearch_LDADD = libcpu_ssse3.a libcpu_sse2.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
diff --git a/src/vsearch.h b/src/vsearch.h
|
||||||
|
index f2c244b..5f51bbe 100644
|
||||||
|
--- a/src/vsearch.h
|
||||||
|
+++ b/src/vsearch.h
|
||||||
|
@@ -148,7 +148,7 @@
|
||||||
|
#include <bzlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#include "city.h"
|
||||||
|
+#include <city.h>
|
||||||
|
#include "md5.h"
|
||||||
|
#include "sha1.h"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
|
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
|
||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
||||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
|
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||||
|
@ -35,6 +35,7 @@
|
||||||
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
|
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||||
|
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1064,14 +1065,14 @@ Python file, so it can be easily copied into your project.")
|
||||||
(define-public python-dateutil-2
|
(define-public python-dateutil-2
|
||||||
(package
|
(package
|
||||||
(name "python-dateutil")
|
(name "python-dateutil")
|
||||||
(version "2.5.2")
|
(version "2.5.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "python-dateutil" version))
|
(uri (pypi-uri "python-dateutil" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jrfpcgvgya6hs45dhrd9yiqgdgz9qp9aa07zsw8gqgn8zphff86"))))
|
"1v9j9fmf8g911yg6k01xa2db6dx3wv73zkk7fncsj7vagjqgs20l"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-six" ,python-six)))
|
`(("python-six" ,python-six)))
|
||||||
|
@ -5993,6 +5994,28 @@ complexity of Python source code.")
|
||||||
(define-public python2-flake8-2.2.4
|
(define-public python2-flake8-2.2.4
|
||||||
(package-with-python2 python-flake8-2.2.4))
|
(package-with-python2 python-flake8-2.2.4))
|
||||||
|
|
||||||
|
(define-public python-flake8-polyfill
|
||||||
|
(package
|
||||||
|
(name "python-flake8-polyfill")
|
||||||
|
(version "1.0.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "flake8-polyfill" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"02gn2wxvh9vnf7m7dld7ca4l60mg5c370hv3swwppkngwaqmcw67"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "https://gitlab.com/pycqa/flake8-polyfill")
|
||||||
|
(synopsis "Polyfill package for Flake8 plugins")
|
||||||
|
(description
|
||||||
|
"This package that provides some compatibility helpers for Flake8
|
||||||
|
plugins that intend to support Flake8 2.x and 3.x simultaneously.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-flake8-polyfill
|
||||||
|
(package-with-python2 python-flake8-polyfill))
|
||||||
|
|
||||||
(define-public python-mistune
|
(define-public python-mistune
|
||||||
(package
|
(package
|
||||||
(name "python-mistune")
|
(name "python-mistune")
|
||||||
|
@ -12537,3 +12560,111 @@ console.")
|
||||||
This implementation is slow (hence the project name) but still useful when
|
This implementation is slow (hence the project name) but still useful when
|
||||||
faster ones are not available.")
|
faster ones are not available.")
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
(define-public python-rst2ansi
|
||||||
|
(package
|
||||||
|
(name "python-rst2ansi")
|
||||||
|
(version "0.1.5")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "rst2ansi" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0vzy6gd60l79ff750scl0sz48r1laalkl6md6dwzah4dcadgn5qv"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-docutils" ,python-docutils)))
|
||||||
|
(home-page "https://github.com/Snaipe/python-rst-to-ansi")
|
||||||
|
(synopsis "Convert RST to ANSI-decorated console output")
|
||||||
|
(description
|
||||||
|
"Python module dedicated to rendering RST (reStructuredText) documents
|
||||||
|
to ansi-escaped strings suitable for display in a terminal.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-ddt
|
||||||
|
(package
|
||||||
|
(name "python-ddt")
|
||||||
|
(version "1.1.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "ddt" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1c00ikkxr7lha97c81k938bzhgd4pbwamkjn0h4nkhr3xk00zp6n"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("python-mock" ,python-mock)
|
||||||
|
("python-nose" ,python-nose)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-six" ,python-six)
|
||||||
|
("python-pyyaml" ,python-pyyaml)))
|
||||||
|
(home-page "https://github.com/txels/ddt")
|
||||||
|
(synopsis "Data-Driven Tests")
|
||||||
|
(description
|
||||||
|
"DDT (Data-Driven Tests) allows you to multiply one test case by running
|
||||||
|
it with different test data, and make it appear as multiple test cases.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-ddt
|
||||||
|
(package-with-python2 python-ddt))
|
||||||
|
|
||||||
|
(define-public python-pycosat
|
||||||
|
(package
|
||||||
|
(name "python-pycosat")
|
||||||
|
(version "0.6.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "pycosat" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1kl3wh1f47rc712n4bmwplbx3fqz3x9i1b587jrbpmvdva4c8f6l"))))
|
||||||
|
;; TODO: Unundle picosat. http://fmv.jku.at/picosat/
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "https://github.com/ContinuumIO/pycosat")
|
||||||
|
(synopsis "Bindings to picosat (a SAT solver)")
|
||||||
|
(description
|
||||||
|
"This package provides efficient Python bindings to @code{picosat} on
|
||||||
|
the C level. When importing pycosat, the @code{picosat} solver becomes part
|
||||||
|
of the Python process itself. @code{picosat} is a @dfn{Boolean Satisfiability
|
||||||
|
Problem} (SAT) solver.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-pycosat
|
||||||
|
(package-with-python2 python-pycosat))
|
||||||
|
|
||||||
|
(define-public python2-ruamel.ordereddict
|
||||||
|
(package
|
||||||
|
(name "python2-ruamel.ordereddict")
|
||||||
|
(version "0.4.9")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "ruamel.ordereddict" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1xmkl8v9l9inm2pyxgc1fm5005yxm7fkd5gv74q7lj1iy5qc8n3h"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:python ,python-2
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'check)
|
||||||
|
(add-after 'install 'check
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(add-installed-pythonpath inputs outputs)
|
||||||
|
(zero? (system* "python" "test/testordereddict.py")))))))
|
||||||
|
(home-page "https://bitbucket.org/ruamel/ordereddict")
|
||||||
|
(synopsis "Version of dict that keeps keys in insertion order")
|
||||||
|
(description
|
||||||
|
"This is an implementation of an ordered dictionary with @dfn{Key
|
||||||
|
Insertion Order} (KIO: updates of values do not affect the position of the
|
||||||
|
key), @dfn{Key Value Insertion Order} (KVIO, an existing key's position is
|
||||||
|
removed and put at the back). The standard library module @code{OrderedDict},
|
||||||
|
implemented later, implements a subset of @code{ordereddict} functionality.
|
||||||
|
Sorted dictionaries are also provided. Currently only with @dfn{Key Sorted
|
||||||
|
Order} (KSO, no sorting function can be specified, but a transform can be
|
||||||
|
specified to apply on the key before comparison (e.g. @code{string.lower})).")
|
||||||
|
(license license:expat)))
|
||||||
|
|
|
@ -78,9 +78,13 @@
|
||||||
(base32
|
(base32
|
||||||
"0qjy3rcrn89n42y5iz60kgr0rrl29hpnj8mq2yvbc1wrcizmvzfs"))
|
"0qjy3rcrn89n42y5iz60kgr0rrl29hpnj8mq2yvbc1wrcizmvzfs"))
|
||||||
(patches (search-patches "qemu-CVE-2016-10155.patch"
|
(patches (search-patches "qemu-CVE-2016-10155.patch"
|
||||||
|
"qemu-CVE-2017-2615.patch"
|
||||||
"qemu-CVE-2017-5525.patch"
|
"qemu-CVE-2017-5525.patch"
|
||||||
"qemu-CVE-2017-5526.patch"
|
"qemu-CVE-2017-5526.patch"
|
||||||
"qemu-CVE-2017-5552.patch"))))
|
"qemu-CVE-2017-5552.patch"
|
||||||
|
"qemu-CVE-2017-5578.patch"
|
||||||
|
"qemu-CVE-2017-5579.patch"
|
||||||
|
"qemu-CVE-2017-5856.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(;; Running tests in parallel can occasionally lead to failures, like:
|
'(;; Running tests in parallel can occasionally lead to failures, like:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -20,9 +21,19 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages cups)
|
||||||
|
#:use-module (gnu packages gstreamer)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages pulseaudio)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages xorg))
|
#:use-module (gnu packages video)
|
||||||
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (gnu packages xml))
|
||||||
|
|
||||||
(define-public rdesktop
|
(define-public rdesktop
|
||||||
(package
|
(package
|
||||||
|
@ -57,3 +68,63 @@
|
||||||
capable of natively speaking Remote Desktop Protocol (RDP). It allows users
|
capable of natively speaking Remote Desktop Protocol (RDP). It allows users
|
||||||
to remotely control a user's Windows desktop.")
|
to remotely control a user's Windows desktop.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public freerdp
|
||||||
|
(package
|
||||||
|
(name "freerdp")
|
||||||
|
(version "1.2.0-beta1+android9")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "git://github.com/FreeRDP/FreeRDP.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "1m0lzrr7hkxfvc5f9p8snimv0rmin2463zhg25mv36wig8g5k7l3"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("xmlto" ,xmlto)))
|
||||||
|
(inputs
|
||||||
|
`(("libx11" ,libx11)
|
||||||
|
("libxkbfile" ,libxkbfile)
|
||||||
|
("libxcursor" ,libxcursor)
|
||||||
|
("libxext" ,libxext)
|
||||||
|
("libxi" ,libxi)
|
||||||
|
("libxv" ,libxv)
|
||||||
|
("libxrandr" ,libxrandr)
|
||||||
|
("libxrender" ,libxrender)
|
||||||
|
("libxinerama" ,libxinerama)
|
||||||
|
("libxshmfence" ,libxshmfence)
|
||||||
|
("libxml2" ,libxml2)
|
||||||
|
("libxslt" ,libxslt)
|
||||||
|
("cups" ,cups)
|
||||||
|
("ffmpeg" ,ffmpeg)
|
||||||
|
("pulseaudio" ,pulseaudio)
|
||||||
|
("alsa-lib" ,alsa-lib)
|
||||||
|
("gstreamer" ,gstreamer)
|
||||||
|
("gst-plugins-base" ,gst-plugins-base)
|
||||||
|
("zlib" ,zlib)
|
||||||
|
("openssl" ,openssl)))
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
'("-DCMAKE_INSTALL_LIBDIR=lib"
|
||||||
|
"-DWITH_PULSE=ON"
|
||||||
|
"-DWITH_CUPS=ON")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'configure 'patch-cmakelists
|
||||||
|
(lambda _
|
||||||
|
;; CMake would return an error on REMOVE_DUPLICATES because this
|
||||||
|
;; list is empty.
|
||||||
|
(substitute* "channels/client/CMakeLists.txt"
|
||||||
|
(("list\\(REMOVE_DUPLICATES CHANNEL_STATIC_CLIENT_ENTRIES\\)")
|
||||||
|
"")))))
|
||||||
|
#:tests? #f)) ; no 'test' target
|
||||||
|
(home-page "https://www.freerdp.com")
|
||||||
|
(synopsis "Remote Desktop Protocol implementation")
|
||||||
|
(description "FreeRDP implements Microsoft's Remote Desktop Protocol. It
|
||||||
|
consists of the @code{xfreerdp} client, libraries for client and server
|
||||||
|
functionality, and Windows Portable Runtime (WinPR), a portable implementation
|
||||||
|
of parts of the Windows API.")
|
||||||
|
(license license:asl2.0)))
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
|
||||||
|
;;;
|
||||||
|
;;; 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 re2c)
|
||||||
|
#:use-module (guix licenses)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix build-system gnu))
|
||||||
|
|
||||||
|
(define-public re2c
|
||||||
|
(package
|
||||||
|
(name "re2c")
|
||||||
|
(version "0.16")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/skvadrik/" name
|
||||||
|
"/releases/download/" version "/"
|
||||||
|
name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"114y0s4vmzip4hkf4cbz4yv8s498gzaylnphbzmwqhbn55j2bha8"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(home-page "http://re2c.org/")
|
||||||
|
(synopsis "Lexer generator for C/C++")
|
||||||
|
(description
|
||||||
|
"@code{re2c} generates minimalistic hard-coded state machine (as opposed
|
||||||
|
to full-featured table-based lexers). Flexible API allows generated code
|
||||||
|
to be wired into virtually any environment. Instead of exposing traditional
|
||||||
|
@code{yylex()} style API, re2c exposes its internals. Be sure to take a look
|
||||||
|
at examples, they cover a lot of real-world cases and shed some light on dark
|
||||||
|
corners of re2c API.")
|
||||||
|
(license public-domain)))
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
|
;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
|
||||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
||||||
|
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -272,6 +273,8 @@ rustc-bootstrap and cargo-bootstrap packages.")
|
||||||
(wrap-program (string-append out "/bin/rustc")
|
(wrap-program (string-append out "/bin/rustc")
|
||||||
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
||||||
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))))))))
|
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))))))))
|
||||||
|
;; rustc invokes gcc, so we need to set its search paths accordingly.
|
||||||
|
(native-search-paths (package-native-search-paths gcc))
|
||||||
(synopsis "Compiler for the Rust progamming language")
|
(synopsis "Compiler for the Rust progamming language")
|
||||||
(description "Rust is a systems programming language that provides memory
|
(description "Rust is a systems programming language that provides memory
|
||||||
safety and thread safety guarantees.")
|
safety and thread safety guarantees.")
|
||||||
|
|
|
@ -83,14 +83,14 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
|
||||||
(define-public fish
|
(define-public fish
|
||||||
(package
|
(package
|
||||||
(name "fish")
|
(name "fish")
|
||||||
(version "2.4.0")
|
(version "2.5.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://fishshell.com/files/"
|
(uri (string-append "https://fishshell.com/files/"
|
||||||
version "/fish-" version ".tar.gz"))
|
version "/fish-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1iggr6ah0siyak073v2w4sx1man19q8jsxns8i09qhv06crb5fq6"))
|
"0kn2n9qr9cksg2cl78f3w0yd24368d35djhi6w5x3gbdxk23ywq3"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
;; Don't try to install /etc/fish/config.fish.
|
;; Don't try to install /etc/fish/config.fish.
|
||||||
(snippet
|
(snippet
|
||||||
|
@ -98,7 +98,12 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
|
||||||
((".*INSTALL.*sysconfdir.*fish.*") "")))))
|
((".*INSTALL.*sysconfdir.*fish.*") "")))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("doxygen" ,doxygen)))
|
`(("doxygen" ,doxygen)
|
||||||
|
;; XXX These are needed to bootstrap the 2.5.0 tarball, and can probably
|
||||||
|
;; be removed along with the ‘bootstrap’ phase on the next update.
|
||||||
|
("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)
|
||||||
|
("libtool" ,libtool)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("bc" ,bc)
|
`(("bc" ,bc)
|
||||||
("ncurses" ,ncurses)
|
("ncurses" ,ncurses)
|
||||||
|
@ -119,7 +124,10 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
|
||||||
"/bin/bc")))
|
"/bin/bc")))
|
||||||
(substitute* "share/functions/fish_update_completions.fish"
|
(substitute* "share/functions/fish_update_completions.fish"
|
||||||
(("python") (which "python")))
|
(("python") (which "python")))
|
||||||
#t)))))
|
#t))
|
||||||
|
(add-before 'configure 'bootstrap
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "autoreconf" "-vfi")))))))
|
||||||
(synopsis "The friendly interactive shell")
|
(synopsis "The friendly interactive shell")
|
||||||
(description
|
(description
|
||||||
"Fish (friendly interactive shell) is a shell focused on interactive use,
|
"Fish (friendly interactive shell) is a shell focused on interactive use,
|
||||||
|
@ -332,14 +340,14 @@ ksh, and tcsh.")
|
||||||
(define-public xonsh
|
(define-public xonsh
|
||||||
(package
|
(package
|
||||||
(name "xonsh")
|
(name "xonsh")
|
||||||
(version "0.5.2")
|
(version "0.5.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "xonsh" version))
|
(uri (pypi-uri "xonsh" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13ndyq9cal2j93qqbjyp2jn3cshiavdxsaj2qjzm6mas0gzywmf0"))
|
"1pb1am26wl21g798lpl091j95900py7jj4g98rs9qkhywiln4z4q"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
`(begin
|
`(begin
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
|
;;; Copyright © 2016, 2017 Raoul Bonnal <ilpuccio.febo@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -116,7 +116,9 @@ be output in text, PostScript, PDF or HTML.")
|
||||||
`(#:make-flags
|
`(#:make-flags
|
||||||
(list (string-append "LDFLAGS=-Wl,-rpath="
|
(list (string-append "LDFLAGS=-Wl,-rpath="
|
||||||
(assoc-ref %outputs "out")
|
(assoc-ref %outputs "out")
|
||||||
"/lib/R/lib"))
|
"/lib/R/lib")
|
||||||
|
;; This affects the embedded timestamp of only the core packages.
|
||||||
|
"PKG_BUILT_STAMP=1970-01-01")
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-before 'configure 'patch-uname
|
(add-before 'configure 'patch-uname
|
||||||
|
@ -126,8 +128,13 @@ be output in text, PostScript, PDF or HTML.")
|
||||||
(substitute* "src/scripts/R.sh.in"
|
(substitute* "src/scripts/R.sh.in"
|
||||||
(("uname") uname-bin)))
|
(("uname") uname-bin)))
|
||||||
#t))
|
#t))
|
||||||
(add-before
|
(add-after 'unpack 'build-recommended-packages-reproducibly
|
||||||
'configure 'set-default-pager
|
(lambda _
|
||||||
|
(substitute* "src/library/Recommended/Makefile.in"
|
||||||
|
(("INSTALL_OPTS =.*" line)
|
||||||
|
(string-append line " --built-timestamp=1970-01-01")))
|
||||||
|
#t))
|
||||||
|
(add-before 'configure 'set-default-pager
|
||||||
;; Set default pager to "cat", because otherwise it is "false",
|
;; Set default pager to "cat", because otherwise it is "false",
|
||||||
;; making "help()" print nothing at all.
|
;; making "help()" print nothing at all.
|
||||||
(lambda _ (setenv "PAGER" "cat") #t))
|
(lambda _ (setenv "PAGER" "cat") #t))
|
||||||
|
@ -4006,6 +4013,27 @@ dispersion modeling and Tweedie power-law families.")
|
||||||
;; Statmod is distributed under either license
|
;; Statmod is distributed under either license
|
||||||
(license (list license:gpl2 license:gpl3))))
|
(license (list license:gpl2 license:gpl3))))
|
||||||
|
|
||||||
|
(define-public r-rann
|
||||||
|
(package
|
||||||
|
(name "r-rann")
|
||||||
|
(version "2.5")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "RANN" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"007cgqg9bybg2zlljbv5m6cmlm3r6i251018rpgjcn0xnm9sjsj7"))))
|
||||||
|
(properties
|
||||||
|
`((upstream-name . "RANN")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "https://github.com/jefferis/RANN")
|
||||||
|
(synopsis "Fast nearest neighbour search")
|
||||||
|
(description
|
||||||
|
"This package finds the k nearest neighbours for every point in a given
|
||||||
|
dataset in O(N log N) time using Arya and Mount's ANN library. Provides
|
||||||
|
approximate, exact searches, fixed radius searches, bd and kb trees.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public r-fivethirtyeight
|
(define-public r-fivethirtyeight
|
||||||
(package
|
(package
|
||||||
(name "r-fivethirtyeight")
|
(name "r-fivethirtyeight")
|
||||||
|
@ -4145,3 +4173,25 @@ regression.")
|
||||||
perform @dfn{independent component analysis} (ICA) and projection pursuit.")
|
perform @dfn{independent component analysis} (ICA) and projection pursuit.")
|
||||||
;; Any GPL version.
|
;; Any GPL version.
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public r-randomforest
|
||||||
|
(package
|
||||||
|
(name "r-randomforest")
|
||||||
|
(version "4.6-12")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "randomForest" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1i43idaihhl6nwqw42v9dqpl6f8z3ykcn2in32lh2755i27jylbf"))))
|
||||||
|
(properties `((upstream-name . "randomForest")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(home-page "https://www.stat.berkeley.edu/~breiman/RandomForests/")
|
||||||
|
(native-inputs
|
||||||
|
`(("gfortran" ,gfortran)))
|
||||||
|
(synopsis "Breiman and Cutler's random forests for classification and regression")
|
||||||
|
(description
|
||||||
|
"This package provides the Breiman and Cutler's random forests algorithm, based on a
|
||||||
|
forest of trees using random inputs, for classification and regression.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -489,13 +489,14 @@ security, and applying best practice development processes.")
|
||||||
(define-public python-acme
|
(define-public python-acme
|
||||||
(package
|
(package
|
||||||
(name "python-acme")
|
(name "python-acme")
|
||||||
(version "0.10.2")
|
;; Remember to update the hash of certbot when updating python-acme.
|
||||||
|
(version "0.11.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "acme" version))
|
(uri (pypi-uri "acme" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0y6y8d66yvwdcby96g0dlqqwy72b81yh6hws4va8r7w4aribcrb4"))))
|
"0kk95iqxygrg0cd66kq8kbyalg2x5pz9hn1175cgwgf1vy72adfv"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -538,13 +539,15 @@ security, and applying best practice development processes.")
|
||||||
(define-public certbot
|
(define-public certbot
|
||||||
(package
|
(package
|
||||||
(name "certbot")
|
(name "certbot")
|
||||||
(version "0.10.2")
|
;; Certbot and python-acme are developed in the same repository, and their
|
||||||
|
;; versions should remain synchronized.
|
||||||
|
(version (package-version python-acme))
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri name version))
|
(uri (pypi-uri name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0c8nidbbq8p4rjhcrw31saw04n5rz4zgr08chbch17gw03hrqwik"))))
|
"1wis5kgqcsrs60kkcmbrbx8z9yasmwa6lg9ir5im232hdm4285vc"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:python ,python-2
|
`(#:python ,python-2
|
||||||
|
|
|
@ -1,137 +0,0 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
|
||||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
|
||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
|
||||||
;;;
|
|
||||||
;;; 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 u-boot)
|
|
||||||
#:use-module (guix build-system gnu)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
|
||||||
#:use-module (gnu packages)
|
|
||||||
#:use-module ((gnu packages algebra) #:select (bc))
|
|
||||||
#:use-module (gnu packages bison)
|
|
||||||
#:use-module (gnu packages cross-base)
|
|
||||||
#:use-module (gnu packages flex)
|
|
||||||
#:use-module (gnu packages python))
|
|
||||||
|
|
||||||
(define-public dtc
|
|
||||||
(package
|
|
||||||
(name "dtc")
|
|
||||||
(version "1.4.2")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://www.kernel.org/pub/software/utils/dtc/"
|
|
||||||
"dtc-" version ".tar.xz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(native-inputs
|
|
||||||
`(("bison" ,bison)
|
|
||||||
("flex" ,flex)))
|
|
||||||
(arguments
|
|
||||||
`(#:make-flags
|
|
||||||
(list "CC=gcc"
|
|
||||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
|
||||||
"INSTALL=install")
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(delete 'configure))))
|
|
||||||
(home-page "https://www.devicetree.org")
|
|
||||||
(synopsis "Compiles device tree source files")
|
|
||||||
(description "@command{dtc} compiles
|
|
||||||
@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
|
|
||||||
tree binary files. These are board description files used by Linux and BSD.")
|
|
||||||
(license license:gpl2+)))
|
|
||||||
|
|
||||||
(define u-boot
|
|
||||||
(package
|
|
||||||
(name "u-boot")
|
|
||||||
(version "2016.07")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"ftp://ftp.denx.de/pub/u-boot/"
|
|
||||||
"u-boot-" version ".tar.bz2"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp"))))
|
|
||||||
(native-inputs
|
|
||||||
`(("bc" ,bc)
|
|
||||||
("dtc" ,dtc)
|
|
||||||
("python-2" ,python-2)))
|
|
||||||
(build-system gnu-build-system)
|
|
||||||
(home-page "http://www.denx.de/wiki/U-Boot/")
|
|
||||||
(synopsis "ARM bootloader")
|
|
||||||
(description "U-Boot is a bootloader used mostly for ARM boards. It
|
|
||||||
also initializes the boards (RAM etc).")
|
|
||||||
(license license:gpl2+)))
|
|
||||||
|
|
||||||
(define (make-u-boot-package board triplet)
|
|
||||||
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
|
|
||||||
(package
|
|
||||||
(inherit u-boot)
|
|
||||||
(name (string-append "u-boot-" (string-downcase board)))
|
|
||||||
(native-inputs
|
|
||||||
`(("cross-gcc" ,(cross-gcc triplet))
|
|
||||||
("cross-binutils" ,(cross-binutils triplet))
|
|
||||||
,@(package-native-inputs u-boot)))
|
|
||||||
(arguments
|
|
||||||
`(#:test-target "test"
|
|
||||||
#:make-flags
|
|
||||||
(list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
|
|
||||||
#:phases
|
|
||||||
(modify-phases %standard-phases
|
|
||||||
(replace 'configure
|
|
||||||
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
|
||||||
(let ((config-name (string-append ,board "_defconfig")))
|
|
||||||
(if (file-exists? (string-append "configs/" config-name))
|
|
||||||
(zero? (apply system* "make" `(,@make-flags ,config-name)))
|
|
||||||
(begin
|
|
||||||
(display "Invalid board name. Valid board names are:")
|
|
||||||
(let ((dir (opendir "configs"))
|
|
||||||
(suffix-length (string-length "_defconfig")))
|
|
||||||
(do ((file-name (readdir dir) (readdir dir)))
|
|
||||||
((eof-object? file-name))
|
|
||||||
(when (string-suffix? "_defconfig" file-name)
|
|
||||||
(format #t "- ~A\n"
|
|
||||||
(string-drop-right file-name suffix-length))))
|
|
||||||
(closedir dir))
|
|
||||||
#f)))))
|
|
||||||
(replace 'install
|
|
||||||
(lambda* (#:key outputs make-flags #:allow-other-keys)
|
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
|
||||||
(libexec (string-append out "/libexec"))
|
|
||||||
(uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
|
|
||||||
(mkdir-p libexec)
|
|
||||||
(for-each
|
|
||||||
(lambda (file)
|
|
||||||
(let ((target-file (string-append libexec "/" file)))
|
|
||||||
(mkdir-p (dirname target-file))
|
|
||||||
(copy-file file target-file)))
|
|
||||||
uboot-files)))))))))
|
|
||||||
|
|
||||||
(define-public u-boot-vexpress
|
|
||||||
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
|
|
||||||
|
|
||||||
(define-public u-boot-malta
|
|
||||||
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
|
|
||||||
|
|
||||||
(define-public u-boot-beagle-bone-black
|
|
||||||
(make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
|
|
|
@ -112,14 +112,14 @@ as well as the classic centralized workflow.")
|
||||||
(define-public git
|
(define-public git
|
||||||
(package
|
(package
|
||||||
(name "git")
|
(name "git")
|
||||||
(version "2.11.0")
|
(version "2.11.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"02zx368id8rys0bh2sjrxz0ln2l2wm5nf1vhp1rj72clsilqszky"))))
|
"05b4jw86w77c3pyh3nm6aw31vhxwzvhnx2x0bcfqmm15wg57k9y0"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("native-perl" ,perl)
|
`(("native-perl" ,perl)
|
||||||
|
@ -132,7 +132,7 @@ as well as the classic centralized workflow.")
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1n18jnpi0z3skwc1ckrm7zdld6i3zvn0g95cg9r9pdn0564fglxk"))))))
|
"0cfa3c2r7d86ksswxdl0jqdka9mai3446gg8380921gf779nwj39"))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("curl" ,curl)
|
`(("curl" ,curl)
|
||||||
("expat" ,expat)
|
("expat" ,expat)
|
||||||
|
@ -275,16 +275,7 @@ as well as the classic centralized workflow.")
|
||||||
(wrap-program git-sm
|
(wrap-program git-sm
|
||||||
`("PATH" ":" prefix
|
`("PATH" ":" prefix
|
||||||
(,(string-append (assoc-ref inputs "perl")
|
(,(string-append (assoc-ref inputs "perl")
|
||||||
"/bin"))))
|
"/bin")))))))
|
||||||
|
|
||||||
;; Tell 'git' to look for core programs in the user's profile.
|
|
||||||
;; This allows user to install other outputs of this package and
|
|
||||||
;; have them transparently taken into account. There's a
|
|
||||||
;; 'GIT_EXEC_PATH' environment variable, but it's supposed to
|
|
||||||
;; specify a single directory, not a search path.
|
|
||||||
(wrap-program (string-append out "/bin/git")
|
|
||||||
`("PATH" ":" prefix
|
|
||||||
("$HOME/.guix-profile/libexec/git-core"))))))
|
|
||||||
(add-after 'split 'install-man-pages
|
(add-after 'split 'install-man-pages
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
@ -301,7 +292,10 @@ as well as the classic centralized workflow.")
|
||||||
(variable "GIT_SSL_CAINFO")
|
(variable "GIT_SSL_CAINFO")
|
||||||
(file-type 'regular)
|
(file-type 'regular)
|
||||||
(separator #f) ;single entry
|
(separator #f) ;single entry
|
||||||
(files '("etc/ssl/certs/ca-certificates.crt")))))
|
(files '("etc/ssl/certs/ca-certificates.crt")))
|
||||||
|
(search-path-specification
|
||||||
|
(variable "GIT_EXEC_PATH")
|
||||||
|
(files '("libexec/git-core")))))
|
||||||
|
|
||||||
(synopsis "Distributed version control system")
|
(synopsis "Distributed version control system")
|
||||||
(description
|
(description
|
||||||
|
@ -367,6 +361,47 @@ write native speed custom Git applications in any language with bindings.")
|
||||||
;; GPLv2 with linking exception
|
;; GPLv2 with linking exception
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public git-crypt
|
||||||
|
(package
|
||||||
|
(name "git-crypt")
|
||||||
|
(version "0.5.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/AGWA/git-crypt"
|
||||||
|
"/archive/" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0454fdmgm5f3razkn8n03lfqm5zyzvr4r2528zmlxiwba9518l2i"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("git" ,git)
|
||||||
|
("openssl" ,openssl)))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; No tests.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(replace 'build
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "make"))))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(zero? (system* "make" "install"
|
||||||
|
(string-append "PREFIX=" out)))))))))
|
||||||
|
(home-page "https://www.agwa.name/projects/git-crypt")
|
||||||
|
(synopsis "Transparent encryption of files in a git repository")
|
||||||
|
(description "git-crypt enables transparent encryption and decryption of
|
||||||
|
files in a git repository. Files which you choose to protect are encrypted when
|
||||||
|
committed, and decrypted when checked out. git-crypt lets you freely share a
|
||||||
|
repository containing a mix of public and private content. git-crypt gracefully
|
||||||
|
degrades, so developers without the secret key can still clone and commit to a
|
||||||
|
repository with encrypted files. This lets you store your secret material (such
|
||||||
|
as keys or passwords) in the same repository as your code, without requiring you
|
||||||
|
to lock down your entire repository.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public cgit
|
(define-public cgit
|
||||||
(package
|
(package
|
||||||
(name "cgit")
|
(name "cgit")
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
|
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
|
||||||
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
|
@ -57,6 +57,7 @@
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages databases)
|
#:use-module (gnu packages databases)
|
||||||
|
#:use-module (gnu packages dejagnu)
|
||||||
#:use-module (gnu packages elf)
|
#:use-module (gnu packages elf)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
|
@ -75,6 +76,7 @@
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages m4)
|
#:use-module (gnu packages m4)
|
||||||
|
#:use-module (gnu packages man)
|
||||||
#:use-module (gnu packages mp3)
|
#:use-module (gnu packages mp3)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
#:use-module (gnu packages ocr)
|
#:use-module (gnu packages ocr)
|
||||||
|
@ -442,14 +444,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
||||||
(define-public ffmpeg
|
(define-public ffmpeg
|
||||||
(package
|
(package
|
||||||
(name "ffmpeg")
|
(name "ffmpeg")
|
||||||
(version "3.2.2")
|
(version "3.2.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1z7d5y5crhsl5fm74236rdwbkd4jj5frx1l4iizjfym1w4gvs09z"))))
|
"1ifwjh68zw0mwq9swmfjqk2ck84gysi0w8hrkw2yddqhr8m51kjl"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("fontconfig" ,fontconfig)
|
`(("fontconfig" ,fontconfig)
|
||||||
|
@ -891,7 +893,9 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(copy-file (assoc-ref inputs "waf") "waf")
|
(copy-file (assoc-ref inputs "waf") "waf")
|
||||||
(setenv "CC" "gcc"))))
|
(setenv "CC" "gcc"))))
|
||||||
#:configure-flags (list "--enable-libmpv-shared" "--enable-zsh-comp")
|
#:configure-flags (list "--enable-libmpv-shared"
|
||||||
|
"--enable-zsh-comp"
|
||||||
|
"--disable-build-date")
|
||||||
;; No check function defined.
|
;; No check function defined.
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(home-page "https://mpv.io/")
|
(home-page "https://mpv.io/")
|
||||||
|
@ -932,7 +936,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
(define-public libvpx
|
(define-public libvpx
|
||||||
(package
|
(package
|
||||||
(name "libvpx")
|
(name "libvpx")
|
||||||
(version "1.6.0")
|
(version "1.6.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://storage.googleapis.com/"
|
(uri (string-append "http://storage.googleapis.com/"
|
||||||
|
@ -940,7 +944,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
name "-" version ".tar.bz2"))
|
name "-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1basd6dda5di9p7jhc0f4f52wzm9c3hsravqspw6ibpcn5gbpbyh"))
|
"06d8hqjkfs6wl45qf4pwh1kpbvkx6cwywd5y8d4lgagvjwm0qb0w"))
|
||||||
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
|
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -970,7 +974,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
(define-public youtube-dl
|
(define-public youtube-dl
|
||||||
(package
|
(package
|
||||||
(name "youtube-dl")
|
(name "youtube-dl")
|
||||||
(version "2017.01.29")
|
(version "2017.02.07")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://yt-dl.org/downloads/"
|
(uri (string-append "https://yt-dl.org/downloads/"
|
||||||
|
@ -978,7 +982,7 @@ access to mpv's powerful playback capabilities.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0visxc4rb6kw4hjcgcv5llis08z0syhian1m5hr1fdbz4w73hx9l"))))
|
"1grq3aqa1zc0xdq1y6vqnk0y0vcd1j2jjn85696hw98mi0w1am73"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; The problem here is that the directory for the man page and completion
|
;; The problem here is that the directory for the man page and completion
|
||||||
|
@ -1862,3 +1866,62 @@ of modern, widely supported codecs.")
|
||||||
(description
|
(description
|
||||||
"Openh264 is a library which can decode H264 video streams.")
|
"Openh264 is a library which can decode H264 video streams.")
|
||||||
(license license:bsd-2)))
|
(license license:bsd-2)))
|
||||||
|
|
||||||
|
(define-public libmp4v2
|
||||||
|
(package
|
||||||
|
(name "libmp4v2")
|
||||||
|
(version "2.0.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
;; XXX: The new location of upstream is uncertain and will become relevant the
|
||||||
|
;; moment when the googlecode archive shuts down. It is past the date it
|
||||||
|
;; should've been turned off. I tried to communicate with upstream, but this
|
||||||
|
;; wasn't very responsive and not very helpful. The short summary is, it is
|
||||||
|
;; chaos when it comes to the amount of forks and only time will tell where
|
||||||
|
;; the new upstream location is.
|
||||||
|
(uri (string-append "https://storage.googleapis.com/google-"
|
||||||
|
"code-archive-downloads/v2/"
|
||||||
|
"code.google.com/mp4v2/mp4v2-" version ".tar.bz2"))
|
||||||
|
(file-name (string-append name "-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(outputs '("out"
|
||||||
|
"static")) ; 3.7MiB .a file
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'remove-dates
|
||||||
|
(lambda _
|
||||||
|
;; Make the build reproducible.
|
||||||
|
(substitute* "configure"
|
||||||
|
(("PROJECT_build=\"`date`\"") "PROJECT_build=\"\"")
|
||||||
|
(("ac_abs_top_builddir=$ac_pwd") "ac_abs_top_builddir=\"\""))
|
||||||
|
#t))
|
||||||
|
(add-after 'install 'move-static-libraries
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Move static libraries to the "static" output.
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(lib (string-append out "/lib"))
|
||||||
|
(static (assoc-ref outputs "static"))
|
||||||
|
(slib (string-append static "/lib")))
|
||||||
|
(mkdir-p slib)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file slib)
|
||||||
|
(delete-file file))
|
||||||
|
(find-files lib "\\.a$"))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("help2man" ,help2man)
|
||||||
|
("dejagnu" ,dejagnu)))
|
||||||
|
(home-page "https://code.google.com/archive/p/mp4v2/")
|
||||||
|
(synopsis "API to create and modify mp4 files")
|
||||||
|
(description
|
||||||
|
"The MP4v2 library provides an API to create and modify mp4 files as defined by
|
||||||
|
ISO-IEC:14496-1:2001 MPEG-4 Systems. This file format is derived from Apple's QuickTime
|
||||||
|
file format that has been used as a multimedia file format in a variety of platforms and
|
||||||
|
applications. It is a very powerful and extensible format that can accommodate
|
||||||
|
practically any type of media.")
|
||||||
|
(license license:mpl1.1)))
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
(define-public vim
|
(define-public vim
|
||||||
(package
|
(package
|
||||||
(name "vim")
|
(name "vim")
|
||||||
(version "8.0.0257")
|
(version "8.0.0300")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/vim/vim/archive/v"
|
(uri (string-append "https://github.com/vim/vim/archive/v"
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05vz59iw77lmhnywfv9ihd0d895axqf2y81ddpjkn1qdspvw8ijj"))))
|
"04samk2bakyixbxyc3p0g6ypls45105sikibg0wc6lmak9bqjs85"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "test"
|
`(#:test-target "test"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
|
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
|
||||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||||
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
|
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
|
||||||
|
@ -4018,3 +4018,51 @@ service for that request. Requests are made using port numbers as identifiers
|
||||||
and xinetd usually launches another daemon to handle the request. It can be
|
and xinetd usually launches another daemon to handle the request. It can be
|
||||||
used to start services with both privileged and non-privileged port numbers.")
|
used to start services with both privileged and non-privileged port numbers.")
|
||||||
(license (l:fsf-free "file://COPYRIGHT"))))
|
(license (l:fsf-free "file://COPYRIGHT"))))
|
||||||
|
|
||||||
|
(define-public tidy-html
|
||||||
|
(package
|
||||||
|
(name "tidy-html")
|
||||||
|
(version "5.2.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/htacg/tidy-html5/archive/"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0kbwzh15dlapp3s3vff2qgz0yfcf8hwsnx5q4igwa6pimhak8lw0"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(outputs '("out"
|
||||||
|
"static")) ; 1.0MiB of .a files
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; No tests available
|
||||||
|
#:configure-flags (list "-DCMAKE_BUILD_TYPE=Release")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'move-static-libraries
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Move static libraries to the "static" output.
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(lib (string-append out "/lib"))
|
||||||
|
(static (assoc-ref outputs "static"))
|
||||||
|
(slib (string-append static "/lib")))
|
||||||
|
(mkdir-p slib)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file slib)
|
||||||
|
(delete-file file))
|
||||||
|
(find-files lib "\\.a$"))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("libxslt" ,libxslt)))
|
||||||
|
(home-page "http://www.html-tidy.org/")
|
||||||
|
(synopsis "HTML Tidy with HTML5 support")
|
||||||
|
(description
|
||||||
|
"Tidy is a console application which corrects and cleans up
|
||||||
|
HTML and XML documents by fixing markup errors and upgrading
|
||||||
|
legacy code to modern standards.
|
||||||
|
|
||||||
|
Tidy also provides @code{libtidy}, a C static and dynamic library that
|
||||||
|
developers can integrate into their applications to make use of the
|
||||||
|
functions of Tidy.")
|
||||||
|
(license l:bsd-3)))
|
||||||
|
|
|
@ -53,14 +53,14 @@
|
||||||
(define-public webkitgtk
|
(define-public webkitgtk
|
||||||
(package
|
(package
|
||||||
(name "webkitgtk")
|
(name "webkitgtk")
|
||||||
(version "2.14.3")
|
(version "2.14.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.webkitgtk.org/releases/"
|
(uri (string-append "https://www.webkitgtk.org/releases/"
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0v0hkvggxi38cdb3v672qwr0m0y3x2rmnwh8j3q28869li8d9shb"))))
|
"1b73rcyfqjyg5rqw6f4760b2h1kixwva88clp2wl9vnl3psjvbni"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f ; no tests
|
'(#:tests? #f ; no tests
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
(define-public wget
|
(define-public wget
|
||||||
(package
|
(package
|
||||||
(name "wget")
|
(name "wget")
|
||||||
(version "1.18")
|
(version "1.19")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -41,11 +41,11 @@
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1hcwx8ww3sxzdskkx3l7q70a7wd6569yrnjkw9pw013cf9smpddm"))))
|
"1133c14g19ysv74j7am66jwgwrr0rdn0rdyxw7rikbnsyjxmf48g"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("gnutls" ,gnutls)
|
`(("gnutls" ,gnutls)
|
||||||
("libidn" ,libidn)
|
("libidn2" ,libidn2)
|
||||||
("libpsl" ,libpsl)))
|
("libpsl" ,libpsl)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
("python" ,python) ;for testenv suite
|
("python" ,python) ;for testenv suite
|
||||||
("perl-http-daemon" ,perl-http-daemon)
|
("perl-http-daemon" ,perl-http-daemon)
|
||||||
("perl-io-socket-ssl" ,perl-io-socket-ssl)))
|
("perl-io-socket-ssl" ,perl-io-socket-ssl)))
|
||||||
(home-page "http://www.gnu.org/software/wget/")
|
(home-page "https://www.gnu.org/software/wget/")
|
||||||
(synopsis "Non-interactive command-line utility for downloading files")
|
(synopsis "Non-interactive command-line utility for downloading files")
|
||||||
(description
|
(description
|
||||||
"GNU Wget is a non-interactive tool for fetching files using the HTTP,
|
"GNU Wget is a non-interactive tool for fetching files using the HTTP,
|
||||||
|
|
|
@ -844,7 +844,6 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).")
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("libxcb" ,libxcb)
|
("libxcb" ,libxcb)
|
||||||
("libxxf86vm" ,libxxf86vm)
|
("libxxf86vm" ,libxxf86vm)
|
||||||
("libjpeg" ,libjpeg)
|
|
||||||
("glib" ,glib))) ;for Geoclue2 support
|
("glib" ,glib))) ;for Geoclue2 support
|
||||||
(home-page "https://github.com/jonls/redshift")
|
(home-page "https://github.com/jonls/redshift")
|
||||||
(synopsis "Adjust the color temperature of your screen")
|
(synopsis "Adjust the color temperature of your screen")
|
||||||
|
@ -920,7 +919,7 @@ demos. It also acts as a nice screen locker.")
|
||||||
(license (license:non-copyleft
|
(license (license:non-copyleft
|
||||||
(string-append
|
(string-append
|
||||||
"http://metadata.ftp-master.debian.org/changelogs/"
|
"http://metadata.ftp-master.debian.org/changelogs/"
|
||||||
"/main/x/xscreensaver/xscreensaver_5.34-2_copyright")))))
|
"/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
|
||||||
|
|
||||||
(define-public xdpyprobe
|
(define-public xdpyprobe
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -2386,7 +2386,7 @@ including most mice, keyboards, tablets and touchscreens.")
|
||||||
(define-public xf86-input-libinput
|
(define-public xf86-input-libinput
|
||||||
(package
|
(package
|
||||||
(name "xf86-input-libinput")
|
(name "xf86-input-libinput")
|
||||||
(version "0.23.0")
|
(version "0.24.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -2394,7 +2394,7 @@ including most mice, keyboards, tablets and touchscreens.")
|
||||||
name "-" version ".tar.bz2"))
|
name "-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1p596v3kbmjpdz3kz8z19bnd79l860f1pbwjvma7bz7qx3gynlqb"))))
|
"0a1nn65qq71bbfhxq39zdb4b1h6ickzv98cjdacv4ngd18shgjyx"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
|
@ -2805,10 +2805,10 @@ X server.")
|
||||||
|
|
||||||
|
|
||||||
(define-public xf86-video-intel
|
(define-public xf86-video-intel
|
||||||
(let ((commit "9fe04af4bce3057e3e94a6bf36a3d8d2e48d592c"))
|
(let ((commit "e4fe79cf0d9a05ee3f3a027148ef0aeb2b1b34e1"))
|
||||||
(package
|
(package
|
||||||
(name "xf86-video-intel")
|
(name "xf86-video-intel")
|
||||||
(version (string-append "2.99.917-2-" (string-take commit 7)))
|
(version (string-append "2.99.917-3-" (string-take commit 7)))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
;; there's no current tarball
|
;; there's no current tarball
|
||||||
|
@ -2818,7 +2818,7 @@ X server.")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"06nnm9kjvmwxazp2ki0i5x1xv03bysfgpw30nd2jlf71qllybxml"))
|
"0hf3fxv5jchyh820h449c1ld9x19gc8081w1yk98mab6zr89zswp"))
|
||||||
(file-name (string-append name "-" version))))
|
(file-name (string-append name "-" version))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("mesa" ,mesa)
|
(inputs `(("mesa" ,mesa)
|
||||||
|
|
|
@ -72,6 +72,8 @@
|
||||||
activation-service-type
|
activation-service-type
|
||||||
activation-service->script
|
activation-service->script
|
||||||
%linux-bare-metal-service
|
%linux-bare-metal-service
|
||||||
|
special-files-service-type
|
||||||
|
extra-special-file
|
||||||
etc-service-type
|
etc-service-type
|
||||||
etc-directory
|
etc-directory
|
||||||
setuid-program-service-type
|
setuid-program-service-type
|
||||||
|
@ -336,10 +338,6 @@ ACTIVATION-SCRIPT-TYPE."
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (gnu build activation))
|
(use-modules (gnu build activation))
|
||||||
|
|
||||||
;; Make sure /bin/sh is valid and current.
|
|
||||||
(activate-/bin/sh
|
|
||||||
(string-append #$(canonical-package bash) "/bin/sh"))
|
|
||||||
|
|
||||||
;; Make sure the user accounting database exists. If it
|
;; Make sure the user accounting database exists. If it
|
||||||
;; does not exist, 'setutxent' does not create it and
|
;; does not exist, 'setutxent' does not create it and
|
||||||
;; thus there is no accounting at all.
|
;; thus there is no accounting at all.
|
||||||
|
@ -413,6 +411,25 @@ ACTIVATION-SCRIPT-TYPE."
|
||||||
;; necessary or impossible in a container.
|
;; necessary or impossible in a container.
|
||||||
(service linux-bare-metal-service-type #f))
|
(service linux-bare-metal-service-type #f))
|
||||||
|
|
||||||
|
(define special-files-service-type
|
||||||
|
;; Service to install "special files" such as /bin/sh and /usr/bin/env.
|
||||||
|
(service-type
|
||||||
|
(name 'special-files)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension activation-service-type
|
||||||
|
(lambda (files)
|
||||||
|
#~(activate-special-files '#$files)))))
|
||||||
|
(compose concatenate)
|
||||||
|
(extend append)))
|
||||||
|
|
||||||
|
(define (extra-special-file file target)
|
||||||
|
"Use TARGET as the \"special file\" FILE. For example, TARGET might be
|
||||||
|
(file-append coreutils \"/bin/env\")
|
||||||
|
and FILE could be \"/usr/bin/env\"."
|
||||||
|
(simple-service (string->symbol (string-append "special-file-" file))
|
||||||
|
special-files-service-type
|
||||||
|
`((,file ,target))))
|
||||||
|
|
||||||
(define (etc-directory service)
|
(define (etc-directory service)
|
||||||
"Return the directory for SERVICE, a service of type ETC-SERVICE-TYPE."
|
"Return the directory for SERVICE, a service of type ETC-SERVICE-TYPE."
|
||||||
(files->etc-directory (service-parameters service)))
|
(files->etc-directory (service-parameters service)))
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
|
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
|
||||||
#:use-module ((gnu packages base)
|
#:use-module ((gnu packages base)
|
||||||
#:select (canonical-package glibc))
|
#:select (canonical-package glibc))
|
||||||
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module (gnu packages lsof)
|
#:use-module (gnu packages lsof)
|
||||||
#:use-module (gnu packages terminals)
|
#:use-module (gnu packages terminals)
|
||||||
|
@ -1558,6 +1559,10 @@ This service is not part of @var{%base-services}."
|
||||||
;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
|
;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
|
||||||
;; used, so enable them by default. The FUSE and ALSA rules are
|
;; used, so enable them by default. The FUSE and ALSA rules are
|
||||||
;; less critical, but handy.
|
;; less critical, but handy.
|
||||||
(udev-service #:rules (list lvm2 fuse alsa-utils crda))))
|
(udev-service #:rules (list lvm2 fuse alsa-utils crda))
|
||||||
|
|
||||||
|
(service special-files-service-type
|
||||||
|
`(("/bin/sh" ,(file-append (canonical-package bash)
|
||||||
|
"/bin/sh"))))))
|
||||||
|
|
||||||
;;; base.scm ends here
|
;;; base.scm ends here
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
|
#:use-module (guix modules)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-9)
|
#:use-module (srfi srfi-9)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
|
@ -624,13 +625,29 @@ project's documentation} for more information."
|
||||||
DaemonPort = " (number->string port) "
|
DaemonPort = " (number->string port) "
|
||||||
" extra-settings))))
|
" extra-settings))))
|
||||||
|
|
||||||
(list (shepherd-service
|
(with-imported-modules (source-module-closure
|
||||||
(provision '(bitlbee))
|
'((gnu build shepherd)
|
||||||
(requirement '(user-processes loopback))
|
(gnu system file-systems)))
|
||||||
(start #~(make-forkexec-constructor
|
(list (shepherd-service
|
||||||
(list (string-append #$bitlbee "/sbin/bitlbee")
|
(provision '(bitlbee))
|
||||||
"-n" "-F" "-u" "bitlbee" "-c" #$conf)))
|
|
||||||
(stop #~(make-kill-destructor))))))))
|
;; Note: If networking is not up, then /etc/resolv.conf
|
||||||
|
;; doesn't get mapped in the container, hence the dependency
|
||||||
|
;; on 'networking'.
|
||||||
|
(requirement '(user-processes networking))
|
||||||
|
|
||||||
|
(modules '((gnu build shepherd)
|
||||||
|
(gnu system file-systems)))
|
||||||
|
(start #~(make-forkexec-constructor/container
|
||||||
|
(list #$(file-append bitlbee "/sbin/bitlbee")
|
||||||
|
"-n" "-F" "-u" "bitlbee" "-c" #$conf)
|
||||||
|
|
||||||
|
#:pid-file "/var/run/bitlbee.pid"
|
||||||
|
#:mappings (list (file-system-mapping
|
||||||
|
(source "/var/lib/bitlbee")
|
||||||
|
(target source)
|
||||||
|
(writable? #t)))))
|
||||||
|
(stop #~(make-kill-destructor)))))))))
|
||||||
|
|
||||||
(define %bitlbee-accounts
|
(define %bitlbee-accounts
|
||||||
;; User group and account to run BitlBee.
|
;; User group and account to run BitlBee.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -195,6 +196,7 @@ stored."
|
||||||
(string-append "shepherd-"
|
(string-append "shepherd-"
|
||||||
(string-map (match-lambda
|
(string-map (match-lambda
|
||||||
(#\/ #\-)
|
(#\/ #\-)
|
||||||
|
(#\ #\-)
|
||||||
(chr chr))
|
(chr chr))
|
||||||
provisions)
|
provisions)
|
||||||
".scm")))
|
".scm")))
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
|
|
||||||
(define-module (gnu system file-systems)
|
(define-module (gnu system file-systems)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix store)
|
|
||||||
#:use-module ((gnu build file-systems)
|
#:use-module ((gnu build file-systems)
|
||||||
#:select (string->uuid uuid->string))
|
#:select (string->uuid uuid->string))
|
||||||
#:re-export (string->uuid
|
#:re-export (string->uuid
|
||||||
|
@ -63,7 +63,11 @@
|
||||||
file-system-mapping-target
|
file-system-mapping-target
|
||||||
file-system-mapping-writable?
|
file-system-mapping-writable?
|
||||||
|
|
||||||
%store-mapping))
|
file-system-mapping->bind-mount
|
||||||
|
|
||||||
|
%store-mapping
|
||||||
|
%network-configuration-files
|
||||||
|
%network-file-mappings))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -95,6 +99,20 @@
|
||||||
(dependencies file-system-dependencies ; list of <file-system>
|
(dependencies file-system-dependencies ; list of <file-system>
|
||||||
(default '()))) ; or <mapped-device>
|
(default '()))) ; or <mapped-device>
|
||||||
|
|
||||||
|
;; Note: This module is used both on the build side and on the host side.
|
||||||
|
;; Arrange not to pull (guix store) and (guix config) because the latter
|
||||||
|
;; differs from user to user.
|
||||||
|
(define (%store-prefix)
|
||||||
|
"Return the store prefix."
|
||||||
|
(cond ((resolve-module '(guix store) #:ensure #f)
|
||||||
|
=>
|
||||||
|
(lambda (store)
|
||||||
|
((module-ref store '%store-prefix))))
|
||||||
|
((getenv "NIX_STORE")
|
||||||
|
=> identity)
|
||||||
|
(else
|
||||||
|
"/gnu/store")))
|
||||||
|
|
||||||
(define %not-slash
|
(define %not-slash
|
||||||
(char-set-complement (char-set #\/)))
|
(char-set-complement (char-set #\/)))
|
||||||
|
|
||||||
|
@ -352,6 +370,21 @@ TARGET in the other system."
|
||||||
(writable? file-system-mapping-writable? ;Boolean
|
(writable? file-system-mapping-writable? ;Boolean
|
||||||
(default #f)))
|
(default #f)))
|
||||||
|
|
||||||
|
(define (file-system-mapping->bind-mount mapping)
|
||||||
|
"Return a file system that realizes MAPPING, a <file-system-mapping>, using
|
||||||
|
a bind mount."
|
||||||
|
(match mapping
|
||||||
|
(($ <file-system-mapping> source target writable?)
|
||||||
|
(file-system
|
||||||
|
(mount-point target)
|
||||||
|
(device source)
|
||||||
|
(type "none")
|
||||||
|
(flags (if writable?
|
||||||
|
'(bind-mount)
|
||||||
|
'(bind-mount read-only)))
|
||||||
|
(check? #f)
|
||||||
|
(create-mount-point? #t)))))
|
||||||
|
|
||||||
(define %store-mapping
|
(define %store-mapping
|
||||||
;; Mapping of the host's store into the guest.
|
;; Mapping of the host's store into the guest.
|
||||||
(file-system-mapping
|
(file-system-mapping
|
||||||
|
@ -359,4 +392,23 @@ TARGET in the other system."
|
||||||
(target (%store-prefix))
|
(target (%store-prefix))
|
||||||
(writable? #f)))
|
(writable? #f)))
|
||||||
|
|
||||||
|
(define %network-configuration-files
|
||||||
|
;; List of essential network configuration files.
|
||||||
|
'("/etc/resolv.conf"
|
||||||
|
"/etc/nsswitch.conf"
|
||||||
|
"/etc/services"
|
||||||
|
"/etc/hosts"))
|
||||||
|
|
||||||
|
(define %network-file-mappings
|
||||||
|
;; List of file mappings for essential network files.
|
||||||
|
(filter-map (lambda (file)
|
||||||
|
(file-system-mapping
|
||||||
|
(source file)
|
||||||
|
(target file)
|
||||||
|
;; XXX: On some GNU/Linux systems, /etc/resolv.conf is a
|
||||||
|
;; symlink to a file in a tmpfs which, for an unknown reason,
|
||||||
|
;; cannot be bind mounted read-only within the container.
|
||||||
|
(writable? (string=? file "/etc/resolv.conf"))))
|
||||||
|
%network-configuration-files))
|
||||||
|
|
||||||
;;; file-systems.scm ends here
|
;;; file-systems.scm ends here
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (gnu artwork)
|
#:use-module (gnu artwork)
|
||||||
#:use-module (gnu system file-systems)
|
#:use-module (gnu system file-systems)
|
||||||
#:autoload (gnu packages grub) (grub)
|
#:autoload (gnu packages bootloaders) (grub)
|
||||||
#:autoload (gnu packages compression) (gzip)
|
#:autoload (gnu packages compression) (gzip)
|
||||||
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
|
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -108,7 +108,7 @@ denoting a file name."
|
||||||
grub-configuration make-grub-configuration
|
grub-configuration make-grub-configuration
|
||||||
grub-configuration?
|
grub-configuration?
|
||||||
(grub grub-configuration-grub ; package
|
(grub grub-configuration-grub ; package
|
||||||
(default (@ (gnu packages grub) grub)))
|
(default (@ (gnu packages bootloaders) grub)))
|
||||||
(device grub-configuration-device) ; string
|
(device grub-configuration-device) ; string
|
||||||
(menu-entries grub-configuration-menu-entries ; list
|
(menu-entries grub-configuration-menu-entries ; list
|
||||||
(default '()))
|
(default '()))
|
||||||
|
|
|
@ -28,11 +28,11 @@
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
|
#:use-module (gnu packages bootloaders)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages cryptsetup)
|
#:use-module (gnu packages cryptsetup)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module (gnu packages disk)
|
#:use-module (gnu packages disk)
|
||||||
#:use-module (gnu packages grub)
|
|
||||||
#:use-module (gnu packages texinfo)
|
#:use-module (gnu packages texinfo)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages nvi)
|
#:use-module (gnu packages nvi)
|
||||||
|
@ -388,7 +388,7 @@ Use Alt-F2 for documentation.
|
||||||
(base-pam-services #:allow-empty-passwords? #t))
|
(base-pam-services #:allow-empty-passwords? #t))
|
||||||
|
|
||||||
(packages (cons* (canonical-package glibc) ;for 'tzselect' & co.
|
(packages (cons* (canonical-package glibc) ;for 'tzselect' & co.
|
||||||
parted ddrescue
|
parted gptfdisk ddrescue
|
||||||
grub ;mostly so xrefs to its manual work
|
grub ;mostly so xrefs to its manual work
|
||||||
cryptsetup
|
cryptsetup
|
||||||
mdadm
|
mdadm
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -30,25 +30,10 @@
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu system)
|
#:use-module (gnu system)
|
||||||
#:use-module (gnu system file-systems)
|
#:use-module (gnu system file-systems)
|
||||||
#:export (mapping->file-system
|
#:export (system-container
|
||||||
system-container
|
|
||||||
containerized-operating-system
|
containerized-operating-system
|
||||||
container-script))
|
container-script))
|
||||||
|
|
||||||
(define (mapping->file-system mapping)
|
|
||||||
"Return a file system that realizes MAPPING."
|
|
||||||
(match mapping
|
|
||||||
(($ <file-system-mapping> source target writable?)
|
|
||||||
(file-system
|
|
||||||
(mount-point target)
|
|
||||||
(device source)
|
|
||||||
(type "none")
|
|
||||||
(flags (if writable?
|
|
||||||
'(bind-mount)
|
|
||||||
'(bind-mount read-only)))
|
|
||||||
(check? #f)
|
|
||||||
(create-mount-point? #t)))))
|
|
||||||
|
|
||||||
(define (containerized-operating-system os mappings)
|
(define (containerized-operating-system os mappings)
|
||||||
"Return an operating system based on OS for use in a Linux container
|
"Return an operating system based on OS for use in a Linux container
|
||||||
environment. MAPPINGS is a list of <file-system-mapping> to realize in the
|
environment. MAPPINGS is a list of <file-system-mapping> to realize in the
|
||||||
|
@ -66,7 +51,7 @@ containerized OS."
|
||||||
(operating-system-file-systems os)))
|
(operating-system-file-systems os)))
|
||||||
|
|
||||||
(define (mapping->fs fs)
|
(define (mapping->fs fs)
|
||||||
(file-system (inherit (mapping->file-system fs))
|
(file-system (inherit (file-system-mapping->bind-mount fs))
|
||||||
(needed-for-boot? #t)))
|
(needed-for-boot? #t)))
|
||||||
|
|
||||||
(operating-system (inherit os)
|
(operating-system (inherit os)
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#:use-module ((gnu build vm)
|
#:use-module ((gnu build vm)
|
||||||
#:select (qemu-command))
|
#:select (qemu-command))
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages bootloaders)
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages gawk)
|
#:use-module (gnu packages gawk)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
|
@ -38,7 +39,6 @@
|
||||||
#:use-module (gnu packages qemu)
|
#:use-module (gnu packages qemu)
|
||||||
#:use-module (gnu packages disk)
|
#:use-module (gnu packages disk)
|
||||||
#:use-module (gnu packages zile)
|
#:use-module (gnu packages zile)
|
||||||
#:use-module (gnu packages grub)
|
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
#:use-module ((gnu packages make-bootstrap)
|
#:use-module ((gnu packages make-bootstrap)
|
||||||
|
|
|
@ -77,6 +77,11 @@ When INITIALIZATION is true, it must be a one-argument procedure that is
|
||||||
passed a gexp denoting the marionette, and it must return gexp that is
|
passed a gexp denoting the marionette, and it must return gexp that is
|
||||||
inserted before the first test. This is used to introduce an extra
|
inserted before the first test. This is used to introduce an extra
|
||||||
initialization step, such as entering a LUKS passphrase."
|
initialization step, such as entering a LUKS passphrase."
|
||||||
|
(define special-files
|
||||||
|
(service-parameters
|
||||||
|
(fold-services (operating-system-services os)
|
||||||
|
#:target-type special-files-service-type)))
|
||||||
|
|
||||||
(define test
|
(define test
|
||||||
(with-imported-modules '((gnu build marionette)
|
(with-imported-modules '((gnu build marionette)
|
||||||
(guix build syscalls))
|
(guix build syscalls))
|
||||||
|
@ -120,6 +125,18 @@ grep --version
|
||||||
info --version")
|
info --version")
|
||||||
marionette)))
|
marionette)))
|
||||||
|
|
||||||
|
(test-equal "special files"
|
||||||
|
'#$special-files
|
||||||
|
(marionette-eval
|
||||||
|
'(begin
|
||||||
|
(use-modules (ice-9 match))
|
||||||
|
|
||||||
|
(map (match-lambda
|
||||||
|
((file target)
|
||||||
|
(list file (readlink file))))
|
||||||
|
'#$special-files))
|
||||||
|
marionette))
|
||||||
|
|
||||||
(test-assert "accounts"
|
(test-assert "accounts"
|
||||||
(let ((users (marionette-eval '(begin
|
(let ((users (marionette-eval '(begin
|
||||||
(use-modules (ice-9 match))
|
(use-modules (ice-9 match))
|
||||||
|
@ -166,21 +183,41 @@ info --version")
|
||||||
marionette)))
|
marionette)))
|
||||||
|
|
||||||
(test-assert "skeletons in home directories"
|
(test-assert "skeletons in home directories"
|
||||||
(let ((homes
|
(let ((users+homes
|
||||||
'#$(filter-map (lambda (account)
|
'#$(filter-map (lambda (account)
|
||||||
(and (user-account-create-home-directory?
|
(and (user-account-create-home-directory?
|
||||||
account)
|
account)
|
||||||
(not (user-account-system? account))
|
(not (user-account-system? account))
|
||||||
(user-account-home-directory account)))
|
(list (user-account-name account)
|
||||||
|
(user-account-home-directory
|
||||||
|
account))))
|
||||||
(operating-system-user-accounts os))))
|
(operating-system-user-accounts os))))
|
||||||
(marionette-eval
|
(marionette-eval
|
||||||
`(begin
|
`(begin
|
||||||
(use-modules (srfi srfi-1) (ice-9 ftw))
|
(use-modules (srfi srfi-1) (ice-9 ftw)
|
||||||
(every (lambda (home)
|
(ice-9 match))
|
||||||
(null? (lset-difference string=?
|
|
||||||
(scandir "/etc/skel/")
|
(every (match-lambda
|
||||||
(scandir home))))
|
((user home)
|
||||||
',homes))
|
;; Make sure HOME has all the skeletons...
|
||||||
|
(and (null? (lset-difference string=?
|
||||||
|
(scandir "/etc/skel/")
|
||||||
|
(scandir home)))
|
||||||
|
|
||||||
|
;; ... and that everything is user-owned.
|
||||||
|
(let* ((pw (getpwnam user))
|
||||||
|
(uid (passwd:uid pw))
|
||||||
|
(gid (passwd:gid pw))
|
||||||
|
(st (lstat home)))
|
||||||
|
(define (user-owned? file)
|
||||||
|
(= uid (stat:uid (lstat file))))
|
||||||
|
|
||||||
|
(and (= uid (stat:uid st))
|
||||||
|
(eq? 'directory (stat:type st))
|
||||||
|
(every user-owned?
|
||||||
|
(find-files home
|
||||||
|
#:directories? #t)))))))
|
||||||
|
',users+homes))
|
||||||
marionette)))
|
marionette)))
|
||||||
|
|
||||||
(test-equal "login on tty1"
|
(test-equal "login on tty1"
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||||
|
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||||
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
|
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.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 (guix build-system dub)
|
||||||
|
#:use-module (guix search-paths)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix derivations)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix build-system)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
|
#:export (dub-build-system))
|
||||||
|
|
||||||
|
(define (default-ldc)
|
||||||
|
"Return the default ldc package."
|
||||||
|
;; Lazily resolve the binding to avoid a circular dependency.
|
||||||
|
(let ((ldc (resolve-interface '(gnu packages ldc))))
|
||||||
|
(module-ref ldc 'ldc)))
|
||||||
|
|
||||||
|
(define (default-dub)
|
||||||
|
"Return the default dub package."
|
||||||
|
;; Lazily resolve the binding to avoid a circular dependency.
|
||||||
|
(let ((ldc (resolve-interface '(gnu packages ldc))))
|
||||||
|
(module-ref ldc 'dub)))
|
||||||
|
|
||||||
|
(define (default-pkg-config)
|
||||||
|
"Return the default pkg-config package."
|
||||||
|
;; Lazily resolve the binding to avoid a circular dependency.
|
||||||
|
(let ((pkg-config (resolve-interface '(gnu packages pkg-config))))
|
||||||
|
(module-ref pkg-config 'pkg-config)))
|
||||||
|
|
||||||
|
(define %dub-build-system-modules
|
||||||
|
;; Build-side modules imported by default.
|
||||||
|
`((guix build dub-build-system)
|
||||||
|
(guix build syscalls)
|
||||||
|
,@%gnu-build-system-modules))
|
||||||
|
|
||||||
|
(define* (dub-build store name inputs
|
||||||
|
#:key
|
||||||
|
(tests? #t)
|
||||||
|
(test-target #f)
|
||||||
|
(dub-build-flags ''())
|
||||||
|
(phases '(@ (guix build dub-build-system)
|
||||||
|
%standard-phases))
|
||||||
|
(outputs '("out"))
|
||||||
|
(search-paths '())
|
||||||
|
(system (%current-system))
|
||||||
|
(guile #f)
|
||||||
|
(imported-modules %dub-build-system-modules)
|
||||||
|
(modules '((guix build dub-build-system)
|
||||||
|
(guix build utils))))
|
||||||
|
"Build SOURCE using DUB, and with INPUTS."
|
||||||
|
(define builder
|
||||||
|
`(begin
|
||||||
|
(use-modules ,@modules)
|
||||||
|
(dub-build #:name ,name
|
||||||
|
#:source ,(match (assoc-ref inputs "source")
|
||||||
|
(((? derivation? source))
|
||||||
|
(derivation->output-path source))
|
||||||
|
((source)
|
||||||
|
source)
|
||||||
|
(source
|
||||||
|
source))
|
||||||
|
#:system ,system
|
||||||
|
#:test-target ,test-target
|
||||||
|
#:dub-build-flags ,dub-build-flags
|
||||||
|
#:tests? ,tests?
|
||||||
|
#:phases ,phases
|
||||||
|
#:outputs %outputs
|
||||||
|
#:search-paths ',(map search-path-specification->sexp
|
||||||
|
search-paths)
|
||||||
|
#:inputs %build-inputs)))
|
||||||
|
|
||||||
|
(define guile-for-build
|
||||||
|
(match guile
|
||||||
|
((? package?)
|
||||||
|
(package-derivation store guile system #:graft? #f))
|
||||||
|
(#f ; the default
|
||||||
|
(let* ((distro (resolve-interface '(gnu packages commencement)))
|
||||||
|
(guile (module-ref distro 'guile-final)))
|
||||||
|
(package-derivation store guile system #:graft? #f)))))
|
||||||
|
|
||||||
|
(build-expression->derivation store name builder
|
||||||
|
#:inputs inputs
|
||||||
|
#:system system
|
||||||
|
#:modules imported-modules
|
||||||
|
#:outputs outputs
|
||||||
|
#:guile-for-build guile-for-build))
|
||||||
|
|
||||||
|
(define* (lower name
|
||||||
|
#:key source inputs native-inputs outputs system target
|
||||||
|
(ldc (default-ldc))
|
||||||
|
(dub (default-dub))
|
||||||
|
(pkg-config (default-pkg-config))
|
||||||
|
#:allow-other-keys
|
||||||
|
#:rest arguments)
|
||||||
|
"Return a bag for NAME."
|
||||||
|
|
||||||
|
(define private-keywords
|
||||||
|
'(#:source #:target #:ldc #:dub #:pkg-config #:inputs #:native-inputs #:outputs))
|
||||||
|
|
||||||
|
(and (not target) ;; TODO: support cross-compilation
|
||||||
|
(bag
|
||||||
|
(name name)
|
||||||
|
(system system)
|
||||||
|
(target target)
|
||||||
|
(host-inputs `(,@(if source
|
||||||
|
`(("source" ,source))
|
||||||
|
'())
|
||||||
|
,@inputs
|
||||||
|
|
||||||
|
;; Keep the standard inputs of 'gnu-build-system'
|
||||||
|
,@(standard-packages)))
|
||||||
|
(build-inputs `(("ldc" ,ldc)
|
||||||
|
("dub" ,dub)
|
||||||
|
,@native-inputs))
|
||||||
|
(outputs outputs)
|
||||||
|
(build dub-build)
|
||||||
|
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
||||||
|
|
||||||
|
(define dub-build-system
|
||||||
|
(build-system
|
||||||
|
(name 'dub)
|
||||||
|
(description
|
||||||
|
"DUB build system, to build D packages")
|
||||||
|
(lower lower)))
|
|
@ -0,0 +1,125 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
|
;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.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 (guix build dub-build-system)
|
||||||
|
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||||
|
#:use-module (guix build syscalls)
|
||||||
|
#:use-module (guix build utils)
|
||||||
|
#:use-module (ice-9 popen)
|
||||||
|
#:use-module (ice-9 rdelim)
|
||||||
|
#:use-module (ice-9 ftw)
|
||||||
|
#:use-module (ice-9 format)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (rnrs io ports)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
|
#:export (%standard-phases
|
||||||
|
dub-build))
|
||||||
|
|
||||||
|
;; Commentary:
|
||||||
|
;;
|
||||||
|
;; Builder-side code of the DUB (the build tool for D) build system.
|
||||||
|
;;
|
||||||
|
;; Code:
|
||||||
|
|
||||||
|
;; FIXME: Needs to be parsed from url not package name.
|
||||||
|
(define (package-name->d-package-name name)
|
||||||
|
"Return the package name of NAME."
|
||||||
|
(match (string-split name #\-)
|
||||||
|
(("d" rest ...)
|
||||||
|
(string-join rest "-"))
|
||||||
|
(_ #f)))
|
||||||
|
|
||||||
|
(define* (configure #:key inputs #:allow-other-keys)
|
||||||
|
"Prepare one new directory with all the required dependencies.
|
||||||
|
It's necessary to do this (instead of just using /gnu/store as the
|
||||||
|
directory) because we want to hide the libraries in subdirectories
|
||||||
|
lib/dub/... instead of polluting the user's profile root."
|
||||||
|
(let* ((dir (mkdtemp! "/tmp/dub.XXXXXX"))
|
||||||
|
(vendor-dir (string-append dir "/vendor")))
|
||||||
|
(setenv "HOME" dir)
|
||||||
|
(mkdir vendor-dir)
|
||||||
|
(for-each
|
||||||
|
(match-lambda
|
||||||
|
((name . path)
|
||||||
|
(let* ((d-package (package-name->d-package-name name))
|
||||||
|
(d-basename (basename path)))
|
||||||
|
(when (and d-package path)
|
||||||
|
(match (string-split (basename path) #\-)
|
||||||
|
((_ ... version)
|
||||||
|
(symlink (string-append path "/lib/dub/" d-basename)
|
||||||
|
(string-append vendor-dir "/" d-basename))))))))
|
||||||
|
inputs)
|
||||||
|
(zero? (system* "dub" "add-path" vendor-dir))))
|
||||||
|
|
||||||
|
(define (grep string file-name)
|
||||||
|
"Find the first occurence of STRING in the file named FILE-NAME.
|
||||||
|
Return the position of this occurence, or #f if none was found."
|
||||||
|
(string-contains (call-with-input-file file-name get-string-all)
|
||||||
|
string))
|
||||||
|
|
||||||
|
(define (grep* string file-name)
|
||||||
|
"Find the first occurence of STRING in the file named FILE-NAME.
|
||||||
|
Return the position of this occurence, or #f if none was found.
|
||||||
|
If the file named FILE-NAME doesn't exist, return #f."
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(grep string file-name))
|
||||||
|
(lambda args
|
||||||
|
#f)))
|
||||||
|
|
||||||
|
(define* (build #:key (dub-build-flags '())
|
||||||
|
#:allow-other-keys)
|
||||||
|
"Build a given DUB package."
|
||||||
|
(if (or (grep* "sourceLibrary" "package.json")
|
||||||
|
(grep* "sourceLibrary" "dub.sdl") ; note: format is different!
|
||||||
|
(grep* "sourceLibrary" "dub.json"))
|
||||||
|
#t
|
||||||
|
(let ((status (zero? (apply system* `("dub" "build" ,@dub-build-flags)))))
|
||||||
|
(system* "dub" "run") ; might fail for "targetType": "library"
|
||||||
|
status)))
|
||||||
|
|
||||||
|
(define* (check #:key tests? #:allow-other-keys)
|
||||||
|
(if tests?
|
||||||
|
(zero? (system* "dub" "test"))
|
||||||
|
#t))
|
||||||
|
|
||||||
|
(define* (install #:key inputs outputs #:allow-other-keys)
|
||||||
|
"Install a given DUB package."
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(outbin (string-append out "/bin"))
|
||||||
|
(outlib (string-append out "/lib/dub/" (basename out))))
|
||||||
|
(mkdir-p outbin)
|
||||||
|
;; TODO remove "-test-application"
|
||||||
|
(copy-recursively "bin" outbin)
|
||||||
|
(mkdir-p outlib)
|
||||||
|
(copy-recursively "." (string-append outlib))
|
||||||
|
#t))
|
||||||
|
|
||||||
|
(define %standard-phases
|
||||||
|
(modify-phases gnu:%standard-phases
|
||||||
|
(replace 'configure configure)
|
||||||
|
(replace 'build build)
|
||||||
|
(replace 'check check)
|
||||||
|
(replace 'install install)))
|
||||||
|
|
||||||
|
(define* (dub-build #:key inputs (phases %standard-phases)
|
||||||
|
#:allow-other-keys #:rest args)
|
||||||
|
"Build the given DUB package, applying all of PHASES in order."
|
||||||
|
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -17,6 +18,7 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (guix git-download)
|
(define-module (guix git-download)
|
||||||
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
|
@ -24,6 +26,9 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:autoload (guix build-system gnu) (standard-packages)
|
#:autoload (guix build-system gnu) (standard-packages)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 popen)
|
||||||
|
#:use-module (ice-9 rdelim)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
#:export (git-reference
|
#:export (git-reference
|
||||||
git-reference?
|
git-reference?
|
||||||
git-reference-url
|
git-reference-url
|
||||||
|
@ -32,7 +37,8 @@
|
||||||
|
|
||||||
git-fetch
|
git-fetch
|
||||||
git-version
|
git-version
|
||||||
git-file-name))
|
git-file-name
|
||||||
|
git-predicate))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -119,4 +125,39 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
||||||
"Return the file-name for packages using git-download."
|
"Return the file-name for packages using git-download."
|
||||||
(string-append name "-" version "-checkout"))
|
(string-append name "-" version "-checkout"))
|
||||||
|
|
||||||
|
(define (git-predicate directory)
|
||||||
|
"Return a predicate that returns true if a file is part of the Git checkout
|
||||||
|
living at DIRECTORY. Upon Git failure, return #f instead of a predicate.
|
||||||
|
|
||||||
|
The returned predicate takes two arguments FILE and STAT where FILE is an
|
||||||
|
absolute file name and STAT is the result of 'lstat'."
|
||||||
|
(define (parent-directory? thing directory)
|
||||||
|
;; Return #t if DIRECTORY is the parent of THING.
|
||||||
|
(or (string-suffix? thing directory)
|
||||||
|
(and (string-index thing #\/)
|
||||||
|
(parent-directory? (dirname thing) directory))))
|
||||||
|
|
||||||
|
(let* ((pipe (with-directory-excursion directory
|
||||||
|
(open-pipe* OPEN_READ "git" "ls-files")))
|
||||||
|
(files (let loop ((lines '()))
|
||||||
|
(match (read-line pipe)
|
||||||
|
((? eof-object?)
|
||||||
|
(reverse lines))
|
||||||
|
(line
|
||||||
|
(loop (cons line lines))))))
|
||||||
|
(status (close-pipe pipe)))
|
||||||
|
(and (zero? status)
|
||||||
|
(lambda (file stat)
|
||||||
|
(match (stat:type stat)
|
||||||
|
('directory
|
||||||
|
;; 'git ls-files' does not list directories, only regular files,
|
||||||
|
;; so we need this special trick.
|
||||||
|
(any (lambda (f) (parent-directory? f file))
|
||||||
|
files))
|
||||||
|
((or 'regular 'symlink)
|
||||||
|
(any (lambda (f) (string-suffix? f file))
|
||||||
|
files))
|
||||||
|
(_
|
||||||
|
#f))))))
|
||||||
|
|
||||||
;;; git-download.scm ends here
|
;;; git-download.scm ends here
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
(define-module (guix import hackage)
|
(define-module (guix import hackage)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
|
#:use-module (srfi srfi-34)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
@ -37,7 +38,13 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module ((guix utils) #:select (call-with-temporary-output-file))
|
#:use-module ((guix utils) #:select (call-with-temporary-output-file))
|
||||||
#:export (hackage->guix-package
|
#:export (hackage->guix-package
|
||||||
%hackage-updater))
|
%hackage-updater
|
||||||
|
|
||||||
|
guix-package->hackage-name
|
||||||
|
hackage-fetch
|
||||||
|
hackage-source-url
|
||||||
|
hackage-cabal-url
|
||||||
|
hackage-package?))
|
||||||
|
|
||||||
(define ghc-standard-libraries
|
(define ghc-standard-libraries
|
||||||
;; List of libraries distributed with ghc (7.10.2). We include GHC itself as
|
;; List of libraries distributed with ghc (7.10.2). We include GHC itself as
|
||||||
|
@ -109,12 +116,15 @@ version is returned."
|
||||||
"Return the Cabal file for the package NAME-VERSION, or #f on failure. If
|
"Return the Cabal file for the package NAME-VERSION, or #f on failure. If
|
||||||
the version part is omitted from the package name, then return the latest
|
the version part is omitted from the package name, then return the latest
|
||||||
version."
|
version."
|
||||||
(let-values (((name version) (package-name->name+version name-version)))
|
(guard (c ((and (http-get-error? c)
|
||||||
(let* ((url (hackage-cabal-url name version))
|
(= 404 (http-get-error-code c)))
|
||||||
(port (http-fetch url))
|
#f)) ;"expected" if package is unknown
|
||||||
(result (read-cabal (canonical-newline-port port))))
|
(let-values (((name version) (package-name->name+version name-version)))
|
||||||
(close-port port)
|
(let* ((url (hackage-cabal-url name version))
|
||||||
result)))
|
(port (http-fetch url))
|
||||||
|
(result (read-cabal (canonical-newline-port port))))
|
||||||
|
(close-port port)
|
||||||
|
result))))
|
||||||
|
|
||||||
(define string->license
|
(define string->license
|
||||||
;; List of valid values from
|
;; List of valid values from
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
(guard (c ((and (http-get-error? c)
|
(guard (c ((and (http-get-error? c)
|
||||||
(= 404 (http-get-error-code c)))
|
(= 404 (http-get-error-code c)))
|
||||||
#f)) ;"expected" if package is unknown
|
#f)) ;"expected" if package is unknown
|
||||||
(let* ((port (http-fetch url))
|
(let* ((port (http-fetch url #:headers '((user-agent . "GNU Guile")
|
||||||
|
(Accept . "application/json"))))
|
||||||
(result (hash-table->alist (json->scm port))))
|
(result (hash-table->alist (json->scm port))))
|
||||||
(close-port port)
|
(close-port port)
|
||||||
result)))
|
result)))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
||||||
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -89,9 +89,16 @@ package."
|
||||||
(define (guix-package->pypi-name package)
|
(define (guix-package->pypi-name package)
|
||||||
"Given a Python PACKAGE built from pypi.python.org, return the name of the
|
"Given a Python PACKAGE built from pypi.python.org, return the name of the
|
||||||
package on PyPI."
|
package on PyPI."
|
||||||
(let ((source-url (and=> (package-source package) origin-uri)))
|
(define (url->pypi-name url)
|
||||||
(hyphen-package-name->name+version
|
(hyphen-package-name->name+version
|
||||||
(basename (file-sans-extension source-url)))))
|
(basename (file-sans-extension url))))
|
||||||
|
|
||||||
|
(match (and=> (package-source package) origin-uri)
|
||||||
|
((? string? url)
|
||||||
|
(url->pypi-name url))
|
||||||
|
((lst ...)
|
||||||
|
(any url->pypi-name lst))
|
||||||
|
(#f #f)))
|
||||||
|
|
||||||
(define (wheel-url->extracted-directory wheel-url)
|
(define (wheel-url->extracted-directory wheel-url)
|
||||||
(match (string-split (basename wheel-url) #\-)
|
(match (string-split (basename wheel-url) #\-)
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2017 Federico Beffa <beffa@fbengineering.ch>
|
||||||
|
;;;
|
||||||
|
;;; 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 (guix import stackage)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 regex)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
|
#:use-module (guix import json)
|
||||||
|
#:use-module (guix import hackage)
|
||||||
|
#:use-module (guix memoization)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix upstream)
|
||||||
|
#:use-module (guix ui)
|
||||||
|
#:export (stackage->guix-package
|
||||||
|
%stackage-updater))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Stackage info fetcher and access functions
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define %stackage-url "http://www.stackage.org")
|
||||||
|
|
||||||
|
(define (lts-info-ghc-version lts-info)
|
||||||
|
"Retruns the version of the GHC compiler contained in LTS-INFO."
|
||||||
|
(match lts-info
|
||||||
|
((("snapshot" ("ghc" . version) _ _) _) version)
|
||||||
|
(_ #f)))
|
||||||
|
|
||||||
|
(define (lts-info-packages lts-info)
|
||||||
|
"Retruns the alist of packages contained in LTS-INFO."
|
||||||
|
(match lts-info
|
||||||
|
((_ ("packages" pkg ...)) pkg)
|
||||||
|
(_ '())))
|
||||||
|
|
||||||
|
(define stackage-lts-info-fetch
|
||||||
|
;; "Retrieve the information about the LTS Stackage release VERSION."
|
||||||
|
(memoize
|
||||||
|
(lambda* (#:optional (version ""))
|
||||||
|
(let* ((url (if (string=? "" version)
|
||||||
|
(string-append %stackage-url "/lts")
|
||||||
|
(string-append %stackage-url "/lts-" version)))
|
||||||
|
(lts-info (json-fetch url)))
|
||||||
|
(if lts-info
|
||||||
|
(reverse lts-info)
|
||||||
|
(leave (_ "LTS release version not found: ~A~%") version))))))
|
||||||
|
|
||||||
|
(define (stackage-package-name pkg-info)
|
||||||
|
(assoc-ref pkg-info "name"))
|
||||||
|
|
||||||
|
(define (stackage-package-version pkg-info)
|
||||||
|
(assoc-ref pkg-info "version"))
|
||||||
|
|
||||||
|
(define (lts-package-version pkgs-info name)
|
||||||
|
"Return the version of the package with upstream NAME included in PKGS-INFO."
|
||||||
|
(let ((pkg (find (lambda (pkg) (string=? (stackage-package-name pkg) name))
|
||||||
|
pkgs-info)))
|
||||||
|
(stackage-package-version pkg)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Importer entry point
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (hackage-name-version name version)
|
||||||
|
(and version (string-append name "@" version)))
|
||||||
|
|
||||||
|
(define* (stackage->guix-package package-name ; upstream name
|
||||||
|
#:key
|
||||||
|
(include-test-dependencies? #t)
|
||||||
|
(lts-version "")
|
||||||
|
(packages-info
|
||||||
|
(lts-info-packages
|
||||||
|
(stackage-lts-info-fetch lts-version))))
|
||||||
|
"Fetch Cabal file for PACKAGE-NAME from hackage.haskell.org. The retrieved
|
||||||
|
vesion corresponds to the version of PACKAGE-NAME specified in the LTS-VERSION
|
||||||
|
release at stackage.org. Return the `package' S-expression corresponding to
|
||||||
|
that package, or #f on failure. PACKAGES-INFO is the alist with the packages
|
||||||
|
included in the Stackage LTS release."
|
||||||
|
(let* ((version (lts-package-version packages-info package-name))
|
||||||
|
(name-version (hackage-name-version package-name version)))
|
||||||
|
(if name-version
|
||||||
|
(hackage->guix-package name-version
|
||||||
|
#:include-test-dependencies?
|
||||||
|
include-test-dependencies?)
|
||||||
|
(leave (_ "package not found: ~A~%") package-name))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Updater
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define latest-lts-release
|
||||||
|
(let ((pkgs-info (mlambda () (lts-info-packages (stackage-lts-info-fetch)))))
|
||||||
|
(lambda* (package)
|
||||||
|
"Return an <upstream-source> for the latest Stackage LTS release of
|
||||||
|
PACKAGE or #f it the package is not inlucded in the Stackage LTS release."
|
||||||
|
(let* ((hackage-name (guix-package->hackage-name package))
|
||||||
|
(version (lts-package-version (pkgs-info) hackage-name))
|
||||||
|
(name-version (hackage-name-version hackage-name version)))
|
||||||
|
(match (and=> name-version hackage-fetch)
|
||||||
|
(#f (format (current-error-port)
|
||||||
|
"warning: failed to parse ~a~%"
|
||||||
|
(hackage-cabal-url hackage-name))
|
||||||
|
#f)
|
||||||
|
(_ (let ((url (hackage-source-url hackage-name version)))
|
||||||
|
(upstream-source
|
||||||
|
(package (package-name package))
|
||||||
|
(version version)
|
||||||
|
(urls (list url))))))))))
|
||||||
|
|
||||||
|
(define %stackage-updater
|
||||||
|
(upstream-updater
|
||||||
|
(name 'stackage)
|
||||||
|
(description "Updater for Stackage LTS packages")
|
||||||
|
(pred hackage-package?)
|
||||||
|
(latest latest-lts-release)))
|
||||||
|
|
||||||
|
;;; stackage.scm ends here
|
|
@ -739,7 +739,7 @@ for both major versions of GTK+."
|
||||||
(mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+" "3"))
|
(mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+" "3"))
|
||||||
(gtk+-2 (manifest-lookup-package manifest "gtk+" "2")))
|
(gtk+-2 (manifest-lookup-package manifest "gtk+" "2")))
|
||||||
|
|
||||||
(define (build gtk gtk-version)
|
(define (build gtk gtk-version query)
|
||||||
(let ((major (string-take gtk-version 1)))
|
(let ((major (string-take gtk-version 1)))
|
||||||
(with-imported-modules '((guix build utils)
|
(with-imported-modules '((guix build utils)
|
||||||
(guix build union)
|
(guix build union)
|
||||||
|
@ -756,8 +756,6 @@ for both major versions of GTK+."
|
||||||
|
|
||||||
(let* ((prefix (string-append "/lib/gtk-" #$major ".0/"
|
(let* ((prefix (string-append "/lib/gtk-" #$major ".0/"
|
||||||
#$gtk-version))
|
#$gtk-version))
|
||||||
(query (string-append #$gtk "/bin/gtk-query-immodules-"
|
|
||||||
#$major ".0"))
|
|
||||||
(destdir (string-append #$output prefix))
|
(destdir (string-append #$output prefix))
|
||||||
(moddirs (cons (string-append #$gtk prefix "/immodules")
|
(moddirs (cons (string-append #$gtk prefix "/immodules")
|
||||||
(filter file-exists?
|
(filter file-exists?
|
||||||
|
@ -768,7 +766,7 @@ for both major versions of GTK+."
|
||||||
|
|
||||||
;; Generate a new immodules cache file.
|
;; Generate a new immodules cache file.
|
||||||
(mkdir-p (string-append #$output prefix))
|
(mkdir-p (string-append #$output prefix))
|
||||||
(let ((pipe (apply open-pipe* OPEN_READ query modules))
|
(let ((pipe (apply open-pipe* OPEN_READ #$query modules))
|
||||||
(outfile (string-append #$output prefix
|
(outfile (string-append #$output prefix
|
||||||
"/immodules-gtk" #$major ".cache")))
|
"/immodules-gtk" #$major ".cache")))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
|
@ -783,9 +781,23 @@ for both major versions of GTK+."
|
||||||
(close-pipe pipe)))))))))
|
(close-pipe pipe)))))))))
|
||||||
|
|
||||||
;; Don't run the hook when there's nothing to do.
|
;; Don't run the hook when there's nothing to do.
|
||||||
(let ((gexp #~(begin
|
(let* ((pkg-gtk+ (module-ref ; lazy reference
|
||||||
#$(if gtk+ (build gtk+ "3.0.0") #t)
|
(resolve-interface '(gnu packages gtk)) 'gtk+))
|
||||||
#$(if gtk+-2 (build gtk+-2 "2.10.0") #t))))
|
(gexp #~(begin
|
||||||
|
#$(if gtk+
|
||||||
|
(build
|
||||||
|
gtk+ "3.0.0"
|
||||||
|
;; Use 'gtk-query-immodules-3.0' from the 'bin'
|
||||||
|
;; output of latest gtk+ package.
|
||||||
|
#~(string-append
|
||||||
|
#$pkg-gtk+:bin "/bin/gtk-query-immodules-3.0"))
|
||||||
|
#t)
|
||||||
|
#$(if gtk+-2
|
||||||
|
(build
|
||||||
|
gtk+-2 "2.10.0"
|
||||||
|
#~(string-append
|
||||||
|
#$gtk+-2 "/bin/gtk-query-immodules-2.0"))
|
||||||
|
#t))))
|
||||||
(if (or gtk+ gtk+-2)
|
(if (or gtk+ gtk+-2)
|
||||||
(gexp->derivation "gtk-im-modules" gexp
|
(gexp->derivation "gtk-im-modules" gexp
|
||||||
#:local-build? #t
|
#:local-build? #t
|
||||||
|
|
|
@ -60,12 +60,6 @@ directories in PROFILE, the store path of a profile."
|
||||||
(define %default-shell
|
(define %default-shell
|
||||||
(or (getenv "SHELL") "/bin/sh"))
|
(or (getenv "SHELL") "/bin/sh"))
|
||||||
|
|
||||||
(define %network-configuration-files
|
|
||||||
'("/etc/resolv.conf"
|
|
||||||
"/etc/nsswitch.conf"
|
|
||||||
"/etc/services"
|
|
||||||
"/etc/hosts"))
|
|
||||||
|
|
||||||
(define (purify-environment)
|
(define (purify-environment)
|
||||||
"Unset almost all environment variables. A small number of variables such
|
"Unset almost all environment variables. A small number of variables such
|
||||||
as 'HOME' and 'USER' are left untouched."
|
as 'HOME' and 'USER' are left untouched."
|
||||||
|
@ -408,22 +402,7 @@ host file systems to mount inside the container."
|
||||||
;; When in Rome, do as Nix build.cc does: Automagically
|
;; When in Rome, do as Nix build.cc does: Automagically
|
||||||
;; map common network configuration files.
|
;; map common network configuration files.
|
||||||
(if network?
|
(if network?
|
||||||
(filter-map (lambda (file)
|
%network-file-mappings
|
||||||
(and (file-exists? file)
|
|
||||||
(file-system-mapping
|
|
||||||
(source file)
|
|
||||||
(target file)
|
|
||||||
;; XXX: On some GNU/Linux
|
|
||||||
;; systems, /etc/resolv.conf is a
|
|
||||||
;; symlink to a file in a tmpfs
|
|
||||||
;; which, for an unknown reason,
|
|
||||||
;; cannot be bind mounted
|
|
||||||
;; read-only within the
|
|
||||||
;; container.
|
|
||||||
(writable?
|
|
||||||
(string=? file
|
|
||||||
"/etc/resolv.conf")))))
|
|
||||||
%network-configuration-files)
|
|
||||||
'())
|
'())
|
||||||
;; Mappings for the union closure of all inputs.
|
;; Mappings for the union closure of all inputs.
|
||||||
(map (lambda (dir)
|
(map (lambda (dir)
|
||||||
|
@ -433,7 +412,8 @@ host file systems to mount inside the container."
|
||||||
(writable? #f)))
|
(writable? #f)))
|
||||||
reqs)))
|
reqs)))
|
||||||
(file-systems (append %container-file-systems
|
(file-systems (append %container-file-systems
|
||||||
(map mapping->file-system mappings))))
|
(map file-system-mapping->bind-mount
|
||||||
|
mappings))))
|
||||||
(exit/status
|
(exit/status
|
||||||
(call-with-container file-systems
|
(call-with-container file-systems
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
|
@ -73,7 +73,8 @@ rather than \\n."
|
||||||
;;; Entry point.
|
;;; Entry point.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define importers '("gnu" "nix" "pypi" "cpan" "hackage" "elpa" "gem" "cran" "crate"))
|
(define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem"
|
||||||
|
"cran" "crate"))
|
||||||
|
|
||||||
(define (resolve-importer name)
|
(define (resolve-importer name)
|
||||||
(let ((module (resolve-interface
|
(let ((module (resolve-interface
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2017 Federico Beffa <beffa@fbengineering.ch>
|
||||||
|
;;;
|
||||||
|
;;; 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 (guix scripts import stackage)
|
||||||
|
#:use-module (guix ui)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix scripts)
|
||||||
|
#:use-module (guix import stackage)
|
||||||
|
#:use-module (guix scripts import)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-11)
|
||||||
|
#:use-module (srfi srfi-37)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 format)
|
||||||
|
#:export (guix-import-stackage))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Command-line options.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define %default-options
|
||||||
|
`((lts-version . "")
|
||||||
|
(include-test-dependencies? . #t)))
|
||||||
|
|
||||||
|
(define (show-help)
|
||||||
|
(display (_ "Usage: guix import stackage PACKAGE-NAME
|
||||||
|
Import and convert the LTS Stackage package for PACKAGE-NAME.\n"))
|
||||||
|
(display (_ "
|
||||||
|
-r VERSION, --lts-version=VERSION
|
||||||
|
specify the LTS version to use"))
|
||||||
|
(display (_ "
|
||||||
|
-h, --help display this help and exit"))
|
||||||
|
(display (_ "
|
||||||
|
-t, --no-test-dependencies don't include test-only dependencies"))
|
||||||
|
(display (_ "
|
||||||
|
-V, --version display version information and exit"))
|
||||||
|
(newline)
|
||||||
|
(show-bug-report-information))
|
||||||
|
|
||||||
|
(define %options
|
||||||
|
;; Specification of the command-line options.
|
||||||
|
(cons* (option '(#\h "help") #f #f
|
||||||
|
(lambda args
|
||||||
|
(show-help)
|
||||||
|
(exit 0)))
|
||||||
|
(option '(#\V "version") #f #f
|
||||||
|
(lambda args
|
||||||
|
(show-version-and-exit "guix import stackage")))
|
||||||
|
(option '(#\t "no-test-dependencies") #f #f
|
||||||
|
(lambda (opt name arg result)
|
||||||
|
(alist-cons 'include-test-dependencies? #f
|
||||||
|
(alist-delete 'include-test-dependencies?
|
||||||
|
result))))
|
||||||
|
(option '(#\r "lts-version") #t #f
|
||||||
|
(lambda (opt name arg result)
|
||||||
|
(alist-cons 'lts-version arg
|
||||||
|
(alist-delete 'lts-version
|
||||||
|
result))))
|
||||||
|
%standard-import-options))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Entry point.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (guix-import-stackage . args)
|
||||||
|
(define (parse-options)
|
||||||
|
;; Return the alist of option values.
|
||||||
|
(args-fold* args %options
|
||||||
|
(lambda (opt name arg result)
|
||||||
|
(leave (_ "~A: unrecognized option~%") name))
|
||||||
|
(lambda (arg result)
|
||||||
|
(alist-cons 'argument arg result))
|
||||||
|
%default-options))
|
||||||
|
|
||||||
|
(let* ((opts (parse-options))
|
||||||
|
(args (filter-map (match-lambda
|
||||||
|
(('argument . value)
|
||||||
|
value)
|
||||||
|
(_ #f))
|
||||||
|
(reverse opts))))
|
||||||
|
(match args
|
||||||
|
((package-name)
|
||||||
|
(let ((sexp (stackage->guix-package
|
||||||
|
package-name
|
||||||
|
#:include-test-dependencies?
|
||||||
|
(assoc-ref opts 'include-test-dependencies?)
|
||||||
|
#:lts-version (assoc-ref opts 'lts-version))))
|
||||||
|
(unless sexp
|
||||||
|
(leave (_ "failed to download cabal file for package '~a'~%")
|
||||||
|
package-name))
|
||||||
|
sexp))
|
||||||
|
(()
|
||||||
|
(leave (_ "too few arguments~%")))
|
||||||
|
((many ...)
|
||||||
|
(leave (_ "too many arguments~%"))))))
|
||||||
|
|
||||||
|
;;; stackage.scm ends here
|
|
@ -205,6 +205,7 @@ unavailable optional dependencies such as Guile-JSON."
|
||||||
%elpa-updater
|
%elpa-updater
|
||||||
%cran-updater
|
%cran-updater
|
||||||
%bioconductor-updater
|
%bioconductor-updater
|
||||||
|
((guix import stackage) => %stackage-updater)
|
||||||
%hackage-updater
|
%hackage-updater
|
||||||
((guix import cpan) => %cpan-updater)
|
((guix import cpan) => %cpan-updater)
|
||||||
((guix import pypi) => %pypi-updater)
|
((guix import pypi) => %pypi-updater)
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include <globals.hh>
|
#include <globals.hh>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
@ -41,6 +42,11 @@ static void builtinDownload(const Derivation &drv,
|
||||||
"download", drvPath.c_str(), output.c_str(), NULL
|
"download", drvPath.c_str(), output.c_str(), NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Tell the script what the store file name is, so that
|
||||||
|
'strip-store-file-name' (used for instance to determine the URL of
|
||||||
|
content-addressed mirrors) works correctly. */
|
||||||
|
setenv("NIX_STORE", settings.nixStore.c_str(), 1);
|
||||||
|
|
||||||
/* XXX: Hack our way to use the 'download' script from 'LIBEXECDIR/guix'
|
/* XXX: Hack our way to use the 'download' script from 'LIBEXECDIR/guix'
|
||||||
or just 'LIBEXECDIR', depending on whether we're running uninstalled or
|
or just 'LIBEXECDIR', depending on whether we're running uninstalled or
|
||||||
not. */
|
not. */
|
||||||
|
|
|
@ -180,4 +180,31 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(primitive-exit 42))))
|
(primitive-exit 42))))
|
||||||
|
|
||||||
|
(skip-if-unsupported)
|
||||||
|
(test-assert "container-excursion*"
|
||||||
|
(call-with-temporary-directory
|
||||||
|
(lambda (root)
|
||||||
|
(define (namespaces pid)
|
||||||
|
(let ((pid (number->string pid)))
|
||||||
|
(map (lambda (ns)
|
||||||
|
(readlink (string-append "/proc/" pid "/ns/" ns)))
|
||||||
|
'("user" "ipc" "uts" "net" "pid" "mnt"))))
|
||||||
|
|
||||||
|
(let* ((pid (run-container root '()
|
||||||
|
%namespaces 1
|
||||||
|
(lambda ()
|
||||||
|
(sleep 100))))
|
||||||
|
(result (container-excursion* pid
|
||||||
|
(lambda ()
|
||||||
|
(namespaces 1)))))
|
||||||
|
(kill pid SIGKILL)
|
||||||
|
(equal? result (namespaces pid))))))
|
||||||
|
|
||||||
|
(skip-if-unsupported)
|
||||||
|
(test-equal "container-excursion*, same namespaces"
|
||||||
|
42
|
||||||
|
(container-excursion* (getpid)
|
||||||
|
(lambda ()
|
||||||
|
(* 6 7))))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
(define-module (test-file-systems)
|
(define-module (test-file-systems)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix modules)
|
||||||
#:use-module (gnu system file-systems)
|
#:use-module (gnu system file-systems)
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (rnrs bytevectors))
|
#:use-module (rnrs bytevectors))
|
||||||
|
@ -72,4 +73,11 @@
|
||||||
(device "/foo")
|
(device "/foo")
|
||||||
(flags '(bind-mount read-only)))))))))
|
(flags '(bind-mount read-only)))))))))
|
||||||
|
|
||||||
|
(test-assert "does not pull (guix config)"
|
||||||
|
;; This module is meant both for the host side and "build side", so make
|
||||||
|
;; sure it doesn't pull in (guix config), which depends on the user's
|
||||||
|
;; config.
|
||||||
|
(not (member '(guix config)
|
||||||
|
(source-module-closure '((gnu system file-systems))))))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#:use-module (guix base32)
|
#:use-module (guix base32)
|
||||||
#:use-module (guix hash)
|
#:use-module (guix hash)
|
||||||
#:use-module (guix tests)
|
#:use-module (guix tests)
|
||||||
|
#:use-module (guix build-system python)
|
||||||
#:use-module ((guix build utils) #:select (delete-file-recursively which))
|
#:use-module ((guix build utils) #:select (delete-file-recursively which))
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
@ -90,6 +91,15 @@ baz > 13.37")
|
||||||
(uri
|
(uri
|
||||||
"https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
|
"https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
|
||||||
|
|
||||||
|
(test-equal "guix-package->pypi-name, several URLs"
|
||||||
|
"cram"
|
||||||
|
(guix-package->pypi-name
|
||||||
|
(dummy-package "foo"
|
||||||
|
(source
|
||||||
|
(dummy-origin
|
||||||
|
(uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
|
||||||
|
(pypi-uri "cram" "0.7"))))))))
|
||||||
|
|
||||||
(test-assert "pypi->guix-package"
|
(test-assert "pypi->guix-package"
|
||||||
;; Replace network resources with sample data.
|
;; Replace network resources with sample data.
|
||||||
(mock ((guix import utils) url-fetch
|
(mock ((guix import utils) url-fetch
|
||||||
|
|
Loading…
Reference in New Issue