Merge branch 'master' into core-updates
commit
54d9479d8a
|
@ -640,11 +640,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
%D%/packages/patches/gobject-introspection-cc.patch \
|
||||
%D%/packages/patches/gobject-introspection-girepository.patch \
|
||||
%D%/packages/patches/graphite2-CVE-2017-5436.patch \
|
||||
%D%/packages/patches/graphite2-check-code-point-limit.patch \
|
||||
%D%/packages/patches/graphite2-ffloat-store.patch \
|
||||
%D%/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch \
|
||||
%D%/packages/patches/graphite2-non-linear-classes-even-number.patch \
|
||||
%D%/packages/patches/grep-gnulib-lock.patch \
|
||||
%D%/packages/patches/grep-timing-sensitive-test.patch \
|
||||
%D%/packages/patches/gsl-test-i686.patch \
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cross-base)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages bison)
|
||||
|
@ -1904,20 +1905,48 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
|
|||
'(delete-file-recursively "bin"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
|
||||
#:xbinutils (cross-binutils "arm-linux-gnueabihf")
|
||||
#:libc (cross-libc "arm-linux-gnueabihf")))
|
||||
("cross-libc" ,(cross-libc "arm-linux-gnueabihf"))))
|
||||
(inputs
|
||||
`(("libusb" ,libusb)))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests exist
|
||||
`(#:tests? #f ; no tests exist
|
||||
#:make-flags (list (string-append "PREFIX="
|
||||
(assoc-ref %outputs "out"))
|
||||
"CROSS_COMPILE="
|
||||
"CC=gcc"
|
||||
"all")
|
||||
(string-append "CROSS_COMPILE="
|
||||
"arm-linux-gnueabihf-")
|
||||
"CC=gcc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-environment-up
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(define (cross? x)
|
||||
(string-contains x "cross-arm-linux"))
|
||||
(setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
|
||||
(setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
|
||||
(setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
||||
(for-each
|
||||
(lambda (env-name)
|
||||
(let* ((env-value (getenv env-name))
|
||||
(search-path (search-path-as-string->list env-value))
|
||||
(new-search-path (filter (lambda (e) (not (cross? e)))
|
||||
search-path))
|
||||
(new-env-value (list->search-path-as-string
|
||||
new-search-path ":")))
|
||||
(setenv env-name new-env-value)))
|
||||
'("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH"))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "tools" "misc" make-flags))))
|
||||
(add-after 'build 'build-armhf
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "target-tools" make-flags))))
|
||||
(replace 'install
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "install-all" "install-misc"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
|
@ -39,7 +39,7 @@
|
|||
(name "avr-binutils")))
|
||||
|
||||
(define-public avr-gcc-4.9
|
||||
(let ((xgcc (cross-gcc "avr" avr-binutils)))
|
||||
(let ((xgcc (cross-gcc "avr" #:xgcc gcc-4.9 #:xbinutils avr-binutils)))
|
||||
(package
|
||||
(inherit xgcc)
|
||||
(name "avr-gcc")
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -145,9 +146,9 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
|
|||
(sha256
|
||||
(base32 "16g9byxr1rkmrnzi6sjplpmkr8h6pqj7418jz30czqviw5qlkqwl"))))
|
||||
(inputs
|
||||
`(("qt" ,qt)))
|
||||
`(("qtbase" ,qtbase)))
|
||||
(native-inputs
|
||||
`(("qmake" ,qt)))
|
||||
`(("qttools" ,qttools)))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -100,9 +100,9 @@
|
|||
binutils)
|
||||
target)))
|
||||
|
||||
(define (cross-gcc-arguments target libc)
|
||||
"Return build system arguments for a cross-gcc for TARGET, using LIBC (which
|
||||
may be either a libc package or #f.)"
|
||||
(define (cross-gcc-arguments target xgcc libc)
|
||||
"Return build system arguments for a cross-gcc for TARGET, using XGCC as the
|
||||
base compiler and using LIBC (which may be either a libc package or #f.)"
|
||||
;; Set the current target system so that 'glibc-dynamic-linker' returns the
|
||||
;; right name.
|
||||
(parameterize ((%current-target-system target))
|
||||
|
@ -111,7 +111,7 @@ may be either a libc package or #f.)"
|
|||
;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
|
||||
;; for instance.
|
||||
(let ((args `(#:strip-binaries? #f
|
||||
,@(package-arguments %xgcc))))
|
||||
,@(package-arguments xgcc))))
|
||||
(substitute-keyword-arguments args
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--target=" target)
|
||||
|
@ -183,18 +183,22 @@ may be either a libc package or #f.)"
|
|||
(else #f)))
|
||||
|
||||
(define* (cross-gcc target
|
||||
#:optional (xbinutils (cross-binutils target)) libc)
|
||||
#:key
|
||||
(xgcc %xgcc)
|
||||
(xbinutils (cross-binutils target))
|
||||
(libc #f))
|
||||
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
|
||||
XBINUTILS as the associated cross-Binutils. If LIBC is false, then build a
|
||||
GCC that does not target a libc; otherwise, target that libc."
|
||||
(package (inherit %xgcc)
|
||||
XGCC as the base compiler. Use XBINUTILS as the associated cross-Binutils.
|
||||
If LIBC is false, then build a GCC that does not target a libc; otherwise,
|
||||
target that libc."
|
||||
(package (inherit xgcc)
|
||||
(name (string-append "gcc-cross-"
|
||||
(if libc "" "sans-libc-")
|
||||
target))
|
||||
(source (origin (inherit (package-source %xgcc))
|
||||
(source (origin (inherit (package-source xgcc))
|
||||
(patches
|
||||
(append
|
||||
(origin-patches (package-source %xgcc))
|
||||
(origin-patches (package-source xgcc))
|
||||
(cons (search-patch "gcc-cross-environment-variables.patch")
|
||||
(cross-gcc-patches target))))
|
||||
(modules '((guix build utils)))
|
||||
|
@ -216,7 +220,7 @@ GCC that does not target a libc; otherwise, target that libc."
|
|||
(srfi srfi-26)
|
||||
(ice-9 regex))
|
||||
|
||||
,@(cross-gcc-arguments target libc)))
|
||||
,@(cross-gcc-arguments target xgcc libc)))
|
||||
|
||||
(native-inputs
|
||||
`(("ld-wrapper-cross" ,(make-ld-wrapper
|
||||
|
@ -230,7 +234,7 @@ GCC that does not target a libc; otherwise, target that libc."
|
|||
("libc-native" ,@(assoc-ref (%final-inputs) "libc"))
|
||||
|
||||
;; Remaining inputs.
|
||||
,@(let ((inputs (append (package-inputs %xgcc)
|
||||
,@(let ((inputs (append (package-inputs xgcc)
|
||||
(alist-delete "libc" (%final-inputs)))))
|
||||
(cond
|
||||
((target-mingw? target)
|
||||
|
@ -490,8 +494,8 @@ XBINUTILS and the cross tool chain."
|
|||
;; (define-public xgcc-armhf
|
||||
;; (let ((triplet "arm-linux-gnueabihf"))
|
||||
;; (cross-gcc triplet
|
||||
;; (cross-binutils triplet)
|
||||
;; (cross-libc triplet))))
|
||||
;; #:xbinutils (cross-binutils triplet)
|
||||
;; #:libc (cross-libc triplet))))
|
||||
;;
|
||||
;;; We don't do that here because we'd be referring to bindings from (gnu
|
||||
;;; packages gcc) from the top level, which doesn't play well with circular
|
||||
|
|
|
@ -51,7 +51,8 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python))
|
||||
|
||||
(define-public libsodium
|
||||
(package
|
||||
|
@ -414,3 +415,26 @@ utility as a demonstration of the @code{scrypt} key derivation function.
|
|||
@code{Scrypt} is designed to be far more resistant against hardware brute-force
|
||||
attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python-asn1crypto
|
||||
(package
|
||||
(name "python-asn1crypto")
|
||||
(version "0.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/wbond/asn1crypto/archive/"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kn910896l3knmilla1c9ly20q181s43w1ah08lzkbm1h3j6pcz0"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/wbond/asn1crypto")
|
||||
(synopsis "ASN.1 parser and serializer in Python")
|
||||
(description "asn1crypto is an ASN.1 parser and serializer with definitions
|
||||
for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7,
|
||||
PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-asn1crypto
|
||||
(package-with-python2 python-asn1crypto))
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
|
||||
;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
|
||||
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
|
||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -3248,6 +3249,25 @@ identifiers based on their names. Each identifier gets a color based on a hash
|
|||
of its name.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public emacs-rainbow-mode
|
||||
(package
|
||||
(name "emacs-rainbow-mode")
|
||||
(version "0.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"10a7qs7fvw4qi4vxj9n56j26gjk61bl79dgz4md1d26slb2j1c04"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
|
||||
(synopsis "Colorize color names in buffers")
|
||||
(description
|
||||
"This minor mode sets background color to strings that match color
|
||||
names, e.g. #0000ff is displayed in white with a blue background.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-visual-fill-column
|
||||
(package
|
||||
(name "emacs-visual-fill-column")
|
||||
|
@ -4525,7 +4545,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
(define-public emacs-exwm
|
||||
(package
|
||||
(name "emacs-exwm")
|
||||
(version "0.13")
|
||||
(version "0.14")
|
||||
(synopsis "Emacs X window manager")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -4533,7 +4553,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"))))
|
||||
"14hjjpbasm84p54fxy73fg7g1fdwqkvisdw8dwwgzkflmd647mkx"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-xelb" ,emacs-xelb)))
|
||||
|
@ -4567,12 +4587,9 @@ It should enable you to implement low-level X11 applications.")
|
|||
TryExec=~@*~a~@
|
||||
Type=Application~%" ,name ,synopsis exwm-executable)))
|
||||
;; Add a shell wrapper to bin
|
||||
;; Set DISPLAY variable to work around
|
||||
;; https://github.com/ch11ng/exwm/issues/213
|
||||
(with-output-to-file exwm-executable
|
||||
(lambda _
|
||||
(format #t "#!~a ~@
|
||||
export DISPLAY=:0 ~@
|
||||
~a +SI:localuser:$USER ~@
|
||||
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
|
||||
(string-append (assoc-ref inputs "bash") "/bin/sh")
|
||||
|
@ -4586,7 +4603,8 @@ It should enable you to implement low-level X11 applications.")
|
|||
(require 'exwm)
|
||||
(require 'exwm-config)
|
||||
(exwm-config-default)
|
||||
(message "exwm configuration not found. Falling back to default configuration..."))))))
|
||||
(message (concat "exwm configuration not found. "
|
||||
"Falling back to default configuration...")))))))
|
||||
(chmod exwm-executable #o555)
|
||||
#t))))))
|
||||
(home-page "https://github.com/ch11ng/exwm")
|
||||
|
@ -4836,3 +4854,26 @@ Emacs.")
|
|||
using ERT. It assumes a certain test structure setup and can therefore make
|
||||
running tests easier.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-disable-mouse
|
||||
(package
|
||||
(name "emacs-disable-mouse")
|
||||
(version "0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/purcell/disable-mouse/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/purcell/disable-mouse")
|
||||
(synopsis "Disable mouse commands globally")
|
||||
(description
|
||||
"Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
|
||||
pair of minor modes which suppress all mouse events by intercepting them and
|
||||
running a customisable handler command (@code{ignore} by default). ")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -52,7 +52,8 @@
|
|||
;; See https://launchpadlibrarian.net/218827644/release.txt
|
||||
(define-public gcc-arm-none-eabi-4.9
|
||||
(let ((xgcc (cross-gcc "arm-none-eabi"
|
||||
(cross-binutils "arm-none-eabi")))
|
||||
#:xgcc gcc-4.9
|
||||
#:xbinutils (cross-binutils "arm-none-eabi")))
|
||||
(revision "1")
|
||||
(svn-revision 227977))
|
||||
(package (inherit xgcc)
|
||||
|
@ -196,6 +197,30 @@ usable on embedded products.")
|
|||
"--disable-nls"))))
|
||||
(synopsis "Newlib variant for small systems with limited memory")))
|
||||
|
||||
(define (make-libstdc++-arm-none-eabi xgcc newlib)
|
||||
(let ((libstdc++ (make-libstdc++ xgcc)))
|
||||
(package (inherit libstdc++)
|
||||
(name "libstdc++-arm-none-eabi")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments libstdc++)
|
||||
((#:configure-flags flags)
|
||||
``("--target=arm-none-eabi"
|
||||
"--host=arm-none-eabi"
|
||||
"--disable-libstdcxx-pch"
|
||||
"--enable-multilib"
|
||||
"--with-multilib-list=armv6-m,armv7-m,armv7e-m"
|
||||
"--disable-shared"
|
||||
"--disable-tls"
|
||||
"--disable-plugin"
|
||||
"--with-newlib"
|
||||
,(string-append "--with-gxx-include-dir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/arm-none-eabi/include")))))
|
||||
(native-inputs
|
||||
`(("newlib" ,newlib)
|
||||
("xgcc" ,xgcc)
|
||||
,@(package-native-inputs libstdc++))))))
|
||||
|
||||
(define (arm-none-eabi-toolchain xgcc newlib)
|
||||
"Produce a cross-compiler toolchain package with the compiler XGCC and the C
|
||||
library variant NEWLIB."
|
||||
|
@ -212,9 +237,19 @@ library variant NEWLIB."
|
|||
(version (package-version xgcc))
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments '(#:builder (mkdir %output)))
|
||||
(arguments
|
||||
'(#:modules ((guix build union))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (ice-9 match)
|
||||
(guix build union))
|
||||
(match %build-inputs
|
||||
(((names . directories) ...)
|
||||
(union-build (assoc-ref %outputs "out")
|
||||
directories))))))
|
||||
(propagated-inputs
|
||||
`(("binutils" ,(cross-binutils "arm-none-eabi"))
|
||||
("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc))
|
||||
("gcc" ,xgcc)
|
||||
("newlib" ,newlib-with-xgcc)))
|
||||
(synopsis "Complete GCC tool chain for ARM bare metal development")
|
||||
|
@ -419,7 +454,7 @@ with a layered architecture of JTAG interface and TAP support.")
|
|||
|
||||
(define-public propeller-gcc
|
||||
(let ((xgcc (cross-gcc "propeller-elf"
|
||||
propeller-binutils))
|
||||
#:xbinutils propeller-binutils))
|
||||
(commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867")
|
||||
(revision "1"))
|
||||
(package (inherit xgcc)
|
||||
|
@ -776,7 +811,7 @@ the Raspberry Pi chip.")
|
|||
|
||||
(define-public gcc-vc4
|
||||
(let ((commit "165f6d0e11d2e76ee799533bb45bd5c92bf60dc2")
|
||||
(xgcc (cross-gcc "vc4-elf" binutils-vc4)))
|
||||
(xgcc (cross-gcc "vc4-elf" #:xbinutils binutils-vc4)))
|
||||
(package (inherit xgcc)
|
||||
(name "gcc-vc4")
|
||||
(source (origin
|
||||
|
|
|
@ -375,21 +375,16 @@ applications should be.")
|
|||
(define-public graphite2
|
||||
(package
|
||||
(name "graphite2")
|
||||
(version "1.3.9")
|
||||
(version "1.3.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/silnrsi/graphite/releases/"
|
||||
"download/" version "/" name "-" version ".tgz"))
|
||||
(patches (search-patches
|
||||
"graphite2-ffloat-store.patch"
|
||||
"graphite2-check-code-point-limit.patch"
|
||||
"graphite2-CVE-2017-5436.patch"
|
||||
"graphite2-fix-32-bit-wrap-arounds.patch"
|
||||
"graphite2-non-linear-classes-even-number.patch"))
|
||||
(patches (search-patches "graphite2-ffloat-store.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rs5h7m340z75kygx8d72cps0q6yvvqa9i788vym7585cfv8a0gc"))))
|
||||
"1bm1rl2ww0m8rvmknh8fpajyz9xqv43qs9qrzf7xd5gaz6rf7zch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2) ; because of "import imap" in tests
|
||||
|
|
|
@ -262,13 +262,22 @@ levels.")
|
|||
(base32
|
||||
"1kcj2blrlfpghjv0qigip2qcbxfx7vv9i8nr4997hkwhsh6i2pjp"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("qt" ,qt)
|
||||
("zlib" ,zlib)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("qtsvg" ,qtsvg)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("qttools" ,qttools)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* "translations/translations.pro"
|
||||
(("LRELEASE =.*")
|
||||
(string-append "LRELEASE = "
|
||||
(assoc-ref inputs "qttools")
|
||||
"/bin/lrelease\n")))
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(system* "qmake"
|
||||
(string-append "PREFIX=" out))))))))
|
||||
|
|
|
@ -2784,6 +2784,12 @@ fullscreen, use F5 or Alt+Enter.")
|
|||
(lambda _
|
||||
(substitute* "icons/Makefile.in"
|
||||
(("\\$\\(INSTALL_DATA\\) \\$\\(srcdir\\)/warzone2100.appdata.xml.*") ""))
|
||||
#t))
|
||||
(add-after 'unpack 'patch-for-qt5.8
|
||||
(lambda _
|
||||
(substitute* "lib/widget/editbox.cpp"
|
||||
(("== '\\\\0'")
|
||||
"== QChar('\\0')"))
|
||||
#t)))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("unzip" ,unzip)
|
||||
|
@ -2797,7 +2803,8 @@ fullscreen, use F5 or Alt+Enter.")
|
|||
("libxrandr" ,libxrandr)
|
||||
("openal" ,openal)
|
||||
("physfs" ,physfs)
|
||||
("qt" ,qt)
|
||||
("qtbase" ,qtbase)
|
||||
("qtscript" ,qtscript)
|
||||
("openssl" ,openssl)
|
||||
("quesoglc" ,quesoglc)
|
||||
("sdl2" ,sdl2)))
|
||||
|
|
|
@ -451,7 +451,61 @@ standards.")
|
|||
(mozilla-patch "icecat-bug-1346012.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc")
|
||||
(mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg")
|
||||
(mozilla-patch "icecat-bug-1342552.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa")
|
||||
(mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd")))
|
||||
(mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd")
|
||||
(mozilla-patch "icecat-bug-1363396.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza")
|
||||
(mozilla-patch "icecat-bug-1356558.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj")
|
||||
(mozilla-patch "icecat-bug-1337810.patch" "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz")
|
||||
(mozilla-patch "icecat-bug-1347748.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76")
|
||||
(mozilla-patch "icecat-bug-1345355.patch" "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr")
|
||||
(mozilla-patch "icecat-bug-1351340.patch" "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl")
|
||||
(mozilla-patch "icecat-bug-1056322.patch" "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml")
|
||||
(mozilla-patch "icecat-bug-1355414.patch" "28e09d4ac3e9" "06clr2kwz28nyjlj13y036x6rxwh6frdh11aq6kbm1nj6s01i9zl")
|
||||
(mozilla-patch "icecat-bug-1313977.patch" "4c0b09f70aea" "04jq1xrlhj04n5bgh93xkbqwnh01pswfjhv81zk7i87c7xz6h92q")
|
||||
(mozilla-patch "icecat-bug-1357366.patch" "0b855945ce34" "0va8kqlgx6qhq2qrawkcm66kqrwwpmxblyjp3c7ifplxd0j0ijaf")
|
||||
(mozilla-patch "icecat-bug-1338574-pt0.patch" "243d7bffa4f1" "1d1v68amhnygc0g4w1afs374pjs7z5fx5inyq8idawbh4kxfncq7")
|
||||
(mozilla-patch "icecat-bug-1338574-pt1.patch" "337398a83aa5" "1141n7dhy9rh70sww8v58cbkba74xm5i75j1sgm5qwvkhh69qr5h")
|
||||
(mozilla-patch "icecat-bug-1338574-pt2.patch" "50e120d7ac64" "0dbcaq27vsjlh7vm30c88rlhkx8c1195rnr01six40mymh09rhym")
|
||||
(mozilla-patch "icecat-bug-1338574-pt3.patch" "2d4da5a366e8" "1761npkpw5zsm4q8rzfrg8m1ayrf8c857iq3vdd8rbqcswzv6xq0")
|
||||
(mozilla-patch "icecat-bug-1338574-pt4.patch" "b10d9b0c187f" "044zq9gzw4v5r3ki8dwfjg9dznai0jch29y0xrxzb2rfr6yvx0sb")
|
||||
(mozilla-patch "icecat-bug-1338574-pt5.patch" "697713a6841c" "1m9q4rh4ny945xsx3p3f5bg1izs9q58d71la5drj31z6kvbhnsi2")
|
||||
(mozilla-patch "icecat-bug-1338574-pt6.patch" "1d14abf37cf8" "1xyja9hjb7qfqi7kh85bw5nxkhyzw1rijjhnh5pgr5z0v718kjyc")
|
||||
(mozilla-patch "icecat-bug-1338574-pt7.patch" "5e85bc599d0c" "1pmhs3hmhkgj6q19padcbpi5qvgnhx6ib09zpcwxr8ll6lllxhig")
|
||||
(mozilla-patch "icecat-bug-1152353.patch" "d893dea8e7b4" "1pbayv7np6z7hlkk1dhvx3ppkni7f8n3cz8hs67l3nssw214c1ih")
|
||||
(mozilla-patch "icecat-bug-1345893.patch" "3a747480ead1" "0sxd23y9g77mx5indjs9isxnnrkin835qrh6dn62dlvbll8lgqi2")
|
||||
(mozilla-patch "icecat-bug-1343172.patch" "c7b064f6b93a" "1sh10j3h8cnqi3rpr70lv2yz14zhy1v9ms4f64fmrbjlz7q09j6q")
|
||||
(mozilla-patch "icecat-bug-1352348.patch" "1d86e96610a1" "02ybn2608v57pjh8kjgnhkg157asawjk5xia59qb63m5vfvrinwv")
|
||||
(mozilla-patch "icecat-bug-1354308.patch" "c8ba3f911eb1" "0w70b8dmvqjn1d8sphfkwnbwii8nh2q5k48clkvbhn7kpc2890mi")
|
||||
(mozilla-patch "icecat-bug-1335904.patch" "366cdd623cfb" "0gcmld4bplaakx6d50gw223lg1jjcni7866q1f2hxm0h1r9wwd3k")
|
||||
(mozilla-patch "icecat-bug-1355340.patch" "6b174b41fa44" "0zdgfy0zsrs3cvfkmrhxw0mrfibpnb58xp3z8fapx5ja59wmcabs")
|
||||
(mozilla-patch "icecat-bug-1360574-pt1.patch" "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2")
|
||||
(mozilla-patch "icecat-bug-1360574-pt2.patch" "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly")
|
||||
(mozilla-patch "icecat-bug-1358776.patch" "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5")
|
||||
(mozilla-patch "icecat-bug-1362590.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k")
|
||||
(mozilla-patch "icecat-bug-1359859.patch" "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m")
|
||||
(mozilla-patch "icecat-bug-1342057.patch" "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif")
|
||||
(mozilla-patch "icecat-bug-1325513.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11")
|
||||
(mozilla-patch "icecat-bug-1304566.patch" "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d")
|
||||
(mozilla-patch "icecat-bug-1356601.patch" "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd")
|
||||
(mozilla-patch "icecat-bug-1334097.patch" "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc")
|
||||
(mozilla-patch "icecat-bug-1359051.patch" "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp")
|
||||
(mozilla-patch "icecat-bug-1359697.patch" "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf")
|
||||
(mozilla-patch "icecat-bug-1343256.patch" "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q")
|
||||
(mozilla-patch "icecat-bug-1349310.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv")
|
||||
(mozilla-patch "icecat-bug-1356179.patch" "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p")
|
||||
(mozilla-patch "icecat-bug-1365602.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww")
|
||||
(mozilla-patch "icecat-bug-1355520.patch" "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21")
|
||||
(mozilla-patch "icecat-bug-1358469.patch" "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg")
|
||||
(mozilla-patch "icecat-bug-1356025.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq")
|
||||
(mozilla-patch "icecat-bug-1345910.patch" "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n")
|
||||
(mozilla-patch "icecat-bug-1359639.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx")
|
||||
(mozilla-patch "icecat-bug-1357090.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg")
|
||||
(mozilla-patch "icecat-bug-1364283.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h")
|
||||
(mozilla-patch "icecat-bug-1237868.patch" "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj")
|
||||
(mozilla-patch "icecat-bug-1331335.patch" "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn")
|
||||
(mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv")
|
||||
(mozilla-patch "icecat-bug-1366595.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5")
|
||||
(mozilla-patch "icecat-bug-1349266.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5")
|
||||
(mozilla-patch "icecat-bug-1366140.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5")))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
(define-module (gnu packages graphics)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
|
@ -423,66 +423,66 @@ output.")
|
|||
(license (license:non-copyleft "file://LICENSE"))))
|
||||
|
||||
(define-public brdf-explorer
|
||||
(package
|
||||
(name "brdf-explorer")
|
||||
(version "17") ;svn revision
|
||||
(source (origin
|
||||
;; There are no release tarballs, and not even tags in the repo,
|
||||
;; so use the latest revision.
|
||||
(method svn-fetch)
|
||||
(uri (svn-reference
|
||||
(url "https://github.com/wdas/brdf")
|
||||
(revision (string->number version))))
|
||||
(sha256
|
||||
(base32
|
||||
"1458fwsqxramh0gpnp24x7brfpl9afhvr1wqg6c78xqwf32960m5"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(chdir "trunk")
|
||||
(zero? (system* "qmake"
|
||||
(string-append
|
||||
"prefix=" out))))))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(data (string-append
|
||||
out "/share/brdf")))
|
||||
(with-directory-excursion bin
|
||||
(rename-file "brdf" ".brdf-real")
|
||||
(call-with-output-file "brdf"
|
||||
(lambda (port)
|
||||
(format port "#!/bin/sh
|
||||
;; There are no release tarballs, and not even tags in the repo,
|
||||
;; so use the latest revision.
|
||||
(let ((commit "5b2cd46f38a06e47207fa7229b72d37beb945019")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "brdf-explorer")
|
||||
(version (string-append "1.0.0-" revision "." (string-take commit 9)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/wdas/brdf.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"06vzbiajzbi2xl8jlff5d45bc9wd68i3jdndfab1f3jgfrd8bsgx"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (system* "qmake"
|
||||
(string-append "prefix=" out))))))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(data (string-append
|
||||
out "/share/brdf")))
|
||||
(with-directory-excursion bin
|
||||
(rename-file "brdf" ".brdf-real")
|
||||
(call-with-output-file "brdf"
|
||||
(lambda (port)
|
||||
(format port "#!/bin/sh
|
||||
# Run the thing from its home, otherwise it just bails out.
|
||||
cd \"~a\"
|
||||
exec -a \"$0\" ~a/.brdf-real~%"
|
||||
data bin)))
|
||||
(chmod "brdf" #o555))))))))
|
||||
(native-inputs
|
||||
`(("qt" ,qt-4))) ;for 'qmake'
|
||||
(inputs
|
||||
`(("qt" ,qt-4)
|
||||
("mesa" ,mesa)
|
||||
("glew" ,glew)
|
||||
("freeglut" ,freeglut)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://www.disneyanimation.com/technology/brdf.html")
|
||||
(synopsis
|
||||
"Analyze bidirectional reflectance distribution functions (BRDFs)")
|
||||
(description
|
||||
"BRDF Explorer is an application that allows the development and analysis
|
||||
data bin)))
|
||||
(chmod "brdf" #o555))))))))
|
||||
(native-inputs
|
||||
`(("qttools" ,qttools))) ;for 'qmake'
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
("mesa" ,mesa)
|
||||
("glew" ,glew)
|
||||
("freeglut" ,freeglut)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://www.disneyanimation.com/technology/brdf.html")
|
||||
(synopsis
|
||||
"Analyze bidirectional reflectance distribution functions (BRDFs)")
|
||||
(description
|
||||
"BRDF Explorer is an application that allows the development and analysis
|
||||
of bidirectional reflectance distribution functions (BRDFs). It can load and
|
||||
plot analytic BRDF functions (coded as functions in OpenGL's GLSL shader
|
||||
language), measured material data from the MERL database, and anisotropic
|
||||
measured material data from MIT CSAIL. Graphs and visualizations update in
|
||||
real time as parameters are changed, making it a useful tool for evaluating
|
||||
and understanding different BRDFs (and other component functions).")
|
||||
(license license:ms-pl)))
|
||||
(license license:ms-pl))))
|
||||
|
||||
(define-public agg
|
||||
(package
|
||||
|
|
|
@ -239,8 +239,8 @@ generator library for C++.")
|
|||
(define-public kodi
|
||||
;; We package the git version because the current released
|
||||
;; version was cut while the cmake transition was in turmoil.
|
||||
(let ((commit "b8ad238aa8010063eaf7d608d139002a50075e8d")
|
||||
(revision "4"))
|
||||
(let ((commit "1a38948ad068870671042bff2d8ac615dca9e5d8")
|
||||
(revision "5"))
|
||||
(package
|
||||
(name "kodi")
|
||||
(version (string-append "18.0_alpha-" revision "-" (string-take commit 7)))
|
||||
|
@ -252,7 +252,7 @@ generator library for C++.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"192agb8lpbajljbnnpn7y1pk2c6bvqbcpqhlgq4pja4pdf664xzg"))
|
||||
"1apkiicmxb6ncqhznflb8wc4n770jx89asw1drmch7lq7j9m6sns"))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils))
|
||||
|
|
|
@ -18,11 +18,12 @@
|
|||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
|
||||
;;; Copyright © 2016 ng0 <ng0@libertad.pw>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
|
||||
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -354,8 +355,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
|
||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
||||
|
||||
(define %linux-libre-version "4.11.2")
|
||||
(define %linux-libre-hash "0vp6hjc7cb6q6bhbg6jcf08r27xbf293cdib2vfng15ygvxpyfij")
|
||||
(define %linux-libre-version "4.11.3")
|
||||
(define %linux-libre-hash "14fbn9s7n86p5yivr4vmh4axdavny6xw1qk63cfwlcma7426wmva")
|
||||
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
|
@ -364,14 +365,14 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.29"
|
||||
"0yj4gajdzilxnh9lhb2zl0hs654lagdfx8cp7bv2w4q41bnmc3l9"
|
||||
(make-linux-libre "4.9.30"
|
||||
"1m1ii9n65lwkbwx0ifj13vgdfr0mnx8n7sfvhf5mn4r8krhxi77a"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.69"
|
||||
"14q5lqsfmwyiilbhffr3bwsm6i3z1jv6y09rg8x3faibcg766wny"
|
||||
(make-linux-libre "4.4.70"
|
||||
"1dvcj3mk42m91y1x41yh52frjdcwip1wj57qwlkmrpg02icr0b3s"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
@ -824,14 +825,14 @@ images more compressible.")
|
|||
(define-public strace
|
||||
(package
|
||||
(name "strace")
|
||||
(version "4.16")
|
||||
(version "4.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/strace/strace/" version
|
||||
"/strace-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vzhmpcy989i4k12q4cc438yal2ghhm6x7ychscjbhcf2yspqj4q"))))
|
||||
"06bl4dld5fk4a3iiq4pyrkm6sh63599ah8dmds0glg5vbw45pww1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -1641,6 +1642,38 @@ system.")
|
|||
(license (list license:gpl2 ;programs
|
||||
license:lgpl2.1)))) ;library
|
||||
|
||||
(define-public kbd-neo
|
||||
(package
|
||||
(name "kbd-neo")
|
||||
(version "2486")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://svn.neo-layout.org/!svn/bc/"
|
||||
version "/linux/console/neo.map"))
|
||||
(file-name (string-append name "-" version ".map"))
|
||||
(sha256
|
||||
(base32
|
||||
"19mfrd31vzpsjiwc7pshxm0b0sz5dd17xrz6k079cy4im1vf0r4g"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder (begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((out (string-append %output "/share/keymaps"))
|
||||
(source (assoc-ref %build-inputs "source")))
|
||||
(mkdir-p out)
|
||||
(copy-file source (string-append out "/neo.map"))
|
||||
#t))))
|
||||
(home-page "https://neo-layout.org")
|
||||
(synopsis "Neo2 console layout")
|
||||
(description
|
||||
"Kbd-neo provides the Neo2 keyboard layout for use with
|
||||
@command{loadkeys(1)} from @code{kbd(4)}.")
|
||||
;; The file is located in an svn directory, the entire content of
|
||||
;; the directory is licensed as GPL3.
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public kbd
|
||||
(package
|
||||
(name "kbd")
|
||||
|
@ -1689,6 +1722,10 @@ system.")
|
|||
("gzip" ,gzip)
|
||||
("bzip2" ,bzip2)
|
||||
("pam" ,linux-pam)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "LOADKEYS_KEYMAP_PATH")
|
||||
(files (list "share/keymaps")))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://kbd-project.org/")
|
||||
(synopsis "Linux keyboard utilities and keyboard maps")
|
||||
|
@ -3325,14 +3362,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
|
|||
(define-public mcelog
|
||||
(package
|
||||
(name "mcelog")
|
||||
(version "150")
|
||||
(version "151")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
|
||||
"mcelog.git/snapshot/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1skfiracl3a1afmml8mvnccr4rym4ibv33c342rkyxn0j3088h24"))
|
||||
"1cgfdlz51hv2zbph00ylzm8z94gv8wakx7dva1pa4jcl3hnq0dh5"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
|
@ -3912,3 +3949,39 @@ available in the kernel Linux.")
|
|||
#t))))))
|
||||
((#:allowed-references _ '("out"))
|
||||
'("out"))))))
|
||||
|
||||
(define-public cpuid
|
||||
(package
|
||||
(name "cpuid")
|
||||
(version "20170122")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.etallen.com/cpuid/cpuid-"
|
||||
version ".src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ra8ph9m1dckqaikfnbsh408fp2w9k49fkl423fl2hvhwsm14xk6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags '("CC=gcc")
|
||||
#:tests? #f ; no tests
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'install 'fix-makefile
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\(BUILDROOT\\)/usr") (assoc-ref outputs "out")))
|
||||
;; Make the compressed manpages writable so that the
|
||||
;; reset-gzip-timestamps phase does not error out.
|
||||
(substitute* "Makefile"
|
||||
(("-m 444") "-m 644"))
|
||||
#t)))))
|
||||
(inputs `(("perl" ,perl)))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(home-page "http://www.etallen.com/cpuid.html")
|
||||
(synopsis "Linux tool to dump x86 CPUID information about the CPU(s)")
|
||||
(description "cpuid dumps detailed information about the CPU(s) gathered
|
||||
from the CPUID instruction, and also determines the exact model of CPU(s). It
|
||||
supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, UMC,
|
||||
NexGen, Rise, and SiS CPUs.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -26,6 +27,7 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages autotools))
|
||||
|
@ -129,3 +131,41 @@ command line.")
|
|||
"Tailon provides a web interface around the tail, grep, awk and sed
|
||||
commands, displaying the results via a web interface.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public multitail
|
||||
(package
|
||||
(name "multitail")
|
||||
(version "6.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://vanheusden.com/multitail/multitail-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zd1r89xkxngl1pdrvsc877838nwkfqkbcgfqm3vglwalxc587dg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list "CC=gcc"
|
||||
"PREFIX="
|
||||
(string-append "DESTDIR="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-curses-lib
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "mt.h"
|
||||
(("ncursesw\\/panel.h") "panel.h")
|
||||
(("ncursesw\\/ncurses.h") "ncurses.h")))
|
||||
#t))
|
||||
(delete 'configure))
|
||||
#:tests? #f)) ; no test suite (make check just runs cppcheck)
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(home-page "https://vanheusden.com/multitail/")
|
||||
(synopsis "Monitor multiple logfiles")
|
||||
(description
|
||||
"MultiTail allows you to monitor logfiles and command output in multiple
|
||||
windows in a terminal, colorize, filter and merge.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -99,8 +99,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
|
|||
(if (%current-target-system)
|
||||
(let ((target (%current-target-system)))
|
||||
`(("cross-gcc" ,(cross-gcc target
|
||||
(cross-binutils target)
|
||||
(cross-bootstrap-libc)))
|
||||
#:xbinutils (cross-binutils target)
|
||||
#:libc (cross-bootstrap-libc)))
|
||||
("cross-binutils" ,(cross-binutils target))
|
||||
,@(%final-inputs)))
|
||||
`(("libc" ,(glibc-for-bootstrap))
|
||||
|
|
|
@ -756,32 +756,16 @@ instant messenger with audio and video chat capabilities.")
|
|||
(define-public qtox
|
||||
(package
|
||||
(name "qtox")
|
||||
(version "1.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/qTox/qTox/archive/v"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0y15mc39x54k1kz36cw9412kl1p1p6nzlx97gagv4gg3vybfhbjv"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+-2)
|
||||
("libsodium" ,libsodium)
|
||||
("libtoxcore" ,libtoxcore)
|
||||
("libvpx" ,libvpx)
|
||||
("libxscrnsaver" ,libxscrnsaver)
|
||||
("libx11" ,libx11)
|
||||
("openal" ,openal)
|
||||
("qrencode" ,qrencode)
|
||||
("qt" ,qt)
|
||||
("sqlcipher" ,sqlcipher)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qmake" ,qt)))
|
||||
(build-system gnu-build-system)
|
||||
(version "1.10.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/qTox/qTox/archive/v"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b37an611i2jdri59vsspyl3yf6cn4h0bn9d2jdrkw8d2rfqc8qy"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
@ -791,13 +775,24 @@ instant messenger with audio and video chat capabilities.")
|
|||
(("__DATE__") "\"\"")
|
||||
(("__TIME__") "\"\"")
|
||||
(("TIMESTAMP") "\"\""))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero?
|
||||
(system* "qmake"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref outputs "out")))))))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+-2)
|
||||
("libsodium" ,libsodium)
|
||||
("c-toxcore" ,c-toxcore)
|
||||
("libvpx" ,libvpx)
|
||||
("libxscrnsaver" ,libxscrnsaver)
|
||||
("libx11" ,libx11)
|
||||
("openal" ,openal)
|
||||
("qrencode" ,qrencode)
|
||||
("qtbase" ,qtbase)
|
||||
("qtsvg" ,qtsvg)
|
||||
("sqlcipher" ,sqlcipher)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qmake" ,qttools)))
|
||||
(home-page "https://qtox.github.io/")
|
||||
(synopsis "Tox chat client using Qt")
|
||||
(description "qTox is a Tox client that follows the Tox design
|
||||
|
|
|
@ -2650,3 +2650,260 @@ match expressions, and if expressions.")
|
|||
(synopsis "Generation of runtime types from type declarations")
|
||||
(description "Automatic generation of runtime types from type definitions.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-sexp-value
|
||||
(package
|
||||
(name "ocaml-ppx-sexp-value")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_sexp_value" version
|
||||
"0m3ag23mbqm0i2pv1dzilfks15ipa5q60mf57a0cd3p0pvarq10g"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-driver" ,ocaml-ppx-driver)
|
||||
("ppx-here" ,ocaml-ppx-here)
|
||||
("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_sexp_value/")
|
||||
(synopsis "Simplify building s-expressions from ocaml values")
|
||||
(description "A ppx rewriter that simplifies building s-expressions from
|
||||
ocaml values.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-pipebang
|
||||
(package
|
||||
(name "ocaml-ppx-pipebang")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_pipebang" version
|
||||
"1965c7hymp26ncmjs0pfxi2s5jlj60z2c9b194lgcwxqiav56pcw"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-driver" ,ocaml-ppx-driver)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_pipebang/")
|
||||
(synopsis "Inline reverse application operators `|>` and `|!`")
|
||||
(description "A ppx rewriter that inlines reverse application operators
|
||||
@code{|>} and @code{|!}.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-bin-prot
|
||||
(package
|
||||
(name "ocaml-ppx-bin-prot")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_bin_prot" version
|
||||
"173kjv36giik11zgfvsbzwfbpr66dm2pcha9vf990jgzh8hqz39h"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("bin-prot" ,ocaml-bin-prot)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-type-conv" ,ocaml-ppx-type-conv)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_bin_prot/")
|
||||
(synopsis "Generation of bin_prot readers and writers from types")
|
||||
(description "Generation of binary serialization and deserialization
|
||||
functions from type definitions.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-fail
|
||||
(package
|
||||
(name "ocaml-ppx-fail")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_fail" version
|
||||
"1dwgad0f05gqp5rnwf9dcasidpfi7q3mrpazsw3a2vijjblbhjgn"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-driver" ,ocaml-ppx-driver)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-here" ,ocaml-ppx-here)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_fail/")
|
||||
(synopsis "Add location to calls to failwiths")
|
||||
(description "Syntax extension that makes [failwiths] always include a
|
||||
position.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-custom-printf
|
||||
(package
|
||||
(name "ocaml-ppx-custom-printf")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_custom_printf" version
|
||||
"11jlx0n87g2j1vyyp343dibx7lvvwig5j5q0nq0b80kbsq0k6yr8"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-core" ,ocaml-ppx-core)
|
||||
("ppx-driver" ,ocaml-ppx-driver)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_custom_printf/")
|
||||
(synopsis "Printf-style format-strings for user-defined string conversion")
|
||||
(description "Extensions to printf-style format-strings for user-defined
|
||||
string conversion.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-sexp-message
|
||||
(package
|
||||
(name "ocaml-ppx-sexp-message")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_sexp_message" version
|
||||
"084w1l3gnyw4ri9vbn7bv9b2xkw1520qczfxpxdarfivdrz8xr68"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-driver" ,ocaml-ppx-driver)
|
||||
("ppx-here" ,ocaml-ppx-here)
|
||||
("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_sexp_message/")
|
||||
(synopsis "A ppx rewriter for easy construction of s-expressions")
|
||||
(description "Ppx_sexp_message aims to ease the creation of s-expressions
|
||||
in OCaml. This is mainly motivated by writing error and debugging messages,
|
||||
where one needs to construct a s-expression based on various element of the
|
||||
context such as function arguments.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-fields-conv
|
||||
(package
|
||||
(name "ocaml-ppx-fields-conv")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_fields_conv" version
|
||||
"1vzbdz27g5qhhfs7wx6rjf979q4xyssxqbmp6sc1sxknbghslbdv"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)
|
||||
("ppx-core" ,ocaml-ppx-core)))
|
||||
(propagated-inputs
|
||||
`(("fieldslib" ,ocaml-fieldslib)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-core" ,ocaml-ppx-core)
|
||||
("ppx-type-conv" ,ocaml-ppx-type-conv)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_fields_conv/")
|
||||
(synopsis "Generation of accessor and iteration functions for ocaml records")
|
||||
(description "Ppx_fields_conv is a ppx rewriter that can be used to define
|
||||
first class values representing record fields, and additional routines, to get
|
||||
and set record fields, iterate and fold over all fields of a record and create
|
||||
new record values.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-re
|
||||
(package
|
||||
(name "ocaml-re")
|
||||
(version "1.7.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ocaml/ocaml-re//archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1s3rcr76cgm4p1xmaazc58arkg2lz3zfcp1icm00m6s5ccnkh67b"))))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs `(("ounit" ,ocaml-ounit)))
|
||||
(home-page "https://github.com/ocaml/ocaml-re/")
|
||||
(synopsis "Regular expression library for OCaml")
|
||||
(description "Pure OCaml regular expressions with:
|
||||
@enumerate
|
||||
@item Perl-style regular expressions (module Re_perl)
|
||||
@item Posix extended regular expressions (module Re_posix)
|
||||
@item Emacs-style regular expressions (module Re_emacs)
|
||||
@item Shell-style file globbing (module Re_glob)
|
||||
@item Compatibility layer for OCaml's built-in Str module (module Re_str)
|
||||
@end enumerate")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ocaml-ppx-expect
|
||||
(package
|
||||
(name "ocaml-ppx-expect")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_expect" version
|
||||
"03sbs4s5i8l9syr45v25f5hzy7msd2b47k2a9wsq9m43d4imgkrc"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("fieldslib" ,ocaml-fieldslib)
|
||||
("ppx-tools" ,ocaml-ppx-tools)
|
||||
("ppx-assert" ,ocaml-ppx-assert)
|
||||
("ppx-compare" ,ocaml-ppx-compare)
|
||||
("ppx-core" ,ocaml-ppx-core)
|
||||
("ppx-custom-printf" ,ocaml-ppx-custom-printf)
|
||||
("ppx-driver" ,ocaml-ppx-driver)
|
||||
("ppx-fields-conv" ,ocaml-ppx-fields-conv)
|
||||
("ppx-inline-test" ,ocaml-ppx-inline-test)
|
||||
("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
|
||||
("ppx-variants-conv" ,ocaml-ppx-variants-conv)
|
||||
("re" ,ocaml-re)
|
||||
("sexplib" ,ocaml-sexplib)
|
||||
("variantslib" ,ocaml-variantslib)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_expect/")
|
||||
(synopsis "Cram like framework for OCaml")
|
||||
(description "Expect-test is a framework for writing tests in OCaml, similar
|
||||
to Cram. Expect-tests mimic the existing inline tests framework with the
|
||||
let%expect_test construct. The body of an expect-test can contain
|
||||
output-generating code, interleaved with %expect extension expressions to denote
|
||||
the expected output.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ocaml-ppx-jane
|
||||
(package
|
||||
(name "ocaml-ppx-jane")
|
||||
(version "113.33.03")
|
||||
(source (janestreet-origin "ppx_jane" version
|
||||
"0bjxkhmzgm6x9dcvjwybbccn34khbvyyjimcbaja30fp6qcqk5yl"))
|
||||
(build-system ocaml-build-system)
|
||||
(native-inputs
|
||||
`(("js-build-tools" ,ocaml-js-build-tools)
|
||||
("opam" ,opam)))
|
||||
(propagated-inputs
|
||||
`(("ppx-assert" ,ocaml-ppx-assert)
|
||||
("ppx-bench" ,ocaml-ppx-bench)
|
||||
("ppx-bin-prot" ,ocaml-ppx-bin-prot)
|
||||
("ppx-compare" ,ocaml-ppx-compare)
|
||||
("ppx-custom-printf" ,ocaml-ppx-custom-printf)
|
||||
("ppx-deriving" ,ocaml-ppx-deriving)
|
||||
("ppx-enumerate" ,ocaml-ppx-enumerate)
|
||||
("ppx-expect" ,ocaml-ppx-expect)
|
||||
("ppx-fail" ,ocaml-ppx-fail)
|
||||
("ppx-fields-conv" ,ocaml-ppx-fields-conv)
|
||||
("ppx-here" ,ocaml-ppx-here)
|
||||
("ppx-inline-test" ,ocaml-ppx-inline-test)
|
||||
("ppx-let" ,ocaml-ppx-let)
|
||||
("ppx-pipebang" ,ocaml-ppx-pipebang)
|
||||
("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
|
||||
("ppx-sexp-message" ,ocaml-ppx-sexp-message)
|
||||
("ppx-sexp-value" ,ocaml-ppx-sexp-value)
|
||||
("ppx-typerep-conv" ,ocaml-ppx-typerep-conv)
|
||||
("ppx-variants-conv" ,ocaml-ppx-variants-conv)))
|
||||
(arguments janestreet-arguments)
|
||||
(home-page "https://github.com/janestreet/ppx_jane/")
|
||||
(synopsis "Standard Jane Street ppx rewriters")
|
||||
(description "Ppx_jane is a ppx_driver including all standard ppx rewriters.")
|
||||
(license license:asl2.0)))
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
From 1ce331d5548b98ed8b818532b2556d6f2c7a3b83 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Hosken <martin_hosken@sil.org>
|
||||
Date: Thu, 9 Mar 2017 22:04:04 +0000
|
||||
Subject: [PATCH] Ensure features have enough space. Fix from Mozilla
|
||||
|
||||
---
|
||||
src/FeatureMap.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/FeatureMap.cpp b/src/FeatureMap.cpp
|
||||
index b8c8405..83bd5f6 100644
|
||||
--- a/src/FeatureMap.cpp
|
||||
+++ b/src/FeatureMap.cpp
|
||||
@@ -275,7 +275,7 @@ bool FeatureRef::applyValToFeature(uint32 val, Features & pDest) const
|
||||
else
|
||||
if (pDest.m_pMap!=&m_pFace->theSill().theFeatureMap())
|
||||
return false; //incompatible
|
||||
- pDest.reserve(m_index);
|
||||
+ pDest.reserve(m_index+1);
|
||||
pDest[m_index] &= ~m_mask;
|
||||
pDest[m_index] |= (uint32(val) << m_bits);
|
||||
return true;
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From 348c11e4571b534efdbd58a575bbea979c880b2f Mon Sep 17 00:00:00 2001
|
||||
From: Tim Eves <tim_eves@sil.org>
|
||||
Date: Wed, 1 Mar 2017 14:23:46 +0700
|
||||
Subject: [PATCH] Fix decoding of USV greater than U+110000
|
||||
|
||||
Add test cases too
|
||||
---
|
||||
src/inc/UtfCodec.h | 4 ++--
|
||||
tests/utftest/utftest.cpp | 3 +++
|
||||
2 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/inc/UtfCodec.h b/src/inc/UtfCodec.h
|
||||
index 3417bac..9dc760f 100644
|
||||
--- a/src/inc/UtfCodec.h
|
||||
+++ b/src/inc/UtfCodec.h
|
||||
@@ -124,7 +124,7 @@ struct _utf_codec<8>
|
||||
private:
|
||||
static const int8 sz_lut[16];
|
||||
static const byte mask_lut[5];
|
||||
-
|
||||
+ static const uchar_t limit = 0x110000;
|
||||
|
||||
public:
|
||||
typedef uint8 codeunit_t;
|
||||
@@ -157,7 +157,7 @@ public:
|
||||
case 0: l = -1; return 0xFFFD;
|
||||
}
|
||||
|
||||
- if (l != seq_sz || toolong)
|
||||
+ if (l != seq_sz || toolong || u >= limit)
|
||||
{
|
||||
l = -l;
|
||||
return 0xFFFD;
|
||||
diff --git a/tests/utftest/utftest.cpp b/tests/utftest/utftest.cpp
|
||||
index 21cb188..a23553a 100644
|
||||
--- a/tests/utftest/utftest.cpp
|
||||
+++ b/tests/utftest/utftest.cpp
|
||||
@@ -8,6 +8,9 @@ struct test8
|
||||
unsigned char str[12];
|
||||
};
|
||||
struct test8 tests8[] = {
|
||||
+ { 0, 0, {0xF4, 0x90, 0x80, 0x80, 0, 0, 0, 0, 0, 0, 0, 0} }, // bad(4) [U+110000]
|
||||
+ { 0, 0, {0xC0, 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} }, // bad(4) [U+110000]
|
||||
+ { 0, 0, {0xA0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} }, // bad(4) [U+110000]
|
||||
{ 4, -1, {0x7F, 0xDF, 0xBF, 0xEF, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0, 0} }, // U+7F, U+7FF, U+FFFF, U+10FFF
|
||||
{ 2, 3, {0x7F, 0xDF, 0xBF, 0xF0, 0x8F, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0} }, // U+7F, U+7FF, long(U+FFFF), U+10FFF
|
||||
{ 1, 1, {0x7F, 0xE0, 0x9F, 0xBF, 0xEF, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0} }, // U+7F, long(U+7FF), U+FFFF, U+10FFF
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
This patch incorporates the following 6 consecutive commits from the upstream
|
||||
graphite2 repository:
|
||||
|
||||
75b83cd..: Martin Hosken 2017-03-28 Fix 32-bit wrap arounds
|
||||
1f97e36..: Martin Hosken 2017-03-28 balance comparisons in decompressor
|
||||
9493785..: Martin Hosken 2017-03-29 Speculative rounding fix
|
||||
09af043..: Tim Eves 2017-03-31 Move a MINMATCH to rhs of a comparisio
|
||||
28cc60d..: Tim Eves 2017-03-31 Deal with similar wrap around in literal_len
|
||||
8afc7d0..: Martin Hosken 2017-04-03 Fix 32-bit rollover in decompressor, again
|
||||
|
||||
This diff was generated by the following command:
|
||||
|
||||
git diff 1ce331d5548b98ed..8afc7d0081959866
|
||||
|
||||
|
||||
diff --git a/src/Decompressor.cpp b/src/Decompressor.cpp
|
||||
index 084570f..56d531f 100644
|
||||
--- a/src/Decompressor.cpp
|
||||
+++ b/src/Decompressor.cpp
|
||||
@@ -51,7 +51,7 @@ bool read_sequence(u8 const * &src, u8 const * const end, u8 const * &literal, u
|
||||
literal = src;
|
||||
src += literal_len;
|
||||
|
||||
- if (src > end - 2)
|
||||
+ if (src > end - 2 || src < literal)
|
||||
return false;
|
||||
|
||||
match_dist = *src++;
|
||||
@@ -85,7 +85,7 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
|
||||
{
|
||||
// Copy in literal. At this point the last full sequence must be at
|
||||
// least MINMATCH + 5 from the end of the output buffer.
|
||||
- if (dst + align(literal_len) > dst_end - (MINMATCH+5))
|
||||
+ if (align(literal_len) > unsigned(dst_end - dst - (MINMATCH+5)) || dst_end - dst < MINMATCH + 5)
|
||||
return -1;
|
||||
dst = overrun_copy(dst, literal, literal_len);
|
||||
}
|
||||
@@ -94,7 +94,8 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
|
||||
// decoded output.
|
||||
u8 const * const pcpy = dst - match_dist;
|
||||
if (pcpy < static_cast<u8*>(out)
|
||||
- || dst + match_len + MINMATCH > dst_end - 5)
|
||||
+ || match_len > unsigned(dst_end - dst - (MINMATCH+5))
|
||||
+ || dst_end - dst < MINMATCH + 5)
|
||||
return -1;
|
||||
if (dst > pcpy+sizeof(unsigned long)
|
||||
&& dst + align(match_len + MINMATCH) <= dst_end)
|
||||
@@ -103,8 +104,8 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
|
||||
dst = safe_copy(dst, pcpy, match_len + MINMATCH);
|
||||
}
|
||||
|
||||
- if (literal + literal_len > src_end
|
||||
- || dst + literal_len > dst_end)
|
||||
+ if (literal_len > src_end - literal
|
||||
+ || literal_len > dst_end - dst)
|
||||
return -1;
|
||||
dst = fast_copy(dst, literal, literal_len);
|
||||
|
||||
diff --git a/src/Pass.cpp b/src/Pass.cpp
|
||||
index a4bac2e..683143c 100644
|
||||
--- a/src/Pass.cpp
|
||||
+++ b/src/Pass.cpp
|
||||
@@ -171,7 +171,7 @@ bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t su
|
||||
const uint16 * const o_actions = reinterpret_cast<const uint16 *>(p);
|
||||
be::skip<uint16>(p, m_numRules + 1);
|
||||
const byte * const states = p;
|
||||
- if (e.test(p + 2u*m_numTransition*m_numColumns >= pass_end, E_BADPASSLENGTH)) return face.error(e);
|
||||
+ if (e.test(2u*m_numTransition*m_numColumns >= (unsigned)(pass_end - p), E_BADPASSLENGTH)) return face.error(e);
|
||||
be::skip<int16>(p, m_numTransition*m_numColumns);
|
||||
be::skip<uint8>(p);
|
||||
if (e.test(p != pcCode, E_BADPASSCCODEPTR)) return face.error(e);
|
||||
@@ -192,7 +192,7 @@ bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t su
|
||||
m_cPConstraint = vm::Machine::Code(true, pcCode, pcCode + pass_constraint_len,
|
||||
precontext[0], be::peek<uint16>(sort_keys), *m_silf, face, PASS_TYPE_UNKNOWN);
|
||||
if (e.test(!m_cPConstraint, E_OUTOFMEM)
|
||||
- || e.test(!m_cPConstraint, m_cPConstraint.status() + E_CODEFAILURE))
|
||||
+ || e.test(m_cPConstraint.status() != Code::loaded, m_cPConstraint.status() + E_CODEFAILURE))
|
||||
return face.error(e);
|
||||
face.error_context(face.error_context() - 1);
|
||||
}
|
||||
diff --git a/src/Silf.cpp b/src/Silf.cpp
|
||||
index 72a22cd..d661992 100644
|
||||
--- a/src/Silf.cpp
|
||||
+++ b/src/Silf.cpp
|
||||
@@ -191,7 +191,7 @@ bool Silf::readGraphite(const byte * const silf_start, size_t lSilf, Face& face,
|
||||
|
||||
const size_t clen = readClassMap(p, passes_start - p, version, e);
|
||||
m_passes = new Pass[m_numPasses];
|
||||
- if (e || e.test(p + clen > passes_start, E_BADPASSESSTART)
|
||||
+ if (e || e.test(clen > unsigned(passes_start - p), E_BADPASSESSTART)
|
||||
|| e.test(!m_passes, E_OUTOFMEM))
|
||||
{ releaseBuffers(); return face.error(e); }
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
From 0646e4ee471183994f78a759269f0505617711f3 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Hosken <martin_hosken@sil.org>
|
||||
Date: Tue, 18 Apr 2017 13:17:14 +0100
|
||||
Subject: [PATCH] Ensure non linear classes have even number of elements
|
||||
|
||||
---
|
||||
src/Silf.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Silf.cpp b/src/Silf.cpp
|
||||
index d661992..9f2f954 100644
|
||||
--- a/src/Silf.cpp
|
||||
+++ b/src/Silf.cpp
|
||||
@@ -293,7 +293,8 @@ size_t Silf::readClassMap(const byte *p, size_t data_len, uint32 version, Error
|
||||
if (e.test(*o + 4 > max_off, E_HIGHCLASSOFFSET) // LookupClass doesn't stretch over max_off
|
||||
|| e.test(lookup[0] == 0 // A LookupClass with no looks is a suspicious thing ...
|
||||
|| lookup[0] * 2 + *o + 4 > max_off // numIDs lookup pairs fits within (start of LookupClass' lookups array, max_off]
|
||||
- || lookup[3] + lookup[1] != lookup[0], E_BADCLASSLOOKUPINFO)) // rangeShift: numIDs - searchRange
|
||||
+ || lookup[3] + lookup[1] != lookup[0], E_BADCLASSLOOKUPINFO) // rangeShift: numIDs - searchRange
|
||||
+ || e.test(((o[1] - *o) & 1) != 0, ERROROFFSET)) // glyphs are in pairs so difference must be even.
|
||||
return ERROROFFSET;
|
||||
}
|
||||
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
|
||||
;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
|
||||
;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
|
@ -65,6 +65,7 @@
|
|||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages django)
|
||||
#:use-module (gnu packages file)
|
||||
|
@ -1487,16 +1488,38 @@ backported for previous versions of Python from 2.4 to 3.3.")
|
|||
(base32
|
||||
"0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-tests
|
||||
(lambda _
|
||||
(substitute* "tests/test_parse_type_parse.py"
|
||||
;; Newer Python versions don't have the problem this test tests.
|
||||
(("self[.]assertRaises[(]parse.TooManyFields, p.parse, ''[)]")
|
||||
""))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)
|
||||
("python-parse" ,python-parse)))
|
||||
(arguments '(#:tests? #f)) ;TODO: tests require pytest
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-pytest-runner" ,python-pytest-runner)))
|
||||
(home-page "https://github.com/jenisys/parse_type")
|
||||
(synopsis "Extended parse module")
|
||||
(description
|
||||
"Parse_type extends the python parse module.")
|
||||
(properties
|
||||
`((python2-variant . ,(delay python2-parse-type))))
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-parse-type
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-parse-type))))
|
||||
(package (inherit base)
|
||||
(propagated-inputs
|
||||
`(("python2-enum34" ,python2-enum34)
|
||||
,@(package-propagated-inputs base))))))
|
||||
|
||||
(define-public python-parse
|
||||
(package
|
||||
(name "python-parse")
|
||||
|
@ -4727,15 +4750,14 @@ a front-end for C compilers or analysis tools.")
|
|||
(define-public python-xcffib
|
||||
(package
|
||||
(name "python-xcffib")
|
||||
(version "0.1.9")
|
||||
(version "0.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pypi.python.org/packages/source/x/"
|
||||
"xcffib/xcffib-" version ".tar.gz"))
|
||||
(uri (pypi-uri "xcffib" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
|
||||
"09gbnmr5vn58mm8xi3fmd7fz6743cks6c46dphnxzwax6zsxmy60"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("libxcb" ,libxcb)))
|
||||
|
@ -4743,10 +4765,16 @@ a front-end for C compilers or analysis tools.")
|
|||
`(("python-cffi" ,python-cffi) ; used at run time
|
||||
("python-six" ,python-six)))
|
||||
(arguments
|
||||
`(;; FIXME: Tests cannot load libxcb.so.1
|
||||
`(;; FIXME: Tests need more work. See ".travis.yml" in the repository.
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-libxcb-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libxcb (assoc-ref inputs "libxcb")))
|
||||
(substitute* '("xcffib/__init__.py")
|
||||
(("^soname = \"") (string-append "soname = \"" libxcb "/lib/")))
|
||||
#t)))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((doc (string-append (assoc-ref outputs "out") "/share"
|
||||
|
@ -7305,14 +7333,14 @@ responses, rather than doing any computation.")
|
|||
(define-public python-cryptography-vectors
|
||||
(package
|
||||
(name "python-cryptography-vectors")
|
||||
(version "1.7.1")
|
||||
(version "1.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cryptography_vectors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x2mz4wggja5ih45c6cw0kzyad4jr8avg327dawjr1gnpdq1psa7"))))
|
||||
"0hzvq0bfy21bc35p8z7zdxpv3hbvi7adg4axc1b5yd3hk16a1nh0"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/pyca/cryptography")
|
||||
(synopsis "Test vectors for the cryptography package")
|
||||
|
@ -7327,29 +7355,33 @@ responses, rather than doing any computation.")
|
|||
(define-public python-cryptography
|
||||
(package
|
||||
(name "python-cryptography")
|
||||
(version "1.7.1")
|
||||
(version "1.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cryptography" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0k6v7wq4h0yk9r0x0bl2x9fyrg4a6gj5qp4m9mgpk6m481yyygwm"))))
|
||||
"1nmy4fw3zy7rlvarkhn33g9905rwpy9z7k5kv8j80f0s6ynfp24f"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("openssl" ,openssl)))
|
||||
(propagated-inputs
|
||||
`(("python-cffi" ,python-cffi)
|
||||
`(("python-asn1crypto" ,python-asn1crypto)
|
||||
("python-cffi" ,python-cffi)
|
||||
("python-six" ,python-six)
|
||||
("python-pyasn1" ,python-pyasn1)
|
||||
("python-idna" ,python-idna)
|
||||
;; Packaging is used to check the version of python-cffi in
|
||||
;; 'src/cryptography/hazmat/primitives/ciphers/base.py'. We should be
|
||||
;; able to remove this dependency in the next release of cryptography:
|
||||
;; python-cryptography:
|
||||
;; https://github.com/pyca/cryptography/commit/0417d00d9ff1e19bc3ab67d39bdd18e1674768c1
|
||||
("python-packaging" ,python-packaging)
|
||||
("python-iso8601" ,python-iso8601)))
|
||||
(native-inputs
|
||||
`(("python-cryptography-vectors" ,python-cryptography-vectors)
|
||||
("python-hypothesis" ,python-hypothesis)
|
||||
("python-pretend" ,python-pretend)
|
||||
("python-pyasn1" ,python-pyasn1)
|
||||
("python-pyasn1-modules" ,python-pyasn1-modules)
|
||||
("python-pytz" ,python-pytz)
|
||||
("python-pytest" ,python-pytest-3.0)))
|
||||
(home-page "https://github.com/pyca/cryptography")
|
||||
|
@ -13448,6 +13480,33 @@ faster ones are not available.")
|
|||
to ansi-escaped strings suitable for display in a terminal.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-ansi2html
|
||||
(package
|
||||
(name "python-ansi2html")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "ansi2html" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wa00zffprb78w1mqq90dk47czz1knanys2a40zbw2vyapd5lp9y"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
("python-nose" ,python-nose)))
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)))
|
||||
(home-page "http://github.com/ralphbean/ansi2html")
|
||||
(synopsis "Convert ANSI-decorated console output to HTML")
|
||||
(description
|
||||
"@command{ansi2html} is a Python library and command line utility for
|
||||
convering text with ANSI color codes to HTML or LaTeX.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python2-ansi2html
|
||||
(package-with-python2 python-ansi2html))
|
||||
|
||||
(define-public python-ddt
|
||||
(package
|
||||
(name "python-ddt")
|
||||
|
@ -14622,3 +14681,126 @@ substitute for redis.")
|
|||
|
||||
(define-public python2-fakeredis
|
||||
(package-with-python2 python-fakeredis))
|
||||
|
||||
(define-public python-behave-web-api
|
||||
(package
|
||||
(name "python-behave-web-api")
|
||||
(version "1.0.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "behave-web-api" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03kpq2xsy1gab3jy0dccbxlsg7vwfy4lagss0qldwmx3xz6b3i19"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-dependencies
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("'wheel'") "") ; We don't use it.
|
||||
(("'ordereddict==1.1'") ""))))))) ; Python >= 2.7 has it built-in.
|
||||
(propagated-inputs
|
||||
`(("behave" ,behave)
|
||||
("python-requests" ,python-requests)))
|
||||
(home-page "https://github.com/jefersondaniel/behave-web-api")
|
||||
(synopsis "Provides testing for JSON APIs with Behave for Python")
|
||||
(description "This package provides testing utility modules for testing
|
||||
JSON APIs with Behave.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-behave-web-api
|
||||
(package-with-python2 python-behave-web-api))
|
||||
|
||||
(define-public python-flask-script
|
||||
(package
|
||||
(name "python-flask-script")
|
||||
(version "2.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Flask-Script" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-flask" ,python-flask)
|
||||
("python-argcomplete" ,python-argcomplete)
|
||||
("python-werkzeug" ,python-werkzeug)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page
|
||||
"http://github.com/smurfix/flask-script")
|
||||
(synopsis "Scripting support for Flask")
|
||||
(description "The Flask-Script extension provides support for writing
|
||||
external scripts in Flask. This includes running a development server,
|
||||
a customised Python shell, scripts to set up your database, cronjobs,
|
||||
and other command-line tasks that belong outside the web application
|
||||
itself.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-flask-script
|
||||
(package-with-python2 python-flask-script))
|
||||
|
||||
(define-public python-flask-migrate
|
||||
(package
|
||||
(name "python-flask-migrate")
|
||||
(version "2.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Flask-Migrate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-flask" ,python-flask)
|
||||
("python-alembic" ,python-alembic)
|
||||
("python-sqlalchemy" ,python-sqlalchemy)
|
||||
("python-flask-script" ,python-flask-script)
|
||||
("python-flask-sqlalchemy" ,python-flask-sqlalchemy)))
|
||||
(home-page "http://github.com/miguelgrinberg/flask-migrate/")
|
||||
(synopsis "SQLAlchemy database migrations for Flask programs using
|
||||
Alembic")
|
||||
(description "This package contains SQLAlchemy database migration tools
|
||||
for Flask programs that are using @code{python-alembic}.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-flask-migrate
|
||||
(package-with-python2 python-flask-migrate))
|
||||
|
||||
(define-public python-packaging
|
||||
(package
|
||||
(name "python-packaging")
|
||||
(version "16.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "packaging" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17k1xbjshackwvbsnxqixbph8rbqhz4bf4g3al5xyzhavxgq6l2x"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pretend" ,python-pretend)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(propagated-inputs
|
||||
`(("python-pyparsing" ,python-pyparsing)
|
||||
("python-six" ,python-six)))
|
||||
(home-page "https://github.com/pypa/packaging")
|
||||
(synopsis "Core utilities for Python packages")
|
||||
(description "Packaging is a Python module for dealing with Python packages.
|
||||
It offers an interface for working with package versions, names, and dependency
|
||||
information.")
|
||||
;; From 'LICENSE': This software is made available under the terms of
|
||||
;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
|
||||
;; Contributions to this software is made under the terms of *both* these
|
||||
;; licenses.
|
||||
(license (list license:asl2.0 license:bsd-2))))
|
||||
|
||||
(define-public python2-packaging
|
||||
(package-with-python2 python-packaging))
|
||||
|
|
|
@ -365,7 +365,7 @@ required structures.")
|
|||
(package
|
||||
(inherit openssl)
|
||||
(name "openssl")
|
||||
(version "1.1.0e")
|
||||
(version "1.1.0f")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "ftp://ftp.openssl.org/source/"
|
||||
|
@ -376,7 +376,7 @@ required structures.")
|
|||
(patches (search-patches "openssl-1.1.0-c-rehash-in.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k47sdd9gs6yxfv6ldlgpld2lyzrkcv9kz4cf88ck04xjwc8dgjp"))))
|
||||
"0r97n4n552ns571diz54qsgarihrxvbn7kvyv8wjyfs9ybrldxqj"))))
|
||||
(outputs '("out"
|
||||
"doc" ;1.3MiB of man3 pages
|
||||
"static")) ; 5.5MiB of .a files
|
||||
|
|
|
@ -646,7 +646,7 @@ audio/video codec library.")
|
|||
(define-public vlc
|
||||
(package
|
||||
(name "vlc")
|
||||
(version "2.2.5.1")
|
||||
(version "2.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -654,7 +654,7 @@ audio/video codec library.")
|
|||
version "/vlc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k51vm6piqlrnld7sxyg0s4kdkd3lan97lmy3v5wdh3qyll8m2xj"))))
|
||||
"1a22b913p2227ljz89c4fgjlyln5gcz8z58w32r0wh4srnnd60y4"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("git" ,git) ; needed for a test
|
||||
|
|
|
@ -53,14 +53,14 @@
|
|||
(define-public webkitgtk
|
||||
(package
|
||||
(name "webkitgtk")
|
||||
(version "2.16.2")
|
||||
(version "2.16.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.webkitgtk.org/releases/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lpj14cfr8p0ys6z1ych0zcwxbc86asvgs7v3qa72azb0ai8kxjy"))))
|
||||
"04mmfxm8284zrlkrhkcn9gq1l4lpm1q6wwb5hyybj081v8qr2ki0"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
|
|
|
@ -72,16 +72,17 @@
|
|||
(define-public libconfuse
|
||||
(package
|
||||
(name "libconfuse")
|
||||
(version "2.7")
|
||||
(version "3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://savannah.nongnu.org/download/confuse/"
|
||||
"confuse-" version ".tar.gz"))
|
||||
(uri (string-append "https://github.com/martinh/libconfuse/"
|
||||
"releases/download/v" version
|
||||
"/confuse-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y47r2ashz44wvnxdb18ivpmj8nxhw3y9bf7v9w0g5byhgyp89g3"))))
|
||||
"0rnacgfkd88qyxrfdfzn9cxz533l9s5wrzb9093f9mbi00gg6wc1"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.nongnu.org/confuse/")
|
||||
(home-page "https://github.com/martinh/libconfuse")
|
||||
(synopsis "Configuration file parser library")
|
||||
(description "libconfuse is a configuration file parser library. It
|
||||
supports sections and (lists of) values (strings, integers, floats, booleans
|
||||
|
|
|
@ -441,7 +441,7 @@ of the screen selected by mouse.")
|
|||
(define-public slop
|
||||
(package
|
||||
(name "slop")
|
||||
(version "5.3.38")
|
||||
(version "6.3.38")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -450,7 +450,7 @@ of the screen selected by mouse.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gvsxzl4y4l7d5gvx24i0yxk3jxc1gnb48bjwvqmrh34gx974wn7"))))
|
||||
"1jh08k7nqx6hr4rmb5damzqhnqiac439i6i51fmzymzw3fqykas8"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no "check" target
|
||||
|
|
377
guix/base64.scm
377
guix/base64.scm
|
@ -5,6 +5,7 @@
|
|||
;; February 12, 2014.
|
||||
;;
|
||||
;; Some optimizations made by Ludovic Courtès <ludo@gnu.org>, 2015.
|
||||
;; Turned into a Guile module (instead of R6RS).
|
||||
;;
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
|
@ -42,211 +43,211 @@
|
|||
;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
;; DEALINGS IN THE SOFTWARE.
|
||||
|
||||
#!r6rs
|
||||
|
||||
;; RFC 4648 Base-N Encodings
|
||||
|
||||
(library (guix base64)
|
||||
(export base64-encode
|
||||
base64-decode
|
||||
base64-alphabet
|
||||
base64url-alphabet
|
||||
get-delimited-base64
|
||||
put-delimited-base64)
|
||||
(import (rnrs)
|
||||
(only (srfi :13 strings)
|
||||
string-index
|
||||
string-prefix? string-suffix?
|
||||
string-concatenate string-trim-both)
|
||||
(only (guile) ash logior))
|
||||
(define-module (guix base64)
|
||||
#:export (base64-encode
|
||||
base64-decode
|
||||
base64-alphabet
|
||||
base64url-alphabet
|
||||
get-delimited-base64
|
||||
put-delimited-base64)
|
||||
#:use-module (rnrs)
|
||||
#:use-module ((srfi srfi-13)
|
||||
#:select (string-index
|
||||
string-prefix? string-suffix?
|
||||
string-concatenate string-trim-both)))
|
||||
|
||||
|
||||
(define-syntax define-alias
|
||||
(syntax-rules ()
|
||||
((_ new old)
|
||||
(define-syntax new (identifier-syntax old)))))
|
||||
(define-syntax define-alias
|
||||
(syntax-rules ()
|
||||
((_ new old)
|
||||
(define-syntax new (identifier-syntax old)))))
|
||||
|
||||
;; Force the use of Guile's own primitives to avoid the overhead of its 'fx'
|
||||
;; procedures.
|
||||
(define-alias fxbit-field bitwise-bit-field)
|
||||
(define-alias fxarithmetic-shift ash)
|
||||
(define-alias fxarithmetic-shift-left ash)
|
||||
(define-alias fxand logand)
|
||||
(define-alias fxior logior)
|
||||
(define-alias fxxor logxor)
|
||||
;; Force the use of Guile's own primitives to avoid the overhead of its 'fx'
|
||||
;; procedures.
|
||||
|
||||
(define base64-alphabet
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
|
||||
(define-alias fxbit-field bitwise-bit-field)
|
||||
(define-alias fxarithmetic-shift ash)
|
||||
(define-alias fxarithmetic-shift-left ash)
|
||||
(define-alias fxand logand)
|
||||
(define-alias fxior logior)
|
||||
(define-alias fxxor logxor)
|
||||
|
||||
(define base64url-alphabet
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_")
|
||||
(define base64-alphabet
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
|
||||
|
||||
(define base64-encode
|
||||
(case-lambda
|
||||
;; Simple interface. Returns a string containing the canonical
|
||||
;; base64 representation of the given bytevector.
|
||||
((bv)
|
||||
(base64-encode bv 0 (bytevector-length bv) #f #f base64-alphabet #f))
|
||||
((bv start)
|
||||
(base64-encode bv start (bytevector-length bv) #f #f base64-alphabet #f))
|
||||
((bv start end)
|
||||
(base64-encode bv start end #f #f base64-alphabet #f))
|
||||
((bv start end line-length)
|
||||
(base64-encode bv start end line-length #f base64-alphabet #f))
|
||||
((bv start end line-length no-padding)
|
||||
(base64-encode bv start end line-length no-padding base64-alphabet #f))
|
||||
((bv start end line-length no-padding alphabet)
|
||||
(base64-encode bv start end line-length no-padding alphabet #f))
|
||||
;; Base64 encodes the bytes [start,end[ in the given bytevector.
|
||||
;; Lines are limited to line-length characters (unless #f),
|
||||
;; which must be a multiple of four. To omit the padding
|
||||
;; characters (#\=) set no-padding to a true value. If port is
|
||||
;; #f, returns a string.
|
||||
((bv start end line-length no-padding alphabet port)
|
||||
(assert (or (not line-length) (zero? (mod line-length 4))))
|
||||
(let-values (((p extract) (if port
|
||||
(values port (lambda () (values)))
|
||||
(open-string-output-port))))
|
||||
(letrec ((put (if line-length
|
||||
(let ((chars 0))
|
||||
(lambda (p c)
|
||||
(when (fx=? chars line-length)
|
||||
(set! chars 0)
|
||||
(put-char p #\linefeed))
|
||||
(set! chars (fx+ chars 1))
|
||||
(put-char p c)))
|
||||
put-char)))
|
||||
(let lp ((i start))
|
||||
(cond ((= i end))
|
||||
((<= (+ i 3) end)
|
||||
(let ((x (bytevector-uint-ref bv i (endianness big) 3)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(put p (string-ref alphabet (fxbit-field x 6 12)))
|
||||
(put p (string-ref alphabet (fxbit-field x 0 6)))
|
||||
(lp (+ i 3))))
|
||||
((<= (+ i 2) end)
|
||||
(let ((x (fxarithmetic-shift-left (bytevector-u16-ref bv i (endianness big)) 8)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(put p (string-ref alphabet (fxbit-field x 6 12)))
|
||||
(unless no-padding
|
||||
(put p #\=))))
|
||||
(else
|
||||
(let ((x (fxarithmetic-shift-left (bytevector-u8-ref bv i) 16)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(unless no-padding
|
||||
(put p #\=)
|
||||
(put p #\=)))))))
|
||||
(extract)))))
|
||||
(define base64url-alphabet
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_")
|
||||
|
||||
(define base64-encode
|
||||
(case-lambda
|
||||
;; Simple interface. Returns a string containing the canonical
|
||||
;; base64 representation of the given bytevector.
|
||||
((bv)
|
||||
(base64-encode bv 0 (bytevector-length bv) #f #f base64-alphabet #f))
|
||||
((bv start)
|
||||
(base64-encode bv start (bytevector-length bv) #f #f base64-alphabet #f))
|
||||
((bv start end)
|
||||
(base64-encode bv start end #f #f base64-alphabet #f))
|
||||
((bv start end line-length)
|
||||
(base64-encode bv start end line-length #f base64-alphabet #f))
|
||||
((bv start end line-length no-padding)
|
||||
(base64-encode bv start end line-length no-padding base64-alphabet #f))
|
||||
((bv start end line-length no-padding alphabet)
|
||||
(base64-encode bv start end line-length no-padding alphabet #f))
|
||||
;; Base64 encodes the bytes [start,end[ in the given bytevector.
|
||||
;; Lines are limited to line-length characters (unless #f),
|
||||
;; which must be a multiple of four. To omit the padding
|
||||
;; characters (#\=) set no-padding to a true value. If port is
|
||||
;; #f, returns a string.
|
||||
((bv start end line-length no-padding alphabet port)
|
||||
(assert (or (not line-length) (zero? (mod line-length 4))))
|
||||
(let-values (((p extract) (if port
|
||||
(values port (lambda () (values)))
|
||||
(open-string-output-port))))
|
||||
(letrec ((put (if line-length
|
||||
(let ((chars 0))
|
||||
(lambda (p c)
|
||||
(when (fx=? chars line-length)
|
||||
(set! chars 0)
|
||||
(put-char p #\linefeed))
|
||||
(set! chars (fx+ chars 1))
|
||||
(put-char p c)))
|
||||
put-char)))
|
||||
(let lp ((i start))
|
||||
(cond ((= i end))
|
||||
((<= (+ i 3) end)
|
||||
(let ((x (bytevector-uint-ref bv i (endianness big) 3)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(put p (string-ref alphabet (fxbit-field x 6 12)))
|
||||
(put p (string-ref alphabet (fxbit-field x 0 6)))
|
||||
(lp (+ i 3))))
|
||||
((<= (+ i 2) end)
|
||||
(let ((x (fxarithmetic-shift-left (bytevector-u16-ref bv i (endianness big)) 8)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(put p (string-ref alphabet (fxbit-field x 6 12)))
|
||||
(unless no-padding
|
||||
(put p #\=))))
|
||||
(else
|
||||
(let ((x (fxarithmetic-shift-left (bytevector-u8-ref bv i) 16)))
|
||||
(put p (string-ref alphabet (fxbit-field x 18 24)))
|
||||
(put p (string-ref alphabet (fxbit-field x 12 18)))
|
||||
(unless no-padding
|
||||
(put p #\=)
|
||||
(put p #\=)))))))
|
||||
(extract)))))
|
||||
|
||||
;; Decodes a base64 string. The string must contain only pure
|
||||
;; unpadded base64 data.
|
||||
(define base64-decode
|
||||
(case-lambda
|
||||
((str)
|
||||
(base64-decode str base64-alphabet #f))
|
||||
((str alphabet)
|
||||
(base64-decode str alphabet #f))
|
||||
((str alphabet port)
|
||||
(unless (zero? (mod (string-length str) 4))
|
||||
(error 'base64-decode
|
||||
"input string must be a multiple of four characters"))
|
||||
(let-values (((p extract) (if port
|
||||
(values port (lambda () (values)))
|
||||
(open-bytevector-output-port))))
|
||||
(do ((i 0 (+ i 4)))
|
||||
((= i (string-length str))
|
||||
(extract))
|
||||
(let ((c1 (string-ref str i))
|
||||
(c2 (string-ref str (+ i 1)))
|
||||
(c3 (string-ref str (+ i 2)))
|
||||
(c4 (string-ref str (+ i 3))))
|
||||
;; TODO: be more clever than string-index
|
||||
(let ((i1 (string-index alphabet c1))
|
||||
(i2 (string-index alphabet c2))
|
||||
(i3 (string-index alphabet c3))
|
||||
(i4 (string-index alphabet c4)))
|
||||
(cond ((and i1 i2 i3 i4)
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12)
|
||||
(fxarithmetic-shift-left i3 6)
|
||||
i4)))
|
||||
(put-u8 p (fxbit-field x 16 24))
|
||||
(put-u8 p (fxbit-field x 8 16))
|
||||
(put-u8 p (fxbit-field x 0 8))))
|
||||
((and i1 i2 i3 (char=? c4 #\=)
|
||||
(= i (- (string-length str) 4)))
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12)
|
||||
(fxarithmetic-shift-left i3 6))))
|
||||
(put-u8 p (fxbit-field x 16 24))
|
||||
(put-u8 p (fxbit-field x 8 16))))
|
||||
((and i1 i2 (char=? c3 #\=) (char=? c4 #\=)
|
||||
(= i (- (string-length str) 4)))
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12))))
|
||||
(put-u8 p (fxbit-field x 16 24))))
|
||||
(else
|
||||
(error 'base64-decode "invalid input"
|
||||
(list c1 c2 c3 c4)))))))))))
|
||||
|
||||
(define base64-decode
|
||||
(case-lambda
|
||||
((str)
|
||||
(base64-decode str base64-alphabet #f))
|
||||
((str alphabet)
|
||||
(base64-decode str alphabet #f))
|
||||
((str alphabet port)
|
||||
(unless (zero? (mod (string-length str) 4))
|
||||
(error 'base64-decode
|
||||
"input string must be a multiple of four characters"))
|
||||
(let-values (((p extract) (if port
|
||||
(values port (lambda () (values)))
|
||||
(open-bytevector-output-port))))
|
||||
(do ((i 0 (+ i 4)))
|
||||
((= i (string-length str))
|
||||
(extract))
|
||||
(let ((c1 (string-ref str i))
|
||||
(c2 (string-ref str (+ i 1)))
|
||||
(c3 (string-ref str (+ i 2)))
|
||||
(c4 (string-ref str (+ i 3))))
|
||||
;; TODO: be more clever than string-index
|
||||
(let ((i1 (string-index alphabet c1))
|
||||
(i2 (string-index alphabet c2))
|
||||
(i3 (string-index alphabet c3))
|
||||
(i4 (string-index alphabet c4)))
|
||||
(cond ((and i1 i2 i3 i4)
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12)
|
||||
(fxarithmetic-shift-left i3 6)
|
||||
i4)))
|
||||
(put-u8 p (fxbit-field x 16 24))
|
||||
(put-u8 p (fxbit-field x 8 16))
|
||||
(put-u8 p (fxbit-field x 0 8))))
|
||||
((and i1 i2 i3 (char=? c4 #\=)
|
||||
(= i (- (string-length str) 4)))
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12)
|
||||
(fxarithmetic-shift-left i3 6))))
|
||||
(put-u8 p (fxbit-field x 16 24))
|
||||
(put-u8 p (fxbit-field x 8 16))))
|
||||
((and i1 i2 (char=? c3 #\=) (char=? c4 #\=)
|
||||
(= i (- (string-length str) 4)))
|
||||
(let ((x (fxior (fxarithmetic-shift-left i1 18)
|
||||
(fxarithmetic-shift-left i2 12))))
|
||||
(put-u8 p (fxbit-field x 16 24))))
|
||||
(else
|
||||
(error 'base64-decode "invalid input"
|
||||
(list c1 c2 c3 c4)))))))))))
|
||||
|
||||
(define (get-line-comp f port)
|
||||
(if (port-eof? port)
|
||||
(eof-object)
|
||||
(f (get-line port))))
|
||||
(define (get-line-comp f port)
|
||||
(if (port-eof? port)
|
||||
(eof-object)
|
||||
(f (get-line port))))
|
||||
|
||||
;; Reads the common -----BEGIN/END type----- delimited format from
|
||||
;; the given port. Returns two values: a string with the type and a
|
||||
;; bytevector containing the base64 decoded data. The second value
|
||||
;; is the eof object if there is an eof before the BEGIN delimiter.
|
||||
(define (get-delimited-base64 port)
|
||||
(define (get-first-data-line port)
|
||||
;; Some MIME data has header fields in the same format as mail
|
||||
;; or http. These are ignored.
|
||||
(let ((line (get-line-comp string-trim-both port)))
|
||||
(cond ((eof-object? line) line)
|
||||
((string-index line #\:)
|
||||
(let lp () ;read until empty line
|
||||
(let ((line (get-line-comp string-trim-both port)))
|
||||
(if (string=? line "")
|
||||
(get-line-comp string-trim-both port)
|
||||
(lp)))))
|
||||
(else line))))
|
||||
|
||||
(define (get-delimited-base64 port)
|
||||
(define (get-first-data-line port)
|
||||
;; Some MIME data has header fields in the same format as mail
|
||||
;; or http. These are ignored.
|
||||
(let ((line (get-line-comp string-trim-both port)))
|
||||
(cond ((eof-object? line)
|
||||
(values "" (eof-object)))
|
||||
((string=? line "")
|
||||
(get-delimited-base64 port))
|
||||
((and (string-prefix? "-----BEGIN " line)
|
||||
(string-suffix? "-----" line))
|
||||
(let* ((type (substring line 11 (- (string-length line) 5)))
|
||||
(endline (string-append "-----END " type "-----")))
|
||||
(let-values (((outp extract) (open-bytevector-output-port)))
|
||||
(let lp ((line (get-first-data-line port)))
|
||||
(cond ((eof-object? line)
|
||||
(cond ((eof-object? line) line)
|
||||
((string-index line #\:)
|
||||
(let lp () ;read until empty line
|
||||
(let ((line (get-line-comp string-trim-both port)))
|
||||
(if (string=? line "")
|
||||
(get-line-comp string-trim-both port)
|
||||
(lp)))))
|
||||
(else line))))
|
||||
(let ((line (get-line-comp string-trim-both port)))
|
||||
(cond ((eof-object? line)
|
||||
(values "" (eof-object)))
|
||||
((string=? line "")
|
||||
(get-delimited-base64 port))
|
||||
((and (string-prefix? "-----BEGIN " line)
|
||||
(string-suffix? "-----" line))
|
||||
(let* ((type (substring line 11 (- (string-length line) 5)))
|
||||
(endline (string-append "-----END " type "-----")))
|
||||
(let-values (((outp extract) (open-bytevector-output-port)))
|
||||
(let lp ((line (get-first-data-line port)))
|
||||
(cond ((eof-object? line)
|
||||
(error 'get-delimited-base64
|
||||
"unexpected end of file"))
|
||||
((string-prefix? "-" line)
|
||||
(unless (string=? line endline)
|
||||
(error 'get-delimited-base64
|
||||
"unexpected end of file"))
|
||||
((string-prefix? "-" line)
|
||||
(unless (string=? line endline)
|
||||
(error 'get-delimited-base64
|
||||
"bad end delimiter" type line))
|
||||
(values type (extract)))
|
||||
(else
|
||||
(unless (and (= (string-length line) 5)
|
||||
(string-prefix? "=" line)) ;Skip Radix-64 checksum
|
||||
(base64-decode line base64-alphabet outp))
|
||||
(lp (get-line-comp string-trim-both port))))))))
|
||||
(else ;skip garbage (like in openssl x509 -in foo -text output).
|
||||
(get-delimited-base64 port)))))
|
||||
"bad end delimiter" type line))
|
||||
(values type (extract)))
|
||||
(else
|
||||
(unless (and (= (string-length line) 5)
|
||||
(string-prefix? "=" line)) ;Skip Radix-64 checksum
|
||||
(base64-decode line base64-alphabet outp))
|
||||
(lp (get-line-comp string-trim-both port))))))))
|
||||
(else ;skip garbage (like in openssl x509 -in foo -text output).
|
||||
(get-delimited-base64 port)))))
|
||||
|
||||
(define put-delimited-base64
|
||||
(case-lambda
|
||||
((port type bv line-length)
|
||||
(display (string-append "-----BEGIN " type "-----\n") port)
|
||||
(base64-encode bv 0 (bytevector-length bv)
|
||||
line-length #f base64-alphabet port)
|
||||
(display (string-append "\n-----END " type "-----\n") port))
|
||||
((port type bv)
|
||||
(put-delimited-base64 port type bv 76)))))
|
||||
(define put-delimited-base64
|
||||
(case-lambda
|
||||
((port type bv line-length)
|
||||
(display (string-append "-----BEGIN " type "-----\n") port)
|
||||
(base64-encode bv 0 (bytevector-length bv)
|
||||
line-length #f base64-alphabet port)
|
||||
(display (string-append "\n-----END " type "-----\n") port))
|
||||
((port type bv)
|
||||
(put-delimited-base64 port type bv 76))))
|
||||
|
|
|
@ -403,8 +403,8 @@ is one of `host' or `target'."
|
|||
(case kind
|
||||
((host)
|
||||
`(("cross-gcc" ,(gcc target
|
||||
(binutils target)
|
||||
(libc target)))
|
||||
#:xbinutils (binutils target)
|
||||
#:libc (libc target)))
|
||||
("cross-binutils" ,(binutils target))))
|
||||
((target)
|
||||
`(("cross-libc" ,(libc target))))))))
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:export (build-guix))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -36,13 +37,18 @@
|
|||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define (depends-on-guile-ssh? file)
|
||||
"Return true if FILE is a Scheme source file that depends, directly or
|
||||
indirectly, on Guile-SSH."
|
||||
(find (match-lambda
|
||||
(('ssh _ ...) #t)
|
||||
(_ #f))
|
||||
(source-module-closure file #:select? (const #t))))
|
||||
(define (has-all-its-dependencies? file)
|
||||
"Return true if the dependencies of the module defined in FILE are
|
||||
available, false otherwise."
|
||||
(let ((module (call-with-input-file file
|
||||
(lambda (port)
|
||||
(match (read port)
|
||||
(('define-module name _ ...)
|
||||
name))))))
|
||||
;; If one of the dependencies of MODULE is missing, we get a
|
||||
;; '&missing-dependency-error'.
|
||||
(guard (c ((missing-dependency-error? c) #f))
|
||||
(source-module-closure (list module) #:select? (const #t)))))
|
||||
|
||||
(define (all-scheme-files directory)
|
||||
"Return a sorted list of Scheme files found in DIRECTORY."
|
||||
|
@ -145,10 +151,7 @@ containing the source code. Write any debugging output to DEBUG-PORT."
|
|||
;; Compile the .scm files. Load all the files before compiling them to
|
||||
;; work around <http://bugs.gnu.org/15602> (FIXME).
|
||||
;; Filter out files depending on Guile-SSH when Guile-SSH is missing.
|
||||
(let* ((files (remove (if (false-if-exception
|
||||
(resolve-interface '(ssh session)))
|
||||
(const #f)
|
||||
depends-on-guile-ssh?)
|
||||
(let* ((files (filter has-all-its-dependencies?
|
||||
(all-scheme-files out)))
|
||||
(total (length files)))
|
||||
(let loop ((files files)
|
||||
|
|
|
@ -20,8 +20,13 @@
|
|||
#:use-module (guix memoization)
|
||||
#:use-module (guix sets)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (source-module-closure
|
||||
#:export (missing-dependency-error?
|
||||
missing-dependency-module
|
||||
|
||||
source-module-closure
|
||||
live-module-closure
|
||||
guix-module-name?))
|
||||
|
||||
|
@ -35,6 +40,11 @@
|
|||
;;;
|
||||
;;; Code:
|
||||
|
||||
;; The error corresponding to a missing module.
|
||||
(define-condition-type &missing-dependency-error &error
|
||||
missing-dependency-error?
|
||||
(module missing-dependency-module))
|
||||
|
||||
(define (colon-symbol? obj)
|
||||
"Return true if OBJ is a symbol that starts with a colon."
|
||||
(and (symbol? obj)
|
||||
|
@ -106,9 +116,12 @@ depends on."
|
|||
"Return the modules used by MODULE by looking at its source code."
|
||||
(if (member module %source-less-modules)
|
||||
'()
|
||||
(module-file-dependencies
|
||||
(search-path load-path
|
||||
(module-name->file-name module)))))
|
||||
(match (search-path load-path (module-name->file-name module))
|
||||
((? string? file)
|
||||
(module-file-dependencies file))
|
||||
(#f
|
||||
(raise (condition (&missing-dependency-error
|
||||
(module module))))))))
|
||||
|
||||
(define* (module-closure modules
|
||||
#:key
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -19,7 +19,9 @@
|
|||
(define-module (test-modules)
|
||||
#:use-module (guix modules)
|
||||
#:use-module ((guix build-system gnu) #:select (%gnu-build-system-modules))
|
||||
#:use-module ((guix utils) #:select (call-with-temporary-directory))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-64))
|
||||
|
||||
(test-begin "modules")
|
||||
|
@ -42,4 +44,25 @@
|
|||
(live-module-closure '((gnu build vm)))
|
||||
(source-module-closure '((gnu build vm)))))
|
||||
|
||||
(test-equal "&missing-dependency-error"
|
||||
'(something that does not exist)
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(call-with-output-file (string-append directory "/foobar.scm")
|
||||
(lambda (port)
|
||||
(write '(define-module (foobar)
|
||||
#:use-module (something that does not exist))
|
||||
port)))
|
||||
|
||||
(call-with-output-file (string-append directory "/baz.scm")
|
||||
(lambda (port)
|
||||
(write '(define-module (baz)
|
||||
#:use-module (foobar))
|
||||
port)))
|
||||
|
||||
(guard (c ((missing-dependency-error? c)
|
||||
(missing-dependency-module c)))
|
||||
(source-module-closure '((baz)) (list directory)
|
||||
#:select? (const #t))))))
|
||||
|
||||
(test-end)
|
||||
|
|
Reference in New Issue