mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-31 14:56:54 +01:00
Merge remote-tracking branch 'origin/master' into staging
This commit is contained in:
commit
f80b4d2ce0
72 changed files with 5789 additions and 2859 deletions
|
@ -112,6 +112,7 @@ MODULES = \
|
|||
guix/build/graft.scm \
|
||||
guix/build/bournish.scm \
|
||||
guix/build/qt-utils.scm \
|
||||
guix/build/make-bootstrap.scm \
|
||||
guix/search-paths.scm \
|
||||
guix/packages.scm \
|
||||
guix/import/utils.scm \
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
(gnu packages compression)
|
||||
(gnu packages multiprecision)
|
||||
(gnu packages make-bootstrap)
|
||||
(gnu packages commencement)
|
||||
(gnu packages package-management)
|
||||
(gnu system)
|
||||
(gnu system vm)
|
||||
|
@ -112,7 +111,7 @@ (define %core-packages
|
|||
gawk gnu-gettext hello guile-2.0 zlib gzip xz
|
||||
%bootstrap-binaries-tarball
|
||||
%binutils-bootstrap-tarball
|
||||
%glibc-bootstrap-tarball
|
||||
(%glibc-bootstrap-tarball)
|
||||
%gcc-bootstrap-tarball
|
||||
%guile-bootstrap-tarball
|
||||
%bootstrap-tarballs))
|
||||
|
@ -123,7 +122,8 @@ (define %packages-to-cross-build
|
|||
(define %cross-targets
|
||||
'("mips64el-linux-gnu"
|
||||
"mips64el-linux-gnuabi64"
|
||||
"arm-linux-gnueabihf"))
|
||||
"arm-linux-gnueabihf"
|
||||
"i686-w64-mingw32"))
|
||||
|
||||
(define (demo-os)
|
||||
"Return the \"demo\" 'operating-system' structure."
|
||||
|
@ -240,7 +240,7 @@ (define package->job
|
|||
(match (package-transitive-inputs package)
|
||||
(((_ inputs _ ...) ...)
|
||||
inputs))))
|
||||
%final-inputs))))
|
||||
(%final-inputs)))))
|
||||
(lambda (store package system)
|
||||
"Return a job for PACKAGE on SYSTEM, or #f if this combination is not
|
||||
valid."
|
||||
|
@ -278,16 +278,22 @@ (define (same? target)
|
|||
;; 'mips64el-linux'.
|
||||
(string-contains target system))
|
||||
|
||||
(define (either proc1 proc2)
|
||||
(define (pointless? target)
|
||||
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
|
||||
(and (string-contains target "mingw")
|
||||
(not (string=? "x86_64-linux" system))))
|
||||
|
||||
(define (either proc1 proc2 proc3)
|
||||
(lambda (x)
|
||||
(or (proc1 x) (proc2 x))))
|
||||
(or (proc1 x) (proc2 x) (proc3 x))))
|
||||
|
||||
(append-map (lambda (target)
|
||||
(map (lambda (package)
|
||||
(package-cross-job store (job-name package)
|
||||
package target system))
|
||||
%packages-to-cross-build))
|
||||
(remove (either from-32-to-64? same?) %cross-targets)))
|
||||
(remove (either from-32-to-64? same? pointless?)
|
||||
%cross-targets)))
|
||||
|
||||
;; Turn off grafts. Grafting is meant to happen on the user's machines.
|
||||
(parameterize ((%graft? #f))
|
||||
|
|
|
@ -28,7 +28,8 @@ Copyright @copyright{} 2016 Efraim Flashner@*
|
|||
Copyright @copyright{} 2016 John Darrington@*
|
||||
Copyright @copyright{} 2016 ng0@*
|
||||
Copyright @copyright{} 2016 Jan Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2016 Julien Lepiller
|
||||
Copyright @copyright{} 2016 Julien Lepiller@*
|
||||
Copyright @copyright{} 2016 Alex ter Weele
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
@ -921,6 +922,13 @@ Port number of SSH server on the machine.
|
|||
The SSH private key file to use when connecting to the machine, in
|
||||
OpenSSH format.
|
||||
|
||||
@item @code{compression} (default: @code{"zlib@@openssh.com,zlib"})
|
||||
@itemx @code{compression-level} (default: @code{3})
|
||||
The SSH-level compression methods and compression level requested.
|
||||
|
||||
Note that offloading relies on SSH compression to reduce bandwidth usage
|
||||
when transferring files to and from build machines.
|
||||
|
||||
@item @code{daemon-socket} (default: @code{"/var/guix/daemon-socket/socket"})
|
||||
File name of the Unix-domain socket @command{guix-daemon} is listening
|
||||
to on that machine.
|
||||
|
@ -941,9 +949,8 @@ name, and they will be scheduled on matching build machines.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
The @code{guix} command must be in the search path on the build
|
||||
machines, since offloading works by invoking the @code{guix archive} and
|
||||
@code{guix build} commands. In addition, the Guix modules must be in
|
||||
The @code{guile} command must be in the search path on the build
|
||||
machines. In addition, the Guix modules must be in
|
||||
@code{$GUILE_LOAD_PATH} on the build machine---you can check whether
|
||||
this is the case by running:
|
||||
|
||||
|
@ -978,6 +985,26 @@ the master receives files from a build machine (and @i{vice versa}), its
|
|||
build daemon can make sure they are genuine, have not been tampered
|
||||
with, and that they are signed by an authorized key.
|
||||
|
||||
@cindex offload test
|
||||
To test whether your setup is operational, run this command on the
|
||||
master node:
|
||||
|
||||
@example
|
||||
# guix offload test
|
||||
@end example
|
||||
|
||||
This will attempt to connect to each of the build machines specified in
|
||||
@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are
|
||||
available on each machine, attempt to export to the machine and import
|
||||
from it, and report any error in the process.
|
||||
|
||||
If you want to test a different machine file, just specify it on the
|
||||
command line:
|
||||
|
||||
@example
|
||||
# guix offload test machines-qualif.scm
|
||||
@end example
|
||||
|
||||
|
||||
@node Invoking guix-daemon
|
||||
@section Invoking @command{guix-daemon}
|
||||
|
@ -7155,7 +7182,15 @@ modifying or deleting previous generations. Old system generations get
|
|||
an entry in the GRUB boot menu, allowing you to boot them in case
|
||||
something went wrong with the latest generation. Reassuring, no? The
|
||||
@command{guix system list-generations} command lists the system
|
||||
generations available on disk.
|
||||
generations available on disk. It is also possible to roll back the
|
||||
system via the commands @command{guix system roll-back} and
|
||||
@command{guix system switch-generation}.
|
||||
|
||||
Although the command @command{guix system reconfigure} will not modify
|
||||
previous generations, must take care when the current generation is not
|
||||
the latest (e.g., after invoking @command{guix system roll-back}), since
|
||||
the operation might overwrite a later generation (@pxref{Invoking guix
|
||||
system}).
|
||||
|
||||
@unnumberedsubsubsec The Programming Interface
|
||||
|
||||
|
@ -8555,7 +8590,7 @@ Thus, it can be instantiated like this:
|
|||
(use-modules (gnu services networking)
|
||||
(gnu packages admin))
|
||||
|
||||
(service wpa-supplicant-type wpa-supplicant)
|
||||
(service wpa-supplicant-service-type wpa-supplicant)
|
||||
@end lisp
|
||||
@end defvr
|
||||
|
||||
|
@ -12580,6 +12615,12 @@ currently running; if a service is currently running, it does not
|
|||
attempt to upgrade it since this would not be possible without stopping it
|
||||
first.
|
||||
|
||||
This command creates a new generation whose number is one greater than
|
||||
the current generation (as reported by @command{guix system
|
||||
list-generations}). If that generation already exists, it will be
|
||||
overwritten. This behavior mirrors that of @command{guix package}
|
||||
(@pxref{Invoking guix package}).
|
||||
|
||||
It also adds a GRUB menu entry for the new OS configuration, and moves
|
||||
entries for older configurations to a submenu---unless
|
||||
@option{--no-grub} is passed.
|
||||
|
|
178
gnu/build/cross-toolchain.scm
Normal file
178
gnu/build/cross-toolchain.scm
Normal file
|
@ -0,0 +1,178 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build cross-toolchain)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build gnu-build-system)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:export (cross-gcc-build-phases))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This module provides tools to build a cross-compiler.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %gcc-include-paths
|
||||
;; Environment variables for header search paths.
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"))
|
||||
|
||||
(define %gcc-cross-include-paths
|
||||
;; Search path for target headers when cross-compiling.
|
||||
(map (cut string-append "CROSS_" <>) %gcc-include-paths))
|
||||
|
||||
(define* (make-cross-binutils-visible #:key outputs inputs target
|
||||
#:allow-other-keys)
|
||||
"Create symlinks for 'as', 'nm', and 'ld' in the \"out\" output, under
|
||||
libexec/gcc, so that the cross-GCC can find them."
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(libexec (string-append out "/libexec/gcc/" target))
|
||||
(binutils (string-append (assoc-ref inputs "binutils-cross")
|
||||
"/bin/" target "-"))
|
||||
(wrapper (string-append (assoc-ref inputs "ld-wrapper-cross")
|
||||
"/bin/" target "-ld")))
|
||||
(for-each (lambda (file)
|
||||
(symlink (string-append binutils file)
|
||||
(string-append libexec "/" file)))
|
||||
'("as" "nm"))
|
||||
(symlink wrapper (string-append libexec "/ld"))
|
||||
#t))
|
||||
|
||||
(define* (set-cross-path #:key inputs #:allow-other-keys)
|
||||
"Add the cross kernel headers to CROSS_CPATH, and remove them from
|
||||
C_INCLUDE_PATH et al."
|
||||
(match (assoc-ref inputs "libc")
|
||||
((? string? libc)
|
||||
(let ((kernel (assoc-ref inputs "xkernel-headers")))
|
||||
(define (cross? x)
|
||||
;; Return #t if X is a cross-libc or cross Linux.
|
||||
(or (string-prefix? libc x)
|
||||
(string-prefix? kernel x)))
|
||||
|
||||
(let ((cpath (string-append libc "/include"
|
||||
":" kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
%gcc-cross-include-paths))
|
||||
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib:" kernel "/lib")) ;for Hurd's libihash
|
||||
|
||||
(for-each (lambda (var)
|
||||
(and=> (getenv var)
|
||||
(lambda (value)
|
||||
(let* ((path (search-path-as-string->list value))
|
||||
(native-path (list->search-path-as-string
|
||||
(remove cross? path) ":")))
|
||||
(setenv var native-path)))))
|
||||
(cons "LIBRARY_PATH" %gcc-include-paths))
|
||||
#t))
|
||||
(#f
|
||||
;; We're building the sans-libc cross-compiler, so nothing to do.
|
||||
#t)))
|
||||
|
||||
(define* (set-cross-path/mingw #:key inputs #:allow-other-keys)
|
||||
"Add the cross MinGW headers to CROSS_C_*_INCLUDE_PATH, and remove them from
|
||||
C_*INCLUDE_PATH."
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(gcc (assoc-ref inputs "gcc")))
|
||||
(define (cross? x)
|
||||
(and libc (string-prefix? libc x)))
|
||||
|
||||
(define (unpacked-mingw-dir)
|
||||
(match (scandir "." (lambda (name)
|
||||
(string-contains name "mingw-w64")))
|
||||
((mingw-dir)
|
||||
(string-append
|
||||
(getcwd) "/" mingw-dir "/mingw-w64-headers"))))
|
||||
|
||||
(if libc
|
||||
(let ((cpath (string-append libc "/include"
|
||||
":" libc "/i686-w64-mingw32/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
%gcc-cross-include-paths))
|
||||
|
||||
;; libc is false, so we are building xgcc-sans-libc.
|
||||
;; Add essential headers from mingw-w64.
|
||||
(let ((mingw-source (assoc-ref inputs "mingw-source")))
|
||||
(system* "tar" "xvf" mingw-source)
|
||||
(let ((mingw-headers (unpacked-mingw-dir)))
|
||||
;; We need _mingw.h which will gets built from _mingw.h.in by
|
||||
;; mingw-w64's configure. We cannot configure mingw-w64 until we
|
||||
;; have xgcc-sans-libc; substitute to the rescue.
|
||||
(copy-file (string-append mingw-headers "/crt/_mingw.h.in")
|
||||
(string-append mingw-headers "/crt/_mingw.h"))
|
||||
|
||||
(substitute* (string-append mingw-headers "/crt/_mingw.h")
|
||||
(("@MINGW_HAS_SECURE_API@")
|
||||
"#define MINGW_HAS_SECURE_API 1"))
|
||||
|
||||
(let ((cpath (string-append mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
":" mingw-headers
|
||||
"/defaults/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
(cons "CROSS_LIBRARY_PATH"
|
||||
%gcc-cross-include-paths))))))
|
||||
|
||||
(when libc
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib"
|
||||
":" libc "/i686-w64-mingw32/lib")))
|
||||
|
||||
(setenv "CPP" (string-append gcc "/bin/cpp"))
|
||||
(for-each (lambda (var)
|
||||
(and=> (getenv var)
|
||||
(lambda (value)
|
||||
(let* ((path (search-path-as-string->list
|
||||
value))
|
||||
(native-path (list->search-path-as-string
|
||||
(remove cross? path) ":")))
|
||||
(setenv var native-path)))))
|
||||
(cons "LIBRARY_PATH" %gcc-include-paths))
|
||||
#t))
|
||||
|
||||
(define (install-strip . _)
|
||||
"Install a stripped GCC."
|
||||
;; Unlike our 'strip' phase, this will do the right thing for
|
||||
;; cross-compilers.
|
||||
(zero? (system* "make" "install-strip")))
|
||||
|
||||
(define* (cross-gcc-build-phases target
|
||||
#:optional (phases %standard-phases))
|
||||
"Modify PHASES to include everything needed to build a cross-GCC for TARGET,
|
||||
a target triplet."
|
||||
(modify-phases phases
|
||||
(add-before 'configure 'set-cross-path
|
||||
(if (string-contains target "mingw")
|
||||
set-cross-path/mingw
|
||||
set-cross-path))
|
||||
(add-after 'install 'make-cross-binutils-visible
|
||||
(cut make-cross-binutils-visible #:target target <...>))
|
||||
(replace 'install install-strip)))
|
||||
|
||||
;;; cross-toolchain.scm ends here
|
|
@ -248,6 +248,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/mc.scm \
|
||||
%D%/packages/mcrypt.scm \
|
||||
%D%/packages/messaging.scm \
|
||||
%D%/packages/mingw.scm \
|
||||
%D%/packages/mg.scm \
|
||||
%D%/packages/microcom.scm \
|
||||
%D%/packages/mit-krb5.scm \
|
||||
|
@ -358,6 +359,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/texinfo.scm \
|
||||
%D%/packages/tex.scm \
|
||||
%D%/packages/textutils.scm \
|
||||
%D%/packages/text-editors.scm \
|
||||
%D%/packages/time.scm \
|
||||
%D%/packages/tls.scm \
|
||||
%D%/packages/tmux.scm \
|
||||
|
@ -435,6 +437,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/system/vm.scm \
|
||||
\
|
||||
%D%/build/activation.scm \
|
||||
%D%/build/cross-toolchain.scm \
|
||||
%D%/build/file-systems.scm \
|
||||
%D%/build/install.scm \
|
||||
%D%/build/linux-boot.scm \
|
||||
|
@ -554,6 +557,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gcc-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-libvtv-runpath.patch \
|
||||
%D%/packages/patches/gcc-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \
|
||||
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
|
||||
%D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \
|
||||
%D%/packages/patches/gcc-6-cross-environment-variables.patch \
|
||||
|
@ -620,6 +624,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/hdf-eos5-fortrantests.patch \
|
||||
%D%/packages/patches/higan-remove-march-native-flag.patch \
|
||||
%D%/packages/patches/hop-linker-flags.patch \
|
||||
%D%/packages/patches/httpd-CVE-2016-8740.patch \
|
||||
%D%/packages/patches/hydra-disable-darcs-test.patch \
|
||||
%D%/packages/patches/hypre-doc-tables.patch \
|
||||
%D%/packages/patches/hypre-ldflags.patch \
|
||||
|
@ -715,6 +720,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \
|
||||
%D%/packages/patches/metabat-remove-compilation-date.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/mplayer2-theora-fix.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
|
@ -822,6 +828,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ratpoison-shell.patch \
|
||||
%D%/packages/patches/readline-link-ncurses.patch \
|
||||
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
|
||||
%D%/packages/patches/readline-7.0-mingw.patch \
|
||||
%D%/packages/patches/ripperx-missing-file.patch \
|
||||
%D%/packages/patches/rpm-CVE-2014-8118.patch \
|
||||
%D%/packages/patches/rsem-makefile.patch \
|
||||
|
@ -834,6 +841,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/scheme48-tests.patch \
|
||||
%D%/packages/patches/scotch-test-threading.patch \
|
||||
%D%/packages/patches/sdl-libx11-1.6.patch \
|
||||
%D%/packages/patches/seq24-rename-mutex.patch \
|
||||
%D%/packages/patches/serf-comment-style-fix.patch \
|
||||
%D%/packages/patches/serf-deflate-buckets-test-fix.patch \
|
||||
%D%/packages/patches/slim-session.patch \
|
||||
|
@ -857,6 +865,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/tclxml-3.2-install.patch \
|
||||
%D%/packages/patches/tcsh-do-not-define-BSDWAIT.patch \
|
||||
%D%/packages/patches/tcsh-fix-autotest.patch \
|
||||
%D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \
|
||||
%D%/packages/patches/teensy-loader-cli-help.patch \
|
||||
%D%/packages/patches/texi2html-document-encoding.patch \
|
||||
%D%/packages/patches/texi2html-i18n.patch \
|
||||
|
|
|
@ -141,14 +141,14 @@ (define-public progress
|
|||
(define-public shepherd
|
||||
(package
|
||||
(name "shepherd")
|
||||
(version "0.3.1")
|
||||
(version "0.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f3yi3n4sl9myiay95yhv2a9an338qddfjrbv7da753ip66dkfz6"))))
|
||||
"174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--localstatedir=/var")))
|
||||
|
@ -161,7 +161,8 @@ (define-public shepherd
|
|||
typical init systems. It provides dependency-handling through a convenient
|
||||
interface and is based on GNU Guile.")
|
||||
(license license:gpl3+)
|
||||
(home-page "http://www.gnu.org/software/shepherd/")))
|
||||
(home-page "https://www.gnu.org/software/shepherd/")
|
||||
(properties '((ftp-server . "alpha.gnu.org")))))
|
||||
|
||||
(define-public dfc
|
||||
(package
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -163,3 +164,11 @@ (define-public aspell-dict-he
|
|||
#:sha256
|
||||
(base32
|
||||
"13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn")))
|
||||
|
||||
(define-public aspell-dict-sv
|
||||
(aspell-dictionary "sv" "Swedish"
|
||||
#:version "0.51-0"
|
||||
#:prefix "aspell-"
|
||||
#:sha256
|
||||
(base32
|
||||
"02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v")))
|
||||
|
|
|
@ -46,7 +46,8 @@ (define-module (gnu packages base)
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (glibc))
|
||||
#:export (glibc
|
||||
libiconv-if-needed))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -1032,6 +1033,16 @@ (define-public libiconv
|
|||
(home-page "http://www.gnu.org/software/libiconv/")
|
||||
(license lgpl3+)))
|
||||
|
||||
(define* (libiconv-if-needed #:optional (target (%current-target-system)))
|
||||
"Return either a libiconv package specification to include in a dependency
|
||||
list for platforms that have an incomplete libc, or the empty list. If a
|
||||
package needs iconv ,@(libiconv-if-needed) should be added."
|
||||
;; POSIX C libraries provide iconv. Platforms with an incomplete libc
|
||||
;; without iconv, such as MinGW, must return the then clause.
|
||||
(if (target-mingw? target)
|
||||
`(("libiconv" ,libiconv))
|
||||
'()))
|
||||
|
||||
(define-public (canonical-package package)
|
||||
;; Avoid circular dependency by lazily resolving 'commencement'.
|
||||
(let* ((iface (resolve-interface '(gnu packages commencement)))
|
||||
|
|
|
@ -5629,7 +5629,7 @@ (define-public r-txdb-hsapiens-ucsc-hg19-knowngene
|
|||
(define-public vsearch
|
||||
(package
|
||||
(name "vsearch")
|
||||
(version "2.3.0")
|
||||
(version "2.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5639,7 +5639,7 @@ (define-public vsearch
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r8fk3whkil348y5hfsd4r56qjmchhq4nxm6s7ra5rlisw0mf9fy"))
|
||||
"1d3670apjy15c9l40fpq71lifxga6j9z2gisdirycwk18s4mvcp2"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -257,7 +258,6 @@ (define-public aria2
|
|||
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
|
||||
(license l:gpl2+)))
|
||||
|
||||
|
||||
(define-public uget
|
||||
(package
|
||||
(name "uget")
|
||||
|
@ -292,3 +292,36 @@ (define-public uget
|
|||
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
|
||||
downloads, download scheduling, download rate limiting.")
|
||||
(license l:lgpl2.1+)))
|
||||
|
||||
(define-public mktorrent
|
||||
(package
|
||||
(name "mktorrent")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/mktorrent/mktorrent/"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17qi3nfky240pq6qcmf5qg324mxm83vk9r3nvsdhsvinyqm5d3kg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)) ; no configure script
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"NO_HASH_CHECK=1"
|
||||
"USE_LARGE_FILES=1"
|
||||
"USE_LONG_OPTIONS=1"
|
||||
"USE_PTHREADS=1")
|
||||
#:tests? #f)) ; no tests
|
||||
(home-page "http://mktorrent.sourceforge.net/")
|
||||
(synopsis "Utility to create BitTorrent metainfo files")
|
||||
(description "mktorrent is a simple command-line utility to create
|
||||
BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from
|
||||
both single files and whole directories. It can add multiple trackers and web
|
||||
seed URLs, and set the @code{private} flag to disallow advertisement through
|
||||
the distributed hash table (DHT) and Peer Exchange. Hashing is multi-threaded
|
||||
and will take advantage of multiple processor cores where possible.")
|
||||
(license (list l:public-domain ; sha1.*, used to build without OpenSSL
|
||||
l:gpl2+)))) ; with permission to link with OpenSSL
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages cross-base)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages mingw)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
|
@ -37,13 +37,26 @@ (define-module (gnu packages cross-base)
|
|||
#:use-module (ice-9 regex)
|
||||
#:export (cross-binutils
|
||||
cross-libc
|
||||
cross-gcc))
|
||||
cross-gcc
|
||||
cross-newlib?))
|
||||
|
||||
(define %xgcc
|
||||
;; GCC package used as the basis for cross-compilation. It doesn't have to
|
||||
;; be 'gcc' and can be a specific variant such as 'gcc-4.8'.
|
||||
gcc)
|
||||
|
||||
(define %gcc-include-paths
|
||||
;; Environment variables for header search paths.
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"))
|
||||
|
||||
(define %gcc-cross-include-paths
|
||||
;; Search path for target headers when cross-compiling.
|
||||
(map (cut string-append "CROSS_" <>) %gcc-include-paths))
|
||||
|
||||
(define (cross p target)
|
||||
(package (inherit p)
|
||||
(name (string-append (package-name p) "-cross-" target))
|
||||
|
@ -104,7 +117,7 @@ (define (cross-gcc-arguments target libc)
|
|||
`(append (list ,(string-append "--target=" target)
|
||||
,@(if libc
|
||||
`( ;; Disable libcilkrts because it is not
|
||||
;; ported to GNU/Hurd.
|
||||
;; ported to GNU/Hurd.
|
||||
"--disable-libcilkrts")
|
||||
`( ;; Disable features not needed at this stage.
|
||||
"--disable-shared" "--enable-static"
|
||||
|
@ -131,7 +144,12 @@ (define (cross-gcc-arguments target libc)
|
|||
"--disable-libitm"
|
||||
"--disable-libvtv"
|
||||
"--disable-libsanitizer"
|
||||
)))
|
||||
))
|
||||
|
||||
;; For a newlib (non-glibc) target
|
||||
,@(if (cross-newlib? target)
|
||||
'("--with-newlib")
|
||||
'()))
|
||||
|
||||
,(if libc
|
||||
flags
|
||||
|
@ -146,80 +164,24 @@ (define (cross-gcc-arguments target libc)
|
|||
,flags))
|
||||
flags))
|
||||
((#:phases phases)
|
||||
(let ((phases
|
||||
`(alist-cons-after
|
||||
'install 'make-cross-binutils-visible
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(libexec (string-append out "/libexec/gcc/"
|
||||
,target))
|
||||
(binutils (string-append
|
||||
(assoc-ref inputs "binutils-cross")
|
||||
"/bin/" ,target "-"))
|
||||
(wrapper (string-append
|
||||
(assoc-ref inputs "ld-wrapper-cross")
|
||||
"/bin/" ,target "-ld")))
|
||||
(for-each (lambda (file)
|
||||
(symlink (string-append binutils file)
|
||||
(string-append libexec "/"
|
||||
file)))
|
||||
'("as" "nm"))
|
||||
(symlink wrapper (string-append libexec "/ld"))
|
||||
#t))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda _
|
||||
;; Unlike our 'strip' phase, this will do the right thing
|
||||
;; for cross-compilers.
|
||||
(zero? (system* "make" "install-strip")))
|
||||
,phases))))
|
||||
(if libc
|
||||
`(alist-cons-before
|
||||
'configure 'set-cross-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Add the cross kernel headers to CROSS_CPATH, and remove them
|
||||
;; from CPATH.
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(kernel (assoc-ref inputs "xkernel-headers")))
|
||||
(define (cross? x)
|
||||
;; Return #t if X is a cross-libc or cross Linux.
|
||||
(or (string-prefix? libc x)
|
||||
(string-prefix? kernel x)))
|
||||
(let ((cpath (string-append
|
||||
libc "/include"
|
||||
":" kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
'("CROSS_C_INCLUDE_PATH"
|
||||
"CROSS_CPLUS_INCLUDE_PATH"
|
||||
"CROSS_OBJC_INCLUDE_PATH"
|
||||
"CROSS_OBJCPLUS_INCLUDE_PATH")))
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib:"
|
||||
kernel "/lib")) ;for Hurd's libihash
|
||||
(for-each
|
||||
(lambda (var)
|
||||
(and=> (getenv var)
|
||||
(lambda (value)
|
||||
(let* ((path (search-path-as-string->list value))
|
||||
(native-path (list->search-path-as-string
|
||||
(remove cross? path) ":")))
|
||||
(setenv var native-path)))))
|
||||
'("C_INCLUDE_PATH"
|
||||
"CPLUS_INCLUDE_PATH"
|
||||
"OBJC_INCLUDE_PATH"
|
||||
"OBJCPLUS_INCLUDE_PATH"
|
||||
"LIBRARY_PATH"))
|
||||
#t))
|
||||
,phases)
|
||||
phases)))))))
|
||||
`(cross-gcc-build-phases ,target ,phases))))))
|
||||
|
||||
(define (cross-gcc-patches target)
|
||||
"Return GCC patches needed for TARGET."
|
||||
(cond ((string-prefix? "xtensa-" target)
|
||||
;; Patch by Qualcomm needed to build the ath9k-htc firmware.
|
||||
(search-patches "ath9k-htc-firmware-gcc.patch"))
|
||||
((target-mingw? target)
|
||||
(search-patches "gcc-4.9.3-mingw-gthr-default.patch"))
|
||||
(else '())))
|
||||
|
||||
(define (cross-gcc-snippet target)
|
||||
"Return GCC snippet needed for TARGET."
|
||||
(cond ((target-mingw? target)
|
||||
'(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
|
||||
"libstdc++-v3/config/os/newlib"))
|
||||
(else #f)))
|
||||
|
||||
(define* (cross-gcc target
|
||||
#:optional (xbinutils (cross-binutils target)) libc)
|
||||
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
|
||||
|
@ -234,7 +196,10 @@ (define* (cross-gcc target
|
|||
(append
|
||||
(origin-patches (package-source %xgcc))
|
||||
(cons (search-patch "gcc-cross-environment-variables.patch")
|
||||
(cross-gcc-patches target))))))
|
||||
(cross-gcc-patches target))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
(cross-gcc-snippet target))))
|
||||
|
||||
;; For simplicity, use a single output. Otherwise libgcc_s & co. are not
|
||||
;; found by default, etc.
|
||||
|
@ -242,11 +207,14 @@ (define* (cross-gcc target
|
|||
|
||||
(arguments
|
||||
`(#:implicit-inputs? #f
|
||||
#:imported-modules ((gnu build cross-toolchain)
|
||||
,@%gnu-build-system-modules)
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex)
|
||||
(gnu build cross-toolchain)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(srfi srfi-26)
|
||||
(ice-9 regex))
|
||||
|
||||
,@(cross-gcc-arguments target libc)))
|
||||
|
||||
|
@ -264,34 +232,32 @@ (define* (cross-gcc target
|
|||
;; Remaining inputs.
|
||||
,@(let ((inputs (append (package-inputs %xgcc)
|
||||
(alist-delete "libc" (%final-inputs)))))
|
||||
(if libc
|
||||
`(("libc" ,libc)
|
||||
("xkernel-headers" ;the target headers
|
||||
,@(assoc-ref (package-propagated-inputs libc)
|
||||
"kernel-headers"))
|
||||
,@inputs)
|
||||
inputs))))
|
||||
(cond
|
||||
((target-mingw? target)
|
||||
(if libc
|
||||
`(("libc" ,mingw-w64)
|
||||
,@inputs)
|
||||
`(("mingw-source" ,(package-source mingw-w64))
|
||||
,@inputs)))
|
||||
(libc
|
||||
`(("libc" ,libc)
|
||||
("xkernel-headers" ;the target headers
|
||||
,@(assoc-ref (package-propagated-inputs libc)
|
||||
"kernel-headers"))
|
||||
,@inputs))
|
||||
(else inputs)))))
|
||||
|
||||
(inputs '())
|
||||
|
||||
;; Only search target inputs, not host inputs.
|
||||
;; Note: See <http://bugs.gnu.org/22186> for why not 'CPATH'.
|
||||
(search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CROSS_C_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_CPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files '("lib" "lib64")))))
|
||||
(search-paths (cons (search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files '("lib" "lib64")))
|
||||
(map (lambda (variable)
|
||||
(search-path-specification
|
||||
(variable variable)
|
||||
(files '("include"))))
|
||||
%gcc-cross-include-paths)))
|
||||
(native-search-paths '())))
|
||||
|
||||
(define* (cross-kernel-headers target
|
||||
|
@ -344,10 +310,7 @@ (define xmig
|
|||
(let* ((mach (assoc-ref inputs "cross-gnumach-headers"))
|
||||
(cpath (string-append mach "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
'("CROSS_C_INCLUDE_PATH"
|
||||
"CROSS_CPLUS_INCLUDE_PATH"
|
||||
"CROSS_OBJC_INCLUDE_PATH"
|
||||
"CROSS_OBJCPLUS_INCLUDE_PATH"))))
|
||||
',%gcc-cross-include-paths)))
|
||||
%standard-phases)
|
||||
#:configure-flags (list ,(string-append "--target=" target))
|
||||
,@(package-arguments mig)))
|
||||
|
@ -362,7 +325,6 @@ (define xhurd-headers
|
|||
(name (string-append (package-name hurd-headers)
|
||||
"-cross-" target))
|
||||
|
||||
(propagated-inputs `(("cross-mig" ,xmig)))
|
||||
(native-inputs `(("cross-gcc" ,xgcc)
|
||||
("cross-binutils" ,xbinutils)
|
||||
("cross-mig" ,xmig)
|
||||
|
@ -388,10 +350,7 @@ (define xglibc/hurd-headers
|
|||
(cpath (string-append mach "/include:"
|
||||
hurd "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
'("CROSS_C_INCLUDE_PATH"
|
||||
"CROSS_CPLUS_INCLUDE_PATH"
|
||||
"CROSS_OBJC_INCLUDE_PATH"
|
||||
"CROSS_OBJCPLUS_INCLUDE_PATH"))))
|
||||
',%gcc-cross-include-paths)))
|
||||
,phases))))
|
||||
|
||||
(propagated-inputs `(("gnumach-headers" ,xgnumach-headers)
|
||||
|
@ -419,10 +378,7 @@ (define xhurd-minimal
|
|||
(let* ((glibc-headers (assoc-ref inputs "cross-glibc-hurd-headers"))
|
||||
(cpath (string-append glibc-headers "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
'("CROSS_C_INCLUDE_PATH"
|
||||
"CROSS_CPLUS_INCLUDE_PATH"
|
||||
"CROSS_OBJC_INCLUDE_PATH"
|
||||
"CROSS_OBJCPLUS_INCLUDE_PATH"))))
|
||||
',%gcc-cross-include-paths)))
|
||||
,phases))))
|
||||
|
||||
(inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)))
|
||||
|
@ -464,61 +420,69 @@ (define (cross-libc-for-target target)
|
|||
(_ glibc/linux)))
|
||||
|
||||
;; Use (cross-libc-for-target ...) to determine the correct libc to use.
|
||||
(let ((libc (cross-libc-for-target target)))
|
||||
(package (inherit libc)
|
||||
(name (string-append "glibc-cross-" target))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
`(;; Disable stripping (see above.)
|
||||
#:strip-binaries? #f
|
||||
|
||||
;; This package is used as a target input, but it should not have
|
||||
;; the usual cross-compilation inputs since that would include
|
||||
;; itself.
|
||||
#:implicit-cross-inputs? #f
|
||||
(if (cross-newlib? target)
|
||||
(native-libc target)
|
||||
(let ((libc (cross-libc-for-target target)))
|
||||
(package (inherit libc)
|
||||
(name (string-append "glibc-cross-" target))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
`(;; Disable stripping (see above.)
|
||||
#:strip-binaries? #f
|
||||
|
||||
;; We need SRFI 26.
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26))
|
||||
;; This package is used as a target input, but it should not have
|
||||
;; the usual cross-compilation inputs since that would include
|
||||
;; itself.
|
||||
#:implicit-cross-inputs? #f
|
||||
|
||||
,@(package-arguments libc))
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--host=" target)
|
||||
,flags))
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'configure 'set-cross-kernel-headers-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((kernel (assoc-ref inputs "kernel-headers"))
|
||||
(cpath (string-append kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
'("CROSS_C_INCLUDE_PATH"
|
||||
"CROSS_CPLUS_INCLUDE_PATH"
|
||||
"CROSS_OBJC_INCLUDE_PATH"
|
||||
"CROSS_OBJCPLUS_INCLUDE_PATH"))
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append kernel "/lib")) ;for Hurd's libihash
|
||||
#t))
|
||||
,phases))))
|
||||
;; We need SRFI 26.
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26))
|
||||
|
||||
;; Shadow the native "kernel-headers" because glibc's recipe expects the
|
||||
;; "kernel-headers" input to point to the right thing.
|
||||
(propagated-inputs `(("kernel-headers" ,xheaders)))
|
||||
,@(package-arguments libc))
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--host=" target)
|
||||
,flags))
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'configure 'set-cross-kernel-headers-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((kernel (assoc-ref inputs "kernel-headers"))
|
||||
(cpath (string-append kernel "/include")))
|
||||
(for-each (cut setenv <> cpath)
|
||||
',%gcc-cross-include-paths)
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append kernel "/lib")) ;for Hurd's libihash
|
||||
#t))
|
||||
,phases))))
|
||||
|
||||
;; FIXME: 'static-bash' should really be an input, not a native input, but
|
||||
;; to do that will require building an intermediate cross libc.
|
||||
(inputs '())
|
||||
;; Shadow the native "kernel-headers" because glibc's recipe expects the
|
||||
;; "kernel-headers" input to point to the right thing.
|
||||
(propagated-inputs `(("kernel-headers" ,xheaders)))
|
||||
|
||||
(native-inputs `(("cross-gcc" ,xgcc)
|
||||
("cross-binutils" ,xbinutils)
|
||||
,@(if (string-match (or "i586-pc-gnu" "i586-gnu") target)
|
||||
`(("cross-mig"
|
||||
,@(assoc-ref (package-native-inputs xheaders)
|
||||
"cross-mig")))
|
||||
'())
|
||||
,@(package-inputs libc) ;FIXME: static-bash
|
||||
,@(package-native-inputs libc))))))
|
||||
;; FIXME: 'static-bash' should really be an input, not a native input, but
|
||||
;; to do that will require building an intermediate cross libc.
|
||||
(inputs '())
|
||||
|
||||
(native-inputs `(("cross-gcc" ,xgcc)
|
||||
("cross-binutils" ,xbinutils)
|
||||
,@(if (string-match (or "i586-pc-gnu" "i586-gnu") target)
|
||||
`(("cross-mig"
|
||||
,@(assoc-ref (package-native-inputs xheaders)
|
||||
"cross-mig")))
|
||||
'())
|
||||
,@(package-inputs libc) ;FIXME: static-bash
|
||||
,@(package-native-inputs libc)))))))
|
||||
|
||||
(define (native-libc target)
|
||||
(if (target-mingw? target)
|
||||
mingw-w64
|
||||
glibc))
|
||||
|
||||
(define (cross-newlib? target)
|
||||
(not (eq? (native-libc target) glibc)))
|
||||
|
||||
|
||||
;;; Concrete cross tool chains are instantiated like this:
|
||||
|
|
|
@ -35,13 +35,7 @@ (define-public radicale
|
|||
"1c5lv8qca21mndkx350wxv34qypqh6gb4rhzms4anr642clq3jg2"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero? (system* "py.test")))))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
'(#:tests? #f)) ; The tests are not distributed in the PyPi release.
|
||||
(propagated-inputs
|
||||
;; TODO: Add python-pam
|
||||
`(("python-requests" ,python-requests)))
|
||||
|
|
|
@ -273,7 +273,7 @@ (define-public geiser
|
|||
"/geiser-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n772ysl1dmn0vy3gk230ymyjm14h93zw99y6h2rqp1ixy7v43dm"))))
|
||||
"0phz9d8wjk4p13vqannv0003fwh8qqrp0gfzcs2hgq1mrmv1srss"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
|
@ -298,36 +298,8 @@ (define-public geiser
|
|||
(license license:bsd-3)))
|
||||
|
||||
(define-public geiser-next
|
||||
;; Geiser's upcoming version supports Chibi and Chez, while it was forgot to
|
||||
;; include some required files in 0.9. When the next Geiser release comes
|
||||
;; out, we can remove this.
|
||||
(let ((commit "16035b9fa475496f7f89a57fa81455057af749a0")
|
||||
(revision "1"))
|
||||
(package
|
||||
(inherit geiser)
|
||||
(name "geiser-next")
|
||||
(version (string-append "0.9-" revision "." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(uri (git-reference
|
||||
(url "git://git.sv.gnu.org/geiser.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1rrafizrhjkai0msryjiz4c5dcdyihf0i2wmgiy8br74rwbxpyl5"))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("texinfo" ,texinfo)
|
||||
,@(package-native-inputs geiser)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments geiser)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(zero? (system* "sh" "autogen.sh")))))))))))
|
||||
;; This has become "geiser".
|
||||
(deprecated-package "geiser-next" geiser))
|
||||
|
||||
(define-public paredit
|
||||
(package
|
||||
|
@ -1442,7 +1414,7 @@ (define-public emacs-es-mode
|
|||
(define-public emacs-expand-region
|
||||
(package
|
||||
(name "emacs-expand-region")
|
||||
(version "0.10.0")
|
||||
(version "0.11.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1451,7 +1423,7 @@ (define-public emacs-expand-region
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zfiaqyb3zqiyqjkpqsjw660j09805nqsg25q6ars2h8gs0rnvxb"))))
|
||||
"08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/magnars/expand-region.el")
|
||||
(synopsis "Increase selected region by semantic units")
|
||||
|
|
|
@ -57,7 +57,7 @@ (define-module (gnu packages enlightenment)
|
|||
(define-public efl
|
||||
(package
|
||||
(name "efl")
|
||||
(version "1.18.3")
|
||||
(version "1.18.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -65,7 +65,7 @@ (define-public efl
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1h347sfxajyb5s931m9qga14wwiqci7aicww2imxjhzm8w4fqj07"))))
|
||||
"09c0ajszjarcs6d62zlgnf1aha2f921mfr0gxg6nwza36xzc1srr"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -197,7 +197,7 @@ (define-public rage
|
|||
(define-public enlightenment
|
||||
(package
|
||||
(name "enlightenment")
|
||||
(version "0.21.3")
|
||||
(version "0.21.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -205,7 +205,7 @@ (define-public enlightenment
|
|||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ljzcq775njhbcaj8vdnypf2rgc6yqqdwfkf7c22603qvv9if1dr"))))
|
||||
"085zn6vdy904fxa9krx7ljv61yg96b2xk56g0bx2lyq1d33sgl8f"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--enable-mount-eeze")))
|
||||
|
|
|
@ -5688,3 +5688,39 @@ (define-public bluefish
|
|||
with many options to write web sites, scripts and other code.
|
||||
Bluefish supports many programming and markup languages.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public gnome-system-monitor
|
||||
(package
|
||||
(name "gnome-system-monitor")
|
||||
(version "3.20.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ya41b58syf8g5pc12gw1xm6jhdx3crap803bjwm086r7x2an8wv"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-mkenums.
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("libgtop" ,libgtop)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
|
||||
("gtk+" ,gtk+)
|
||||
("gtkmm" ,gtkmm)
|
||||
("librsvg" ,librsvg)
|
||||
("libxml2" ,libxml2)))
|
||||
(home-page "https://wiki.gnome.org/Apps/SystemMonitor")
|
||||
(synopsis "Process viewer and system resource monitor for GNOME")
|
||||
(description
|
||||
"GNOME System Monitor is a GNOME process viewer and system monitor with
|
||||
an attractive, easy-to-use interface. It has features, such as a tree view
|
||||
for process dependencies, icons for processes, the ability to hide processes,
|
||||
graphical time histories of CPU/memory/swap usage and the ability to
|
||||
kill/reinice processes.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -146,8 +146,8 @@ (define-public guile-2.0
|
|||
(native-inputs `(("pkgconfig" ,pkg-config)))
|
||||
(inputs `(("libffi" ,libffi)
|
||||
("readline" ,readline)
|
||||
("bash" ,bash)))
|
||||
|
||||
,@(libiconv-if-needed)
|
||||
,@(if (target-mingw?) '() `(("bash" ,bash)))))
|
||||
(propagated-inputs
|
||||
`( ;; These ones aren't normally needed here, but since `libguile-2.0.la'
|
||||
;; reads `-lltdl -lunistring', adding them here will add the needed
|
||||
|
@ -176,8 +176,15 @@ (define-public guile-2.0
|
|||
;; Tell (ice-9 popen) the file name of Bash.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "module/ice-9/popen.scm"
|
||||
;; If bash is #f allow fallback for user to provide
|
||||
;; "bash" in PATH. This happens when cross-building to
|
||||
;; MinGW for which we do not have Bash yet.
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash")))))
|
||||
,@(if (target-mingw?)
|
||||
'((if bash
|
||||
(string-append bash "/bin/bash")
|
||||
"bash"))
|
||||
'((string-append bash "/bin/bash")))))))
|
||||
%standard-phases)))
|
||||
|
||||
(native-search-paths
|
||||
|
|
|
@ -43,14 +43,14 @@ (define-module (gnu packages imagemagick)
|
|||
(define-public imagemagick
|
||||
(package
|
||||
(name "imagemagick")
|
||||
(version "6.9.6-6")
|
||||
(version "6.9.6-7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02hd0xvpm99wrix2didg8xnra4fla04y9vaks2vnijry3l0gxlcw"))))
|
||||
"1ls3g4gpdh094n03szr9arpr0rfwd1krv2s9gnck8j0ab10ccgs5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
|
||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,9 +32,11 @@ (define-module (gnu packages irc)
|
|||
#:use-module (gnu packages autogen)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -47,6 +49,7 @@ (define-module (gnu packages irc)
|
|||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tls)
|
||||
|
@ -329,3 +332,91 @@ (define-public limnoria
|
|||
embedded web server, translations (fr, fi, it, hu, de), and many
|
||||
other enhancements and bug fixes.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public epic5
|
||||
(package
|
||||
(name "epic5")
|
||||
(version "2.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ftp.epicsol.org/pub/"
|
||||
"epic/EPIC5-PRODUCTION/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-perl
|
||||
(lambda _
|
||||
(substitute* "regress/crash-irc"
|
||||
(("perl5") (which "perl")))
|
||||
#t))
|
||||
(add-after 'unpack 'patch-bsdinstall
|
||||
;; If we just remove /bin/ some part of the bsdinstall breaks.
|
||||
;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
|
||||
;; means if we leave /etc/ in, install fails.
|
||||
(lambda _
|
||||
(substitute* "bsdinstall"
|
||||
(("/bin/strip") "strip")
|
||||
(("/bin/cp") "cp")
|
||||
(("/bin/chmod") "chmod")
|
||||
(("/bin/chgrp") "chgrp")
|
||||
(("/bin/mkdir") "mkdir")
|
||||
(("/bin/rm") "rm")
|
||||
(("/bin/mv") "mv")
|
||||
(("/etc/") ""))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; The tarball uses a very old version of autconf. It does not
|
||||
;; understand extra flags like `--enable-fast-install', so
|
||||
;; we need to invoke it with just what it understands.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; 'configure' doesn't understand '--host'.
|
||||
,@(if (%current-target-system)
|
||||
`((setenv "CHOST" ,(%current-target-system)))
|
||||
'())
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(setenv "SHELL" (which "bash"))
|
||||
(zero?
|
||||
(system* "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
"--with-ipv6" "--with-libarchive"
|
||||
;; We use libressl because openssl does not come
|
||||
;; with the lib/libssl.a which is needed for epic5.
|
||||
;; XXX: No matter which implementation is chosen,
|
||||
;; epic5 fails to connect to tls ports of roundrobin
|
||||
;; irc networks. This however is believed to be an
|
||||
;; protocol issue at epic5 related to ircd.
|
||||
(string-append "--with-ssl="
|
||||
(assoc-ref %build-inputs "libressl"))
|
||||
(string-append "--with-tcl="
|
||||
(assoc-ref %build-inputs "tcl")
|
||||
"/lib/tclConfig.sh")))))))))
|
||||
(inputs
|
||||
`(("libressl" ,libressl)
|
||||
("ncurses" ,ncurses)
|
||||
("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
|
||||
("perl" ,perl)
|
||||
("tcl" ,tcl)
|
||||
("ruby" ,ruby)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://epicsol.org")
|
||||
(synopsis "Epic5 IRC Client")
|
||||
(description
|
||||
"EPIC is a IRC client that has been under active development for
|
||||
over 20 years. It is stable and mature, and offers an excellent ircII
|
||||
interface for those who are accustomed to the ircII way of doing things.")
|
||||
(license (list license:bsd-3
|
||||
license:isc
|
||||
license:bsd-4
|
||||
;; The epic license is equal to the standard three-clause
|
||||
;; BSD license except that you are not permitted to remove the
|
||||
;; "Redistribution is permitted" clause of the license if you
|
||||
;; distribute binaries.
|
||||
license:non-copyleft "http://epicsol.org/copyright"))))
|
||||
|
|
|
@ -820,14 +820,16 @@ (define-public libreoffice
|
|||
(("./configure") "$(CONFIG_SHELL) ./configure" ))
|
||||
#t)))
|
||||
(add-after 'install 'bin-install
|
||||
;; Create a symlink bin/soffice to the executable script.
|
||||
;; Create 'soffice' and 'libreoffice' symlinks to the executable
|
||||
;; script.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(bin (string-append out "/bin"))
|
||||
(soffice (string-append
|
||||
out "/lib/libreoffice/program/soffice")))
|
||||
(mkdir bin)
|
||||
(symlink
|
||||
(string-append out "/lib/libreoffice/program/soffice")
|
||||
(string-append bin "/soffice")))
|
||||
(symlink soffice (string-append bin "/soffice"))
|
||||
(symlink soffice (string-append bin "/libreoffice")))
|
||||
#t)))
|
||||
#:configure-flags
|
||||
(list
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,7 +22,8 @@ (define-module (gnu packages libunistring)
|
|||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages base))
|
||||
|
||||
(define-public libunistring
|
||||
(package
|
||||
|
@ -35,7 +37,7 @@ (define-public libunistring
|
|||
(sha256
|
||||
(base32
|
||||
"0ixxmgpgh2v8ifm6hbwsjxl023myk3dfnj7wnvmqjivza31fw9cn"))))
|
||||
(propagated-inputs '()) ; FIXME: add libiconv when !glibc
|
||||
(propagated-inputs (libiconv-if-needed))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; Work around parallel build issue whereby C files may be compiled before
|
||||
|
|
|
@ -33,13 +33,13 @@ (define-module (gnu packages links)
|
|||
(define-public links
|
||||
(package
|
||||
(name "links")
|
||||
(version "2.13")
|
||||
(version "2.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://links.twibright.com/download/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "01a4mbpvf7450ymqarjkpmzrm0z2zyd9lvqwg7x9kcd36i9hjln2"))))
|
||||
(base32 "1f24y83wa1vzzjq5kp857gjqdpnmf8pb29yw7fam0m8wxxw0c3gp"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -2563,55 +2563,21 @@ (define-public bluez
|
|||
(define-public fuse-exfat
|
||||
(package
|
||||
(name "fuse-exfat")
|
||||
(version "1.1.0")
|
||||
(version "1.2.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri "https://docs.google.com/uc?export=download&\
|
||||
id=0B7CLI-REKbE3VTdaa0EzTkhYdU0")
|
||||
(uri (string-append
|
||||
"https://github.com/relan/exfat/releases/download/v"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0glmgwrf0nv09am54i6s35ksbvrywrwc51w6q32mv5by8475530r"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
"1i0sh0s6wnm4dqxli3drva871wgbbm57qjf592vnswna9hc6bvim"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("scons" ,scons)
|
||||
("pkg-config" ,pkg-config)))
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("fuse" ,fuse)))
|
||||
(arguments
|
||||
'(#:tests? #f ;no test suite
|
||||
|
||||
;; XXX: Factorize with 'exfat-utils'.
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'scons-propagate-environment
|
||||
(lambda _
|
||||
;; Modify the SConstruct file to arrange for
|
||||
;; environment variables to be propagated.
|
||||
(substitute* "SConstruct"
|
||||
(("^env = Environment\\(")
|
||||
"env = Environment(ENV=os.environ, "))))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(zero? (system* "scons"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man8 (string-append out
|
||||
"/share/man/man8")))
|
||||
(mkdir-p bin)
|
||||
(mkdir-p man8)
|
||||
(for-each (lambda (file)
|
||||
(copy-file
|
||||
file
|
||||
(string-append man8 "/"
|
||||
(basename file))))
|
||||
(find-files "." "\\.8$"))
|
||||
(zero? (system* "scons" "install"
|
||||
(string-append "DESTDIR="
|
||||
bin)))))))))
|
||||
(home-page "http://code.google.com/p/exfat/")
|
||||
(home-page "https://github.com/relan/exfat")
|
||||
(synopsis "Mount exFAT file systems")
|
||||
(description
|
||||
"This package provides a FUSE-based file system that provides read and
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
|
||||
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,6 +28,7 @@ (define-module (gnu packages lua)
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages readline)
|
||||
|
@ -365,3 +367,37 @@ (define-public lua-lgi
|
|||
based libraries. It allows using GObject-based libraries directly from Lua.
|
||||
Notable examples are GTK+, GStreamer and Webkit.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public lua-lpeg
|
||||
(package
|
||||
(name "lua-lpeg")
|
||||
(version "1.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "13mz18s359wlkwm9d9iqlyyrrwjc6iqfpa99ai0icam2b3khl68h"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
;; `make install` isn't available, so we have to do it manually
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(lua-version ,(version-major+minor (package-version lua))))
|
||||
(install-file "lpeg.so"
|
||||
(string-append out "/lib/lua/" lua-version))
|
||||
(install-file "re.lua"
|
||||
(string-append out "/share/lua/" lua-version))
|
||||
#t))))
|
||||
#:test-target "test"))
|
||||
(inputs `(("lua", lua)))
|
||||
(synopsis "Pattern-matching library for Lua")
|
||||
(description
|
||||
"LPeg is a pattern-matching library for Lua, based on Parsing Expression
|
||||
Grammars (PEGs).")
|
||||
(home-page "http://www.inf.puc-rio.br/~roberto/lpeg")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -453,7 +453,7 @@ (define-public mu
|
|||
(define-public alot
|
||||
(package
|
||||
(name "alot")
|
||||
(version "0.3.7")
|
||||
(version "0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; package author intends on distributing via github rather
|
||||
|
@ -464,12 +464,12 @@ (define-public alot
|
|||
(file-name (string-append "alot-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09md9llg38r6xby8l0y0zf8nhlh91cr4xs0r15b294hhp8hl2bgx"))))
|
||||
"0sl1kl2fhkv208llnbny4blcvrfdk4vx6bcw5pnyh9ylwb0pipi2"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
;; python 3 is unsupported, more info:
|
||||
;; https://github.com/pazz/alot/blob/0.3.7/docs/source/faq.rst
|
||||
;; python 3 is currently unsupported, more info:
|
||||
;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
|
||||
#:python ,python-2))
|
||||
(inputs
|
||||
`(("python2-magic" ,python2-magic)
|
||||
|
@ -933,15 +933,15 @@ (define-public exim
|
|||
(define-public dovecot
|
||||
(package
|
||||
(name "dovecot")
|
||||
(version "2.2.26.0")
|
||||
(version "2.2.27")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.dovecot.org/releases/"
|
||||
(uri (string-append "https://www.dovecot.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"01bgj8b2whi35ghbxb19nmr3xvx2zgjzxxw1crgx2v73kprs34pn"))))
|
||||
"1s8qvr6fa9d0n179kdwgpsi72zkvpbh9q57q8fr2fjysgjl94zw9"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -973,7 +973,7 @@ (define-public dovecot
|
|||
(("/bin/cat") (which "cat"))
|
||||
(("/bin/false") (which "false")))
|
||||
#t)))))
|
||||
(home-page "http://www.dovecot.org")
|
||||
(home-page "https://www.dovecot.org")
|
||||
(synopsis "Secure POP3/IMAP server")
|
||||
(description
|
||||
"Dovecot is a mail server whose major goals are security and reliability.
|
||||
|
|
|
@ -32,6 +32,7 @@ (define-module (gnu packages make-bootstrap)
|
|||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -332,61 +333,39 @@ (define %binutils-static-stripped
|
|||
#t))))
|
||||
(inputs `(("binutils" ,%binutils-static)))))
|
||||
|
||||
(define %glibc-stripped
|
||||
(define (%glibc-stripped)
|
||||
;; GNU libc's essential shared libraries, dynamic linker, and headers,
|
||||
;; with all references to store directories stripped. As a result,
|
||||
;; libc.so is unusable and need to be patched for proper relocation.
|
||||
(define (hurd-triplet? triplet)
|
||||
(and (string-suffix? "-gnu" triplet)
|
||||
(not (string-contains triplet "linux"))))
|
||||
|
||||
(let ((glibc (glibc-for-bootstrap)))
|
||||
(package (inherit glibc)
|
||||
(name "glibc-stripped")
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build make-bootstrap))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(libdir (string-append out "/lib"))
|
||||
(incdir (string-append out "/include"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(linux (assoc-ref %build-inputs "kernel-headers")))
|
||||
(mkdir-p libdir)
|
||||
(for-each (lambda (file)
|
||||
(let ((target (string-append libdir "/"
|
||||
(basename file))))
|
||||
(copy-file file target)
|
||||
(remove-store-references target)))
|
||||
(find-files (string-append libc "/lib")
|
||||
"^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$"))
|
||||
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
||||
;; Copy some of the Linux-Libre headers that glibc headers
|
||||
;; refer to.
|
||||
(mkdir (string-append incdir "/linux"))
|
||||
(for-each (lambda (file)
|
||||
(copy-file (string-append linux "/include/linux/" file)
|
||||
(string-append incdir "/linux/"
|
||||
(basename file))))
|
||||
'("limits.h" "errno.h" "socket.h" "kernel.h"
|
||||
"sysctl.h" "param.h" "ioctl.h" "types.h"
|
||||
"posix_types.h" "stddef.h"))
|
||||
|
||||
(copy-recursively (string-append linux "/include/asm")
|
||||
(string-append incdir "/asm"))
|
||||
(copy-recursively (string-append linux "/include/asm-generic")
|
||||
(string-append incdir "/asm-generic"))
|
||||
|
||||
#t))))
|
||||
(inputs `(("libc" ,(let ((target (%current-target-system)))
|
||||
(use-modules (guix build make-bootstrap))
|
||||
(make-stripped-libc (assoc-ref %outputs "out")
|
||||
(assoc-ref %build-inputs "libc")
|
||||
(assoc-ref %build-inputs "kernel-headers")))))
|
||||
(inputs `(("kernel-headers"
|
||||
,(if (or (and (%current-target-system)
|
||||
(hurd-triplet? (%current-target-system)))
|
||||
(string-suffix? "-hurd" (%current-system)))
|
||||
gnumach-headers
|
||||
linux-libre-headers))
|
||||
("libc" ,(let ((target (%current-target-system)))
|
||||
(if target
|
||||
(glibc-for-bootstrap
|
||||
(parameterize ((%current-target-system #f))
|
||||
(cross-libc target)))
|
||||
glibc)))
|
||||
("kernel-headers" ,linux-libre-headers)))
|
||||
glibc)))))
|
||||
|
||||
;; Only one output.
|
||||
(outputs '("out")))))
|
||||
|
@ -647,9 +626,9 @@ (define %binutils-bootstrap-tarball
|
|||
;; A tarball with the statically-linked Binutils programs.
|
||||
(tarball-package %binutils-static-stripped))
|
||||
|
||||
(define %glibc-bootstrap-tarball
|
||||
(define (%glibc-bootstrap-tarball)
|
||||
;; A tarball with GNU libc's shared libraries, dynamic linker, and headers.
|
||||
(tarball-package %glibc-stripped))
|
||||
(tarball-package (%glibc-stripped)))
|
||||
|
||||
(define %gcc-bootstrap-tarball
|
||||
;; A tarball with a dynamic-linked GCC and its headers.
|
||||
|
@ -689,7 +668,7 @@ (define %bootstrap-tarballs
|
|||
(inputs `(("guile-tarball" ,%guile-bootstrap-tarball)
|
||||
("gcc-tarball" ,%gcc-bootstrap-tarball)
|
||||
("binutils-tarball" ,%binutils-bootstrap-tarball)
|
||||
("glibc-tarball" ,%glibc-bootstrap-tarball)
|
||||
("glibc-tarball" ,(%glibc-bootstrap-tarball))
|
||||
("coreutils&co-tarball" ,%bootstrap-binaries-tarball)))
|
||||
(synopsis "Tarballs containing all the bootstrap binaries")
|
||||
(description synopsis)
|
||||
|
|
84
gnu/packages/mingw.scm
Normal file
84
gnu/packages/mingw.scm
Normal file
|
@ -0,0 +1,84 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 mingw)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages cross-base)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define %mingw-triplet
|
||||
"i686-w64-mingw32")
|
||||
|
||||
(define-public mingw-w64
|
||||
(package
|
||||
(name "mingw-w64")
|
||||
(version "5.0-rc2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://sourceforge.net/projects/mingw-w64/files/mingw-w64/"
|
||||
"mingw-w64-release/mingw-w64-v" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "0imdary8j07if8ih73pfgxiclpf2ax8h3mz8mxln07i8sbbd30c9"))
|
||||
(patches (search-patches "mingw-w64-5.0rc2-gcc-4.9.3.patch"))))
|
||||
(native-inputs `(("xgcc-core" ,(cross-gcc %mingw-triplet))
|
||||
("xbinutils" ,(cross-binutils %mingw-triplet))))
|
||||
(build-system gnu-build-system)
|
||||
(search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CROSS_C_INCLUDE_PATH")
|
||||
(files '("include" "i686-w64-mingw32/include")))
|
||||
(search-path-specification
|
||||
(variable "CROSS_LIBRARY_PATH")
|
||||
(files
|
||||
'("lib" "lib64" "i686-w64-mingw32/lib" "i686-w64-mingw32/lib64")))))
|
||||
(arguments
|
||||
`(#:configure-flags '("--host=i686-w64-mingw32")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'setenv
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((xgcc-core (assoc-ref inputs "xgcc-core"))
|
||||
(mingw-headers (string-append (getcwd) "/mingw-w64-headers")))
|
||||
(setenv "CPP"
|
||||
(string-append xgcc-core "/bin/i686-w64-mingw32-cpp"))
|
||||
(setenv "CROSS_C_INCLUDE_PATH"
|
||||
(string-append
|
||||
mingw-headers
|
||||
":" mingw-headers "/include"
|
||||
":" mingw-headers "/crt"
|
||||
":" mingw-headers "/defaults/include"
|
||||
":" mingw-headers "/direct-x/include"))))))
|
||||
#:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
|
||||
#:tests? #f ; compiles and includes glibc headers
|
||||
#:strip-binaries? #f))
|
||||
(home-page "http://mingw.org")
|
||||
(synopsis "Minimalist GNU for Windows")
|
||||
(description "MinGW provides a complete Open Source programming tool set
|
||||
which is suitable for the development of native MS-Windows applications, and
|
||||
which does not depend on any 3rd-party C-Runtime dlls.")
|
||||
(license license:fdl1.3+)))
|
|
@ -49,7 +49,7 @@ (define-public mtools
|
|||
(define-public exfat-utils
|
||||
(package
|
||||
(name "exfat-utils")
|
||||
(version "1.2.4")
|
||||
(version "1.2.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -57,7 +57,7 @@ (define-public exfat-utils
|
|||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04dvrdmwmj9ggad8aq6inbjcq2yi9i62z42nnivhk7bb84k1k9ba"))))
|
||||
"1qhvjd6dmzhxjdnm4cklajbr03wsjjvkxrsjij517a33napcl93s"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://github.com/relan/exfat")
|
||||
(synopsis "Utilities to manipulate exFAT file systems")
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -49,7 +50,13 @@ (define-public gmp
|
|||
'(;; Build a "fat binary", with routines for several
|
||||
;; sub-architectures.
|
||||
"--enable-fat"
|
||||
"--enable-cxx")))
|
||||
"--enable-cxx"
|
||||
,@(cond ((target-mingw?)
|
||||
;; Static and shared cannot be built in one go:
|
||||
;; they produce different headers. We need shared.
|
||||
`("--disable-static"
|
||||
"--enable-shared"))
|
||||
(else '())))))
|
||||
(synopsis "Multiple-precision arithmetic library")
|
||||
(description
|
||||
"GMP is a library for arbitrary precision arithmetic, operating on
|
||||
|
|
|
@ -1498,7 +1498,7 @@ (define-public drumstick
|
|||
(define-public zynaddsubfx
|
||||
(package
|
||||
(name "zynaddsubfx")
|
||||
(version "3.0.0")
|
||||
(version "3.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1506,7 +1506,7 @@ (define-public zynaddsubfx
|
|||
version "/zynaddsubfx-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p640hlw28264nzrnd2lm4bi5snas4fvh80p8lpxvph2hjw3sncl"))))
|
||||
"1qijvlbv41lnqaqbp6gh1i42xzf1syviyxz8wr39xbz55cw7y0d8"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -1711,7 +1711,17 @@ (define-public ams-lv2
|
|||
(base32
|
||||
"1392spswkhfd38fggf584wb3m8aqpg7csfrs9zxnzyvhgmp0fgqk"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments `(#:tests? #f)) ; no tests
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-sse-flags
|
||||
(lambda* (#:key system #:allow-other-keys)
|
||||
(when (not (or (string-prefix? "x86_64" system)
|
||||
(string-prefix? "i686" system)))
|
||||
(substitute* "wscript"
|
||||
(("'-msse', '-mfpmath=sse', ") ""))
|
||||
#t))))
|
||||
#:tests? #f)) ; no tests
|
||||
(inputs
|
||||
`(("lv2" ,lv2)
|
||||
("lvtk" ,lvtk)
|
||||
|
@ -2566,6 +2576,68 @@ (define-public ingen
|
|||
develop custom plugins for use in other applications without programming.")
|
||||
(license license:agpl3+))))
|
||||
|
||||
(define-public qmidiarp
|
||||
(package
|
||||
(name "qmidiarp")
|
||||
(version "0.6.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/qmidiarp/qmidiarp/"
|
||||
version "/qmidiarp-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gkfv8ajgf86kbn6j5ilfc1zlz17gdi9yxzywqd6jwff4xlm75hx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--enable-qt5"
|
||||
"CXXFLAGS=-std=gnu++11")))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-1)
|
||||
("liblo" ,liblo)
|
||||
("lv2" ,lv2)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)))
|
||||
(home-page "http://qmidiarp.sourceforge.net/")
|
||||
(synopsis "MIDI arpeggiator")
|
||||
(description "QMidiArp is an advanced MIDI arpeggiator, programmable step
|
||||
sequencer and LFO. It can hold any number of arpeggiator, sequencer, or LFO
|
||||
modules running in parallel.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public seq24
|
||||
(package
|
||||
(name "seq24")
|
||||
(version "0.9.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://launchpad.net/seq24/trunk/"
|
||||
version "/+download/seq24-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"12dphdhnvfk1k0vmagi1v2lhyxjyj1j3cz6ksjw0ydcvid1x8ap2"))
|
||||
(patches (search-patches "seq24-rename-mutex.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "CXXFLAGS=-std=gnu++11")))
|
||||
(inputs
|
||||
`(("gtkmm" ,gtkmm-2)
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-1)
|
||||
("lash" ,lash)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://edge.launchpad.net/seq24/")
|
||||
(synopsis "Real-time MIDI sequencer")
|
||||
(description "Seq24 is a real-time MIDI sequencer. It was created to
|
||||
provide a very simple interface for editing and playing MIDI loops.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public python-discogs-client
|
||||
(package
|
||||
(name "python-discogs-client")
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,6 +22,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
|
@ -28,121 +30,146 @@ (define-module (gnu packages ncurses)
|
|||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages swig))
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public ncurses
|
||||
(let ((patch-makefile-phase
|
||||
'(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile.in"))))
|
||||
(configure-phase
|
||||
;; The 'configure' script does not understand '--docdir', so we must
|
||||
;; override that and use '--mandir' instead.
|
||||
'(lambda* (#:key build target outputs configure-flags
|
||||
#:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(zero? (apply system* "./configure"
|
||||
(string-append "SHELL=" (which "sh"))
|
||||
(string-append "--build=" build)
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--mandir=" doc "/share/man")
|
||||
(if target
|
||||
(cons (string-append "--host=" target)
|
||||
configure-flags)
|
||||
configure-flags))))))
|
||||
(remove-shebang-phase
|
||||
'(lambda _
|
||||
;; To avoid retaining a reference to the bootstrap Bash via the
|
||||
;; shebang of the 'ncursesw6-config' script, simply remove that
|
||||
;; shebang: it'll work just as well without it. Likewise, do not
|
||||
;; retain a reference to the "doc" output.
|
||||
(substitute* "misc/ncurses-config.in"
|
||||
(("#!@SHELL@")
|
||||
"# No shebang here, use /bin/sh!\n")
|
||||
(("@SHELL@ \\$0")
|
||||
"$0")
|
||||
(("mandir=.*$")
|
||||
"mandir=share/man"))
|
||||
#t))
|
||||
(post-install-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; When building a wide-character (Unicode) build, create backward
|
||||
;; compatibility links from the the "normal" libraries to the
|
||||
;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(for-each (lambda (lib)
|
||||
(define libw.a
|
||||
(string-append "lib" lib "w.a"))
|
||||
(define lib.a
|
||||
(string-append "lib" lib ".a"))
|
||||
(define libw.so.x
|
||||
(string-append "lib" lib "w.so.6"))
|
||||
(define lib.so.x
|
||||
(string-append "lib" lib ".so.6"))
|
||||
(define lib.so
|
||||
(string-append "lib" lib ".so"))
|
||||
|
||||
(when (file-exists? libw.a)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw.a lib.a)
|
||||
(symlink libw.so.x lib.so.x)
|
||||
(false-if-exception (delete-file lib.so))
|
||||
(call-with-output-file lib.so
|
||||
(lambda (p)
|
||||
(format p "INPUT (-l~aw)~%" lib)))))
|
||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||
(package
|
||||
(name "ncurses")
|
||||
(version "6.0")
|
||||
(source (origin
|
||||
(package
|
||||
(name "ncurses")
|
||||
(version "6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ncurses/ncurses-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;1 MiB of man pages
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
`("--with-shared" "--without-debug" "--enable-widec"
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;1 MiB of man pages
|
||||
(arguments
|
||||
(let ((patch-makefile-phase
|
||||
'(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile.in"))))
|
||||
(configure-phase
|
||||
;; The 'configure' script does not understand '--docdir', so we must
|
||||
;; override that and use '--mandir' instead.
|
||||
'(lambda* (#:key build target outputs configure-flags
|
||||
#:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(zero? (apply system* "./configure"
|
||||
(string-append "SHELL=" (which "sh"))
|
||||
(string-append "--build=" build)
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--mandir=" doc "/share/man")
|
||||
(if target
|
||||
(cons (string-append "--host=" target)
|
||||
configure-flags)
|
||||
configure-flags))))))
|
||||
(remove-shebang-phase
|
||||
'(lambda _
|
||||
;; To avoid retaining a reference to the bootstrap Bash via the
|
||||
;; shebang of the 'ncursesw6-config' script, simply remove that
|
||||
;; shebang: it'll work just as well without it. Likewise, do not
|
||||
;; retain a reference to the "doc" output.
|
||||
(substitute* "misc/ncurses-config.in"
|
||||
(("#!@SHELL@")
|
||||
"# No shebang here, use /bin/sh!\n")
|
||||
(("@SHELL@ \\$0")
|
||||
"$0")
|
||||
(("mandir=.*$")
|
||||
"mandir=share/man"))
|
||||
#t))
|
||||
(post-install-phase
|
||||
`(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; When building a wide-character (Unicode) build, create backward
|
||||
;; compatibility links from the the "normal" libraries to the
|
||||
;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
|
||||
,@(if (target-mingw?)
|
||||
'( ;; TODO: create .la files to link to the .dll?
|
||||
(with-directory-excursion (string-append out "/bin")
|
||||
(for-each
|
||||
(lambda (lib)
|
||||
(define lib.dll
|
||||
(string-append "lib" lib ".dll"))
|
||||
(define libw6.dll
|
||||
(string-append "lib" lib "w6.dll"))
|
||||
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||
"/include")
|
||||
"--enable-overwrite" ;really honor --includedir
|
||||
(when (file-exists? libw6.dll)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw6.dll lib.dll)))
|
||||
'("curses" "ncurses" "form" "panel" "menu"))))
|
||||
'())
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(for-each (lambda (lib)
|
||||
(define libw.a
|
||||
(string-append "lib" lib "w.a"))
|
||||
(define lib.a
|
||||
(string-append "lib" lib ".a"))
|
||||
|
||||
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
||||
;; correct RUNPATH.
|
||||
,(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
|
||||
"/lib"))
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases (modify-phases %standard-phases
|
||||
(replace 'configure ,configure-phase)
|
||||
(add-after 'install 'post-install
|
||||
,post-install-phase)
|
||||
(add-before 'configure 'patch-makefile-SHELL
|
||||
,patch-makefile-phase)
|
||||
(add-after 'unpack 'remove-unneeded-shebang
|
||||
,remove-shebang-phase))))
|
||||
(self-native-input? #t) ; for `tic'
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "TERMINFO_DIRS")
|
||||
(files '("share/terminfo")))))
|
||||
(synopsis "Terminal emulation (termcap, terminfo) library")
|
||||
(description
|
||||
"GNU Ncurses is a library which provides capabilities to write text to
|
||||
,@(if (not (target-mingw?))
|
||||
'((define libw.so.x
|
||||
(string-append "lib" lib "w.so.6"))
|
||||
(define lib.so.x
|
||||
(string-append "lib" lib ".so.6"))
|
||||
(define lib.so
|
||||
(string-append "lib" lib ".so")))
|
||||
'())
|
||||
|
||||
(when (file-exists? libw.a)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw.a lib.a)
|
||||
,@(if (not (target-mingw?))
|
||||
'((symlink libw.so.x lib.so.x)
|
||||
(false-if-exception (delete-file lib.so))
|
||||
(call-with-output-file lib.so
|
||||
(lambda (p)
|
||||
(format p "INPUT (-l~aw)~%" lib))))
|
||||
'())))
|
||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||
`(#:configure-flags
|
||||
,(cons*
|
||||
'quasiquote
|
||||
`(("--with-shared" "--without-debug" "--enable-widec"
|
||||
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(list 'unquote '(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||
"/include"))
|
||||
"--enable-overwrite" ;really honor --includedir
|
||||
|
||||
;; Make sure programs like 'tic', 'reset', and 'clear' have a
|
||||
;; correct RUNPATH.
|
||||
,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out")
|
||||
"/lib"))
|
||||
;; MinGW: Use term-driver created for the MinGW port.
|
||||
,@(if (target-mingw?) '("--enable-term-driver") '()))))
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases (modify-phases %standard-phases
|
||||
(replace 'configure ,configure-phase)
|
||||
(add-after 'install 'post-install
|
||||
,post-install-phase)
|
||||
(add-before 'configure 'patch-makefile-SHELL
|
||||
,patch-makefile-phase)
|
||||
(add-after 'unpack 'remove-unneeded-shebang
|
||||
,remove-shebang-phase)))))
|
||||
(self-native-input? #t) ; for `tic'
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "TERMINFO_DIRS")
|
||||
(files '("share/terminfo")))))
|
||||
(synopsis "Terminal emulation (termcap, terminfo) library")
|
||||
(description
|
||||
"GNU Ncurses is a library which provides capabilities to write text to
|
||||
a terminal in a terminal-independent manner. It supports pads and color as
|
||||
well as multiple highlights and forms characters. It is typically used to
|
||||
implement user interfaces for command-line applications. The accompanying
|
||||
ncursesw library provides wide character support.")
|
||||
(license x11)
|
||||
(home-page "http://www.gnu.org/software/ncurses/"))))
|
||||
(license x11)
|
||||
(home-page "http://www.gnu.org/software/ncurses/")))
|
||||
|
||||
(define-public dialog
|
||||
(package
|
||||
|
|
|
@ -43,6 +43,14 @@ (define-public libtirpc
|
|||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remote-dangling-symlink
|
||||
(lambda _
|
||||
(substitute* '("man/netconfig.5"
|
||||
"man/getnetconfig.3t"
|
||||
"man/getnetpath.3t"
|
||||
"man/rpc.3t"
|
||||
"src/getnetconfig.c"
|
||||
"tirpc/netconfig.h")
|
||||
(("/etc/netconfig") (string-append %output "/etc/netconfig")))
|
||||
|
||||
;; Remove the dangling symlinks since it breaks the
|
||||
;; 'patch-source-shebangs' file tree traversal.
|
||||
(delete-file "INSTALL"))))))
|
||||
|
|
|
@ -226,9 +226,9 @@ (define guix-devel
|
|||
;;
|
||||
;; Note: use a very short commit id; with a longer one, the limit on
|
||||
;; hash-bang lines would be exceeded while running the tests.
|
||||
(let ((commit "463fb7d0c86fb9957c527272e6cec5ee23585366"))
|
||||
(let ((commit "8d125cfc2e5cb0825bb40893ec3e940f85f1b235"))
|
||||
(package (inherit guix-0.11.0)
|
||||
(version (string-append "0.11.0-5." (string-take commit 4)))
|
||||
(version (string-append "0.11.0-8." (string-take commit 4)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -238,7 +238,7 @@ (define guix-devel
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0k74j6m5hy055knirnry75qrgph4zywypxjyaqv6saixb6yx7av3"))
|
||||
"0h73m1zad67qqn7ygypcqscicvqj31wwkxsr85d5lr77v6bx7b6z"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guix-0.11.0)
|
||||
|
|
|
@ -45,7 +45,7 @@ (define-module (gnu packages parallel)
|
|||
(define-public parallel
|
||||
(package
|
||||
(name "parallel")
|
||||
(version "20161022")
|
||||
(version "20161122")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -53,7 +53,7 @@ (define-public parallel
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mz82chm5qav6h64rcckxzabr7w4ma0sjx61xav85x0swgcbjdsr"))))
|
||||
"0z5c4r35d926ac04ilaivx67cmflr1rsvmjb2ci7hmab948m0ng2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
11
gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch
Normal file
11
gnu/packages/patches/gcc-4.9.3-mingw-gthr-default.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/libgcc/config/i386/gthr-win32.h 2016-03-30 07:45:33.388684463 +0200
|
||||
+++ b/libgcc/config/i386/gthr-win32.h 2016-03-30 15:51:24.123896436 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
/* Make sure CONST_CAST2 (origin in system.h) is declared. */
|
||||
#ifndef CONST_CAST2
|
||||
-#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq)
|
||||
+#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)X)
|
||||
#endif
|
||||
|
||||
/* Windows32 threads specific definitions. The windows32 threading model
|
36
gnu/packages/patches/httpd-CVE-2016-8740.patch
Normal file
36
gnu/packages/patches/httpd-CVE-2016-8740.patch
Normal file
|
@ -0,0 +1,36 @@
|
|||
This patch applies against httpd-2.4.23 and shouldn't be needed in later releases
|
||||
http://openwall.com/lists/oss-security/2016/12/05/17
|
||||
Index: modules/http2/h2_stream.c
|
||||
===================================================================
|
||||
--- modules/http2/h2_stream.c (revision 1771866)
|
||||
+++ modules/http2/h2_stream.c (working copy)
|
||||
@@ -322,18 +322,18 @@
|
||||
HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE);
|
||||
}
|
||||
}
|
||||
- }
|
||||
-
|
||||
- if (h2_stream_is_scheduled(stream)) {
|
||||
- return h2_request_add_trailer(stream->request, stream->pool,
|
||||
- name, nlen, value, vlen);
|
||||
- }
|
||||
- else {
|
||||
- if (!input_open(stream)) {
|
||||
- return APR_ECONNRESET;
|
||||
+
|
||||
+ if (h2_stream_is_scheduled(stream)) {
|
||||
+ return h2_request_add_trailer(stream->request, stream->pool,
|
||||
+ name, nlen, value, vlen);
|
||||
}
|
||||
- return h2_request_add_header(stream->request, stream->pool,
|
||||
- name, nlen, value, vlen);
|
||||
+ else {
|
||||
+ if (!input_open(stream)) {
|
||||
+ return APR_ECONNRESET;
|
||||
+ }
|
||||
+ return h2_request_add_header(stream->request, stream->pool,
|
||||
+ name, nlen, value, vlen);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
218
gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
Normal file
218
gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch
Normal file
|
@ -0,0 +1,218 @@
|
|||
This patch includes
|
||||
|
||||
* mingw-w64-headers/include/winnt.h: compile fixes for1 gcc-4.9.3
|
||||
* mingw-w64-headers/crt/math.h: Likewise
|
||||
* mingw-w64-headers/crt/float.h (FLT_EPSILON,DBL_EPSILON,LDBL_EPSILON): Add
|
||||
symbols.
|
||||
* mingw-w64-headers/crt/stat.h (S_ISLNK,S_ISSOCK,S_ISUID,S_ISGID,S_ISLINK):
|
||||
Add symbols.
|
||||
(lstat): Add function.
|
||||
* mingw-w64-headers/crt/_mingw_stat64.h: Likewise
|
||||
* mingw-w64-headers/crt/stdlib.h (realpath): Add function.
|
||||
|
||||
Needed for building with gcc-4.9.3 and using with cross-libtool-2.4.6.
|
||||
|
||||
Upstream status: not yet presented upstream.
|
||||
|
||||
index 9c5cf87..74a8541 100644
|
||||
--- a/mingw-w64-crt/misc/dirname.c
|
||||
+++ b/mingw-w64-crt/misc/dirname.c
|
||||
@@ -29,6 +29,12 @@
|
||||
#define __cdecl /* this may not be defined. */
|
||||
#endif
|
||||
|
||||
+char *__cdecl
|
||||
+realpath(const char *name, char *resolved)
|
||||
+{
|
||||
+ return resolved ? strcpy (resolved, name) : strdup (name);
|
||||
+}
|
||||
+
|
||||
char * __cdecl
|
||||
dirname(char *path)
|
||||
{
|
||||
diff --git a/mingw-w64-headers/crt/_mingw_stat64.h b/mingw-w64-headers/crt/_mingw_stat64.h
|
||||
index 17e754c..7d2339b 100644
|
||||
--- a/mingw-w64-headers/crt/_mingw_stat64.h
|
||||
+++ b/mingw-w64-headers/crt/_mingw_stat64.h
|
||||
@@ -2,13 +2,17 @@
|
||||
|
||||
#ifdef _USE_32BIT_TIME_T
|
||||
#define _fstat32 _fstat
|
||||
+#define _lstat32 _lstat
|
||||
#define _stat32 _stat
|
||||
#define _wstat32 _wstat
|
||||
#define _fstat32i64 _fstati64
|
||||
+#define _lstat32i64 _lstati64
|
||||
#define _stat32i64 _stati64
|
||||
#define _wstat32i64 _wstati64
|
||||
#else
|
||||
#define _fstat _fstat64i32
|
||||
+#define _lstat _lstat64i32
|
||||
+#define _lstati64 _lstat64
|
||||
#define _fstati64 _fstat64
|
||||
#define _stat _stat64i32
|
||||
#define _stati64 _stat64
|
||||
diff --git a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
|
||||
index 5874f4e..bdf4ead 100644
|
||||
--- a/mingw-w64-headers/crt/float.h
|
||||
+++ b/mingw-w64-headers/crt/float.h
|
||||
@@ -22,6 +22,15 @@
|
||||
#if (__GNUC__ < 4)
|
||||
#error Corrupt install of gcc-s internal headers, or search order was changed.
|
||||
#else
|
||||
+
|
||||
+ /* From gcc-4.9.3 float.h. */
|
||||
+ #undef FLT_EPSILON
|
||||
+ #undef DBL_EPSILON
|
||||
+ #undef LDBL_EPSILON
|
||||
+ #define FLT_EPSILON __FLT_EPSILON__
|
||||
+ #define DBL_EPSILON __DBL_EPSILON__
|
||||
+ #define LDBL_EPSILON __LDBL_EPSILON__
|
||||
+
|
||||
/* #include_next <float_ginclude.h> */
|
||||
|
||||
/* Number of decimal digits, q, such that any floating-point number with q
|
||||
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
|
||||
index 1e970f4..99a332f 100644
|
||||
--- a/mingw-w64-headers/crt/math.h
|
||||
+++ b/mingw-w64-headers/crt/math.h
|
||||
@@ -216,6 +216,7 @@ extern "C" {
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if 0
|
||||
__CRT_INLINE long double __cdecl fabsl (long double x)
|
||||
{
|
||||
#ifdef __arm__
|
||||
@@ -226,6 +227,7 @@ extern "C" {
|
||||
return res;
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
__CRT_INLINE double __cdecl fabs (double x)
|
||||
{
|
||||
@@ -905,7 +907,7 @@ __mingw_choose_expr ( \
|
||||
/* 7.12.7.3 */
|
||||
extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
|
||||
extern float __cdecl hypotf (float x, float y);
|
||||
-#ifndef __CRT__NO_INLINE
|
||||
+#if 0 //ndef __CRT__NO_INLINE
|
||||
__CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
|
||||
#endif
|
||||
extern long double __cdecl hypotl (long double, long double);
|
||||
diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
|
||||
index dfc5ae4..6f0fee3 100644
|
||||
--- a/mingw-w64-headers/crt/stdlib.h
|
||||
+++ b/mingw-w64-headers/crt/stdlib.h
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <crtdefs.h>
|
||||
#include <limits.h>
|
||||
+#include <string.h>
|
||||
|
||||
#if defined (__USE_MINGW_ANSI_STDIO) && ((__USE_MINGW_ANSI_STDIO + 0) != 0) && !defined (__USE_MINGW_STRTOX)
|
||||
#define __USE_MINGW_STRTOX 1
|
||||
@@ -676,6 +677,8 @@ unsigned long __cdecl _lrotr(unsigned long,int);
|
||||
|
||||
#endif /* !__NO_ISOCEXT */
|
||||
|
||||
+char *__cdecl realpath (const char *name, char *resolved);
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
diff --git a/mingw-w64-headers/crt/sys/stat.h b/mingw-w64-headers/crt/sys/stat.h
|
||||
index ed60219..d88b4f1 100644
|
||||
--- a/mingw-w64-headers/crt/sys/stat.h
|
||||
+++ b/mingw-w64-headers/crt/sys/stat.h
|
||||
@@ -58,16 +58,21 @@ extern "C" {
|
||||
#include <_mingw_stat64.h>
|
||||
|
||||
#define _S_IFMT 0xF000
|
||||
+#define _S_IFLNK 0xA000
|
||||
+#define _S_IFSOCK 0xC000
|
||||
#define _S_IFDIR 0x4000
|
||||
#define _S_IFCHR 0x2000
|
||||
#define _S_IFIFO 0x1000
|
||||
#define _S_IFREG 0x8000
|
||||
+#define _S_ISUID 0x0400
|
||||
+#define _S_ISGID 0x0200
|
||||
#define _S_IREAD 0x0100
|
||||
#define _S_IWRITE 0x0080
|
||||
#define _S_IEXEC 0x0040
|
||||
|
||||
_CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
|
||||
_CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
|
||||
+ static inline int __cdecl _lstat32(const char *_Name,struct _stat32 *_Stat) {return _stat32(_Name, _Stat);}
|
||||
_CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
|
||||
_CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
|
||||
int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
|
||||
@@ -97,6 +102,9 @@ extern "C" {
|
||||
_CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
|
||||
_CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
|
||||
int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
|
||||
+ static inline int __cdecl _lstat64(const char *_Name,struct _stat64 *_Stat) {return _stat64(_Name, _Stat);}
|
||||
+ static inline int __cdecl _lstat32i64(const char *_Name,struct _stat32i64 *_Stat) {return _stat32i64(_Name, _Stat);}
|
||||
+ static inline int __cdecl _lstat64i32(const char *_Name,struct _stat64i32 *_Stat) {return _stat64i32(_Name, _Stat);}
|
||||
#ifndef __CRT__NO_INLINE
|
||||
__CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
|
||||
{
|
||||
@@ -132,6 +140,8 @@ extern "C" {
|
||||
#ifndef NO_OLDNAMES
|
||||
#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
|
||||
|
||||
+#define S_IFLNK _S_IFLNK
|
||||
+#define S_IFSOCK _S_IFSOCK
|
||||
#define S_IFMT _S_IFMT
|
||||
#define S_IFDIR _S_IFDIR
|
||||
#define S_IFCHR _S_IFCHR
|
||||
@@ -162,6 +172,11 @@ extern "C" {
|
||||
#define S_IXOTH (S_IXGRP >> 3)
|
||||
#define S_IRWXO (S_IRWXG >> 3)
|
||||
|
||||
+#define S_ISUID _S_ISUID
|
||||
+#define S_ISGID _S_ISGID
|
||||
+
|
||||
+#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
||||
+#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
|
||||
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
||||
@@ -174,6 +189,7 @@ extern "C" {
|
||||
int __cdecl stat(const char *_Filename,struct stat *_Stat);
|
||||
int __cdecl fstat(int _Desc,struct stat *_Stat);
|
||||
int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
|
||||
+static inline int __cdecl lstat(const char *_Filename,struct stat *_Stat){return stat(_Filename, _Stat);}
|
||||
|
||||
#ifndef __CRT__NO_INLINE
|
||||
#ifdef _USE_32BIT_TIME_T
|
||||
@@ -262,9 +278,11 @@ __CRT_INLINE int __cdecl
|
||||
|
||||
#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
|
||||
#ifdef _USE_32BIT_TIME_T
|
||||
+#define lstat _lstat32i64
|
||||
#define stat _stat32i64
|
||||
#define fstat _fstat32i64
|
||||
#else
|
||||
+#define lstat _lstat64
|
||||
#define stat _stat64
|
||||
#define fstat _fstat64
|
||||
#endif
|
||||
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
|
||||
index 52af29b..8626396 100644
|
||||
--- a/mingw-w64-headers/include/winnt.h
|
||||
+++ b/mingw-w64-headers/include/winnt.h
|
||||
@@ -6895,7 +6895,12 @@ __buildmemorybarrier()
|
||||
DWORD Reg : 3;
|
||||
DWORD R : 1;
|
||||
DWORD L : 1;
|
||||
+/* C is used as a const specifier */
|
||||
+#define save_C C
|
||||
+#undef C
|
||||
DWORD C : 1;
|
||||
+#define C save_C
|
||||
+#undef save_C
|
||||
DWORD StackAdjust : 10;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} DUMMYUNIONNAME;
|
28
gnu/packages/patches/readline-7.0-mingw.patch
Normal file
28
gnu/packages/patches/readline-7.0-mingw.patch
Normal file
|
@ -0,0 +1,28 @@
|
|||
Configure checks for chown; add missing shields in code.
|
||||
|
||||
Upstream status: not yet presented upstream.
|
||||
|
||||
--- readline-7.0/histfile.c.orig 2016-12-06 20:04:10.058901731 +0100
|
||||
+++ readline-7.0/histfile.c 2016-12-06 20:05:09.220083801 +0100
|
||||
@@ -610,8 +610,10 @@
|
||||
user is running this, it's a no-op. If the shell is running after sudo
|
||||
with a shared history file, we don't want to leave the history file
|
||||
owned by root. */
|
||||
+#if HAVE_CHOWN
|
||||
if (rv == 0 && exists)
|
||||
r = chown (filename, finfo.st_uid, finfo.st_gid);
|
||||
+#endif
|
||||
|
||||
xfree (filename);
|
||||
FREE (tempname);
|
||||
@@ -757,8 +759,10 @@
|
||||
user is running this, it's a no-op. If the shell is running after sudo
|
||||
with a shared history file, we don't want to leave the history file
|
||||
owned by root. */
|
||||
+#if HAVE_CHOWN
|
||||
if (rv == 0 && exists)
|
||||
mode = chown (histname, finfo.st_uid, finfo.st_gid);
|
||||
+#endif
|
||||
|
||||
FREE (histname);
|
||||
FREE (tempname);
|
124
gnu/packages/patches/seq24-rename-mutex.patch
Normal file
124
gnu/packages/patches/seq24-rename-mutex.patch
Normal file
|
@ -0,0 +1,124 @@
|
|||
The custom mutex definition in Seq24 clashes with the mutex defined in gtkmm.
|
||||
This patch renames the custom definition.
|
||||
|
||||
See https://bugs.launchpad.net/seq24/+bug/1647614 for upstream bug report.
|
||||
|
||||
diff --git a/src/midibus.h b/src/midibus.h
|
||||
index 2cdf8e8..1bb02bd 100644
|
||||
--- a/src/midibus.h
|
||||
+++ b/src/midibus.h
|
||||
@@ -90,7 +90,7 @@ class midibus
|
||||
|
||||
|
||||
/* locking */
|
||||
- mutex m_mutex;
|
||||
+ seq24mutex m_mutex;
|
||||
|
||||
/* mutex */
|
||||
void lock();
|
||||
@@ -208,7 +208,7 @@ class mastermidibus
|
||||
sequence *m_seq;
|
||||
|
||||
/* locking */
|
||||
- mutex m_mutex;
|
||||
+ seq24mutex m_mutex;
|
||||
|
||||
/* mutex */
|
||||
void lock();
|
||||
diff --git a/src/midibus_portmidi.h b/src/midibus_portmidi.h
|
||||
index 0119e9c..8c6a27a 100644
|
||||
--- a/src/midibus_portmidi.h
|
||||
+++ b/src/midibus_portmidi.h
|
||||
@@ -65,7 +65,7 @@ class midibus
|
||||
long m_lasttick;
|
||||
|
||||
/* locking */
|
||||
- mutex m_mutex;
|
||||
+ seq24mutex m_mutex;
|
||||
|
||||
/* mutex */
|
||||
void lock();
|
||||
@@ -164,7 +164,7 @@ class mastermidibus
|
||||
sequence *m_seq;
|
||||
|
||||
/* locking */
|
||||
- mutex m_mutex;
|
||||
+ seq24mutex m_mutex;
|
||||
|
||||
/* mutex */
|
||||
void lock();
|
||||
diff --git a/src/mutex.cpp b/src/mutex.cpp
|
||||
index b3f23fd..914114f 100644
|
||||
--- a/src/mutex.cpp
|
||||
+++ b/src/mutex.cpp
|
||||
@@ -20,23 +20,23 @@
|
||||
|
||||
#include "mutex.h"
|
||||
|
||||
-const pthread_mutex_t mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
|
||||
+const pthread_mutex_t seq24mutex::recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
|
||||
const pthread_cond_t condition_var::cond = PTHREAD_COND_INITIALIZER;
|
||||
|
||||
-mutex::mutex( )
|
||||
+seq24mutex::seq24mutex( )
|
||||
{
|
||||
m_mutex_lock = recmutex;
|
||||
}
|
||||
|
||||
void
|
||||
-mutex::lock( )
|
||||
+seq24mutex::lock( )
|
||||
{
|
||||
pthread_mutex_lock( &m_mutex_lock );
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
-mutex::unlock( )
|
||||
+seq24mutex::unlock( )
|
||||
{
|
||||
pthread_mutex_unlock( &m_mutex_lock );
|
||||
}
|
||||
diff --git a/src/mutex.h b/src/mutex.h
|
||||
index 399f8a3..4f1b867 100644
|
||||
--- a/src/mutex.h
|
||||
+++ b/src/mutex.h
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
-class mutex {
|
||||
+class seq24mutex {
|
||||
|
||||
private:
|
||||
|
||||
@@ -37,14 +37,14 @@ protected:
|
||||
|
||||
public:
|
||||
|
||||
- mutex();
|
||||
+ seq24mutex();
|
||||
|
||||
void lock();
|
||||
void unlock();
|
||||
|
||||
};
|
||||
|
||||
-class condition_var : public mutex {
|
||||
+class condition_var : public seq24mutex {
|
||||
|
||||
private:
|
||||
|
||||
diff --git a/src/sequence.h b/src/sequence.h
|
||||
index 2943946..9da8700 100644
|
||||
--- a/src/sequence.h
|
||||
+++ b/src/sequence.h
|
||||
@@ -153,7 +153,7 @@ class sequence
|
||||
long m_rec_vol;
|
||||
|
||||
/* locking */
|
||||
- mutex m_mutex;
|
||||
+ seq24mutex m_mutex;
|
||||
|
||||
/* used to idenfity which events are ours in the out queue */
|
||||
//unsigned char m_tag;
|
31
gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch
Normal file
31
gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
Fix out-of-bounds read in c_substitute():
|
||||
|
||||
http://seclists.org/oss-sec/2016/q4/612
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
|
||||
https://github.com/tcsh-org/tcsh/commit/6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596
|
||||
|
||||
From 6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596 Mon Sep 17 00:00:00 2001
|
||||
From: christos <christos>
|
||||
Date: Fri, 2 Dec 2016 16:59:28 +0000
|
||||
Subject: [PATCH] Fix out of bounds read (Brooks Davis) (reproduce by starting
|
||||
tcsh and hitting tab at the prompt)
|
||||
|
||||
---
|
||||
ed.chared.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ed.chared.c b/ed.chared.c
|
||||
index 1277e53..310393e 100644
|
||||
--- ed.chared.c
|
||||
+++ ed.chared.c
|
||||
@@ -750,7 +750,7 @@ c_substitute(void)
|
||||
/*
|
||||
* If we found a history character, go expand it.
|
||||
*/
|
||||
- if (HIST != '\0' && *p == HIST)
|
||||
+ if (p >= InputBuf && HIST != '\0' && *p == HIST)
|
||||
nr_exp = c_excl(p);
|
||||
else
|
||||
nr_exp = 0;
|
|
@ -64,7 +64,7 @@ (define gd-for-php
|
|||
(define-public php
|
||||
(package
|
||||
(name "php")
|
||||
(version "7.0.13")
|
||||
(version "7.0.14")
|
||||
(home-page "https://secure.php.net/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -72,7 +72,7 @@ (define-public php
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gzihbpcp51jc587gs1ryn59hsnr7vf5427dmcvdimvm77wsfyrm"))
|
||||
"12ccgbrfchgvmcfb88rcknq7xmrf19c5ysdr4v8jxk51j9izy78g"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(with-directory-excursion "ext"
|
||||
|
|
|
@ -3924,14 +3924,14 @@ (define-public python2-flask-babel
|
|||
(define-public python-sqlalchemy-utils
|
||||
(package
|
||||
(name "python-sqlalchemy-utils")
|
||||
(version "0.32.9")
|
||||
(version "0.32.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "SQLAlchemy-Utils" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zbmmh7n8m01ikizn2mj1mfwch26nsr1awv9mvskqry7av0mpy98"))))
|
||||
"1wghyvk73cmq3iqyg3fczw128fv2pan2v76m0xg1bw05h8fhvnk3"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)
|
||||
|
@ -4520,6 +4520,7 @@ (define-public python2-simplegeneric
|
|||
(package-with-python2 python-simplegeneric))
|
||||
|
||||
(define-public python-ipython-genutils
|
||||
;; TODO: This package is retired, check if can be removed, see description.
|
||||
(package
|
||||
(name "python-ipython-genutils")
|
||||
(version "0.1.0")
|
||||
|
@ -4536,7 +4537,13 @@ (define-public python-ipython-genutils
|
|||
(home-page "http://ipython.org")
|
||||
(synopsis "Vestigial utilities from IPython")
|
||||
(description
|
||||
"This package provides retired utilities from IPython.")
|
||||
"This package provides retired utilities from IPython. No packages
|
||||
outside IPython/Jupyter should depend on it.
|
||||
|
||||
This package shouldn't exist. It contains some common utilities shared by
|
||||
Jupyter and IPython projects during The Big Split. As soon as possible, those
|
||||
packages will remove their dependency on this, and this package will go
|
||||
away.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-ipython-genutils
|
||||
|
@ -4705,13 +4712,13 @@ (define-public python2-testpath
|
|||
(define-public python-ipython
|
||||
(package
|
||||
(name "python-ipython")
|
||||
(version "4.0.0")
|
||||
(version "4.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "ipython" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1npl8g6bfsff9j938ypx0q5fyzy2l8lp0jl8skjjj2zv0z27dlig"))))
|
||||
(base32 "1h2gp1p06sww9rzfkfzqy489bh47gj3910y2b1wdk3dcx1cqz4is"))))
|
||||
(build-system python-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(propagated-inputs
|
||||
|
@ -4844,14 +4851,14 @@ (define-public python2-isodate
|
|||
(define-public python-html5lib
|
||||
(package
|
||||
(name "python-html5lib")
|
||||
(version "1.0b8")
|
||||
(version "1.0b10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "html5lib" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lknq5j3nh11xrl268ks76zaj0gyzh34v94n5vbf6dk8llzxdx0q"))))
|
||||
"1yd068a5c00wd0ajq0hqimv7fd82lhrw0w3s01vbhy9bbd6xapqd"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six))) ; required to "import html5lib"
|
||||
|
@ -6859,10 +6866,28 @@ (define-public python-notebook
|
|||
(description
|
||||
"The Jupyter HTML notebook is a web-based notebook environment for
|
||||
interactive computing.")
|
||||
(properties `((python2-variant . ,(delay python2-notebook))))
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-notebook
|
||||
(package-with-python2 python-notebook))
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-notebook))))
|
||||
(package (inherit base)
|
||||
(native-inputs
|
||||
`(("python2-mock" ,python2-mock)
|
||||
,@(package-native-inputs base)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'disable-test-case
|
||||
;; The test requires network access to localhost. Curiously it
|
||||
;; fails with Python 2 only. Simply make the test-case return
|
||||
;; immediately.
|
||||
(lambda _
|
||||
(substitute*
|
||||
"notebook/services/nbconvert/tests/test_nbconvert_api.py"
|
||||
(("formats = self.nbconvert_api") "return #")))))))))))
|
||||
|
||||
(define-public python-widgetsnbextension
|
||||
(package
|
||||
|
@ -9153,9 +9178,8 @@ (define-public python-flask
|
|||
(propagated-inputs
|
||||
`(("python-itsdangerous" ,python-itsdangerous)
|
||||
("python-jinja2" ,python-jinja2)
|
||||
("python-click" ,python-click)
|
||||
("python-werkzeug" ,python-werkzeug)))
|
||||
(native-inputs
|
||||
`(("python-click" ,python-click)))
|
||||
(home-page "https://github.com/mitsuhiko/flask/")
|
||||
(synopsis "Microframework based on Werkzeug, Jinja2 and good intentions")
|
||||
(description "Flask is a micro web framework based on the Werkzeug toolkit
|
||||
|
@ -11801,3 +11825,52 @@ (define-public python-flask-restplus
|
|||
@code{python-flask-restful} but supports the @code{python-swagger}
|
||||
documentation builder.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-sadisplay
|
||||
(package
|
||||
(name "python-sadisplay")
|
||||
(version "0.4.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sadisplay" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zqad2fl7q26p090qmqgmxbm6iwgf9zij1w8da1g3wdgjj72ql05"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-sqlalchemy" ,python-sqlalchemy)))
|
||||
(native-inputs
|
||||
`(("python-nose" ,python-nose)))
|
||||
(home-page "https://bitbucket.org/estin/sadisplay")
|
||||
(synopsis "SQLAlchemy schema displayer")
|
||||
(description "This package provides a program to build Entity
|
||||
Relationship diagrams from a SQLAlchemy model (or directly from the
|
||||
database).")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-sadisplay
|
||||
(package-with-python2 python-sadisplay))
|
||||
|
||||
(define-public python-flask-restful-swagger
|
||||
(package
|
||||
(name "python-flask-restful-swagger")
|
||||
(version "0.19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "flask-restful-swagger" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16msl8hd5xjmj833bpy264v98cpl5hkw5bgl5gf5vgndxbv3rm6v"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-flask-restful" ,python-flask-restful)))
|
||||
(home-page "https://github.com/rantav/flask-restful-swagger")
|
||||
(synopsis "Extract Swagger specs from Flask-Restful projects")
|
||||
(description "This package lets you extract Swagger API documentation
|
||||
specs from your Flask-Restful projects.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-flask-restful-swagger
|
||||
(package-with-python2 python-flask-restful-swagger))
|
||||
|
|
|
@ -1015,13 +1015,19 @@ (define-public python-pyqt
|
|||
"."))
|
||||
(lib (string-append out "/lib/python"
|
||||
python-major+minor
|
||||
"/site-packages")))
|
||||
"/site-packages"))
|
||||
(stubs (string-append lib "/PyQt5")))
|
||||
(zero? (system* "python" "configure.py"
|
||||
"--confirm-license"
|
||||
"--bindir" bin
|
||||
"--destdir" lib
|
||||
"--designer-plugindir" designer
|
||||
"--qml-plugindir" qml
|
||||
; Where to install the PEP 484 Type Hints stub
|
||||
; files. Without this the stubs are tried to be
|
||||
; installed into the python package's
|
||||
; site-package directory, which is read-only.
|
||||
"--stubsdir" stubs
|
||||
"--sipdir" sip))))))))
|
||||
(home-page "https://www.riverbankcomputing.com/software/pyqt/intro")
|
||||
(synopsis "Python bindings for Qt")
|
||||
|
@ -1054,6 +1060,36 @@ (define-public python-pyqt-5.5
|
|||
(base32
|
||||
"056qmkv02wdcfblqdaxiswrgn4wa88sz22i1x58dpb1iniavplfd"))
|
||||
(patches (search-patches "pyqt-configure.patch"))))
|
||||
(arguments
|
||||
`(#:modules ((srfi srfi-1)
|
||||
,@%gnu-build-system-modules)
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(sip (string-append out "/share/sip"))
|
||||
(plugins (string-append out "/plugins"))
|
||||
(designer (string-append plugins "/designer"))
|
||||
(qml (string-append plugins "/PyQt5"))
|
||||
(python (assoc-ref inputs "python"))
|
||||
(python-version
|
||||
(last (string-split python #\-)))
|
||||
(python-major+minor
|
||||
(string-join
|
||||
(take (string-split python-version #\.) 2)
|
||||
"."))
|
||||
(lib (string-append out "/lib/python"
|
||||
python-major+minor
|
||||
"/site-packages")))
|
||||
(zero? (system* "python" "configure.py"
|
||||
"--confirm-license"
|
||||
"--bindir" bin
|
||||
"--destdir" lib
|
||||
"--designer-plugindir" designer
|
||||
"--qml-plugindir" qml
|
||||
"--sipdir" sip))))))))
|
||||
(native-inputs
|
||||
`(("python-sip" ,python-sip)
|
||||
("qt" ,qt)))))
|
||||
|
@ -1115,7 +1151,7 @@ (define-public python-pyqt-4
|
|||
|
||||
(define-public python2-pyqt-4
|
||||
(package (inherit python-pyqt-4)
|
||||
(name "python2-pyqt-4")
|
||||
(name "python2-pyqt")
|
||||
(native-inputs
|
||||
`(("python-sip" ,python2-sip)
|
||||
("qt" ,qt-4)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,7 +25,8 @@ (define-module (gnu packages readline)
|
|||
#:use-module (gnu packages perl)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public readline
|
||||
(let ((post-install-phase
|
||||
|
@ -61,8 +63,18 @@ (define-public readline
|
|||
;; cross-compiling, so provide the correct answer.
|
||||
,@(if (%current-target-system)
|
||||
'("bash_cv_wcwidth_broken=no")
|
||||
'())
|
||||
;; MinGW: ncurses provides the termcap api.
|
||||
,@(if (target-mingw?)
|
||||
'("bash_cv_termcap_lib=ncurses")
|
||||
'()))
|
||||
|
||||
,@(if (target-mingw?)
|
||||
;; MinGW: termcap in ncurses
|
||||
;; some SIG_* #defined in _POSIX
|
||||
'(#:make-flags '("TERMCAP_LIB=-lncurses"
|
||||
"CPPFLAGS=-D_POSIX -D'chown(f,o,g)=0'"))
|
||||
'())
|
||||
#:phases (alist-cons-after
|
||||
'install 'post-install
|
||||
,post-install-phase
|
||||
|
|
|
@ -102,6 +102,7 @@ (define-public ruby
|
|||
|
||||
(define-public ruby-2.2
|
||||
(package (inherit ruby)
|
||||
(replacement #f)
|
||||
(version "2.2.6")
|
||||
(source
|
||||
(origin
|
||||
|
@ -115,6 +116,7 @@ (define-public ruby-2.2
|
|||
|
||||
(define-public ruby-2.1
|
||||
(package (inherit ruby)
|
||||
(replacement #f)
|
||||
(version "2.1.10")
|
||||
(source
|
||||
(origin
|
||||
|
@ -148,6 +150,7 @@ (define-public ruby-2.1
|
|||
|
||||
(define-public ruby-1.8
|
||||
(package (inherit ruby)
|
||||
(replacement #f)
|
||||
(version "1.8.7-p374")
|
||||
(source
|
||||
(origin
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -121,11 +122,16 @@ (define-public samba
|
|||
;; XXX: heimdal not packaged.
|
||||
"--bundled-libraries=com_err"
|
||||
(string-append "--prefix=" out)
|
||||
"--sysconfdir=/etc"
|
||||
;; Install public and private libraries into
|
||||
;; a single directory to avoid RPATH issues.
|
||||
(string-append "--libdir=" libdir)
|
||||
(string-append "--with-privatelibdir=" libdir)))))))
|
||||
|
||||
(string-append "--with-privatelibdir=" libdir))))))
|
||||
(add-before 'install 'disable-etc-samba-directory-creation
|
||||
(lambda _
|
||||
(substitute* "dynconfig/wscript"
|
||||
(("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}")
|
||||
"bld.INSTALL_DIRS(\"\", \"")))))
|
||||
;; XXX: The test infrastructure attempts to set password with
|
||||
;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
|
||||
;; So disable tests until there's a workaround.
|
||||
|
|
|
@ -174,6 +174,7 @@ (define-public rc
|
|||
(define-public tcsh
|
||||
(package
|
||||
(name "tcsh")
|
||||
(replacement tcsh/fixed)
|
||||
(version "6.18.01")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -231,6 +232,15 @@ (define-public tcsh
|
|||
history mechanism, job control and a C-like syntax.")
|
||||
(license bsd-4)))
|
||||
|
||||
(define tcsh/fixed
|
||||
(package
|
||||
(inherit tcsh)
|
||||
(name "tcsh")
|
||||
(source (origin
|
||||
(inherit (package-source tcsh))
|
||||
(patches (cons (search-patch "tcsh-fix-out-of-bounds-read.patch")
|
||||
(origin-patches (package-source tcsh))))))))
|
||||
|
||||
(define-public zsh
|
||||
(package
|
||||
(name "zsh")
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -36,6 +37,7 @@ (define-module (gnu packages terminals)
|
|||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages wm)
|
||||
|
@ -261,6 +263,35 @@ (define-public kmscon
|
|||
(supported-systems (filter (cut string-suffix? "-linux" <>)
|
||||
%supported-systems))))
|
||||
|
||||
(define-public libtermkey
|
||||
(package
|
||||
(name "libtermkey")
|
||||
(version "0.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.leonerd.org.uk/code/"
|
||||
name "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "09ir16kaarv55mnc4jn2sqnjjhzpb1aha51wpd9ayif887g4d5r3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags (list
|
||||
"CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure))
|
||||
#:test-target "test"))
|
||||
(inputs `(("ncurses", ncurses)))
|
||||
(native-inputs `(("libtool", libtool)
|
||||
("perl-test-harness" ,perl-test-harness)
|
||||
("pkg-config", pkg-config)))
|
||||
(synopsis "Keyboard entry processing library for terminal-based programs")
|
||||
(description
|
||||
"Libtermkey handles all the necessary logic to recognise special keys, UTF-8
|
||||
combining, and so on, with a simple interface.")
|
||||
(home-page "http://www.leonerd.org.uk/code/libtermkey")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public picocom
|
||||
(package
|
||||
(name "picocom")
|
||||
|
|
77
gnu/packages/text-editors.scm
Normal file
77
gnu/packages/text-editors.scm
Normal file
|
@ -0,0 +1,77 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages text-editors)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages terminals))
|
||||
|
||||
(define-public vis
|
||||
(package
|
||||
(name "vis")
|
||||
(version "0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/martanne/"
|
||||
name "/archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0bbmkblpndc53pvr8xcfywdn8g351yxfj8c46zp5d744c3bq2nry"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags '("CFLAGS=-pie")
|
||||
#:tests? #f ; No tests.
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'wrap-binary
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lpeg (assoc-ref inputs "lua-lpeg"))
|
||||
(lua-version ,(version-major+minor (package-version lua)))
|
||||
(LUA_PATH (string-append lpeg "/share/lua/"
|
||||
lua-version "/?.lua"))
|
||||
(LUA_CPATH (string-append lpeg "/lib/lua/"
|
||||
lua-version "/?.so")))
|
||||
(wrap-program (string-append out "/bin/vis")
|
||||
`("LUA_PATH" ":" prefix (,LUA_PATH))
|
||||
`("LUA_CPATH" ":" prefix (,LUA_CPATH)))
|
||||
#t))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "VIS_PATH")
|
||||
(files '("share/vis")))))
|
||||
(inputs `(("lua", lua)
|
||||
("ncurses", ncurses)
|
||||
("libtermkey", libtermkey)
|
||||
("lua-lpeg", lua-lpeg)))
|
||||
(synopsis "Vim-like text editor")
|
||||
(description
|
||||
"Vis aims to be a modern, legacy free, simple yet efficient vim-like text
|
||||
editor. It extends vim's modal editing with built-in support for multiple
|
||||
cursors/selections and combines it with sam's structural regular expression
|
||||
based command language.")
|
||||
(home-page "https://github.com/martanne/vis")
|
||||
(license (list license:isc ; Main distribution.
|
||||
license:public-domain ; map.[ch]
|
||||
license:expat)))) ; lexers and libutf.[ch]
|
|
@ -39,14 +39,14 @@ (define-module (gnu packages tor)
|
|||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.2.8.10")
|
||||
(version "0.2.8.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kcw9hq4xz8p91xwyhjfry5p1dmn7vvnhpfz66vl9gsfndbqr2y8"))))
|
||||
"1cvaviamvmajzpdgjn2k1rk3g9ywl1c4ygs5157gvnkyl6zs1pks"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2))) ; for tests
|
||||
|
|
|
@ -684,14 +684,14 @@ (define-public neon
|
|||
(define-public subversion
|
||||
(package
|
||||
(name "subversion")
|
||||
(version "1.8.16")
|
||||
(version "1.8.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://archive.apache.org/dist/subversion/"
|
||||
"subversion-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi"))))
|
||||
"1450fkj1jmxyphqn6cd95z1ykwsabajm9jw4i412qpwss8w9a4fy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -705,7 +705,8 @@ (define-public subversion
|
|||
;; nice if this fix ultimately made its way into libtool.
|
||||
(let ((coreutils (assoc-ref inputs "coreutils")))
|
||||
(substitute* "libtool"
|
||||
(("\\\\`ls") (string-append "\\`" coreutils "/bin/ls"))))))
|
||||
(("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))
|
||||
#t)))
|
||||
(add-after 'install 'install-perl-bindings
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Follow the instructions from 'subversion/bindings/swig/INSTALL'.
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -212,14 +213,14 @@ (define-public libmpeg2
|
|||
(define-public libx264
|
||||
(package
|
||||
(name "libx264")
|
||||
(version "20160220-2245")
|
||||
(version "20161205-2245")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.videolan.org/pub/x264/snapshots/"
|
||||
(uri (string-append "https://download.videolan.org/pub/x264/snapshots/"
|
||||
"x264-snapshot-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"12zyzbiihfhamf7yi4qqaj6k0nisnrydvfr36kxadvmsm7dg4sj3"))))
|
||||
"0jjzdwag59kqlk09bb2pykm1ss8bw3p9q7bsks2kjgdwbj121a44"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -245,7 +246,7 @@ (define-public libx264
|
|||
(%current-system)))
|
||||
'("--disable-asm")
|
||||
'()))))
|
||||
(home-page "http://www.videolan.org/developers/x264.html")
|
||||
(home-page "https://www.videolan.org/developers/x264.html")
|
||||
(synopsis "H.264 video coding library")
|
||||
(description "libx264 is an advanced encoding library for creating
|
||||
H.264 (MPEG-4 AVC) video streams.")
|
||||
|
@ -441,14 +442,14 @@ (define-public libva
|
|||
(define-public ffmpeg
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "3.2.1")
|
||||
(version "3.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pxsy9s9n2nvz970rid3j3b45w6s7ziwnrbc16rny7k0bpd97kqy"))))
|
||||
"1z7d5y5crhsl5fm74236rdwbkd4jj5frx1l4iizjfym1w4gvs09z"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
|
@ -1830,3 +1831,31 @@ (define-public handbrake
|
|||
of modern, widely supported codecs.")
|
||||
;; Most under GPL version 2 or later, and portions under BSD 3 Clause
|
||||
(license (list license:gpl2+ license:bsd-3))))
|
||||
|
||||
(define-public openh264
|
||||
(package
|
||||
(name "openh264")
|
||||
(version "1.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/cisco/"
|
||||
name "/archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ix2fhk62i4q4kbnkl0gfk4x53vxqavsn0pck1pashr566zhglv5"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("nasm" ,nasm)
|
||||
("python" ,python)))
|
||||
(arguments
|
||||
'(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:test-target "test"
|
||||
#:phases (modify-phases %standard-phases
|
||||
;; no configure script
|
||||
(delete 'configure))))
|
||||
(home-page "http://www.openh264.org/")
|
||||
(synopsis "H264 decoder library")
|
||||
(description
|
||||
"Openh264 is a library which can decode H264 video streams.")
|
||||
(license license:bsd-2)))
|
||||
|
|
|
@ -49,7 +49,7 @@ (define-module (gnu packages vim)
|
|||
(define-public vim
|
||||
(package
|
||||
(name "vim")
|
||||
(version "8.0.0101")
|
||||
(version "8.0.0124")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/vim/vim/archive/v"
|
||||
|
@ -57,7 +57,7 @@ (define-public vim
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kzk1p5vnqr8j5jwb3p745zx3dki5jwlsp7rh6nli0ci2w6vg3r8"))))
|
||||
"0mb8r677yxk0s8wc5dq6lf7y2bva64vgch65g53ai57az6lx85cd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
|
|
@ -92,7 +92,9 @@ (define-public httpd
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n2yx3gjlpr4kgqx845fj6amnmg25r2l6a7rzab5hxnpmar985hc"))))
|
||||
"0n2yx3gjlpr4kgqx845fj6amnmg25r2l6a7rzab5hxnpmar985hc"))
|
||||
(patches (search-patches "httpd-CVE-2016-8740.patch"))
|
||||
(patch-flags '("-p0"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
|
||||
(inputs `(("apr" ,apr)
|
||||
|
|
|
@ -162,27 +162,49 @@ (define-public i3status
|
|||
(define-public i3-wm
|
||||
(package
|
||||
(name "i3-wm")
|
||||
(version "4.12")
|
||||
(version "4.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://i3wm.org/downloads/i3-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d3q3lgpjbkmcwzjhp0dfr0jq847silcfg087slcnj95ikh1r7p1"))))
|
||||
"12ngz32swh9n85xy0cz1lq16aqi9ys5hq19v589q9a97wn1k3hcl"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))
|
||||
#:tests? #f)) ; no test suite
|
||||
`(#:make-flags
|
||||
(let* ((docbook-xsl-name-version ,(string-append
|
||||
(package-name docbook-xsl) "-"
|
||||
(package-version docbook-xsl)))
|
||||
(docbook-xsl-catalog-file (string-append
|
||||
(assoc-ref %build-inputs "docbook-xsl")
|
||||
"/xml/xsl/"
|
||||
docbook-xsl-name-version
|
||||
"/catalog.xml"))
|
||||
(docbook-xml-catalog-file (string-append
|
||||
(assoc-ref %build-inputs "docbook-xml")
|
||||
"/xml/dtd/docbook/catalog.xml")))
|
||||
;; Reference the catalog files required to build the manpages.
|
||||
(list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
|
||||
docbook-xml-catalog-file)
|
||||
"CC=gcc"
|
||||
(string-append "PREFIX=" %output)
|
||||
;; This works around the following error:
|
||||
;; 'error: ‘for’ loop initial declarations are only allowed in C99
|
||||
;; or C11 mode'
|
||||
"CFLAGS=-std=c11"))
|
||||
;; The build system tries to build in a separate directory, but that
|
||||
;; seems to be unnecessary.
|
||||
#:configure-flags '("--disable-builddir")
|
||||
;; The test suite appears to require the unpackaged Perl module AnyEvent.
|
||||
#:tests? #f))
|
||||
(inputs
|
||||
`(("libxcb" ,libxcb)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xcb-util-cursor" ,xcb-util-cursor)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)
|
||||
("xcb-util-wm" ,xcb-util-wm)
|
||||
("xcb-util-xrm" ,xcb-util-xrm)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("libev" ,libev)
|
||||
("libyajl" ,libyajl)
|
||||
|
@ -198,7 +220,9 @@ (define-public i3-wm
|
|||
(native-inputs
|
||||
`(("which" ,which)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)))
|
||||
("pkg-config" ,pkg-config)
|
||||
;; For building the documentation.
|
||||
("docbook-xsl" ,docbook-xsl)))
|
||||
(home-page "https://i3wm.org/")
|
||||
(synopsis "Improved tiling window manager")
|
||||
(description "A tiling window manager, completely written
|
||||
|
|
|
@ -5408,8 +5408,9 @@ (define-public xcb-util-cursor
|
|||
`(("m4" ,m4)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libxcb" ,libxcb)
|
||||
("xcb-util-renderutil" ,xcb-util-renderutil)
|
||||
`(("libxcb" ,libxcb)))
|
||||
(propagated-inputs
|
||||
`(("xcb-util-renderutil" ,xcb-util-renderutil)
|
||||
("xcb-util-image" ,xcb-util-image)))
|
||||
(home-page "https://cgit.freedesktop.org/xcb/util-cursor/")
|
||||
(synopsis "Port of libxcursor")
|
||||
|
|
|
@ -269,10 +269,24 @@ (define (file-system-shepherd-service file-system)
|
|||
#$(if create?
|
||||
#~(mkdir-p #$target)
|
||||
#t)
|
||||
(mount-file-system
|
||||
`(#$device #$title #$target #$type #$flags #$options
|
||||
#$check?) #:root "/")
|
||||
#t))
|
||||
|
||||
(let (($PATH (getenv "PATH")))
|
||||
;; Make sure fsck.ext2 & co. can be found.
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
(setenv "PATH"
|
||||
(string-append
|
||||
#$e2fsprogs "/sbin:"
|
||||
"/run/current-system/profile/sbin:"
|
||||
$PATH)))
|
||||
(lambda ()
|
||||
(mount-file-system
|
||||
`(#$device #$title #$target #$type #$flags
|
||||
#$options #$check?)
|
||||
#:root "/"))
|
||||
(lambda ()
|
||||
(setenv "PATH" $PATH)))
|
||||
#t)))
|
||||
(stop #~(lambda args
|
||||
;; Normally there are no processes left at this point, so
|
||||
;; TARGET can be safely unmounted.
|
||||
|
|
|
@ -467,6 +467,9 @@ (define (initialize service)
|
|||
(chown "/var/lib/tor" (passwd:uid %user) (passwd:gid %user))
|
||||
(chmod "/var/lib/tor" #o700)
|
||||
|
||||
;; Make sure /var/lib is accessible to the 'tor' user.
|
||||
(chmod "/var/lib" #o755)
|
||||
|
||||
(for-each initialize
|
||||
'#$(map hidden-service-name
|
||||
(tor-configuration-hidden-services config)))))
|
||||
|
|
84
guix/build/make-bootstrap.scm
Normal file
84
guix/build/make-bootstrap.scm
Normal file
|
@ -0,0 +1,84 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2015 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 (guix build make-bootstrap)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (guix build utils)
|
||||
#:export (make-stripped-libc))
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
;; This module provides facilities to build the bootstrap binaries.
|
||||
;;
|
||||
;; Code:
|
||||
|
||||
(define (make-stripped-libc output libc kernel-headers)
|
||||
"Copy to OUTPUT the subset of LIBC and KERNEL-HEADERS that is needed
|
||||
when producing a bootstrap libc."
|
||||
|
||||
(define (copy-mach-headers output kernel-headers)
|
||||
(let* ((incdir (string-append output "/include")))
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
||||
(copy-recursively (string-append kernel-headers "/include/mach")
|
||||
(string-append incdir "/mach"))
|
||||
#t))
|
||||
|
||||
(define (copy-linux-headers output kernel-headers)
|
||||
(let* ((incdir (string-append output "/include")))
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
||||
;; Copy some of the Linux-Libre headers that glibc headers
|
||||
;; refer to.
|
||||
(mkdir (string-append incdir "/linux"))
|
||||
(for-each (lambda (file)
|
||||
(install-file (string-append kernel-headers "/include/linux/" file)
|
||||
(string-append incdir "/linux")))
|
||||
'("limits.h" "errno.h" "socket.h" "kernel.h"
|
||||
"sysctl.h" "param.h" "ioctl.h" "types.h"
|
||||
"posix_types.h" "stddef.h"))
|
||||
|
||||
(copy-recursively (string-append kernel-headers "/include/asm")
|
||||
(string-append incdir "/asm"))
|
||||
(copy-recursively (string-append kernel-headers "/include/asm-generic")
|
||||
(string-append incdir "/asm-generic"))
|
||||
#t))
|
||||
|
||||
(define %libc-object-files-rx "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|\
|
||||
util).*\\.so(\\..*)?|lib(machuser|hurduser).so.*|libc(rt|)_nonshared\\.a)$")
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(let* ((libdir (string-append output "/lib")))
|
||||
(mkdir-p libdir)
|
||||
(for-each (lambda (file)
|
||||
(let ((target (string-append libdir "/"
|
||||
(basename file))))
|
||||
(copy-file file target)
|
||||
(remove-store-references target)))
|
||||
(find-files (string-append libc "/lib") %libc-object-files-rx))
|
||||
#t)
|
||||
|
||||
(if (directory-exists? (string-append kernel-headers "/include/mach"))
|
||||
(copy-mach-headers output kernel-headers)
|
||||
(copy-linux-headers output kernel-headers)))
|
||||
|
||||
|
|
@ -75,6 +75,10 @@ (define-record-type* <build-machine>
|
|||
(private-key build-machine-private-key ; file name
|
||||
(default (user-openssh-private-key)))
|
||||
(host-key build-machine-host-key) ; string
|
||||
(compression build-machine-compression ; string
|
||||
(default "zlib@openssh.com,zlib"))
|
||||
(compression-level build-machine-compression-level ;integer
|
||||
(default 3))
|
||||
(daemon-socket build-machine-daemon-socket ; string
|
||||
(default "/var/guix/daemon-socket/socket"))
|
||||
(parallel-builds build-machine-parallel-builds ; number
|
||||
|
@ -169,14 +173,16 @@ (define (open-ssh-session machine)
|
|||
(session (make-session #:user (build-machine-user machine)
|
||||
#:host (build-machine-name machine)
|
||||
#:port (build-machine-port machine)
|
||||
#:timeout 5 ;seconds
|
||||
#:timeout 10 ;seconds
|
||||
;; #:log-verbosity 'protocol
|
||||
#:identity (build-machine-private-key machine)
|
||||
|
||||
;; We need lightweight compression when
|
||||
;; exchanging full archives.
|
||||
#:compression "zlib"
|
||||
#:compression-level 3)))
|
||||
#:compression
|
||||
(build-machine-compression machine)
|
||||
#:compression-level
|
||||
(build-machine-compression-level machine))))
|
||||
(match (connect! session)
|
||||
('ok
|
||||
;; Authenticate the server. XXX: Guile-SSH 0.10.1 doesn't know about
|
||||
|
@ -384,7 +390,8 @@ (define store
|
|||
;; Use exit code 100 for a permanent build failure. The daemon
|
||||
;; interprets other non-zero codes as transient build failures.
|
||||
(primitive-exit 100)))
|
||||
(build-derivations store (list drv)))
|
||||
(parameterize ((current-build-output-port (build-log-port)))
|
||||
(build-derivations store (list drv))))
|
||||
|
||||
(retrieve-files outputs store)
|
||||
(format (current-error-port) "done with offloaded '~a'~%"
|
||||
|
@ -445,9 +452,11 @@ (define (send-files files remote)
|
|||
(with-store store
|
||||
(remove (cut valid-path? store <>)
|
||||
',files)))))
|
||||
(count (length missing))
|
||||
(port (store-import-channel session)))
|
||||
(format #t (_ "sending ~a store files to '~a'...~%")
|
||||
(length missing) (session-get session 'host))
|
||||
(format #t (N_ "sending ~a store item to '~a'...~%"
|
||||
"sending ~a store items to '~a'...~%" count)
|
||||
count (session-get session 'host))
|
||||
|
||||
;; Send MISSING in topological order.
|
||||
(export-paths store missing port)
|
||||
|
@ -466,9 +475,11 @@ (define (retrieve-files files remote)
|
|||
"Retrieve FILES from SESSION's store, and import them."
|
||||
(let* ((session (channel-get-session (nix-server-socket remote)))
|
||||
(host (session-get session 'host))
|
||||
(port (store-export-channel session files)))
|
||||
(format #t (_ "retrieving ~a files from '~a'...~%")
|
||||
(length files) host)
|
||||
(port (store-export-channel session files))
|
||||
(count (length files)))
|
||||
(format #t (N_ "retrieving ~a store item from '~a'...~%"
|
||||
"retrieving ~a store items from '~a'...~%" count)
|
||||
count host)
|
||||
|
||||
;; We cannot use the 'import-paths' RPC here because we already
|
||||
;; hold the locks for FILES.
|
||||
|
@ -623,6 +634,86 @@ (define* (process-request wants-local? system drv features
|
|||
;; Not now, all the machines are busy.
|
||||
(display "# postpone\n")))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Installation tests.
|
||||
;;;
|
||||
|
||||
(define (assert-node-repl node name)
|
||||
"Bail out if NODE is not running Guile."
|
||||
(match (node-guile-version node)
|
||||
(#f
|
||||
(leave (_ "Guile could not be started on '~a'~%")
|
||||
name))
|
||||
((? string? version)
|
||||
;; Note: The version string already contains the word "Guile".
|
||||
(info (_ "'~a' is running ~a~%")
|
||||
name (node-guile-version node)))))
|
||||
|
||||
(define (assert-node-has-guix node name)
|
||||
"Bail out if NODE lacks the (guix) module, or if its daemon is not running."
|
||||
(match (node-eval node
|
||||
'(begin
|
||||
(use-modules (guix))
|
||||
(with-store store
|
||||
(add-text-to-store store "test"
|
||||
"Hello, build machine!"))))
|
||||
((? string? str)
|
||||
(info (_ "Guix is usable on '~a' (test returned ~s)~%")
|
||||
name str))
|
||||
(x
|
||||
(leave (_ "failed to use Guix module on '~a' (test returned ~s)~%")
|
||||
name x))))
|
||||
|
||||
(define %random-state
|
||||
(delay
|
||||
(seed->random-state (logxor (getpid) (car (gettimeofday))))))
|
||||
|
||||
(define (nonce)
|
||||
(string-append (gethostname) "-"
|
||||
(number->string (random 1000000 (force %random-state)))))
|
||||
|
||||
(define (assert-node-can-import node name daemon-socket)
|
||||
"Bail out if NODE refuses to import our archives."
|
||||
(let ((session (node-session node)))
|
||||
(with-store store
|
||||
(let* ((item (add-text-to-store store "export-test" (nonce)))
|
||||
(remote (connect-to-remote-daemon session daemon-socket)))
|
||||
(send-files (list item) remote)
|
||||
(if (valid-path? remote item)
|
||||
(info (_ "'~a' successfully imported '~a'~%")
|
||||
name item)
|
||||
(leave (_ "'~a' was not properly imported on '~a'~%")
|
||||
item name))))))
|
||||
|
||||
(define (assert-node-can-export node name daemon-socket)
|
||||
"Bail out if we cannot import signed archives from NODE."
|
||||
(let* ((session (node-session node))
|
||||
(remote (connect-to-remote-daemon session daemon-socket))
|
||||
(item (add-text-to-store remote "import-test" (nonce)))
|
||||
(port (store-export-channel session (list item))))
|
||||
(with-store store
|
||||
(if (and (import-paths store port)
|
||||
(valid-path? store item))
|
||||
(info (_ "successfully imported '~a' from '~a'~%")
|
||||
item name)
|
||||
(leave (_ "failed to import '~a' from '~a'~%")
|
||||
item name)))))
|
||||
|
||||
(define (check-machine-availability machine-file)
|
||||
"Check that each machine in MACHINE-FILE is usable as a build machine."
|
||||
(let ((machines (build-machines machine-file)))
|
||||
(info (_ "testing ~a build machines defined in '~a'...~%")
|
||||
(length machines) machine-file)
|
||||
(let* ((names (map build-machine-name machines))
|
||||
(sockets (map build-machine-daemon-socket machines))
|
||||
(sessions (map open-ssh-session machines))
|
||||
(nodes (map make-node sessions)))
|
||||
(for-each assert-node-repl nodes names)
|
||||
(for-each assert-node-has-guix nodes names)
|
||||
(for-each assert-node-can-import nodes names sockets)
|
||||
(for-each assert-node-can-export nodes names sockets))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Entry point.
|
||||
|
@ -673,6 +764,13 @@ (define not-coma
|
|||
(else
|
||||
(leave (_ "invalid request line: ~s~%") line)))
|
||||
(loop (read-line)))))))
|
||||
(("test" rest ...)
|
||||
(with-error-handling
|
||||
(let ((file (match rest
|
||||
((file) file)
|
||||
(() %machine-file)
|
||||
(_ (leave (_ "wrong number of arguments~%"))))))
|
||||
(check-machine-availability (or file %machine-file)))))
|
||||
(("--version")
|
||||
(show-version-and-exit "guix offload"))
|
||||
(("--help")
|
||||
|
|
|
@ -365,6 +365,14 @@ (define (sans-content-length response)
|
|||
(response-headers response)
|
||||
eq?)))
|
||||
|
||||
(define (with-content-length response length)
|
||||
"Return RESPONSE with a 'content-length' header set to LENGTH."
|
||||
(set-field response (response-headers)
|
||||
(alist-cons 'content-length length
|
||||
(alist-delete 'content-length
|
||||
(response-headers response)
|
||||
eq?))))
|
||||
|
||||
(define-syntax-rule (swallow-EPIPE exp ...)
|
||||
"Swallow EPIPE errors raised by EXP..."
|
||||
(catch 'system-error
|
||||
|
@ -432,13 +440,8 @@ (define (http-write server client response body)
|
|||
(call-with-input-file (utf8->string body)
|
||||
(lambda (input)
|
||||
(let* ((size (stat:size (stat input)))
|
||||
(headers (alist-cons 'content-length size
|
||||
(alist-delete 'content-length
|
||||
(response-headers response)
|
||||
eq?)))
|
||||
(response (write-response (set-field response
|
||||
(response-headers)
|
||||
headers)
|
||||
(response (write-response (with-content-length response
|
||||
size)
|
||||
client))
|
||||
(output (response-port response)))
|
||||
(dump-port input output)
|
||||
|
|
|
@ -119,7 +119,7 @@ (define %options
|
|||
(show-version-and-exit "guix refresh")))))
|
||||
|
||||
(define (show-help)
|
||||
(display (_ "Usage: guix refresh [OPTION]... PACKAGE...
|
||||
(display (_ "Usage: guix refresh [OPTION]... [PACKAGE]...
|
||||
Update package definitions to match the latest upstream version.
|
||||
|
||||
When PACKAGE... is given, update only the specified packages. Otherwise
|
||||
|
|
|
@ -326,7 +326,7 @@ (define* (switch-to-system os
|
|||
(let* ((system (derivation->output-path drv))
|
||||
(number (+ 1 (generation-number profile)))
|
||||
(generation (generation-file-name profile number)))
|
||||
(symlink system generation)
|
||||
(switch-symlinks generation system)
|
||||
(switch-symlinks profile generation)
|
||||
|
||||
(format #t (_ "activating system...~%"))
|
||||
|
|
|
@ -374,29 +374,36 @@ (define* (open-connection #:optional (file (%daemon-socket-file))
|
|||
should the disk become full. When CPU-AFFINITY is true, it must be an integer
|
||||
corresponding to an OS-level CPU number to which the daemon's worker process
|
||||
for this connection will be pinned. Return a server object."
|
||||
(let ((port (or port (open-unix-domain-socket file))))
|
||||
(write-int %worker-magic-1 port)
|
||||
(let ((r (read-int port)))
|
||||
(and (eqv? r %worker-magic-2)
|
||||
(let ((v (read-int port)))
|
||||
(and (eqv? (protocol-major %protocol-version)
|
||||
(protocol-major v))
|
||||
(begin
|
||||
(write-int %protocol-version port)
|
||||
(when (>= (protocol-minor v) 14)
|
||||
(write-int (if cpu-affinity 1 0) port)
|
||||
(when cpu-affinity
|
||||
(write-int cpu-affinity port)))
|
||||
(when (>= (protocol-minor v) 11)
|
||||
(write-int (if reserve-space? 1 0) port))
|
||||
(let ((conn (%make-nix-server port
|
||||
(protocol-major v)
|
||||
(protocol-minor v)
|
||||
(make-hash-table 100)
|
||||
(make-hash-table 100))))
|
||||
(let loop ((done? (process-stderr conn)))
|
||||
(or done? (process-stderr conn)))
|
||||
conn))))))))
|
||||
(guard (c ((nar-error? c)
|
||||
;; One of the 'write-' or 'read-' calls below failed, but this is
|
||||
;; really a connection error.
|
||||
(raise (condition
|
||||
(&nix-connection-error (file (or port file))
|
||||
(errno EPROTO))
|
||||
(&message (message "build daemon handshake failed"))))))
|
||||
(let ((port (or port (open-unix-domain-socket file))))
|
||||
(write-int %worker-magic-1 port)
|
||||
(let ((r (read-int port)))
|
||||
(and (eqv? r %worker-magic-2)
|
||||
(let ((v (read-int port)))
|
||||
(and (eqv? (protocol-major %protocol-version)
|
||||
(protocol-major v))
|
||||
(begin
|
||||
(write-int %protocol-version port)
|
||||
(when (>= (protocol-minor v) 14)
|
||||
(write-int (if cpu-affinity 1 0) port)
|
||||
(when cpu-affinity
|
||||
(write-int cpu-affinity port)))
|
||||
(when (>= (protocol-minor v) 11)
|
||||
(write-int (if reserve-space? 1 0) port))
|
||||
(let ((conn (%make-nix-server port
|
||||
(protocol-major v)
|
||||
(protocol-minor v)
|
||||
(make-hash-table 100)
|
||||
(make-hash-table 100))))
|
||||
(let loop ((done? (process-stderr conn)))
|
||||
(or done? (process-stderr conn)))
|
||||
conn)))))))))
|
||||
|
||||
(define (close-connection server)
|
||||
"Close the connection to SERVER."
|
||||
|
|
|
@ -70,6 +70,7 @@ (define-module (guix utils)
|
|||
%current-system
|
||||
%current-target-system
|
||||
package-name->name+version
|
||||
target-mingw?
|
||||
version-compare
|
||||
version>?
|
||||
version>=?
|
||||
|
@ -508,6 +509,10 @@ (define (package-name->name+version spec)
|
|||
(idx (values (substring spec 0 idx)
|
||||
(substring spec (1+ idx))))))
|
||||
|
||||
(define* (target-mingw? #:optional (target (%current-target-system)))
|
||||
(and target
|
||||
(string-suffix? "-mingw32" target)))
|
||||
|
||||
(define version-compare
|
||||
(let ((strverscmp
|
||||
(let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
|
||||
|
|
|
@ -2631,6 +2631,21 @@ void DerivationGoal::closeLogFile()
|
|||
}
|
||||
|
||||
|
||||
static void _chown(const Path & path, uid_t uid, gid_t gid)
|
||||
{
|
||||
checkInterrupt();
|
||||
|
||||
if (lchown(path.c_str(), uid, gid) == -1) {
|
||||
throw SysError(format("change owner and group of `%1%'") % path);
|
||||
}
|
||||
struct stat st = lstat(path);
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
for (auto & i : readDirectory(path))
|
||||
_chown(path + "/" + i.name, uid, gid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DerivationGoal::deleteTmpDir(bool force)
|
||||
{
|
||||
if (tmpDir != "") {
|
||||
|
@ -2639,6 +2654,12 @@ void DerivationGoal::deleteTmpDir(bool force)
|
|||
format("note: keeping build directory `%2%'")
|
||||
% drvPath % tmpDir);
|
||||
chmod(tmpDir.c_str(), 0755);
|
||||
// Change the ownership if clientUid is set. Never change the
|
||||
// ownership or the group to "root" for security reasons.
|
||||
if (settings.clientUid != (uid_t) -1 && settings.clientUid != 0) {
|
||||
_chown(tmpDir, settings.clientUid,
|
||||
settings.clientGid != 0 ? settings.clientGid : -1);
|
||||
}
|
||||
}
|
||||
else
|
||||
deletePath(tmpDir);
|
||||
|
|
|
@ -70,6 +70,12 @@ struct Settings {
|
|||
subgoal of the same goal) fails. */
|
||||
bool keepGoing;
|
||||
|
||||
/* User and groud id of the client issuing the build request. Used to set
|
||||
the owner and group of the kept temporary directories of failed
|
||||
builds. */
|
||||
uid_t clientUid;
|
||||
gid_t clientGid;
|
||||
|
||||
/* Whether, if we cannot realise the known closure corresponding
|
||||
to a derivation, we should try to normalise the derivation
|
||||
instead. */
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "globals.hh"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
@ -159,7 +160,8 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa
|
|||
/* On ext4, that probably means the directory index is full. When
|
||||
that happens, it's fine to ignore it: we just effectively
|
||||
disable deduplication of this file. */
|
||||
printMsg(lvlInfo, format("cannot link `%1%' to `%2%': %m") % linkPath % path);
|
||||
printMsg(lvlInfo, format("cannot link `%1%' to `%2%': %3%")
|
||||
% linkPath % path % strerror(ENOSPC));
|
||||
return;
|
||||
|
||||
default:
|
||||
|
|
|
@ -960,6 +960,18 @@ static void daemonLoop()
|
|||
strncpy(argvSaved[1], processName.c_str(), strlen(argvSaved[1]));
|
||||
}
|
||||
|
||||
#if defined(SO_PEERCRED)
|
||||
/* Store the client's user and group for this connection. This
|
||||
has to be done in the forked process since it is per
|
||||
connection. */
|
||||
settings.clientUid = cred.uid;
|
||||
settings.clientGid = cred.gid;
|
||||
#else
|
||||
/* Setting these to -1 means: do not change */
|
||||
settings.clientUid = (uid_t) -1;
|
||||
settings.clientGid = (gid_t) -1;
|
||||
#endif
|
||||
|
||||
/* Handle the connection. */
|
||||
from.fd = remote;
|
||||
to.fd = remote;
|
||||
|
|
1059
po/guix/da.po
1059
po/guix/da.po
File diff suppressed because it is too large
Load diff
|
@ -12,10 +12,8 @@ gnu/packages/compression.scm
|
|||
gnu/packages/databases.scm
|
||||
gnu/packages/debug.scm
|
||||
gnu/packages/dejagnu.scm
|
||||
gnu/packages/feh.scm
|
||||
gnu/packages/games.scm
|
||||
gnu/packages/gcc.scm
|
||||
gnu/packages/geeqie.scm
|
||||
gnu/packages/gettext.scm
|
||||
gnu/packages/gimp.scm
|
||||
gnu/packages/gnome.scm
|
||||
|
@ -24,6 +22,7 @@ gnu/packages/gtk.scm
|
|||
gnu/packages/guile.scm
|
||||
gnu/packages/imagemagick.scm
|
||||
gnu/packages/image.scm
|
||||
gnu/packages/image-viewers.scm
|
||||
gnu/packages/inkscape.scm
|
||||
gnu/packages/jemalloc.scm
|
||||
gnu/packages/key-mon.scm
|
||||
|
|
4971
po/packages/da.po
4971
po/packages/da.po
File diff suppressed because it is too large
Load diff
|
@ -48,6 +48,15 @@ (define %store
|
|||
|
||||
(test-begin "store")
|
||||
|
||||
(test-equal "connection handshake error"
|
||||
EPROTO
|
||||
(let ((port (%make-void-port "rw")))
|
||||
(guard (c ((nix-connection-error? c)
|
||||
(and (eq? port (nix-connection-error-file c))
|
||||
(nix-connection-error-code c))))
|
||||
(open-connection #f #:port port)
|
||||
'broken)))
|
||||
|
||||
(test-equal "store-path-hash-part"
|
||||
"283gqy39v3g9dxjy26rynl0zls82fmcg"
|
||||
(store-path-hash-part
|
||||
|
|
Loading…
Reference in a new issue