diff options
Diffstat (limited to 'gnu')
70 files changed, 1579 insertions, 2360 deletions
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm index 6b44ab610b..c43ce85b60 100644 --- a/gnu/build/accounts.scm +++ b/gnu/build/accounts.scm @@ -483,9 +483,12 @@ new UIDs." (real-name (if previous (password-entry-real-name previous) real-name)) - (shell (if previous - (password-entry-shell previous) - shell))) + + ;; Do not reuse the shell of PREVIOUS since (1) + ;; that could lead to confusion, and (2) the + ;; shell might have been GC'd. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2019-04/msg00478.html>. + (shell shell)) result) allocation)))) '() diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index f2953621ec..372cf63c68 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -473,8 +473,12 @@ GRUB configuration and OS-DRV as the stuff in it." ;; allows for deterministic builds. (setenv "GRUB_FAT_SERIAL_NUMBER" (number->string (if volume-uuid + + ;; On 32-bit systems the 2nd argument must be + ;; lower than 2^32. (string-hash (iso9660-uuid->string volume-uuid) - (expt 2 32)) + (- (expt 2 32) 1)) + #x77777777) 16)) diff --git a/gnu/installer.scm b/gnu/installer.scm index 881c40ee9b..fe2841397e 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -314,6 +314,7 @@ selected keymap." guile-json guile-git guix) (with-imported-modules `(,@(source-module-closure `(,@modules + (gnu services herd) (guix build utils)) #:select? module-to-import?) ((guix config) => ,(make-config.scm))) @@ -363,10 +364,20 @@ selected keymap." (catch #t (lambda () - (run-installer-steps - #:rewind-strategy 'menu - #:menu-proc (installer-menu-page current-installer) - #:steps steps)) + (define results + (run-installer-steps + #:rewind-strategy 'menu + #:menu-proc (installer-menu-page current-installer) + #:steps steps)) + + (match (result-step results 'final) + ('success + ;; We did it! Let's reboot! + (sync) + (stop-service 'root)) + (_ ;installation failed + ;; TODO: Honor the result of 'run-install-failed-page'. + #f))) (const #f) (lambda (key . args) (let ((error-file "/tmp/last-installer-error")) @@ -389,4 +400,5 @@ selected keymap." ;; some reason, unicode support is not correctly installed ;; when calling this in 'installer-builder'. (setenv "LANG" "en_US.UTF-8") - (system #$(program-file "installer-real" installer-builder))))) + (execl #$(program-file "installer-real" installer-builder) + "installer-real")))) diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm index 07946f72c3..c41670c197 100644 --- a/gnu/installer/final.scm +++ b/gnu/installer/final.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,19 +21,97 @@ #:use-module (gnu installer newt page) #:use-module (gnu installer steps) #:use-module (gnu installer utils) + #:use-module (gnu installer user) #:use-module (gnu services herd) #:use-module (guix build utils) + #:use-module (gnu build accounts) + #:use-module ((gnu system shadow) #:prefix sys:) + #:use-module (rnrs io ports) #:export (install-system)) -(define (install-system locale) - "Start COW-STORE service on target directory and launch guix install command -in a subshell. LOCALE must be the locale name under which that command will -run, or #f." +(define %seed + (seed->random-state + (logxor (getpid) (car (gettimeofday))))) + +(define (integer->alphanumeric-char n) + "Map N, an integer in the [0..62] range, to an alphanumeric character." + (cond ((< n 10) + (integer->char (+ (char->integer #\0) n))) + ((< n 36) + (integer->char (+ (char->integer #\A) (- n 10)))) + ((< n 62) + (integer->char (+ (char->integer #\a) (- n 36)))) + (else + (error "integer out of bounds" n)))) + +(define (random-string len) + "Compute a random string of size LEN where each character is alphanumeric." + (let loop ((chars '()) + (len len)) + (if (zero? len) + (list->string chars) + (let ((n (random 62 %seed))) + (loop (cons (integer->alphanumeric-char n) chars) + (- len 1)))))) + +(define (create-user-database users root) + "Create /etc/passwd, /etc/shadow, and /etc/group under ROOT for the given +USERS." + (define etc + (string-append root "/etc")) + + (define (salt) + ;; "$6" gives us a SHA512 password hash; the random string must be taken + ;; from the './0-9A-Za-z' alphabet (info "(libc) Passphrase Storage"). + (string-append "$6$" (random-string 10))) + + (define users* + (map (lambda (user) + (define root? + (string=? "root" (user-name user))) + + (sys:user-account (name (user-name user)) + (group "users") + (uid (if root? 0 #f)) + (home-directory + (user-home-directory user)) + (password (crypt (user-password user) + (salt))) + + ;; We need a string here, not a file-like, hence + ;; this choice. + (shell + "/run/current-system/profile/bin/bash"))) + users)) + + (define-values (group password shadow) + (user+group-databases users* sys:%base-groups + #:current-passwd '() + #:current-groups '() + #:current-shadow '())) + + (mkdir-p etc) + (write-group group (string-append etc "/group")) + (write-passwd password (string-append etc "/passwd")) + (write-shadow shadow (string-append etc "/shadow"))) + +(define* (install-system locale #:key (users '())) + "Create /etc/shadow and /etc/passwd on the installation target for USERS. +Start COW-STORE service on target directory and launch guix install command in +a subshell. LOCALE must be the locale name under which that command will run, +or #f. Return #t on success and #f on failure." (let ((install-command (format #f "guix system init ~a ~a" (%installer-configuration-file) (%installer-target-dir)))) (mkdir-p (%installer-target-dir)) + + ;; We want to initialize user passwords but we don't want to store them in + ;; the config file since the password hashes would end up world-readable + ;; in the store. Thus, create /etc/shadow & co. here such that, on the + ;; first boot, the activation snippet that creates accounts will reuse the + ;; passwords that we've put in there. + (create-user-database users (%installer-target-dir)) + (start-service 'cow-store (list (%installer-target-dir))) - (false-if-exception (run-shell-command install-command - #:locale locale)))) + (run-shell-command install-command #:locale locale))) diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm index f492c5dbb7..e8d3c48a36 100644 --- a/gnu/installer/newt/final.scm +++ b/gnu/installer/newt/final.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,7 +56,10 @@ This will take a few minutes.") (G_ "Reboot") (G_ "Congratulations! Installation is now complete. \ You may remove the device containing the installation image and \ -press the button to reboot."))) +press the button to reboot.")) + + ;; Return success so that the installer happily reboots. + 'success) (define (run-install-failed-page) (choice-window @@ -65,10 +69,11 @@ press the button to reboot."))) (G_ "The final system installation step failed. You can retry the \ last step, or restart the installer."))) -(define (run-install-shell locale) +(define* (run-install-shell locale + #:key (users '())) (clear-screen) (newt-suspend) - (let ((install-ok? (install-system locale))) + (let ((install-ok? (install-system locale #:users users))) (newt-resume) install-ok?)) @@ -76,12 +81,13 @@ last step, or restart the installer."))) (let* ((configuration (format-configuration prev-steps result)) (user-partitions (result-step result 'partition)) (locale (result-step result 'locale)) + (users (result-step result 'user)) (install-ok? (with-mounted-partitions user-partitions (configuration->file configuration) (run-config-display-page) - (run-install-shell locale)))) + (run-install-shell locale #:users users)))) (if install-ok? (run-install-success-page) (run-install-failed-page)))) diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm index 37a2a45411..cf27a8cca2 100644 --- a/gnu/installer/newt/network.scm +++ b/gnu/installer/newt/network.scm @@ -93,7 +93,8 @@ network device were found. Do you want to continue anyway?")) (full-value 5)) (run-scale-page #:title (G_ "Powering technology") - #:info-text (format #f "Waiting for technology ~a to be powered." name) + #:info-text (format #f (G_ "Waiting for technology ~a to be powered.") + name) #:scale-full-value full-value #:scale-update-proc (lambda (value) diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm index 5c650652bd..e9514e110f 100644 --- a/gnu/installer/newt/page.scm +++ b/gnu/installer/newt/page.scm @@ -75,17 +75,20 @@ this page to TITLE." #:key (allow-empty-input? #f) (default-text #f) - (input-field-width 40)) + (input-field-width 40) + (input-flags 0)) "Run a page to prompt user for an input. The given TEXT will be displayed above the input field. The page title is set to TITLE. Unless allow-empty-input? is set to #t, an error page will be displayed if the user -enters an empty input." +enters an empty input. INPUT-FLAGS is a bitwise-or'd set of flags for the +input box, such as FLAG-PASSWORD." (let* ((text-box (make-reflowed-textbox -1 -1 text input-field-width #:flags FLAG-BORDER)) (grid (make-grid 1 3)) - (input-entry (make-entry -1 -1 20)) + (input-entry (make-entry -1 -1 20 + #:flags input-flags)) (ok-button (make-button -1 -1 (G_ "OK"))) (form (make-form))) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 373aedd24c..8cce7da93b 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -42,8 +42,8 @@ (define (run-scheme-page) "Run a page asking the user for a partitioning scheme." (let* ((items - '((root . "Everything is one partition") - (root-home . "Separate /home partition"))) + `((root . ,(G_ "Everything is one partition")) + (root-home . ,(G_ "Separate /home partition")))) (result (run-listbox-selection-page #:info-text (G_ "Please select a partitioning scheme.") #:title (G_ "Partition scheme") @@ -152,6 +152,10 @@ USER-PARTITIONS list. Return this list with password fields filled-in." (file-name (user-partition-file-name user-part)) (password-page (lambda () + ;; Note: Don't use FLAG-PASSWORD here because this is the + ;; first bit of text that the user types in, so it's + ;; probably safer if they can see that the keyboard layout + ;; they chose is in effect. (run-input-page (format #f (G_ "Please enter the password for the \ encryption of partition ~a (label: ~a).") file-name crypt-label) @@ -161,7 +165,8 @@ encryption of partition ~a (label: ~a).") file-name crypt-label) (run-input-page (format #f (G_ "Please confirm the password for the \ encryption of partition ~a (label: ~a).") file-name crypt-label) - (G_ "Password confirmation required"))))) + (G_ "Password confirmation required") + #:input-flags FLAG-PASSWORD)))) (if crypt-label (let loop () (let ((password (password-page)) @@ -424,10 +429,10 @@ partition. Leave this field empty if you don't want to set a mounting point.") (run-listbox-selection-page #:info-text (if creation? - (G_ (format #f "Creating ~a partition starting at ~a of ~a." - type-str start file-name)) - (G_ (format #f "You are currently editing partition ~a." - number-str))) + (format #f (G_ "Creating ~a partition starting at ~a of ~a.") + type-str start file-name) + (format #f (G_ "You are currently editing partition ~a.") + number-str)) #:title (if creation? (G_ "Partition creation") (G_ "Partition edit")) @@ -719,9 +724,9 @@ by pressing the Exit button.~%~%"))) "Run a page asking the user for a partitioning method." (define (run-page devices) (let* ((items - '((entire . "Guided - using the entire disk") - (entire-encrypted . "Guided - using the entire disk with encryption") - (manual . "Manual"))) + `((entire . ,(G_ "Guided - using the entire disk")) + (entire-encrypted . ,(G_ "Guided - using the entire disk with encryption")) + (manual . ,(G_ "Manual")))) (result (run-listbox-selection-page #:info-text (G_ "Please select a partitioning method.") #:title (G_ "Partitioning method") diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm index 59b1913cfc..617d2d0bca 100644 --- a/gnu/installer/newt/user.scm +++ b/gnu/installer/newt/user.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,9 @@ #:use-module (srfi srfi-26) #:export (run-user-page)) -(define (run-user-add-page) +(define* (run-user-add-page #:key (name "") (home-directory "")) + "Run a form to enter the user name, home directory, and password. Use NAME +and HOME-DIRECTORY as the initial values in the form." (define (pad-label label) (string-pad-right label 20)) @@ -36,10 +39,16 @@ (make-label -1 -1 (pad-label (G_ "Name")))) (label-home-directory (make-label -1 -1 (pad-label (G_ "Home directory")))) + (label-password + (make-label -1 -1 (pad-label (G_ "Password")))) (entry-width 30) - (entry-name (make-entry -1 -1 entry-width)) - (entry-home-directory (make-entry -1 -1 entry-width)) - (entry-grid (make-grid 2 2)) + (entry-name (make-entry -1 -1 entry-width + #:initial-value name)) + (entry-home-directory (make-entry -1 -1 entry-width + #:initial-value home-directory)) + (entry-password (make-entry -1 -1 entry-width + #:flags FLAG-PASSWORD)) + (entry-grid (make-grid 3 4)) (button-grid (make-grid 1 1)) (ok-button (make-button -1 -1 (G_ "OK"))) (grid (make-grid 1 2)) @@ -52,6 +61,8 @@ (set-entry-grid-field 1 0 entry-name) (set-entry-grid-field 0 1 label-home-directory) (set-entry-grid-field 1 1 entry-home-directory) + (set-entry-grid-field 0 2 label-password) + (set-entry-grid-field 1 2 entry-password) (set-grid-field button-grid 0 0 GRID-ELEMENT-COMPONENT ok-button) @@ -62,8 +73,8 @@ (string-append "/home/" (entry-value entry-name))))) (add-components-to-form form - label-name label-home-directory - entry-name entry-home-directory + label-name label-home-directory label-password + entry-name entry-home-directory entry-password ok-button) (make-wrapped-grid-window (vertically-stacked-grid @@ -82,8 +93,9 @@ (when (eq? exit-reason 'exit-component) (cond ((components=? argument ok-button) - (let ((name (entry-value entry-name)) - (home-directory (entry-value entry-home-directory))) + (let ((name (entry-value entry-name)) + (home-directory (entry-value entry-home-directory)) + (password (entry-value entry-password))) (if (or (string=? name "") (string=? home-directory "")) (begin @@ -91,10 +103,46 @@ (run-user-add-page)) (user (name name) - (home-directory home-directory)))))))) + (home-directory home-directory) + (password + (confirm-password password + (lambda () + (run-user-add-page + #:name name + #:home-directory + home-directory))))))))))) (lambda () (destroy-form-and-pop form))))))) +(define (confirm-password password try-again) + "Ask the user to confirm PASSWORD, a possibly empty string. Call TRY-AGAIN, +a thunk, if the confirmation doesn't match PASSWORD. Return the confirmed +password." + (define confirmation + (run-input-page (G_ "Please confirm the password.") + (G_ "Password confirmation required") + #:allow-empty-input? #t + #:input-flags FLAG-PASSWORD)) + + (if (string=? password confirmation) + password + (begin + (run-error-page + (G_ "Password mismatch, please try again.") + (G_ "Password error")) + (try-again)))) + +(define (run-root-password-page) + ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the + ;; system administrator account. + (define password + (run-input-page (G_ "Please choose a password for the system \ +administrator (\"root\").") + (G_ "System administrator password") + #:input-flags FLAG-PASSWORD)) + + (confirm-password password run-root-password-page)) + (define (run-user-page) (define (run users) (let* ((listbox (make-listbox @@ -169,7 +217,12 @@ (run-error-page (G_ "Please create at least one user.") (G_ "No user")) (run users)) - users)))) + (reverse users))))) (lambda () (destroy-form-and-pop form)))))) - (run '())) + + ;; Add a "root" user simply to convey the root password. + (cons (user (name "root") + (home-directory "/root") + (password (run-root-password-page))) + (run '()))) diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm index 1f8d40a011..29fab6414e 100644 --- a/gnu/installer/user.scm +++ b/gnu/installer/user.scm @@ -18,12 +18,14 @@ (define-module (gnu installer user) #:use-module (guix records) + #:use-module (srfi srfi-1) #:export (<user> user make-user user-name user-group user-home-directory + user-password users->configuration)) @@ -33,18 +35,23 @@ (name user-name) (group user-group (default "users")) + (password user-password) (home-directory user-home-directory)) (define (users->configuration users) "Return the configuration field for USERS." + (define (user->sexp user) + `(user-account + (name ,(user-name user)) + (group ,(user-group user)) + (home-directory ,(user-home-directory user)) + (supplementary-groups '("wheel" "netdev" + "audio" "video")))) + `((users (cons* - ,@(map (lambda (user) - `(user-account - (name ,(user-name user)) - (group ,(user-group user)) - (home-directory ,(user-home-directory user)) - (supplementary-groups - (quote ("wheel" "netdev" - "audio" "video"))))) - users) - %base-user-accounts)))) + ,@(filter-map (lambda (user) + ;; Do not emit a 'user-account' form for "root". + (and (not (string=? (user-name user) "root")) + (user->sexp user))) + users) + %base-user-accounts)))) diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 256722729c..ddb96bc338 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (gnu installer utils) #:use-module (guix utils) #:use-module (guix build utils) + #:use-module (guix i18n) + #:use-module (srfi srfi-34) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) #:use-module (ice-9 textual-ports) @@ -55,7 +58,12 @@ number. If no percentage is found, return #f" (string->number (match:substring result 1))))) (define* (run-shell-command command #:key locale) - "Run COMMAND, a string, with Bash, and in the given LOCALE." + "Run COMMAND, a string, with Bash, and in the given LOCALE. Return true if +COMMAND exited successfully, #f otherwise." + (define (pause) + (format #t (G_ "Press Enter to continue.~%")) + (read-line (current-input-port))) + (call-with-temporary-output-file (lambda (file port) (when locale @@ -69,7 +77,17 @@ number. If no percentage is found, return #f" (string-take locale (string-index locale #\_)))))) - (format port "~a~%" command) - ;; (format port "exit~%") + (format port "exec ~a~%" command) (close port) - (invoke "bash" "--init-file" file)))) + + (guard (c ((invoke-error? c) + (newline) + (format (current-error-port) + (G_ "Command failed with exit code ~a.~%") + (invoke-error-exit-status c)) + (pause) + #f)) + (invoke "bash" "--init-file" file) + (newline) + (pause) + #t)))) diff --git a/gnu/local.mk b/gnu/local.mk index 43175b2465..15db537098 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -683,6 +683,7 @@ dist_patch_DATA = \ %D%/packages/patches/beets-python-3.7-fix.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/biber-fix-encoding-write.patch \ + %D%/packages/patches/bind-fix-unused-pk11-ecc-constants.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ @@ -1200,6 +1201,7 @@ dist_patch_DATA = \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-faker-fix-build-32bit.patch \ + %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-testtools.patch \ @@ -1267,8 +1269,6 @@ dist_patch_DATA = \ %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ - %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \ - %D%/packages/patches/soundtouch-CVE-2018-1000223.patch \ %D%/packages/patches/sssd-curl-compat.patch \ %D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/streamlink-update-test.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 94145c04e8..5d88f36a3a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2704,7 +2704,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.0.32-1") + (version "3.0.33-1") (source (origin (method git-fetch) @@ -2713,7 +2713,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "171xdip2alkp3g0k0sanaavvdcz6d0wlldj9lgj11xsdbhaaknnv")))) + (base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c")))) (build-system trivial-build-system) (inputs `(("bash" ,bash-minimal) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 80eaab3e5c..7d5de08be9 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -538,7 +538,7 @@ that is safe to use for user space. It also includes (native-inputs `(("android-core" ,(android-platform-system-core version)))) (home-page "https://developer.android.com/") - (synopsis "Android ext4 filesystem utils") + (synopsis "Android ext4 file system utilities") (description "@code{android-ext4-utils} is a library in common use by the Android core.") (license license:asl2.0))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 7a79f4dcab..49fcc511e6 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2691,18 +2691,16 @@ Tracker 3 S3M and Impulse Tracker IT files.") (define-public soundtouch (package (name "soundtouch") - (version "2.0.0") + (version "2.1.1") (source (origin - (method url-fetch) - (uri - (string-append - "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz")) - (patches (search-patches "soundtouch-CVE-2018-14044-14045.patch" - "soundtouch-CVE-2018-1000223.patch")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/soundtouch/soundtouch.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j")))) + (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index a77114f723..deb179c4d9 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -3680,7 +3680,7 @@ visualization with image data.") (synopsis "Tools for high-throughput metabolomics") (description "This package provides tools to analyze and visualize high-throughput -metabolomics data aquired using chromatography-mass spectrometry. These tools +metabolomics data acquired using chromatography-mass spectrometry. These tools preprocess data in a way that enables reliable and powerful differential analysis.") (license license:artistic2.0))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4cf6900498..8a49e1e350 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -8290,6 +8290,9 @@ secondary structure and comparative analysis in R.") "13fv78sk5g0gqfl3ks3rps3zc1k66a4lzxvgn36r7ix43yxk7hnr")))) (properties `((upstream-name . "Rhtslib"))) (build-system r-build-system) + ;; Without this a temporary directory ends up in the Rhtslib.so binary, + ;; which makes R abort the build. + (arguments '(#:configure-flags '("--no-staged-install"))) (propagated-inputs `(("r-zlibbioc" ,r-zlibbioc))) (inputs @@ -9953,6 +9956,16 @@ effort and encourages consistency.") (base32 "0wq49qqzkcn8s19xgaxf2s1j1a563d7pbhhvris6fhxfdjsz4934")))) (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; See https://github.com/tengfei/ggbio/issues/117 + ;; This fix will be included in the next release. + (add-after 'unpack 'fix-typo + (lambda _ + (substitute* "R/GGbio-class.R" + (("fechable") "fetchable")) + #t))))) (propagated-inputs `(("r-annotationdbi" ,r-annotationdbi) ("r-annotationfilter" ,r-annotationfilter) @@ -14739,3 +14752,38 @@ tools for identifying genome bins that are likely candidates for merging based on marker set compatibility, similarity in genomic characteristics, and proximity within a reference genome.") (license license:gpl3+))) + +(define-public umi-tools + (package + (name "umi-tools") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "umi_tools" version)) + (sha256 + (base32 + "08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools) + ("python-pandas" ,python-pandas) + ("python-future" ,python-future) + ("python-scipy" ,python-scipy) + ("python-matplotlib" ,python-matplotlib) + ("python-regex" ,python-regex) + ("python-pysam" ,python-pysam))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-cython" ,python-cython))) + (home-page "https://github.com/CGATOxford/UMI-tools") + (synopsis "Tools for analyzing unique modular identifiers") + (description "This package provides tools for dealing with @dfn{Unique +Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in +genetic sequences. There are six tools: the @code{extract} and +@code{whitelist} commands are used to prepare a fastq containg UMIs @code{+/-} +cell barcodes for alignment. The remaining commands, @code{group}, +@code{dedup}, and @{count}/@code{count_tab}, are used to identify PCR +duplicates using the UMIs and perform different levels of analysis depending +on the needs of the user.") + (license license:expat))) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index a38abf0b5b..0be1102683 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2262,3 +2263,52 @@ record the properties and behaviour of particular devices, and to run a program or test suite under a test bed with the previously recorded devices loaded.") (license license:lgpl2.1+))) + +(define-public python-pyfakefs + (package + (name "python-pyfakefs") + (version "3.5.8") + (source (origin + (method url-fetch) + ;; We use the PyPI URL because there is no proper release + ;; available from GitHub. The GitHub project only provides + ;; autogenerated tarballs, which are known to change in place. + (uri (pypi-uri "pyfakefs" version)) + (sha256 + (base32 + "0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc")) + (patches (search-patches + "python-pyfakefs-remove-bad-test.patch")) + (file-name (string-append name "-" version ".tar.gz")))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; The default test suite does not run these extra tests. + (add-after 'check 'check-pytest-plugin + (lambda _ + (invoke + "python" "-m" "pytest" + "pyfakefs/pytest_tests/pytest_plugin_test.py") + #t))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (build-system python-build-system) + ;; Guix lint doesn't like that this is a permanent redirect to the GitHub + ;; page, but the pyfakefs documentation asks us to use this specific URL + ;; when linking to the project. Honor their request. + (home-page "http://pyfakefs.org/") + ;; TRANSLATORS: In the synopsis, "Mock" is a verb. + (synopsis "Mock file system interactions in tests") + (description + "This package provides a Python library intended for use in automated +tests. One difficulty when testing software is that the code under test might +need to read or write to files in the local file system. If the file system +is not set up in just the right way, it might cause a spurious error during +the test. The pyfakefs library provides a solution to problems like this by +mocking file system interactions. In other words, it arranges for the code +under test to interact with a fake file system instead of the real file +system. The code under test requires no modification to work with pyfakefs.") + (license license:asl2.0))) + +(define-public python2-pyfakefs + (package-with-python2 python-pyfakefs)) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 742bc5f663..d282ee8ad3 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -119,14 +119,14 @@ are not used.") (define-public r-sys (package (name "r-sys") - (version "3.1") + (version "3.2") (source (origin (method url-fetch) (uri (cran-uri "sys" version)) (sha256 (base32 - "0aj3wcyah3r7c9s3rbs0c8nifd4vqmkzg9fqkrb7f838ww0qw24q")))) + "1k5vk5q9wa5sin0n226i05nymg469s24f6lx64yyhb7yc624j698")))) (build-system r-build-system) (home-page "https://github.com/jeroen/sys") (synopsis "Powerful and reliable tools for running system commands in R") @@ -2867,14 +2867,14 @@ with the package @code{optim}.") (define-public r-ordinal (package (name "r-ordinal") - (version "2019.3-9") + (version "2019.4-25") (source (origin (method url-fetch) (uri (cran-uri "ordinal" version)) (sha256 (base32 - "0xsr2715ghh1q5hjnx7d8lyavzfvpi370blm1xdljn3p4kar8ldi")))) + "1pvrkly4x12w32n7w1qljdwzqnlkv7rfa7rx0nz5vbiw29xas4i8")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) @@ -7193,6 +7193,26 @@ replicating the evaluation as many times as specified, and returning the results conveniently wrapped into a data frame.") (license license:gpl2+))) +(define-public r-mitools + (package + (name "r-mitools") + (version "2.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "mitools" version)) + (sha256 + (base32 + "0c2x2n1p53lcw0vx4vmy5j7m2f95i7g2iwbryl89imr99rvz617j")))) + (build-system r-build-system) + (propagated-inputs `(("r-dbi" ,r-dbi))) + (home-page "https://cran.r-project.org/web/packages/mitools/") + (synopsis "Tools for multiple imputation of missing data") + (description + "This package provides tools to perform analyses and combine results from +multiple-imputation datasets.") + (license license:gpl2))) + (define-public r-magick (package (name "r-magick") @@ -7229,19 +7249,20 @@ console, resulting in an interactive editing environment.") (define-public r-survey (package (name "r-survey") - (version "3.35-1") + (version "3.36") (source (origin (method url-fetch) (uri (cran-uri "survey" version)) (sha256 (base32 - "1nv4sdfmidvyjgvp3zvn5iw35bb8w0v7095is2pdy8cckkgdvr8i")))) + "0xclsy4ram4k48vzh5m5bpmknnpwxnss85v73s4czsjj5ffjxwwh")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice) ("r-matrix" ,r-matrix) ("r-minqa" ,r-minqa) + ("r-mitools" ,r-mitools) ("r-numderiv" ,r-numderiv) ("r-survival" ,r-survival))) (home-page "http://r-survey.r-forge.r-project.org/survey/") @@ -7584,14 +7605,14 @@ Hothorn, Westfall, 2010, CRC Press).") (define-public r-emmeans (package (name "r-emmeans") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "1hpal1vq6gryzvgfvv9f328idg0mgjvlfnhaj069dhb7zqfwhzlk")))) + "09gxphan34c615y4lhjdqkg5cz4ih9b1r3bb4chs3mwmiav1rxqn")))) (build-system r-build-system) (propagated-inputs `(("r-estimability" ,r-estimability) @@ -7809,6 +7830,58 @@ Laplace approximation. Gradients are calculated using automatic differentiation.") (license license:agpl3+))) +(define-public r-bayestestr + (package + (name "r-bayestestr") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "bayestestR" version)) + (sha256 + (base32 + "1m6gj55z3shm3m3mgqj8nk73wij67y617sl04rbj400wz9qrhfva")))) + (properties `((upstream-name . "bayestestR"))) + (build-system r-build-system) + (propagated-inputs + `(("r-insight" ,r-insight))) + (home-page "https://github.com/easystats/bayestestR") + (synopsis "Describe Bayesian models and posterior distributions") + (description + "This package provides utilities to understand and describe posterior +distributions and Bayesian models. It includes point-estimates such as +@dfn{Maximum A Posteriori} (MAP), measures of dispersion such as @dfn{Highest +Density Interval} (HDI), and indices used for null-hypothesis testing (such as +ROPE percentage and pd).") + (license license:gpl3))) + +(define-public r-performance + (package + (name "r-performance") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "performance" version)) + (sha256 + (base32 + "19lfx25hkavzbycrh6hq4v24a0dz4s60ryq6jyihjlxgrb9g7cnw")))) + (build-system r-build-system) + (propagated-inputs + `(("r-bayestestr" ,r-bayestestr) + ("r-insight" ,r-insight))) + (home-page "https://easystats.github.io/performance/") + (synopsis "Assessment of regression models performance") + (description + "This package provides utilities for computing measures to assess model +quality, which are not directly provided by R's @code{base} or @code{stats} +packages. These include e.g. measures like r-squared, intraclass correlation +coefficient, root mean squared error or functions to check models for +overdispersion, singularity or zero-inflation and more. Functions apply to a +large variety of regression models, including generalized linear models, mixed +effects models and Bayesian models.") + (license license:gpl3))) + (define-public r-ggeffects (package (name "r-ggeffects") @@ -7846,29 +7919,32 @@ results using @code{ggplot2}.") (define-public r-sjplot (package (name "r-sjplot") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) (uri (cran-uri "sjPlot" version)) (sha256 (base32 - "0x9pbchmz4qf4c9bi52dhhgv1phfj03q1hnxic8vndl6xwib63cy")))) + "0h1mkmp5mrkbf7y3zh6m4cnm737cpg1m5si0lrmal7j2ixqicwjy")))) (properties `((upstream-name . "sjPlot"))) (build-system r-build-system) (propagated-inputs - `(("r-broom" ,r-broom) + `(("r-bayestestr" ,r-bayestestr) + ("r-broom" ,r-broom) ("r-dplyr" ,r-dplyr) ("r-forcats" ,r-forcats) ("r-ggeffects" ,r-ggeffects) ("r-ggplot2" ,r-ggplot2) ("r-glmmtmb" ,r-glmmtmb) + ("r-insight" ,r-insight) ("r-knitr" ,r-knitr) ("r-lme4" ,r-lme4) ("r-magrittr" ,r-magrittr) ("r-mass" ,r-mass) ("r-modelr" ,r-modelr) ("r-nlme" ,r-nlme) + ("r-performance" ,r-performance) ("r-psych" ,r-psych) ("r-purrr" ,r-purrr) ("r-rlang" ,r-rlang) @@ -9311,14 +9387,14 @@ the first time as the statistic.") (define-public r-splitstackshape (package (name "r-splitstackshape") - (version "1.4.6") + (version "1.4.8") (source (origin (method url-fetch) (uri (cran-uri "splitstackshape" version)) (sha256 (base32 - "03w6h64ga4zqilffdway4l38l5cbman4yrspkzhbigds12aqz25r")))) + "0mpyf2kkfdl69pdc6brl1r6101vyc6pgr7z17s55ppg3y71k4q35")))) (build-system r-build-system) (propagated-inputs `(("r-data-table" ,r-data-table))) @@ -10267,14 +10343,14 @@ Differences with other sparse matrix packages are: (define-public r-fields (package (name "r-fields") - (version "9.6") + (version "9.7") (source (origin (method url-fetch) (uri (cran-uri "fields" version)) (sha256 (base32 - "1v7z48a8jmdcil28rj8c3455k6rssr5v9qi6dyhhpbb193bj8121")))) + "0hsr6r0zyv8zqkfyd9fmjk6v901m2r8pmswvsmps6w5zvpi0p5kw")))) (build-system r-build-system) (propagated-inputs `(("r-maps" ,r-maps) @@ -12109,19 +12185,20 @@ classes.") (define-public r-classint (package (name "r-classint") - (version "0.3-1") + (version "0.3-3") (source (origin (method url-fetch) (uri (cran-uri "classInt" version)) (sha256 (base32 - "1fcjrb593bzvx1z57hq1sjs2gp6g7sm4d4xrhasfrps4nmbzirp2")))) + "0c2z6shlxa928xa20yl956r06lx20mji3mwipdvmj3f4z5g6hgm9")))) (properties `((upstream-name . "classInt"))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class) - ("r-e1071" ,r-e1071))) + ("r-e1071" ,r-e1071) + ("r-kernsmooth" ,r-kernsmooth))) (native-inputs `(("gfortran" ,gfortran))) (home-page "https://github.com/r-spatial/classInt/") (synopsis "Choose univariate class intervals") @@ -12207,14 +12284,14 @@ tessellation.") (define-public r-sf (package (name "r-sf") - (version "0.7-3") + (version "0.7-4") (source (origin (method url-fetch) (uri (cran-uri "sf" version)) (sha256 (base32 - "1b9lbid0hmmz8m5vhg8mi2mi2rclia6qwzd1jr8s81i2l0md828d")))) + "0vnyr7xyfcl928kbrb1k8l4fkd0cjrfq486g6gxpvy5j0cc2h4i1")))) (build-system r-build-system) (inputs `(("gdal" ,gdal) @@ -12368,14 +12445,14 @@ genetics of complex population dynamics.") (define-public r-genetics (package (name "r-genetics") - (version "1.3.8.1.1") + (version "1.3.8.1.2") (source (origin (method url-fetch) (uri (cran-uri "genetics" version)) (sha256 (base32 - "0p59r4vxhy68d7cv2s2k4vbgnkxji21naz9jmdry9wxclrg7fw28")))) + "1v0ylnia6c44v356dsmnkx6054vcxazpzsrdh3yph5ch5vg6gjrh")))) (build-system r-build-system) (propagated-inputs `(("r-combinat" ,r-combinat) @@ -12444,14 +12521,14 @@ lspec, polyclass, and polymars.") (define-public r-rms (package (name "r-rms") - (version "5.1-3") + (version "5.1-3.1") (source (origin (method url-fetch) (uri (cran-uri "rms" version)) (sha256 (base32 - "1sw9a0iqiips580jpbk7yiqgyiswihvaqbnq4ybsmd4ki86i5isz")))) + "0drbr3g0x5pbxyzy50wnf92rbal8izizrcqslqhg0gsfg9adjih9")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -13279,14 +13356,14 @@ sets of URLs.") (define-public r-ggforce (package (name "r-ggforce") - (version "0.2.1") + (version "0.2.2") (source (origin (method url-fetch) (uri (cran-uri "ggforce" version)) (sha256 (base32 - "04rh9z58q288lbi933472lgl26wwbw58rfhpgfyijmw9ccz7i93m")))) + "0snxx9zhcccxa7pz9pf3bjqmcmv9mz4m47v81hklnhm25jj40xg2")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -13407,14 +13484,14 @@ proteomics applications).") (define-public r-pamr (package (name "r-pamr") - (version "1.56") + (version "1.56.1") (source (origin (method url-fetch) (uri (cran-uri "pamr" version)) (sha256 (base32 - "03h1m5fkw76jjln1psdb7x913a499ghf7n48rcd8damr5vdyf961")))) + "0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh")))) (build-system r-build-system) (propagated-inputs `(("r-cluster" ,r-cluster) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index e52c4614c1..c8d2af88ca 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -808,9 +808,9 @@ LVM D-Bus API).") ("json-glib" ,json-glib) ("libblkid" ,util-linux))) (home-page "https://rmlint.rtfd.org") - (synopsis "Remove duplicates and other lint from the filesystem") + (synopsis "Remove duplicates and other lint from the file system") (description "@command{rmlint} finds space waste and other broken things -on your filesystem and offers to remove it. @command{rmlint} can find: +on your file system and offers to remove it. @command{rmlint} can find: @itemize @item duplicate files and duplicate directories, diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 24b6384eab..ec10254c97 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages swig) #:use-module (gnu packages tls) #:use-module (gnu packages web) @@ -106,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.12.3-P4") + (version "9.12.4-P1") (source (origin (method url-fetch) (uri (string-append @@ -114,7 +116,9 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.gz")) (sha256 (base32 - "01pj47z5582rd538dmbzf1msw4jc8j4zr0zx4ciy88r6qr9l80fi")))) + "1if7zc5gzrfd28csc63v9bjwrc0rgvm1x9yx058946hc5gp5lyp2")) + (patches + (search-patches "bind-fix-unused-pk11-ecc-constants.patch")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs @@ -122,7 +126,9 @@ and BOOTP/TFTP for network booting of diskless machines.") `(("libcap" ,libcap) ("libxml2" ,libxml2) ("openssl" ,openssl) - ("p11-kit" ,p11-kit))) + ("p11-kit" ,p11-kit) + ("python" ,python) + ("python-ply" ,python-ply))) (native-inputs `(("perl" ,perl) ("net-tools" ,net-tools))) (arguments @@ -807,3 +813,53 @@ mDNS resolver as well as an announcer. mDNS (Multicast Domain Name System) is a zero-config service that allows one to resolve host names to IP addresses in local networks.") (license license:lgpl2.1))) + +(define-public public-suffix-list + ;; Mozilla releases the official list here: + ;; + ;; https://publicsuffix.org/list/public_suffix_list.dat + ;; + ;; However, Mozilla syncs that file from the GitHub repository periodically, + ;; so its contents will change over time. If you update this commit, please + ;; make sure that the new commit refers to a list which is identical to the + ;; officially published list available from the URL above. + (let ((commit "9375b697baddb0827a5995c81bd3c75877a0b35d")) + (package + (name "public-suffix-list") + (version (git-version "0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/publicsuffix/list.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sm7pni01rnl4ldzi8z8nc4cbgq8nxda9gwc68v0s3ij7jd1jmik")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + ;; Install to /share because that is where "read-only + ;; architecture-independent data files" should go (see: + ;; (standards) Directory Variables). Include the version in + ;; the directory name so that if multiple versions are ever + ;; installed in the same profile, they will not conflict. + (destination (string-append + out "/share/public-suffix-list-" ,version)) + (source (assoc-ref %build-inputs "source"))) + (with-directory-excursion source + (install-file "public_suffix_list.dat" destination) + (install-file "LICENSE" destination)) + #t)))) + (home-page "https://publicsuffix.org/") + (synopsis "Database of current and historical DNS suffixes") + (description "This is the Public Suffix List maintained by Mozilla. A +\"public suffix\" is one under which Internet users can (or historically +could) directly register names in the Domain Name System (DNS). Some examples +of public suffixes are .com, .co.uk and pvt.k12.ma.us. This is a list of all +known public suffixes.") + (license license:mpl2.0)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index f9358c7225..7923c5ab03 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -1191,7 +1191,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.208") + (version "0.209") (source (origin (method git-fetch) @@ -1201,7 +1201,7 @@ play them on systems for which they were never designed!") (file-name (git-file-name name version)) (sha256 (base32 - "14j7n4haggqsph0nw69d79z3y9lrdc7rzs2sl1kzggfnd37nh81s")) + "08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index cf308e03f6..78a9930802 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1939,15 +1939,15 @@ simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.") (define-public librepcb (package (name "librepcb") - (version "0.1.0") + (version "0.1.1") (source (origin (method url-fetch) - (uri (string-append "https://download.librepcb.org/releases/0.1.0/librepcb-" - version "-source.zip")) + (uri (string-append "https://download.librepcb.org/releases/" + version "/librepcb-" version "-source.zip")) (sha256 (base32 - "0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv")))) + "08lm95kr5gqyqyy4hcii0micqa6ryhbv0harvdndmpvi4ix1ggi8")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index bd30d466f4..9a210b474f 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -241,6 +241,13 @@ in ability, and easy to use.") #:tests? #f ; there are none #:phases (modify-phases %standard-phases + (add-before 'build 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((ledger (assoc-ref inputs "ledger"))) + (make-file-writable "ledger-exec.el") + (emacs-substitute-variables "ledger-exec.el" + ("ledger-binary-path" (string-append ledger "/bin/ledger")))) + #t)) (add-after 'build 'build-doc (lambda* (#:key outputs #:allow-other-keys) (let ((target (string-append (assoc-ref outputs "out") @@ -260,6 +267,8 @@ in ability, and easy to use.") (rename-file orig-dir dest-dir) (emacs-generate-autoloads ,name dest-dir) #t)))))) + (inputs + `(("ledger" ,ledger))) (native-inputs `(("emacs-minimal" ,emacs-minimal) ("texinfo" ,texinfo))) diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index a0d1f13931..40d5e7e513 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -42,7 +42,7 @@ (define-public fltk (package (name "fltk") - (version "1.3.4-2") + (version "1.3.5") (source (origin (method url-fetch) @@ -51,7 +51,7 @@ "/fltk-" version "-source.tar.gz")) (sha256 (base32 - "0459rm1gl5x3famiqma7ja7k6hvan8p5l8lgshvqfl4rik0lklr5")))) + "00jp24z1818k9n6nn6lx7qflqf2k13g4kxr0p8v1d37kanhb4ac7")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e4739ec8fe..17dc2fd102 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com> +;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. @@ -5665,6 +5666,29 @@ libxml2.") (string-append "\"" (assoc-ref inputs "gnome-session") "/bin/gnome-session\""))) #t)) + ;; GDM requires that there be at least one desktop entry + ;; file. This phase installs a hidden one that simply + ;; fails. This enables users to use GDM with a + ;; '~/.xsession' script with no other desktop entry files. + ;; See <https://bugs.gnu.org/35068>. + (add-after 'install 'install-placeholder-desktop-entry + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sessions (string-append out "/share/gdm/BuiltInSessions")) + (fail (string-append sessions "/fail.desktop"))) + (mkdir-p sessions) + (with-output-to-file fail + (lambda () + (for-each + display + '("[Desktop Entry]\n" + "Encoding=UTF-8\n" + "Type=Application\n" + "Name=Fail\n" + "Comment=This session fails immediately.\n" + "NoDisplay=true\n" + "Exec=false\n")))) + #t))) ;; GDM needs GNOME Session to run these applications. We link ;; their autostart files in `share/gdm/greeter/autostart' ;; because GDM explicitly tells GNOME Session to look there. diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 56b9310343..afebc82cf1 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -190,7 +190,7 @@ in C/C++.") (source (origin (method url-fetch) (uri (string-append - "https://people.mozilla.org/~sstangl/" + "https://anduin.linuxfromscratch.org/BLFS/mozjs/" name "-" version ".tar.bz2")) (sha256 (base32 diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 0b44bd3d02..5caf7a89f8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -3168,8 +3168,9 @@ have super fancy logs.") (arguments '(#:import-path "github.com/kr/fs")) (home-page "https://github.com/kr/fs") - (synopsis "Filesystem-related functions for Go") - (description "Package fs provides filesystem-related functions.") + (synopsis "File-system-related functions for Go") + (description + "The fs package provides file-system-related Go functions.") (license license:bsd-3)))) (define-public go-github-com-direnv-go-dotenv diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 7ed35f1f29..5bcc48dbe6 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -105,14 +105,14 @@ more.") (define-public r-igraph (package (name "r-igraph") - (version "1.2.4") + (version "1.2.4.1") (source (origin (method url-fetch) (uri (cran-uri "igraph" version)) (sha256 (base32 - "1jwjjl0l4054w05bik17p2d6rj3lx68iv716phajhnbbmckfnj0h")))) + "1074y8mvprrqlkb4vwa2qc9l03r8d7p5vaaqacj4ljjs7dvcq6l9")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index 6b8afd5f53..4f61f2ba66 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -152,7 +152,7 @@ that are shared between @command{go-ipfs/commands} and its rewrite (home-page "https://github.com/whyrusleeping/gx") (synopsis "Package management tool using IPFS") (description "@command{gx} is a packaging tool built around the -distributed, content addressed filesystem IPFS. It aims to be flexible, +distributed, content addressed file system IPFS. It aims to be flexible, powerful and simple.") (license license:expat))) @@ -244,7 +244,7 @@ written in Go.") #t)))))) (home-page "https://ipfs.io") (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol") - (description "IPFS is a global, versioned, peer-to-peer filesystem. It + (description "IPFS is a global, versioned, peer-to-peer file system. It combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a47a1a008c..bcd3f98ce0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10296,7 +10296,7 @@ authentication, HTTP state management, and HTTP connection management.") ("java-commons-net" ,java-commons-net) ("java-jsch" ,java-jsch))) (home-page "http://commons.apache.org/proper/commons-vfs/") - (synopsis "Java filesystem library") + (synopsis "Java file system library") (description "Commons VFS provides a single API for accessing various different file systems. It presents a uniform view of the files from various different sources, such as the files on local disk, on an HTTP server, or diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index bf44e90ee8..61329d27a1 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -380,9 +380,9 @@ connections from and to iOS devices by connecting to a socket provided by a (synopsis "Protocol library and tools to communicate with Apple devices") (description "libimobiledevice is a software library that talks the protocols to support Apple devices. It allows other software to easily access -the device's filesystem, retrieve information about the device and it's +the device's file system, retrieve information about the device and its internals, backup/restore the device, manage installed applications, retrieve -addressbook/calendars/notes and bookmarks and (using libgpod) synchronize +address books, calendars, notes, and bookmarks, and (using libgpod) synchronize music and video to the device.") (license license:lgpl2.1+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b44598996b..22ded21a28 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3368,7 +3368,7 @@ write access to exFAT devices.") (home-page "https://sourceforge.net/projects/fuseiso/") (synopsis "Mount ISO file system images") (description - "FuseISO is a FUSE module to mount ISO filesystem images (.iso, .nrg, + "FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg, .bin, .mdf and .img files). It supports plain ISO9660 Level 1 and 2, Rock Ridge, Joliet, and zisofs.") (license license:gpl2))) @@ -3701,7 +3701,7 @@ from userspace.") ;; If users install ntfs-3g, they probably want to make it the ;; default driver as well, so we opt for sensible defaults and link ;; mount.ntfs to mount.ntfs-3g. (libmount tries to run mount.ntfs to - ;; mount NTFS filesystems.) + ;; mount NTFS file systems.) (add-after 'install 'install-link (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -5247,9 +5247,9 @@ file systems.") `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://github.com/jeremie-koenig/genext2fs") - (synopsis "Generate ext2 filesystem as a normal user") - (description "This package provides a program to general an ext2 -filesystem as a normal (non-root) user. It does not require you to mount + (synopsis "Generate ext2 file system as a normal user") + (description "This package provides a program to generate an ext2 +file system as a normal (non-root) user. It does not require you to mount the image file to copy files on it, nor does it require that you become the superuser to make device nodes.") (license license:gpl2))) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 00662fb26d..77e12f83e2 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Mark Meyer <mark@ofosos.org> ;;; Copyright © 2018 Ben Woodcroft <donttrustben@gmail.com> @@ -111,18 +111,17 @@ connected and sparsely connected networks.") (define-public libsvm (package (name "libsvm") - (version "3.22") + (version "3.23") (source (origin (method url-fetch) (uri (string-append "https://www.csie.ntu.edu.tw/~cjlin/libsvm/" name "-" version ".tar.gz")) (sha256 - (base32 - "0zd7s19y5vb7agczl6456bn45cj1y64739sslaskw1qk7dywd0bd")))) + (base32 "0jpaq0rr92x38p4nk3gjan79ip67m6p80anb28z1d8601miysyi5")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;no "check" target + `(#:tests? #f ; no "check" target #:phases (modify-phases %standard-phases (delete 'configure) (replace @@ -151,7 +150,7 @@ classification.") (name "python-libsvm") (build-system gnu-build-system) (arguments - `(#:tests? #f ;no "check" target + `(#:tests? #f ; no "check" target #:make-flags '("-C" "python") #:phases (modify-phases %standard-phases @@ -407,14 +406,14 @@ sample proximities between pairs of cases.") (define-public openfst (package (name "openfst") - (version "1.7.1") + (version "1.7.2") (source (origin (method url-fetch) (uri (string-append "http://www.openfst.org/twiki/pub/FST/" "FstDownload/openfst-" version ".tar.gz")) (sha256 (base32 - "0x9wfcqd8hq4h349s7j77sr60h8xjdfshqw1m3a2n6z5bdr9qkm1")))) + "0fqgk8195kz21is09gwzwnrg7fr9526bi9mh4apyskapz27pbhr1")))) (build-system gnu-build-system) (home-page "http://www.openfst.org") (synopsis "Library for weighted finite-state transducers") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 25de298d5a..201fb9c970 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2206,14 +2206,14 @@ sparse system of linear equations A x = b using Guassian elimination.") (define-public r-quadprog (package (name "r-quadprog") - (version "1.5-5") + (version "1.5-6") (source (origin (method url-fetch) (uri (cran-uri "quadprog" version)) (sha256 (base32 - "0jg3r6abmhp8r9vkbhpx9ldjfw6vyl1m4c5vwlyjhk1mi03656fr")))) + "1fnwaz70dhiq4av8apc4wr3yrrpwc2i6lksf8pfi6jw8vzzyahql")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 7305ab9b29..94d4b0855c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -553,14 +553,14 @@ simultaneously and therefore appear under the same nickname on IRC.") (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "0.6.9") + (version "0.6.10") (source (origin (method url-fetch) (uri (pypi-uri "nbxmpp" version)) (sha256 (base32 - "03f8dk4kb7ya0pg7v0a0kqms4c7f2bqan5wl4ig0mcwpdmppj3b6")))) + "1vq89nhamciblyi5579bppnm4sb0zk5cg5hdipfpz174fxvl2wyd")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests @@ -578,7 +578,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") (define-public gajim (package (name "gajim") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (string-append "https://gajim.org/downloads/" @@ -586,7 +586,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") "/gajim-" version ".tar.bz2")) (sha256 (base32 - "1lx03cgi58z54xb7mhs6bc715lc00w5mpysf9n3q8zgn759fm0rj")))) + "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index a8f9916bb3..a6f6819d3e 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.21.7") + (version "0.21.8") (source (origin (method url-fetch) (uri @@ -100,7 +100,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "0b217f5m3vdmjsh51674f6q5pj5g43kwd8psrka09vlvaay6482i")))) + "0mwpkbjsljj1khlnnjanvw3pgxbhsdl0bh2k9bxnpijn2gqq7q13")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'... diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c0b0163d62..aafe420d04 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -54,6 +54,7 @@ #:use-module (guix build-system trivial) #:use-module (guix build-system go) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages algebra) #:use-module (gnu packages apr) #:use-module (gnu packages audio) @@ -94,6 +95,7 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages haskell) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) @@ -1362,7 +1364,7 @@ users to select LV2 plugins and run them with jalv.") (define-public synthv1 (package (name "synthv1") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri @@ -1370,7 +1372,7 @@ users to select LV2 plugins and run them with jalv.") "/synthv1-" version ".tar.gz")) (sha256 (base32 - "1hcngk7mxfrqf8v3r759x3wd0p02nc3q83j8m3k58p408y3mx7nr")))) + "0i70wm430fvksi3g985farrkhgb7mwhi7j06dl66cdj1n12jzzk7")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1396,7 +1398,7 @@ oscillators and stereo effects.") (define-public drumkv1 (package (name "drumkv1") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri @@ -1404,7 +1406,7 @@ oscillators and stereo effects.") "/drumkv1-" version ".tar.gz")) (sha256 (base32 - "0d0kskr9pzdckw7sz4djjkkkgz1fa83zrq5my6qlxn68wqdj6800")))) + "1361dqdasrc98q9hcjdwsjx6agfimwnay430887fryi3pslkyd81")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1431,7 +1433,7 @@ effects.") (define-public samplv1 (package (name "samplv1") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri @@ -1439,7 +1441,7 @@ effects.") "/samplv1-" version ".tar.gz")) (sha256 (base32 - "16a5xix9pn0gl3fr6bv6zl1l9vrzgvy1q7xd8yxzfr3vi5s8x4z9")))) + "1vgmcjccpgqqlmmwfg6m91nph81p2xaxydjx82n4l1yrr9lidn9h")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -1466,7 +1468,7 @@ effects.") (define-public padthv1 (package (name "padthv1") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri @@ -1474,7 +1476,7 @@ effects.") "/padthv1-" version ".tar.gz")) (sha256 (base32 - "0ddvlpjlg6zr9ckanqhisw0sgm8rxibvj1aj5dxzs9xb2wlwd8rr")))) + "1jd4bf6a1ipvg4yhb3xf3maqg68bx97ic9l57djmkirlrkh2a3wp")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -2057,7 +2059,7 @@ backends, including ALSA, OSS, Network and FluidSynth.") (define-public zynaddsubfx (package (name "zynaddsubfx") - (version "3.0.4") + (version "3.0.5") (source (origin (method url-fetch) (uri (string-append @@ -2065,7 +2067,7 @@ backends, including ALSA, OSS, Network and FluidSynth.") version "/zynaddsubfx-" version ".tar.bz2")) (sha256 (base32 - "18m4ax0x06y1hx4g2g3gf02v0bldkrrb5m7fsr5jlfp1kvjd2j1x")))) + "0qwzg14h043rmyf9jqdylxhyfy4sl0vsr0gjql51wjhid0i34ivl")))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 56369abc41..4fc9e52ec7 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2200,84 +2200,80 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.") (license license:gpl3+))) (define-public hcxtools - (let* ((commit "2ecfc9a06c2028c47522ea566ccd82b2c1f94647")) - (package - (name "hcxtools") - (version (git-version "0.0.0" "1" commit)) - (home-page "https://github.com/ZerBea/hcxtools") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (sha256 - (base32 - "1hzwrpmxjxl674if0pp5iq06mdi24k7ni7bh1h20isp4s40201n3")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (inputs - `(("curl" ,curl) - ("libpcap" ,libpcap) - ("openssl" ,openssl) - ("zlib" ,zlib))) - (arguments - `(#:make-flags (list "CC=gcc" - (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin")) - #:tests? #f ;no tests - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'set-environment - (lambda* (#:key inputs #:allow-other-keys) - (setenv "C_INCLUDE_PATH" - (string-append (assoc-ref inputs "curl") - "/include:" - (assoc-ref inputs "libpcap") - "/include:" - (assoc-ref inputs "openssl") - "/include:" - (assoc-ref inputs "zlib") - "/include:" + (package + (name "hcxtools") + (version "5.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ZerBea/hcxtools.git") + (commit version))) + (sha256 + (base32 "1bkl0j6m5q091fas99s83aclcc5kfwacmkgmyg8565z2npvnj7nf")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (inputs + `(("curl" ,curl) + ("libpcap" ,libpcap) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin")) + #:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-environment + (lambda* (#:key inputs #:allow-other-keys) + (setenv "C_INCLUDE_PATH" + (string-append (assoc-ref inputs "curl") "/include:" + (assoc-ref inputs "libpcap") "/include:" + (assoc-ref inputs "openssl") "/include:" + (assoc-ref inputs "zlib") "/include:" (getenv "C_INCLUDE_PATH"))) #t))))) - (synopsis "Capture wlan traffic to hashcat and John the Ripper") - (description - "This package contains a small set of tools to capture and convert + (home-page "https://github.com/ZerBea/hcxtools") + (synopsis "Capture wlan traffic to hashcat and John the Ripper") + (description + "This package contains a small set of tools to capture and convert packets from wireless devices for use with hashcat or John the Ripper.") - (license license:expat)))) + (license license:expat))) (define-public hcxdumptool - (let* ((commit "f4799b5da82c5b030a6d99b02d1c1b9dc838ad36")) - (package - (name "hcxdumptool") - (version (git-version "0.0.0" "1" commit)) - (home-page "https://github.com/ZerBea/hcxdumptool") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (sha256 - (base32 - "0qlsin0rws9sshn12faq4spmd0ffzssal36s71vhv6gkhhga7abl")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (arguments - `(#:make-flags (list "CC=gcc" - (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin")) - #:tests? #f ;no tests - #:phases - (modify-phases %standard-phases - (delete 'configure)))) - (synopsis "Small tool to capture packets from wlan devices") - (description - "Small tool to capture packets from WLAN devices. After capturing, + (package + (name "hcxdumptool") + (version "5.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ZerBea/hcxdumptool.git") + (commit version))) + (sha256 + (base32 "0h2cc2dfpc83325hwqkxwn0p8qfq5gh1dg0yb1nr8bnffy0b4r4v")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin")) + #:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/ZerBea/hcxdumptool") + (synopsis "Small tool to capture packets from wlan devices") + (description + "Small tool to capture packets from WLAN devices. After capturing, upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to see if the access point or the client is vulnerable to a dictionary attack. Convert the cap file to hccapx format and/or to WPA-PMKID-PBKDF2 hashline (16800) with @command{hcxpcaptool} from the @code{hcxtools} package and check if the WLAN key or the master key was transmitted unencrypted.") - (license license:expat)))) + (license license:expat))) (define-public dante (package diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index ee8b82d8f4..efba539fa8 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -129,10 +129,10 @@ "/lib/ocaml/site-lib")) #:phases (modify-phases %standard-phases (delete 'configure)))) -(define-public ocaml-4.02 +(define-public ocaml-4.07 (package (name "ocaml") - (version "4.02.3") + (version "4.07.1") (source (origin (method url-fetch) (uri (string-append @@ -141,12 +141,7 @@ "/ocaml-" version ".tar.xz")) (sha256 (base32 - "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3")) - (patches - (search-patches - "ocaml-CVE-2015-8869.patch" - "ocaml-Add-a-.file-directive.patch" - "ocaml-enable-ocamldoc-reproducibility.patch")))) + "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification @@ -204,25 +199,7 @@ patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%" (add-after 'install 'check (lambda _ (with-directory-excursion "testsuite" - (invoke "make" "all")))) - (add-before 'check 'prepare-socket-test - (lambda _ - (format (current-error-port) - "Spawning local test web server on port 8080~%") - (when (zero? (primitive-fork)) - (run-server (lambda (request request-body) - (values '((content-type . (text/plain))) - "Hello!")) - 'http '(#:port 8080))) - (let ((file "testsuite/tests/lib-threads/testsocket.ml")) - (format (current-error-port) - "Patching ~a to use localhost port 8080~%" - file) - (substitute* file - (("caml.inria.fr") "localhost") - (("80") "8080") - (("HTTP1.0") "HTTP/1.0")) - #t)))))) + (invoke "make" "all"))))))) (home-page "https://ocaml.org/") (synopsis "The OCaml programming language") (description @@ -235,30 +212,6 @@ functional, imperative and object-oriented styles of programming.") ;; distributed under lgpl2.0. (license (list license:qpl license:lgpl2.0)))) -(define-public ocaml-4.07 - (package - (inherit ocaml-4.02) - (version "4.07.1") - (source (origin - (method url-fetch) - (uri (string-append - "http://caml.inria.fr/pub/distrib/ocaml-" - (version-major+minor version) - "/ocaml-" version ".tar.xz")) - (sha256 - (base32 - "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z")))) - (arguments - (substitute-keyword-arguments (package-arguments ocaml-4.02) - ((#:phases phases) - `(modify-phases ,phases - (delete 'prepare-socket-test) - (replace 'check - (lambda _ - (with-directory-excursion "testsuite" - (invoke "make" "all")) - #t)))))))) - (define-public ocaml ocaml-4.07) (define-public ocamlbuild @@ -561,23 +514,25 @@ Git-friendly development workflow.") ;; The 'LICENSE' file waives some requirements compared to LGPLv3. (license license:lgpl3))) -(define-public camlp4-4.02 +(define-public camlp4-4.07 (package (name "camlp4") - (version "4.02+6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ocaml/camlp4.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "06yl4q0qazl7g25b0axd1gdkfd4qpqzs1gr5fkvmkrcbz113h1hj")))) + (version "4.07+1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/camlp4.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl")))) (build-system gnu-build-system) - (native-inputs `(("ocaml" ,ocaml-4.02) - ("which" ,which))) - (inputs `(("ocaml" ,ocaml-4.02))) + (native-inputs + `(("ocaml" ,ocaml-4.07) + ("ocamlbuild" ,ocamlbuild) + ("which" ,which))) + (inputs `(("ocaml" ,ocaml-4.07))) (arguments '(#:tests? #f ;no documented test target ;; a race-condition will lead byte and native targets to mkdir _build @@ -618,29 +573,6 @@ syntax of OCaml.") ;; against the library to be released under any terms. (license license:lgpl2.0))) -(define-public camlp4-4.07 - (package - (inherit camlp4-4.02) - (name "camlp4") - (version "4.07+1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ocaml/camlp4.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl")))) - (properties - `((ocaml4.02-variant . ,(delay camlp4-4.02)))) - (native-inputs - `(("ocaml" ,ocaml-4.07) - ("ocamlbuild" ,ocamlbuild) - ("which" ,which))) - (inputs - `(("ocaml" ,ocaml-4.07))))) - (define-public camlp4 camlp4-4.07) (define-public camlp5 @@ -847,8 +779,6 @@ Emacs.") (let ((out (assoc-ref outputs "out"))) (setenv "PREFIX" out)) #t))))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-menhir)))) (home-page "http://gallium.inria.fr/~fpottier/menhir") (synopsis "Parser generator") (description "Menhir is a parser generator. It turns high-level grammar @@ -860,12 +790,27 @@ Knuth’s LR(1) parser construction technique.") ;; are QPL licensed. (license (list license:gpl2+ license:qpl)))) -(define-public ocaml4.02-menhir +(define-public ocaml-bigarray-compat (package - (inherit ocaml-menhir) - (name "ocaml4.02-menhir") - (inputs `(("ocaml" ,ocaml-4.02))) - (native-inputs '()))) + (name "ocaml-bigarray-compat") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mirage/bigarray-compat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06j1dwlpisxshdd0nab4n4x266gg1s1n8na16lpgw3fvcznwnimz")))) + (build-system dune-build-system) + (arguments + `(#:tests? #f)); no tests + (home-page "https://github.com/mirage/bigarray-compat") + (synopsis "OCaml compatibility library") + (description "This package contains a compatibility library for +@code{Stdlib.Bigarray} in OCaml.") + (license license:isc))) (define-public lablgtk (package @@ -878,8 +823,6 @@ Knuth’s LR(1) parser construction technique.") (base32 "1y38fdvswy6hmppm65qvgdk4pb3ghhnvz7n4ialf46340r1s5p2d")))) (build-system gnu-build-system) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-lablgtk)))) (native-inputs `(("camlp4" ,camlp4) ("ocaml" ,ocaml) @@ -930,23 +873,6 @@ libglade (and it an generate OCaml code from .glade files), libpanel, librsvg and quartz.") (license license:lgpl2.1))) -(define-public ocaml4.02-lablgtk - (package - (inherit lablgtk) - (name "ocaml4.02-lablgtk") - (version "2.18.5") - (source (origin - (method url-fetch) - (uri (ocaml-forge-uri name version 1627)) - (sha256 - (base32 - "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib")))) - (native-inputs - `(("camlp4" ,camlp4-4.02) - ("ocaml" ,ocaml-4.02) - ("findlib" ,ocaml4.02-findlib) - ("pkg-config" ,pkg-config))))) - (define-public unison (package (name "unison") @@ -1089,15 +1015,6 @@ compilation and linkage, there are new frontends of the various OCaml compilers that can directly deal with packages.") (license license:x11))) -(define-public ocaml4.02-findlib - (package - (inherit ocaml-findlib) - (name "ocaml4.02-findlib") - (native-inputs - `(("camlp4" ,camlp4-4.02) - ("m4" ,m4) - ("ocaml" ,ocaml-4.02))))) - ;; note that some tests may hang for no obvious reason. (define-public ocaml-ounit (package @@ -1123,9 +1040,6 @@ compilers that can directly deal with packages.") other XUnit testing frameworks.") (license license:expat))) -(define-public ocaml4.02-ounit - (package-with-ocaml4.02 ocaml-ounit)) - (define-public camlzip (package (name "camlzip") @@ -1168,9 +1082,6 @@ JAR format. It provides functions for reading from and writing to compressed files in these formats.") (license license:lgpl2.1+))) -(define-public ocaml4.02-camlzip - (package-with-ocaml4.02 camlzip)) - (define-public ocamlmod (package (name "ocamlmod") @@ -1195,19 +1106,18 @@ files in these formats.") (description "Generate modules from OCaml source files.") (license license:lgpl2.1+))) ; with an exception -(define-public ocaml4.02-ocamlmod - (package-with-ocaml4.02 ocamlmod)) - (define-public ocaml-zarith (package (name "ocaml-zarith") - (version "1.4.1") + (version "1.7") (source (origin - (method url-fetch) - (uri (ocaml-forge-uri "zarith" version 1574)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/Zarith") + (commit (string-append "release-" version)))) (sha256 (base32 - "0l36hzmfbvdai2kcgynh13vfdim5x2grnaw61fxqalyjm90c3di3")))) + "08x5xnamibhvxl50f1bb3jl9ym0hm6004hmc54xnrnrv7jxz9rvz")))) (build-system ocaml-build-system) (native-inputs `(("perl" ,perl))) @@ -1227,25 +1137,23 @@ over big integers. Small integers are represented as Caml unboxed integers, for speed and space economy.") (license license:lgpl2.1+))) ; with an exception -(define-public ocaml4.02-zarith - (package-with-ocaml4.02 ocaml-zarith)) - (define-public ocaml-frontc (package (name "ocaml-frontc") - (version "3.4") + (version "3.4.1") (source (origin - (method url-fetch) - (uri (string-append "https://www.irit.fr/recherches/ARCHI/MARCH/" - "frontc/Frontc-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/BinaryAnalysisPlatform/FrontC") + (commit (string-append + "V_" (string-join (string-split version #\.) "_"))))) + (file-name (git-file-name name version)) (sha256 (base32 - "16dz153s92dgbw1rrfwbhscy73did87kfmjwyh3qpvs748h1sc4g")))) + "1dq5nks0c9gsbr1m8k39m1bniawr5hqcy1r8x5px7naa95ch06ak")))) (build-system ocaml-build-system) (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:phases + `(#:phases (modify-phases %standard-phases (delete 'configure) (add-after 'install 'install-meta @@ -1266,6 +1174,7 @@ archive(native) = \"frontc.cmxa\"")))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "OCAML_SITE=$(LIB_DIR)/ocaml/"))) + (properties `((upstream-name . "FrontC"))) (home-page "https://www.irit.fr/FrontC") (synopsis "C parser and lexer library") (description "FrontC is an OCAML library providing a C parser and lexer. @@ -1277,7 +1186,7 @@ GNU CC attributes. It provides also a C pretty printer as an example of use.") (define-public ocaml-qcheck (package (name "ocaml-qcheck") - (version "0.5.3.1") + (version "0.9") (source (origin (method git-fetch) @@ -1286,10 +1195,13 @@ GNU CC attributes. It provides also a C pretty printer as an example of use.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0vl2asr7md99pv558nbszxvjj36b4l6rj05hyczfy524vihhl0gf")))) - (build-system ocaml-build-system) + (base32 "0w83v9ylycsssyn47q8wnkfbvhn5vn10z6i35n5965i2m1r0mmcf")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) (native-inputs - `(("ounit" ,ocaml-ounit) + `(("ocaml-alcotest" ,ocaml-alcotest) + ("ocaml-ounit" ,ocaml-ounit) ("ocamlbuild" ,ocamlbuild))) (home-page "https://github.com/c-cube/qcheck") (synopsis "QuickCheck inspired property-based testing for OCaml") @@ -1299,34 +1211,26 @@ generated instances of the type. It provides combinators for generating instances and printing them.") (license license:lgpl3+))) -(define-public ocaml4.02-qcheck - (package-with-ocaml4.02 ocaml-qcheck)) - (define-public ocaml-qtest (package (name "ocaml-qtest") - (version "2.8") + (version "2.9") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/vincent-hugot/qtest/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/vincent-hugot/qtest/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1ff4if64mc9c7wmhjdgnlnh6k6a713piqzr4043zzj4s5pw7smxk")))) - (build-system ocaml-build-system) - (native-inputs - `(("ocamlbuild" ,ocamlbuild))) + "1ifxc8jndwah82g5k8xaa7jskbv866j4zpd0w41f0pskg4y0z9g1")))) + (build-system dune-build-system) + (arguments + `(#:jbuild? #t + #:test-target "tests")) (propagated-inputs `(("ounit" ,ocaml-ounit) ("qcheck" ,ocaml-qcheck))) - (arguments - `(#:tests? #f ; No test target. - #:make-flags - (list (string-append "BIN=" (assoc-ref %outputs "out") "/bin")) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) (home-page "https://github.com/vincent-hugot/qtest") (synopsis "Inline (Unit) Tests for OCaml") (description "Qtest extracts inline unit tests written using a special @@ -1335,22 +1239,22 @@ qcheck library. The possibilities range from trivial tests -- extremely simple to use -- to sophisticated random generation of test cases.") (license license:lgpl3+))) -(define-public ocaml4.02-qtest - (package-with-ocaml4.02 ocaml-qtest)) - (define-public ocaml-stringext (package (name "ocaml-stringext") - (version "1.4.3") + (version "1.5.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/rgrinberg/stringext" - "/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/rgrinberg/stringext") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "19g6lfn03iki9f8h91hi0yiqn0b3wkxyq08b3y23wgv6jw6mssfh")))) - (build-system ocaml-build-system) + "0035pyakk0r7pfhkrayvqncpv9mk6lssr455j3prmdcirh6s50d7")))) + (build-system dune-build-system) + (arguments + `(#:test-target ".")) (native-inputs `(("ocamlbuild" ,ocamlbuild) ("qtest" ,ocaml-qtest))) @@ -1363,9 +1267,6 @@ full_split, cut, rcut, etc..") ;; where it says `mit'. (license license:expat))) -(define-public ocaml4.02-stringext - (package-with-ocaml4.02 ocaml-stringext)) - (define-public ocaml-bisect (package (name "ocaml-bisect") @@ -1411,32 +1312,19 @@ a camlp4-based tool that allows to instrument your application before running tests. After application execution, it is possible to generate a report in HTML format that is the replica of the application source code annotated with code coverage information.") - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-bisect)))) (license license:gpl3+))) -(define-public ocaml4.02-bisect - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bisect)))) - (package - (inherit base) - (native-inputs - `(("camlp4" ,camlp4-4.02) - ("libxml2" ,libxml2) - ("which" ,which))) - (propagated-inputs - `(("camlp4" ,camlp4-4.02)))))) - (define-public dune (package (name "dune") - (version "1.6.3") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/ocaml/dune/releases/" "download/" version "/dune-" version ".tbz")) (sha256 (base32 - "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz")))) + "0z4jnj0a5vxjqlwksplhag9b3s3iqdcpcpjjzfazv5jdl5cf58f9")))) (build-system ocaml-build-system) (arguments `(#:tests? #f; require odoc @@ -1477,6 +1365,7 @@ following a very simple s-expression syntax.") `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers) ("ocamlbuild" ,ocamlbuild) ("ocaml-result" ,ocaml-result))) + (properties `((upstream-name . "ocaml-migrate-parsetree"))) (synopsis "OCaml parsetree convertor") (description "This library converts between parsetrees of different OCaml versions. For each version, there is a snapshot of the parsetree and conversion @@ -1501,6 +1390,7 @@ functions to the next and/or previous version.") `(#:test-target ".")) (propagated-inputs `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) + (properties `((upstream-name . "ppx_tools_versioned"))) (home-page "https://github.com/let-def/ppx_tools_versioned") (synopsis "Variant of ppx_tools") (description "This package is a variant of ppx_tools based on @@ -1532,8 +1422,6 @@ ocaml-migrate-parsetree") (arguments `(#:tests? #f; Tests fail to build #:jbuild? #t)) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-bitstring)))) (home-page "https://github.com/xguerin/bitstring") (synopsis "Bitstrings and bitstring matching for OCaml") (description "Adds Erlang-style bitstrings and matching over bitstrings as @@ -1543,86 +1431,22 @@ as primitives to the language, making it exceptionally simple to use and very powerful.") (license license:isc))) -(define-public ocaml4.02-bitstring - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bitstring)))) - (package - (inherit base) - (version "2.1.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/xguerin/bitstring" - "/archive/v" version ".tar.gz")) - (file-name (string-append "ocaml-bitstring-" version ".tar.gz")) - (sha256 - (base32 - "0vy8ibrxccii1jbsk5q6yh1kxjigqvi7lhhcmizvd5gfhf7mfyc8")) - (patches (search-patches "ocaml-bitstring-fix-configure.patch")))) - (build-system ocaml-build-system) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:configure-flags - (list "CAMLP4OF=camlp4of" "--enable-coverage") - #:make-flags - (list (string-append "BISECTLIB=" - (assoc-ref %build-inputs "bisect") - "/lib/ocaml/site-lib") - (string-append "OCAMLCFLAGS=-g -I " - (assoc-ref %build-inputs "camlp4") - "/lib/ocaml/site-lib/camlp4 -I " - "$(BISECTLIB)/bisect") - (string-append "OCAMLOPTFLAGS=-g -I " - (assoc-ref %build-inputs "camlp4") - "/lib/ocaml/site-lib/camlp4 -I " - "$(BISECTLIB)/bisect")) - #:phases - (modify-phases %standard-phases - (add-after 'install 'link-lib - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (stubs (string-append out - "/lib/ocaml/site-lib/stubslibs")) - (lib (string-append out - "/lib/ocaml/site-lib/bitstring"))) - (mkdir-p stubs) - (symlink (string-append lib "/dllbitstring.so") - (string-append stubs "/dllbitstring.so"))) - #t)) - (add-before 'configure 'fix-configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makefile.in" - (("@abs_top_builddir@") - (string-append "@abs_top_builddir@:" (getenv "LIBRARY_PATH")))) - (substitute* "configure" - (("-/bin/sh") (string-append "-" (assoc-ref inputs "bash") - "/bin/sh")))))))) - (native-inputs - `(("camlp4" ,camlp4-4.02) - ("time" ,time) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("bisect" ,ocaml4.02-bisect))) - (propagated-inputs - `(("camlp4" ,camlp4-4.02)))))) - (define-public ocaml-result (package (name "ocaml-result") - (version "1.2") + (version "1.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/janestreet/result" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/result") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1pgpfsgvhxnh0i37fkvp9j8nadns9hz9iqgabj4dr519j2gr1xvw")))) - (build-system ocaml-build-system) + "081ayblszn9pj2rqcif40x6cz2zda48vi45gy49rc2qfc4gszry3")))) + (build-system dune-build-system) (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'configure)))) + `(#:test-target ".")) (home-page "https://github.com/janestreet/result") (synopsis "Compatibility Result module") (description "Uses the new result type defined in OCaml >= 4.03 while @@ -1630,20 +1454,17 @@ staying compatible with older version of OCaml should use the Result module defined in this library.") (license license:bsd-3))) -(define-public ocaml4.02-result - (package-with-ocaml4.02 ocaml-result)) - (define-public ocaml-topkg (package (name "ocaml-topkg") - (version "0.8.1") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "http://erratique.ch/software/topkg/releases/" "topkg-" version ".tbz")) (sha256 (base32 - "18rrh6fmf708z7dd30amljmcgaypj3kk49jrmrj68r4wnw8004j8")))) + "1df61vw6v5bg2mys045682ggv058yqkqb67w7r2gz85crs04d5fw")))) (build-system ocaml-build-system) (native-inputs `(("opam" ,opam) @@ -1664,9 +1485,6 @@ configuration and to specify information about the package's distribution, creation and publication procedures.") (license license:isc))) -(define-public ocaml4.02-topkg - (package-with-ocaml4.02 ocaml-topkg)) - (define-public ocaml-rresult (package (name "ocaml-rresult") @@ -1698,9 +1516,6 @@ to operate on the result type available from OCaml 4.03 in the standard library.") (license license:isc))) -(define-public ocaml4.02-rresult - (package-with-ocaml4.02 ocaml-rresult)) - (define-public ocaml-sqlite3 (package (name "ocaml-sqlite3") @@ -1731,26 +1546,24 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper @code{ocaml-sqlite}.") (license license:expat))) -(define-public ocaml4.02-sqlite3 - (package-with-ocaml4.02 ocaml-sqlite3)) - (define-public ocaml-csv (package (name "ocaml-csv") - (version "1.6") + (version "2.2") (source (origin - (method url-fetch) - (uri - (string-append - "https://github.com/Chris00/ocaml-csv/releases/download/" - version "/csv-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Chris00/ocaml-csv") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0rv7x843vn6scxj87hzl01yqrl26rc27lr8s7z6rp9vs745g05zj")))) - (build-system ocaml-build-system) - (native-inputs - `(("ocamlbuild" ,ocamlbuild))) + "07qdw8bbvprk78x96pnm807rhs82ks6sxis1cf5nyng8b5nvm2mv")))) + (build-system dune-build-system) + (arguments + `(#:package "csv" + #:test-target ".")) (home-page "https://github.com/Chris00/ocaml-csv") (synopsis "Pure OCaml functions to read and write CSV") (description @@ -1760,20 +1573,17 @@ read and write files in this format as well as some convenience functions to manipulate such data.") (license (package-license camlp4)))) -(define-public ocaml4.02-csv - (package-with-ocaml4.02 ocaml-csv)) - (define-public ocaml-mtime (package (name "ocaml-mtime") - (version "0.8.3") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append "http://erratique.ch/software/mtime/releases/" "mtime-" version ".tbz")) (sha256 (base32 - "1hfx4ny2dkw6jf3jppz0640dafl5xgn8r2si9kpwzhmibal8qrah")))) + "1qb4ljwirrc3g8brh97s76rjky2cpmy7zm87y7iqd6pxix52ydk3")))) (build-system ocaml-build-system) (native-inputs `(("ocamlbuild" ,ocamlbuild) @@ -1782,8 +1592,7 @@ manipulate such data.") `(("topkg" ,ocaml-topkg))) (arguments `(#:tests? #f - #:build-flags - '("native=true" "native-dynlink=true" "jsoo=false") + #:build-flags (list "build" "--with-js_of_ocaml" "false") #:phases (modify-phases %standard-phases (delete 'configure)))) @@ -1793,9 +1602,6 @@ manipulate such data.") spans without being subject to operating system calendar time adjustments.") (license license:isc))) -(define-public ocaml4.02-mtime - (package-with-ocaml4.02 ocaml-mtime)) - (define-public ocaml-cmdliner (package (name "ocaml-cmdliner") @@ -1819,8 +1625,6 @@ spans without being subject to operating system calendar time adjustments.") #:phases (modify-phases %standard-phases (delete 'configure)))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-cmdliner)))) (home-page "http://erratique.ch/software/cmdliner") (synopsis "Declarative definition of command line interfaces for OCaml") (description "Cmdliner is a module for the declarative definition of command @@ -1831,19 +1635,6 @@ generation. It supports programs with single or multiple commands and respects most of the POSIX and GNU conventions.") (license license:bsd-3))) -(define-public ocaml4.02-cmdliner - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-cmdliner)))) - (package - (inherit base) - (version "1.0.2") - (source (origin - (method url-fetch) - (uri (string-append "http://erratique.ch/software/cmdliner/releases/" - "cmdliner-" version ".tbz")) - (sha256 - (base32 - "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"))))))) - (define-public ocaml-fmt (package (name "ocaml-fmt") @@ -1876,9 +1667,6 @@ most of the POSIX and GNU conventions.") functions.") (license license:isc))) -(define-public ocaml4.02-fmt - (package-with-ocaml4.02 ocaml-fmt)) - (define-public ocaml-astring (package (name "ocaml-astring") @@ -1912,9 +1700,6 @@ adds a few missing functions and fully exploits OCaml's newfound string immutability.") (license license:isc))) -(define-public ocaml4.02-astring - (package-with-ocaml4.02 ocaml-astring)) - (define-public ocaml-alcotest (package (name "ocaml-alcotest") @@ -1948,9 +1733,6 @@ displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.") (license license:isc))) -(define-public ocaml4.02-alcotest - (package-with-ocaml4.02 ocaml-alcotest)) - (define-public ocaml-ppx-tools (package (name "ocaml-ppx-tools") @@ -1967,27 +1749,12 @@ simple (yet expressive) query language to select the tests to run.") (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) #:tests? #f)) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-ppx-tools)))) + (properties `((upstream-name . "ppx_tools"))) (home-page "https://github.com/alainfrisch/ppx_tools") (synopsis "Tools for authors of ppx rewriters and other syntactic tools") (description "Tools for authors of ppx rewriters and other syntactic tools.") (license license:expat))) -(define-public ocaml4.02-ppx-tools - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-ppx-tools)))) - (package - (inherit base) - (version "5.0+4.02.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/alainfrisch/ppx_tools.git") - (commit version))) - (sha256 - (base32 "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"))))))) - (define-public ocaml-react (package (name "ocaml-react") @@ -2018,13 +1785,10 @@ events and signals. React doesn't define any primitive event or signal, it lets the client choose the concrete timeline.") (license license:bsd-3))) -(define-public ocaml4.02-react - (package-with-ocaml4.02 ocaml-react)) - (define-public ocaml-ssl (package (name "ocaml-ssl") - (version "0.5.5") + (version "0.5.7") (source (origin (method git-fetch) @@ -2033,21 +1797,10 @@ lets the client choose the concrete timeline.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0fviq8xhp3qk7pmkl7knchywsipxgb7p0z489hj8qnf2sx8xzdmy")))) - (build-system ocaml-build-system) + "06zxqnwqkvf7pmj5s44jflkknv01czgbi4nbaac0ys1p7rv99y3x")))) + (build-system dune-build-system) (arguments - `(#:tests? #f - #:make-flags (list "OCAMLFIND_LDCONF=ignore") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda* (#:key #:allow-other-keys) - (system* "sh" "bootstrap") - (substitute* "src/OCamlMakefile" - (("/bin/sh") (which "bash"))) - (substitute* "configure" - (("/bin/sh") (which "bash"))) - #t))))) + `(#:test-target ".")) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -2060,9 +1813,6 @@ lets the client choose the concrete timeline.") through Transport Layer Security (@dfn{TLS}) encrypted connections.") (license license:lgpl2.1))) -(define-public ocaml4.02-ssl - (package-with-ocaml4.02 ocaml-ssl)) - (define-public ocaml-lwt (package (name "ocaml-lwt") @@ -2105,9 +1855,6 @@ process. Also, in many cases, Lwt threads can interact without the need for locks or other synchronization primitives.") (license license:lgpl2.1))) -(define-public ocaml4.02-lwt - (package-with-ocaml4.02 ocaml-lwt)) - (define-public ocaml-lwt-log (package (name "ocaml-lwt-log") @@ -2126,15 +1873,13 @@ locks or other synchronization primitives.") #:jbuild? #t)) (propagated-inputs `(("lwt" ,ocaml-lwt))) + (properties `((upstream-name . "lwt_log"))) (home-page "https://github.com/aantron/lwt_log") (synopsis "Logging library") (description "This package provides a deprecated logging component for ocaml lwt.") (license license:lgpl2.1))) -(define-public ocaml4.02-lwt-log - (package-with-ocaml4.02 ocaml-lwt-log)) - (define-public ocaml-logs (package (name "ocaml-logs") @@ -2170,20 +1915,17 @@ performed on sources whose reporting level can be set independently. Log message report is decoupled from logging and is handled by a reporter.") (license license:isc))) -(define-public ocaml4.02-logs - (package-with-ocaml4.02 ocaml-logs)) - (define-public ocaml-fpath (package (name "ocaml-fpath") - (version "0.7.1") + (version "0.7.2") (source (origin (method url-fetch) (uri (string-append "http://erratique.ch/software/fpath/releases/" "fpath-" version ".tbz")) (sha256 (base32 - "05134ij27xjl6gaqsc65yl19vfj6cjxq3mbm9bf4mija8grdpn6g")))) + "1hr05d8bpqmqcfdavn4rjk9rxr7v2zl84866f5knjifrm60sxqic")))) (build-system ocaml-build-system) (arguments `(#:tests? #f @@ -2204,9 +1946,6 @@ POSIX or Windows conventions. Fpath processes paths without accessing the file system and is independent from any system library.") (license license:isc))) -(define-public ocaml4.02-fpath - (package-with-ocaml4.02 ocaml-fpath)) - (define-public ocaml-bos (package (name "ocaml-bos") @@ -2243,9 +1982,6 @@ environment, parse command line arguments, interact with the file system and run command line programs.") (license license:isc))) -(define-public ocaml4.02-bos - (package-with-ocaml4.02 ocaml-bos)) - (define-public ocaml-xmlm (package (name "ocaml-xmlm") @@ -2275,9 +2011,6 @@ format. It can process XML documents without a complete in-memory representation of the data.") (license license:isc))) -(define-public ocaml4.02-xmlm - (package-with-ocaml4.02 ocaml-xmlm)) - (define-public ocaml-ulex (package (name "ocaml-ulex") @@ -2308,9 +2041,6 @@ representation of the data.") (description "Lexer generator for Unicode and OCaml.") (license license:expat))) -(define-public ocaml4.02-ulex - (package-with-ocaml4.02 ocaml-ulex)) - (define-public ocaml-uchar (package (name "ocaml-uchar") @@ -2338,9 +2068,6 @@ representation of the data.") `Uchar` module introduced in OCaml 4.03.") (license license:lgpl2.1))) -(define-public ocaml4.02-uchar - (package-with-ocaml4.02 ocaml-uchar)) - (define-public ocaml-uutf (package (name "ocaml-uutf") @@ -2377,9 +2104,6 @@ Functions are also provided to fold over the characters of UTF encoded OCaml string values and to directly encode characters in OCaml Buffer.t values.") (license license:isc))) -(define-public ocaml4.02-uutf - (package-with-ocaml4.02 ocaml-uutf)) - (define-public ocaml-jsonm (package (name "ocaml-jsonm") @@ -2412,9 +2136,6 @@ the JSON data format. It can process JSON text without blocking on IO and without a complete in-memory representation of the data.") (license license:isc))) -(define-public ocaml4.02-jsonm - (package-with-ocaml4.02 ocaml-jsonm)) - (define-public ocaml-ocurl (package (name "ocaml-ocurl") @@ -2443,9 +2164,6 @@ without a complete in-memory representation of the data.") multitude of other network protocols (FTP/SMTP/RTSP/etc).") (license license:isc))) -(define-public ocaml4.02-ocurl - (package-with-ocaml4.02 ocaml-ocurl)) - (define-public ocaml-base64 (package (name "ocaml-base64") @@ -2479,27 +2197,28 @@ that represent binary data in an ASCII string format by translating it into a radix-64 representation. It is specified in RFC 4648.") (license license:isc))) -(define-public ocaml4.02-base64 - (package-with-ocaml4.02 ocaml-base64)) - (define-public ocamlify (package (name "ocamlify") - (version "0.0.2") + (version "0.0.1") (source (origin (method url-fetch) - (uri (ocaml-forge-uri name version 1209)) + (uri "https://download.ocamlcore.org/ocamlify/ocamlify/0.0.1/ocamlify-0.0.1.tar.gz") (sha256 (base32 - "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii")))) + "1j9nb3vjqbdsx3d6jazixgrh776051zkrc06nsc5q5ilp1jhrwkm")))) (build-system ocaml-build-system) ; tests are done during build (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:phases + `(#:phases (modify-phases %standard-phases - (delete 'check)))) + (delete 'check) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "ocaml" "setup.ml" "-configure" "--prefix" + (assoc-ref outputs "out"))))))) + (native-inputs + `(("ocamlbuild" ,ocamlbuild))) (home-page "https://forge.ocamlcore.org/projects/ocamlify") (synopsis "Include files in OCaml code") (description "OCamlify allows to create OCaml source code by including @@ -2531,8 +2250,6 @@ OCaml code.") (lambda* (#:key outputs #:allow-other-keys) (substitute* "mk/osconfig_unix.mk" (("CC = cc") "CC = gcc"))))))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-omake)))) (native-inputs `(("hevea" ,hevea))) (home-page "http://projects.camlcity.org/projects/omake.html") (synopsis "Build system designed for scalability and portability") @@ -2554,20 +2271,6 @@ many additional enhancements, including: license:gpl2)))) ; OMake itself, with ocaml linking exception ; see LICENSE.OMake -(define-public ocaml4.02-omake - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant omake)))) - (package - (inherit base) - (version "0.10.2") - (source (origin - (method url-fetch) - (uri (string-append "http://download.camlcity.org/download/" - "omake-" version ".tar.gz")) - (sha256 - (base32 - "1znnlkpz89hk44byvnl1pr92ym6hwfyyw2qm9clq446r6l2z4m64")) - (patches (search-patches "omake-fix-non-determinism.patch"))))))) - (define-public ocaml-batteries (package (name "ocaml-batteries") @@ -2611,8 +2314,6 @@ many additional enhancements, including: (copy-file "_build/build/mkconf.byte" "build/mkconf.byte") (invoke "make" "all") #t))))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-batteries)))) (home-page "http://batteries.forge.ocamlcore.org/") (synopsis "Development platform for the OCaml programming language") (description "Define a standard set of libraries which may be expected on @@ -2620,47 +2321,24 @@ every compliant installation of OCaml and organize these libraries into a hierarchy of modules.") (license license:lgpl2.1+))) -(define-public ocaml4.02-batteries - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-batteries)))) - (package - (inherit base) - (version "2.5.3") - (source (origin - (method url-fetch) - (uri (ocaml-forge-uri "batteries" version 1650)) - (sha256 - (base32 - "1a97w3x2l1jr5x9kj5gqm1x6b0q9fjqdcsvls7arnl3bvzgsia0n")))) - (propagated-inputs '())))) - (define-public ocaml-pcre (package (name "ocaml-pcre") - (version "7.2.3") + (version "7.4.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mmottl/pcre-ocaml/archive" - "/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mmottl/pcre-ocaml") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0rj6dw79px4sj2kq0iss2nzq3rnsn9wivvc0f44wa1mppr6njfb3")))) - (build-system ocaml-build-system) + "11sd8g668h48790lamz0riw9jgnfkaif5qdfa0akcndwa6aj07jf")))) + (build-system dune-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'link-lib - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) - (lib (string-append out "/lib/ocaml/site-lib/pcre"))) - (mkdir-p stubs) - (symlink (string-append lib "/dllpcre_stubs.so") - (string-append stubs "/dllpcre_stubs.so"))) - #t))))) + `(#:test-target ".")) (native-inputs - `(("batteries" ,ocaml-batteries) - ("ocamlbuild" ,ocamlbuild) + `(("ocaml-base" ,ocaml-base) ("pcre:bin" ,pcre "bin"))) (propagated-inputs `(("pcre" ,pcre))) (home-page "https://mmottl.github.io/pcre-ocaml") @@ -2670,9 +2348,6 @@ matching and substitution, similar to the functionality offered by the Perl language.") (license license:lgpl2.1+))); with the OCaml link exception -(define-public ocaml4.02-pcre - (package-with-ocaml4.02 ocaml-pcre)) - (define-public ocaml-expect (package (name "ocaml-expect") @@ -2698,9 +2373,9 @@ language.") can match the question using a regular expression or a timeout.") (license license:lgpl2.1+))) ; with the OCaml static compilation exception -(define-public ocaml4.02-fileutils +(define-public ocaml-fileutils (package - (name "ocaml4.02-fileutils") + (name "ocaml-fileutils") (version "0.5.3") (source (origin (method url-fetch) @@ -2709,11 +2384,9 @@ can match the question using a regular expression or a timeout.") (base32 "1rc4cqlvdhbs55i85zfbfhz938fsy4fj6kwlkfm3ra7bpwn8bmpd")))) (build-system ocaml-build-system) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib)) (native-inputs - `(("ounit" ,ocaml4.02-ounit))) + `(("ocamlbuild" ,ocamlbuild) + ("ounit" ,ocaml-ounit))) (home-page "http://ocaml-fileutils.forge.ocamlcore.org") (synopsis "Pure OCaml functions to manipulate real file and filename") (description "Library to provide pure OCaml functions to manipulate real @@ -2759,9 +2432,6 @@ system in your OCaml projects. It helps to create standard entry points in your build system and allows external tools to analyse your project easily.") (license license:lgpl2.1+))) ; with ocaml static compilation exception -(define-public ocaml4.02-oasis - (package-with-ocaml4.02 ocaml-oasis)) - (define-public ocaml-js-build-tools (package (name "ocaml-js-build-tools") @@ -2785,137 +2455,6 @@ from the oasis build log @end enumerate") (license license:asl2.0))) -(define-public ocaml4.02-js-build-tools - (package-with-ocaml4.02 ocaml-js-build-tools)) - -(define-public ocaml4.02-bin-prot - (package - (name "ocaml4.02-bin-prot") - (version "113.33.03") - (source (janestreet-origin "bin_prot" version - "1ws8c017z8nbj3vw92ndvjk9011f71rmp3llncbv8r5fc76wqv3l")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/bin_prot/") - (synopsis "Binary protocol generator") - (description "This library contains functionality for reading and writing -OCaml-values in a type-safe binary protocol. It is extremely efficient, -typically supporting type-safe marshalling and unmarshalling of even highly -structured values at speeds sufficient to saturate a gigabit connection. The -protocol is also heavily optimized for size, making it ideal for long-term -storage of large amounts of data.") - (license license:asl2.0))) - -(define-public ocaml4.02-fieldslib - (package - (name "ocaml4.02-fieldslib") - (version "113.33.03") - (source (janestreet-origin "fieldslib" version - "1rm3bn54bzk2hlq8f3w067ak8s772w4a8f78i3yh79vxfzq8ncvv")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/fieldslib/") - (synopsis "Syntax extension to record fields") - (description "Syntax extension to define first class values representing -record fields, 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 ocaml4.02-ppx-core - (package - (name "ocaml4.02-ppx-core") - (version "113.33.03") - (source (janestreet-origin "ppx_core" version - "0f69l4czhgssnhb5ds2j9dbqjyz8dp1y3i3x0i4h6pxnms20zbxa")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (inputs `(("ppx-tools" ,ocaml4.02-ppx-tools))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_core/") - (synopsis "Standard library for ppx rewriters") - (description "Ppx_core is a standard library for OCaml AST transformers. -It contains: -@enumerate -@item various auto-generated AST traversal using an open recursion scheme -@item helpers for building AST fragments -@item helpers for matching AST fragments -@item a framework for dealing with attributes and extension points. -@end enumerate") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-optcomp - (package - (name "ocaml4.02-ppx-optcomp") - (version "113.33.03") - (source (janestreet-origin "ppx_optcomp" version - "13an8p2r7sd0d5lv54mlzrxdni47408bwqi3bjcx4m6005170q30")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_optcomp/") - (synopsis "Optional compilation for OCaml") - (description "Ppx_optcomp stands for Optional Compilation. It is a tool -used to handle optional compilations of pieces of code depending of the word -size, the version of the compiler, ...") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-driver - (package - (name "ocaml4.02-ppx-driver") - (version "113.33.03") - (source (janestreet-origin "ppx_driver" version - "011zzr45897j49b7iiybb29k7pspcx36mlnp7nh6pxb8b0ga76fh")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-optcomp" ,ocaml4.02-ppx-optcomp))) - (propagated-inputs - `(("ppx-optcomp" ,ocaml4.02-ppx-optcomp) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_driver/") - (synopsis "Feature-full driver for OCaml AST transformers") - (description "A driver is an executable created from a set of OCaml AST -transformers linked together with a command line frontend. The aim is to -provide a tool that can be used to: -@enumerate -@item easily view the pre-processed version of a file, no need to construct a - complex command line: @command{ppx file.ml} will do -@item use a single executable to run several transformations: no need to fork - many times just for pre-processing -@item improved errors for misspelled/misplaced attributes and extension points. -@end enumerate") - (license license:asl2.0))) - (define-public ocaml-cppo (package (name "ocaml-cppo") @@ -2946,572 +2485,6 @@ programs. It allows the definition of simple macros and file inclusion. Cpp oi @end enumerate") (license license:bsd-3))) -(define-public ocaml4.02-cppo - (package-with-ocaml4.02 ocaml-cppo)) - -;; this package is not reproducible. This is related to temporary filenames -;; such as findlib_initxxxxx where xxxxx is random. -(define-public ocaml4.02-ppx-deriving - (package - (name "ocaml4.02-ppx-deriving") - (version "4.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/whitequark/ppx_deriving.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cy9p8d8cbcxvqyyv8fz2z9ypi121zrgaamdlp4ld9f3jnwz7my9")))) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("cppo" ,ocaml4.02-cppo) - ("ounit" ,ocaml4.02-ounit) - ("opam" ,opam))) - (propagated-inputs - `(("result" ,ocaml4.02-result) - ("ppx-tools" ,ocaml4.02-ppx-tools))) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (delete 'configure) - (add-before 'install 'fix-environment - (lambda* (#:key outputs #:allow-other-keys) - ;; the installation procedures looks for the installed module - (setenv "OCAMLPATH" - (string-append (getenv "OCAMLPATH") ":" - (getenv "OCAMLFIND_DESTDIR")))))))) - (home-page "https://github.com/whitequark/ppx_deriving/") - (synopsis "Type-driven code generation for OCaml >=4.02") - (description "Ppx_deriving provides common infrastructure for generating -code based on type definitions, and a set of useful plugins for common tasks.") - (license license:expat))) - -(define-public ocaml4.02-ppx-type-conv - (package - (name "ocaml4.02-ppx-type-conv") - (version "113.33.03") - (source - (janestreet-origin "ppx_type_conv" version - "1sp602ads2f250nv4d4rgw54d14k7flyhb4w8ff084f657hhmxv2")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-deriving" ,ocaml4.02-ppx-deriving) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-driver" ,ocaml4.02-ppx-driver))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_type_conv/") - (synopsis "Support Library for type-driven code generators") - (description "The type_conv library factors out functionality needed by -different preprocessors that generate code from type specifications.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-inline-test - (package - (name "ocaml4.02-ppx-inline-test") - (version "113.33.03") - (source (janestreet-origin "ppx_inline_test" version - "0859ni43fl39dd5g6cxfhq0prxmx59bd2bfq8jafp593ba4q0icq")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-core" ,ocaml4.02-ppx-core))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_inline_test/") - (synopsis "Syntax extension for writing in-line tests in ocaml code") - (description "Syntax extension for writing in-line tests in ocaml code.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-bench - (package - (name "ocaml4.02-ppx-bench") - (version "113.33.03") - (source (janestreet-origin "ppx_bench" version - "1hky3y17qpb925rymf97wv54di9gaqdmkix7wpkjw14qzl512b68")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-core" ,ocaml4.02-ppx-core))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_bench/") - (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") - (description "Syntax extension for writing in-line benchmarks in ocaml code.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-compare - (package - (name "ocaml4.02-ppx-compare") - (version "113.33.03") - (source (janestreet-origin "ppx_compare" version - "0bfhi33kq9l4q6zzc6svki2csracz5j4731c3npcy6cs73jynn0z")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-core" ,ocaml4.02-ppx-core))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_compare/") - (synopsis "Generation of comparison functions from types") - (description "Generation of fast comparison functions from type expressions -and definitions. Ppx_compare is a ppx rewriter that derives comparison functions -from type representations. The scaffolded functions are usually much faster -than ocaml's Pervasives.compare. Scaffolding functions also gives you more -flexibility by allowing you to override them for a specific type and more safety -by making sure that you only compare comparable values.") - (license license:asl2.0))) - -(define-public ocaml4.02-sexplib - (package - (name "ocaml4.02-sexplib") - (version "113.33.03") - (source (janestreet-origin "sexplib" version - "1ffjmj8if9lyv965cgn2ld1xv7g52qsr8mqflbm515ck1i8l2ima")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/sexplib/") - (synopsis "Library for serializing OCaml values to and from S-expressions") - (description "Sexplib contains functionality for parsing and pretty-printing -s-expressions.") - (license license:asl2.0))) - -(define-public ocaml4.02-typerep - (package - (name "ocaml4.02-typerep") - (version "113.33.03") - (source (janestreet-origin "typerep" version - "1b9v5bmi824a9d4sx0f40ixq0yfcbiqxafg4a1jx95xg9199zafy")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/typerep/") - (synopsis "Typerep is a library for runtime types") - (description "Typerep is a library for runtime types.") - (license license:asl2.0))) - -(define-public ocaml4.02-variantslib - (package - (name "ocaml4.02-variantslib") - (version "113.33.03") - (source (janestreet-origin "variantslib" version - "05vp799vl38fvl98ga5miwbzh09cnnpapi6q6gdvwyqi6w7s919n")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/variantslib") - (synopsis "OCaml variants as first class values") - (description "OCaml variants as first class values.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-sexp-conv - (package - (name "ocaml4.02-ppx-sexp-conv") - (version "113.33.03") - (source (janestreet-origin "ppx_sexp_conv" version - "1rbj6d5dl625gdxih34xcrdvikci6h8i2dl9x3wraa4qrgishiw7")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-core" ,ocaml4.02-ppx-core))) - (propagated-inputs - `(("sexplib" ,ocaml4.02-sexplib) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) - ("ppx-tools" ,ocaml4.02-ppx-tools))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_sexp_conv") - (synopsis "Generation of S-expression conversion functions from type definitions") - (description "Generation of S-expression conversion functions from type -definitions.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-variants-conv - (package - (name "ocaml4.02-ppx-variants-conv") - (version "113.33.03") - (source (janestreet-origin "ppx_variants_conv" version - "0vnn2l1118cj72413d3f7frlw6yc09l8f64jlzkzbgb9bxpalx34")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-core" ,ocaml4.02-ppx-core) - ("variantslib" ,ocaml4.02-variantslib) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_variants_conv") - (synopsis "Generation of accessor and iteration functions for ocaml variant -types") - (description "Generation of accessor and iteration functions for ocaml -variant types.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-here - (package - (name "ocaml4.02-ppx-here") - (version "113.33.03") - (source (janestreet-origin "ppx_here" version - "1ay8lfxi0qg3ib2zkwh4h0vqk3gjmxaz572gzab0bbxyqn3z86v7")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_here") - (synopsis "Expands [%here] into its location") - (description "Expands [%here] into its location.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-assert - (package - (name "ocaml4.02-ppx-assert") - (version "113.33.03") - (source (janestreet-origin "ppx_assert" version - "1k5kxmqkibp5fk25pgz81f3c1r4mgvb5byzf6bnmxd24y60wn46p")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-compare" ,ocaml4.02-ppx-compare) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) - ("ppx-sexplib" ,ocaml4.02-sexplib) - ("ppx-here" ,ocaml4.02-ppx-here))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_assert") - (synopsis "Assert-like extension nodes that raise useful errors on failure") - (description "Assert-like extension nodes that raise useful errors on failure.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-enumerate - (package - (name "ocaml4.02-ppx-enumerate") - (version "113.33.03") - (source (janestreet-origin "ppx_enumerate" version - "15g7yfv9wg2h9r6k6q1zrhygmsl4xrfn25mrb0i4czjjivzmxjh4")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_enumerate") - (synopsis "Generate a list containing all values of a finite type") - (description "Ppx_enumerate is a ppx rewriter which generates a definition -for the list of all values of a type (for a type which only has finitely -many values).") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-let - (package - (name "ocaml4.02-ppx-let") - (version "113.33.03") - (source (janestreet-origin "ppx_let" version - "0gd6d3gdaqfwjcs7gaw1qxc30i584q6a86ndaj1bx1q63xqd6yx9")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_let") - (synopsis "Monadic let-bindings") - (description "A ppx rewriter for monadic and applicative let bindings, -match expressions, and if expressions.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-typerep-conv - (package - (name "ocaml4.02-ppx-typerep-conv") - (version "113.33.03") - (source (janestreet-origin "ppx_typerep_conv" version - "0g0xqm9s1b2jjvxb8yp69281q2s3bwz6sibn10fvgcdawpa0rmrg")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) - ("ppx-core" ,ocaml4.02-ppx-core) - ("typerep" ,ocaml4.02-typerep))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/ppx_typerep_conv") - (synopsis "Generation of runtime types from type declarations") - (description "Automatic generation of runtime types from type definitions.") - (license license:asl2.0))) - -(define-public ocaml4.02-ppx-sexp-value - (package - (name "ocaml4.02-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" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-here" ,ocaml4.02-ppx-here) - ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-pipebang - (package - (name "ocaml4.02-ppx-pipebang") - (version "113.33.03") - (source (janestreet-origin "ppx_pipebang" version - "1965c7hymp26ncmjs0pfxi2s5jlj60z2c9b194lgcwxqiav56pcw")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-bin-prot - (package - (name "ocaml4.02-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" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("bin-prot" ,ocaml4.02-bin-prot) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-fail - (package - (name "ocaml4.02-ppx-fail") - (version "113.33.03") - (source (janestreet-origin "ppx_fail" version - "1dwgad0f05gqp5rnwf9dcasidpfi7q3mrpazsw3a2vijjblbhjgn")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-here" ,ocaml4.02-ppx-here) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-custom-printf - (package - (name "ocaml4.02-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" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-driver" ,ocaml4.02-ppx-driver))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-sexp-message - (package - (name "ocaml4.02-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" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-here" ,ocaml4.02-ppx-here) - ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-fields-conv - (package - (name "ocaml4.02-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" ,ocaml4.02-js-build-tools) - ("opam" ,opam) - ("ppx-core" ,ocaml4.02-ppx-core))) - (propagated-inputs - `(("fieldslib" ,ocaml4.02-fieldslib) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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-seq (package (name "ocaml-seq") @@ -3544,28 +2517,16 @@ version=\"[distributed with ocaml]\" description=\"dummy package for compatibility\" requires=\"\""))) #t)))))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-seq)))) (home-page "https://github.com/c-cube/seq") (synopsis "OCaml's standard iterator type") (description "This package is a compatibility package for OCaml's standard iterator type starting from 4.07.") (license license:lgpl2.1+))) -(define-public ocaml4.02-seq - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-seq)))) - (package - (inherit base) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:tests? #f; no tests - #:phases (modify-phases %standard-phases (delete 'configure))))))) - (define-public ocaml-re (package (name "ocaml-re") - (version "1.8.0") + (version "1.9.0") (source (origin (method git-fetch) @@ -3574,7 +2535,7 @@ standard iterator type starting from 4.07.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ch6hvmm4ym3w2vghjxf3ka5j1023a37980fqi4zcb7sx756z20i")))) + (base32 "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss")))) (build-system dune-build-system) (arguments `(#:tests? #f @@ -3595,265 +2556,6 @@ standard iterator type starting from 4.07.") @end enumerate") (license license:expat))) -(define-public ocaml4.02-re - (package-with-ocaml4.02 ocaml-re)) - -(define-public ocaml4.02-ppx-expect - (package - (name "ocaml4.02-ppx-expect") - (version "113.33.03") - (source (janestreet-origin "ppx_expect" version - "03sbs4s5i8l9syr45v25f5hzy7msd2b47k2a9wsq9m43d4imgkrc")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("fieldslib" ,ocaml4.02-fieldslib) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("ppx-assert" ,ocaml4.02-ppx-assert) - ("ppx-compare" ,ocaml4.02-ppx-compare) - ("ppx-core" ,ocaml4.02-ppx-core) - ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf) - ("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv) - ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) - ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv) - ("re" ,ocaml4.02-re) - ("sexplib" ,ocaml4.02-sexplib) - ("variantslib" ,ocaml4.02-variantslib))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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 ocaml4.02-ppx-jane - (package - (name "ocaml4.02-ppx-jane") - (version "113.33.03") - (source (janestreet-origin "ppx_jane" version - "0bjxkhmzgm6x9dcvjwybbccn34khbvyyjimcbaja30fp6qcqk5yl")) - (build-system ocaml-build-system) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("opam" ,opam))) - (propagated-inputs - `(("ppx-assert" ,ocaml4.02-ppx-assert) - ("ppx-bench" ,ocaml4.02-ppx-bench) - ("ppx-bin-prot" ,ocaml4.02-ppx-bin-prot) - ("ppx-compare" ,ocaml4.02-ppx-compare) - ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf) - ("ppx-deriving" ,ocaml4.02-ppx-deriving) - ("ppx-enumerate" ,ocaml4.02-ppx-enumerate) - ("ppx-expect" ,ocaml4.02-ppx-expect) - ("ppx-fail" ,ocaml4.02-ppx-fail) - ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv) - ("ppx-here" ,ocaml4.02-ppx-here) - ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) - ("ppx-let" ,ocaml4.02-ppx-let) - ("ppx-pipebang" ,ocaml4.02-ppx-pipebang) - ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("ppx-sexp-message" ,ocaml4.02-ppx-sexp-message) - ("ppx-sexp-value" ,ocaml4.02-ppx-sexp-value) - ("ppx-typerep-conv" ,ocaml4.02-ppx-typerep-conv) - ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv))) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (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))) - -(define-public ocaml4.02-core-kernel - (package - (name "ocaml4.02-core-kernel") - (version "113.33.03") - (source (janestreet-origin "core_kernel" version - "0fl23jrwivixawhxinbwaw9cabqnzn7fini7dxpxjjvkxdc8ip5y")) - (native-inputs - `(("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("bin_prot" ,ocaml4.02-bin-prot) - ("ppx-assert" ,ocaml4.02-ppx-assert) - ("ppx-bench" ,ocaml4.02-ppx-bench) - ("ppx-driver" ,ocaml4.02-ppx-driver) - ("ppx-expect" ,ocaml4.02-ppx-expect) - ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) - ("typerep" ,ocaml4.02-typerep) - ("sexplib" ,ocaml4.02-sexplib) - ("variantslib" ,ocaml4.02-variantslib) - ("result" ,ocaml4.02-result) - ("fieldslib" ,ocaml4.02-fieldslib))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/core_kernel/") - (synopsis "Portable standard library for OCaml") - (description "Core is an alternative to the OCaml standard library. - -Core_kernel is the system-independent part of Core. It is aimed for cases when -the full Core is not available, such as in Javascript.") - (license license:asl2.0))) - -(define-public ocaml4.02-async-kernel - (package - (name "ocaml4.02-async-kernel") - (version "113.33.03") - (source (janestreet-origin "async_kernel" version - "04bjsaa23j831r09r38x6xx9nhryvp0z5ihickvhxqa4fb2snyvd")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("core-kernel" ,ocaml4.02-core-kernel))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/async_kernel/") - (synopsis "Monadic concurrency library") - (description "Async-kernel is a library for concurrent programming in OCaml.") - (license license:asl2.0))) - -(define-public ocaml4.02-async-rpc-kernel - (package - (name "ocaml4.02-async-rpc-kernel") - (version "113.33.03") - (source (janestreet-origin "async_rpc_kernel" version - "0y97h9pkb00v7jpf87m8cbb0ffkclj9g26ph6sq97q8dpisnkjwh")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("async-kernel" ,ocaml4.02-async-kernel))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/async_rpc_kernel/") - (synopsis "Platform-independent core of the Async RPC library") - (description "Async_rpc_kernel is the platform-independent core of -the Async RPC library.") - (license license:asl2.0))) - -(define-public ocaml4.02-core - (package - (name "ocaml4.02-core") - (version "113.33.03") - (source (janestreet-origin "core" version - "1znll157qg56g9d3247fjibv1hxv3r9wxgr4nhy19j2vzdh6a268")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("core-kernel" ,ocaml4.02-core-kernel))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/core/") - (synopsis "Alternative to OCaml's standard library") - (description "The Core suite of libraries is an alternative to OCaml's -standard library that was developed by Jane Street.") - (license license:asl2.0))) - -(define-public ocaml4.02-async-unix - (package - (name "ocaml4.02-async-unix") - (version "113.33.03") - (source (janestreet-origin "async_unix" version - "1fwl0lfrizllcfjk8hk8m7lsz9ha2jg6qgk4gssfyz377qvpcq4h")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("async-kernel" ,ocaml4.02-async-kernel) - ("core" ,ocaml4.02-core))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/async_unix") - (synopsis "Asynchronous execution library for Unix") - (description "Async_unix is an asynchronous execution library for Unix.") - (license license:asl2.0))) - -(define-public ocaml4.02-async-extra - (package - (name "ocaml4.02-async-extra") - (version "113.33.03") - (source (janestreet-origin "async_extra" version - "1si8jgiq5xh5sl9f2b7f9p17p7zx5h1pg557x2cxywi2x7pxqg4f")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("async-rpc-kernel" ,ocaml4.02-async-rpc-kernel) - ("async-unix" ,ocaml4.02-async-unix) - ("core" ,ocaml4.02-core))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/async_extra") - (synopsis "Extra functionnalities for the async library") - (description "Async_extra provides additional functionnalities for the -async library.") - (license license:asl2.0))) - -(define-public ocaml4.02-async - (package - (name "ocaml4.02-async") - (version "113.33.03") - (source (janestreet-origin "async" version - "0210fyhcs12kpmmd26015bgivkfd2wqkyn3c5wd7688d0f872y25")) - (native-inputs - `(("oasis" ,ocaml-oasis) - ("js-build-tools" ,ocaml4.02-js-build-tools) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("opam" ,opam))) - (propagated-inputs - `(("async-extra" ,ocaml4.02-async-extra))) - (build-system ocaml-build-system) - (arguments - (ensure-keyword-arguments janestreet-arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib))) - (home-page "https://github.com/janestreet/async") - (synopsis "Monadic concurrency library") - (description "Async is a library for concurrent programming in OCaml.") - (license license:asl2.0))) - (define-public ocaml-ocplib-endian (package (name "ocaml-ocplib-endian") @@ -3879,46 +2581,24 @@ strings, bytes and bigstring (Bigarrys of chars), and provides submodules for big- and little-endian, with their unsafe counter-parts.") (license license:lgpl2.1))) -(define-public ocaml4.02-ocplib-endian - (package-with-ocaml4.02 ocaml-ocplib-endian)) - -(define-public ocaml4.02-cstruct +(define-public ocaml-cstruct (package - (name "ocaml4.02-cstruct") - (version "2.3.1") + (name "ocaml-cstruct") + (version "4.0.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mirage/ocaml-cstruct/" - "archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mirage/ocaml-cstruct") + (commit (string-append "v" version)))) (sha256 (base32 - "15qpdc8421shq4pprdas9jznpva45229wkfqbwcxw9khaiiz7949")) - (file-name (string-append name "-" version ".tar.gz")))) - (build-system ocaml-build-system) + "0m4bz0digcsc8l2msfikwcbi1y371kccx6xnkwrz212mf5mp98bv")))) + (build-system dune-build-system) (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:configure-flags - (list "--enable-lwt" "--enable-async") - #:phases - (modify-phases %standard-phases - (add-after 'install 'link-stubs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) - (lib (string-append out "/lib/ocaml/site-lib/cstruct"))) - (mkdir-p stubs) - (symlink (string-append lib "/dllcstruct_stubs.so") - (string-append stubs "/dllcstruct_stubs.so")))))))) + `(#:package "cstruct" + #:test-target ".")) (native-inputs - `(("ounit" ,ocaml4.02-ounit) - ("ppx-tools" ,ocaml4.02-ppx-tools) - ("camlp4" ,camlp4-4.02))) - (propagated-inputs - `(("ocplib-endian" ,ocaml4.02-ocplib-endian) - ("lwt" ,ocaml4.02-lwt) - ("async" ,ocaml4.02-async) - ("sexplib" ,ocaml4.02-sexplib))) + `(("ocaml-alcotest" ,ocaml-alcotest))) (home-page "https://github.com/mirage/ocaml-cstruct") (synopsis "Access C structures via a camlp4 extension") (description "Cstruct is a library and syntax extension to make it easier @@ -3926,54 +2606,53 @@ to access C-like structures directly from OCaml. It supports both reading and writing to these structures, and they are accessed via the Bigarray module.") (license license:isc))) -(define-public ocaml4.02-hex +(define-public ocaml-hex (package - (name "ocaml4.02-hex") - (version "1.0.0") + (name "ocaml-hex") + (version "1.4.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mirage/ocaml-hex/" - "archive/" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mirage/ocaml-hex") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0s63g0b8gfv2xm6fv6xg7bva8h76b5pcjb0zw3f8cygs0lq9072v")) - (file-name (string-append name "-" version ".tar.gz")))) - (build-system ocaml-build-system) + "0c8nhibcwy0ykzca4jn3gqb8ylq21ff88y82gl60wyzijr64rn0q")))) + (build-system dune-build-system) (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib)) + `(#:test-target ".")) (propagated-inputs - `(("cstruct" ,ocaml4.02-cstruct))) + `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat) + ("cstruct" ,ocaml-cstruct))) (home-page "https://github.com/mirage/ocaml-hex/") (synopsis "Minimal library providing hexadecimal converters") (description "Hex is a minimal library providing hexadecimal converters.") (license license:isc))) -(define-public ocaml4.02-ezjsonm +(define-public ocaml-ezjsonm (package - (name "ocaml4.02-ezjsonm") - (version "0.4.3") + (name "ocaml-ezjsonm") + (version "1.1.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mirage/ezjsonm.git") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1y6p3ga6vj1wx5dyns7hjgd0qgrrn2hnn323a7y5didgci5pybls")))) - (build-system ocaml-build-system) + (base32 "064j9pzy01p3dv947khqyn7fkjbs3jmrqsg8limb4abnlaqxxs2s")))) + (build-system dune-build-system) + (arguments + `(#:package "ezjsonm" + #:test-target ".")) (native-inputs - `(("alcotest" ,ocaml4.02-alcotest))) + `(("ocaml-alcotest" ,ocaml-alcotest))) (propagated-inputs - `(("hex" ,ocaml4.02-hex) - ("jsonm" ,ocaml4.02-jsonm) - ("lwt" ,ocaml4.02-lwt) - ("sexplib" ,ocaml4.02-sexplib))) - (arguments - `(#:configure-flags (list "--enable-lwt") - #:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib)) + `(("ocaml-hex" ,ocaml-hex) + ("ocaml-jsonm" ,ocaml-jsonm) + ("ocaml-sexplib" ,ocaml-sexplib))) (home-page "https://github.com/mirage/ezjsonm/") (synopsis "Read and write JSON data") (description "Ezjsonm provides more convenient (but far less flexible) input @@ -3982,10 +2661,10 @@ the need to write signal code, which is useful for quick scripts that manipulate JSON.") (license license:isc))) -(define-public ocaml4.02-uri +(define-public ocaml-uri (package - (name "ocaml4.02-uri") - (version "1.9.2") + (name "ocaml-uri") + (version "2.2.0") (source (origin (method git-fetch) @@ -3994,19 +2673,23 @@ JSON.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "137pg8j654x7r0d1664iy2zp3l82nki1kkh921lwdrwc5qqdl6jx")))) - (build-system ocaml-build-system) + (base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh")))) + (build-system dune-build-system) (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib)) + `(#:test-target "." + #:phases + (modify-phases %standard-phases + (add-before 'build 'update-deprecated + (lambda _ + (substitute* "lib/uri.ml" + (("Re.get") "Re.Group.get"))))))) (native-inputs - `(("ounit" ,ocaml4.02-ounit))) + `(("ocaml-ounit" ,ocaml-ounit) + ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv))) (propagated-inputs - `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) - ("re" ,ocaml4.02-re) - ("ppx-deriving" ,ocaml4.02-ppx-deriving) - ("sexplib" ,ocaml4.02-sexplib) - ("stringext" ,ocaml4.02-stringext))) + `(("ocaml-re" ,ocaml-re) + ("ocaml-sexplib0" ,ocaml-sexplib0) + ("ocaml-stringext" ,ocaml-stringext))) (home-page "https://github.com/mirage/ocaml-uri") (synopsis "RFC3986 URI/URL parsing library") (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") @@ -4015,59 +2698,25 @@ JSON.") (define-public ocaml-easy-format (package (name "ocaml-easy-format") - (version "1.2.0") + (version "1.3.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mjambon/easy-format/" - "archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mjambon/easy-format") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252")) - (file-name (string-append name "-" version ".tar.gz")))) - (build-system ocaml-build-system) + "0jfncci15b8sf1y72yrxfjlsmhs9aavcd14vwz4d7kj8k9w9c4qk")))) + (build-system dune-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure)))) + `(#:jbuild? #t)) (home-page "https://github.com/mjambon/easy-format") (synopsis "Interface to the Format module") (description "Easy-format is a high-level and functional interface to the Format module of the OCaml standard library.") (license license:bsd-3))) -(define-public ocaml4.02-easy-format - (package-with-ocaml4.02 ocaml-easy-format)) - -(define-public optcomp - (package - (name "optcomp") - (version "1.6") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/diml/optcomp.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0bm4f3fs9g1yiz48hdxvcjwnrgymwisqilxhmm87ndz81wp47zfy")))) - (build-system ocaml-build-system) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:use-make? #t - #:make-flags - (list (string-append "BUILDFLAGS=\"-cflags -I," - (assoc-ref %build-inputs "camlp4") - "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\"")))) - (native-inputs `(("camlp4" ,camlp4-4.02))) - (propagated-inputs `(("camlp4" ,camlp4-4.02))) - (home-page "https://github.com/diml/optcomp") - (synopsis "Optional compilation for OCaml") - (description "Optcomp provides an optional compilation facility with -cpp-like directives.") - (license license:bsd-3))) - (define-public ocaml-piqilib (package (name "ocaml-piqilib") @@ -4129,9 +2778,6 @@ cpp-like directives.") tool and piqi-ocaml.") (license license:asl2.0))) -(define-public ocaml4.02-piqilib - (package-with-ocaml4.02 ocaml-piqilib)) - (define-public ocaml-uuidm (package (name "ocaml-uuidm") @@ -4163,9 +2809,6 @@ unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.") (license license:isc))) -(define-public ocaml4.02-uuidm - (package-with-ocaml4.02 ocaml-uuidm)) - (define-public ocaml-graph (package (name "ocaml-graph") @@ -4194,9 +2837,6 @@ and 4 (random based) according to RFC 4122.") (description "OCamlgraph is a generic graph library for OCaml.") (license license:lgpl2.1))) -(define-public ocaml4.02-graph - (package-with-ocaml4.02 ocaml-graph)) - (define-public ocaml-piqi (package (name "ocaml-piqi") @@ -4225,8 +2865,6 @@ and 4 (random based) according to RFC 4122.") (propagated-inputs `(("num" ,ocaml-num) ("piqilib" ,ocaml-piqilib))) - (properties - `((ocaml4.02-variant . ,(delay ocaml4.02-piqi)))) (home-page "https://github.com/alavrik/piqi-ocaml") (synopsis "Protocol serialization system for OCaml") (description "Piqi is a multi-format data serialization system for OCaml. @@ -4234,60 +2872,55 @@ It provides a uniform interface for serializing OCaml data structures to JSON, XML and Protocol Buffers formats.") (license license:asl2.0))) -(define-public ocaml4.02-piqi - (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-piqi)))) - (package - (inherit base) - (propagated-inputs - `(("piqilib" ,ocaml4.02-piqilib)))))) - (define-public bap (package (name "bap") - (version "1.3.0") + (version "1.6.0") (home-page "https://github.com/BinaryAnalysisPlatform/bap") (source (origin - (method url-fetch) - (uri (string-append home-page "/archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0v95v9mp7mg8fj25ry0w7566zd9xp6cs8nnqj4l38q54fb1hfav9")) - (file-name (string-append name "-" version ".tar.gz")))) + "0ryf2xb37pj2f9mc3p5prqgqrylph9qgq7q9jnbx8b03nzzpa6h6")))) (build-system ocaml-build-system) (native-inputs - `(("oasis" ,ocaml4.02-oasis) + `(("ocaml-oasis" ,ocaml-oasis) ("clang" ,clang-3.8) - ("ounit" ,ocaml4.02-ounit))) + ("ocaml-ounit" ,ocaml-ounit))) (propagated-inputs - `(("core-kernel" ,ocaml4.02-core-kernel) - ("ppx-driver" ,ocaml4.02-ppx-driver) - ("bin-prot" ,ocaml4.02-bin-prot) - ("uri" ,ocaml4.02-uri) - ("llvm" ,llvm-3.8) - ("gmp" ,gmp) - ("clang-runtime" ,clang-runtime) - ("fileutils" ,ocaml4.02-fileutils) - ("cmdliner" ,ocaml4.02-cmdliner) - ("zarith" ,ocaml4.02-zarith) - ("uuidm" ,ocaml4.02-uuidm) - ("camlzip" ,ocaml4.02-camlzip) - ("frontc" ,ocaml-frontc) - ("ezjsonm" ,ocaml4.02-ezjsonm) - ("ocurl" ,ocaml4.02-ocurl) - ("piqi" ,ocaml4.02-piqi) - ("ocamlgraph" ,ocaml4.02-graph) - ("bitstring" ,ocaml4.02-bitstring) - ("ppx-jane" ,ocaml4.02-ppx-jane) - ("re" ,ocaml4.02-re))) - (inputs `(("llvm" ,llvm-3.8))) + `(("camlzip" ,camlzip) + ("ocaml-bitstring" ,ocaml-bitstring) + ("ocaml-cmdliner" ,ocaml-cmdliner) + ("ocaml-core-kernel" ,ocaml-core-kernel) + ("ocaml-ezjsonm" ,ocaml-ezjsonm) + ("ocaml-fileutils" ,ocaml-fileutils) + ("ocaml-frontc" ,ocaml-frontc) + ("ocaml-graph" ,ocaml-graph) + ("ocaml-ocurl" ,ocaml-ocurl) + ("ocaml-piqi" ,ocaml-piqi) + ("ocaml-ppx-jane" ,ocaml-ppx-jane) + ("ocaml-uuidm" ,ocaml-uuidm) + ("ocaml-uri" ,ocaml-uri) + ("ocaml-zarith" ,ocaml-zarith))) + (inputs + `(("llvm" ,llvm-3.8) + ("gmp" ,gmp))) (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:use-make? #t + `(#:use-make? #t #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs inputs #:allow-other-keys) + ;; add write for user, to prevent a failure in the install phase + (for-each + (lambda (file) + (let ((stat (stat file))) + (chmod file (+ #o200 (stat:mode stat))))) + (find-files "." ".")) (invoke "./configure" "--prefix" (assoc-ref outputs "out") "--libdir" @@ -4296,11 +2929,7 @@ XML and Protocol Buffers formats.") "/lib/ocaml/site-lib") "--with-llvm-version=3.8" "--with-llvm-config=llvm-config" - "--enable-everything") - (substitute* "plugins/objdump/objdump_main.ml" - (("Re_perl") "Re.Perl")) - (substitute* "oasis/objdump" - (("re.pcre") "re.pcre, re.perl"))))))) + "--enable-everything")))))) (synopsis "Binary Analysis Platform") (description "Binary Analysis Platform is a framework for writing program analysis tools, that target binary files. The framework consists of a plethora @@ -4334,45 +2963,6 @@ library is currently designed for Unicode Standard 3.2.") ;; with an exception for linked libraries to use a different license (license license:lgpl2.0+))) -(define-public ocaml4.02-camomile - (package-with-ocaml4.02 ocaml-camomile)) - -(define-public ocaml-jbuilder - (package - (name "ocaml-jbuilder") - (version "1.0+beta16") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/janestreet/jbuilder.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1y3fgf570w3vrnhianrg26jy5j749zczq3f78s2dy5ylbp1hrx71")))) - (build-system ocaml-build-system) - (arguments - `(#:ocaml ,ocaml-4.02 - #:findlib ,ocaml4.02-findlib - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (setenv "PREFIX" out)) - #t))))) - (native-inputs - `(("menhir" ,ocaml4.02-menhir))) - (propagated-inputs - `(("opam" ,opam))) - (home-page "https://github.com/janestreet/jbuilder") - (synopsis "Composable build system for OCaml") - (description "Jbuilder is a build system designed for OCaml/Reason projects -only. It focuses on providing the user with a consistent experience and takes -care of most of the low-level details of OCaml compilation. All you have to do -is provide a description of your project and Jbuilder will do the rest.") - (license license:asl2.0))) - (define-public ocaml-zed (package (name "ocaml-zed") @@ -4386,20 +2976,10 @@ is provide a description of your project and Jbuilder will do the rest.") (file-name (git-file-name name version)) (sha256 (base32 "00hhxcjf3bj3w2qm8nzs9x6vrqkadf4i0277s5whzy2rmiknj63v")))) - (build-system ocaml-build-system) + (build-system dune-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda _ (invoke "jbuilder" "build"))) - (delete 'check) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (invoke "jbuilder" "install" "--prefix" out))))))) - (native-inputs - `(("jbuilder" ,ocaml-jbuilder))) + `(#:jbuild? #t + #:test-target ".")) (propagated-inputs `(("camomile" ,ocaml-camomile) ("react" ,ocaml-react))) @@ -4410,9 +2990,6 @@ to write text editors, edition widgets, readlines, etc. You just have to connect an engine to your inputs and rendering functions to get an editor.") (license license:bsd-3))) -(define-public ocaml4.02-zed - (package-with-ocaml4.02 ocaml-zed)) - (define-public ocaml-lambda-term (package (name "ocaml-lambda-term") @@ -4444,13 +3021,10 @@ manipulation than, for example, ncurses, by providing a native OCaml interface instead of bindings to a C library.") (license license:bsd-3))) -(define-public ocaml4.02-lambda-term - (package-with-ocaml4.02 ocaml-lambda-term)) - (define-public ocaml-utop (package (name "ocaml-utop") - (version "2.2.0") + (version "2.3.0") (source (origin (method git-fetch) @@ -4459,28 +3033,15 @@ instead of bindings to a C library.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "02hjkc0rdzfq3bqy9mqm5wmw312r3187v9cl66ynb6hxkj6s3glb")))) - (build-system gnu-build-system) + (base32 "0xvibb97vzzh7yabr5ajhilriwz8cg4c506lxq0bd7ss3aci9han")))) + (build-system dune-build-system) (arguments - `(#:test-target "test" - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (libdir (string-append out "/lib/ocaml/site-lib"))) - (mkdir-p libdir) - (invoke "jbuilder" "install" - "--prefix" out - "--libdir" libdir))))))) + `(#:jbuild? #t + #:test-target ".")) (native-inputs - `(("ocaml" ,ocaml) - ("cppo" ,ocaml-cppo) - ("jbuilder" ,ocaml-jbuilder))) + `(("cppo" ,ocaml-cppo))) (propagated-inputs - `(("ocaml-findlib" ,ocaml-findlib) - ("lambda-term" ,ocaml-lambda-term) + `(("lambda-term" ,ocaml-lambda-term) ("lwt" ,ocaml-lwt) ("react" ,ocaml-react) ("camomile" ,ocaml-camomile) @@ -4495,7 +3056,7 @@ sensitive completion, colors, and more.") (define-public ocaml-integers (package (name "ocaml-integers") - (version "0.2.2") + (version "0.3.0") (home-page "https://github.com/ocamllabs/ocaml-integers") (source (origin (method url-fetch) @@ -4743,7 +3304,7 @@ syntax checking on dedukti files.") (define-public ocaml-ppx-inline-test (package (name "ocaml-ppx-inline-test") - (version "0.11.0") + (version "0.12.0") (home-page "https://github.com/janestreet/ppx_inline_test") (source (origin @@ -4754,7 +3315,7 @@ syntax checking on dedukti files.") (file-name (git-file-name name version)) (sha256 (base32 - "11n94fz1asjf5vqdgriv0pvsa5lbfpqcyk525c7816w23vskcvq6")))) + "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50")))) (build-system dune-build-system) (arguments ;see home page README for further information @@ -4766,6 +3327,7 @@ syntax checking on dedukti files.") ("ocaml-sexplib0" ,ocaml-sexplib0) ("ocaml-stdio" ,ocaml-stdio) ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_inline_test"))) (synopsis "Syntax extension for writing in-line tests in ocaml code") (description "This package contains a syntax extension for writing in-line tests in ocaml code. It is part of Jane Street's PPX rewriters @@ -5266,6 +3828,7 @@ provided by companion libraries such as (build-system dune-build-system) (arguments '(#:tests? #f)) ;no tests + (properties `((upstream-name . "ocaml-compiler-libs"))) (synopsis "Compiler libraries repackaged") (description "This packaeg simply repackages the OCaml compiler libraries so they don't expose everything at toplevel. For instance, @code{Ast_helper} @@ -5303,7 +3866,7 @@ a more consistent API.") (define-public ocaml-ppx-derivers (package (name "ocaml-ppx-derivers") - (version "1.2") + (version "1.2.1") (home-page "https://github.com/ocaml-ppx/ppx_derivers") (source @@ -5315,7 +3878,7 @@ a more consistent API.") (file-name (git-file-name name version)) (sha256 (base32 - "0bnhihl1w31as5w2czly1v3d6pbir9inmgsjg2cj6aaj9v1dzd85")))) + "0yqvqw58hbx1a61wcpbnl9j30n495k23qmyy2xwczqs63mn2nkpn")))) (build-system dune-build-system) (arguments '(#:tests? #f)) ;no tests @@ -5330,7 +3893,7 @@ as part of the same ocaml-migrate-parsetree driver.") (define-public ocaml-ppxlib (package (name "ocaml-ppxlib") - (version "0.4.0") + (version "0.6.0") (home-page "https://github.com/ocaml-ppx/ppxlib") (source (origin @@ -5341,7 +3904,7 @@ as part of the same ocaml-migrate-parsetree driver.") (file-name (git-file-name name version)) (sha256 (base32 - "1nr4igf5m4prvigvv470dnhfdhdw0p6hz6zw8gnm5bzcv7s2lg5l")))) + "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv")))) (build-system dune-build-system) (propagated-inputs `(("ocaml-base" ,ocaml-base) @@ -5362,6 +3925,7 @@ as part of the same ocaml-migrate-parsetree driver.") (findlib-libdir (string-append findlib-path "/lib/ocaml/site-lib"))) (substitute* '("test/base/test.ml" + "test/code_path/test.ml" "test/deriving/test.ml" "test/driver/attributes/test.ml" "test/driver/non-compressible-suffix/test.ml" @@ -5614,7 +4178,7 @@ storage of large amounts of data.") (define-public ocaml-octavius (package (name "ocaml-octavius") - (version "1.2.0") + (version "1.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -5623,7 +4187,7 @@ storage of large amounts of data.") (file-name (git-file-name name version)) (sha256 (base32 - "0gqfbwsh0zq4b9mvvlmg3zhpbfbvq8swqr31320aibbqydwf77hr")))) + "1ck6yj6z5rvqyl39rz87ca1bnk0f1dpgvlk115631hjh8bwpfvfq")))) (build-system dune-build-system) (properties `((upstream-name . "octavius"))) (home-page "https://github.com/ocaml-doc/octavius") @@ -5971,7 +4535,7 @@ useful errors on failure.") (define-public ocaml-ppx-expect (package (name "ocaml-ppx-expect") - (version "0.11.1") + (version "0.12.0") (source (origin (method git-fetch) (uri (git-reference @@ -5980,7 +4544,7 @@ useful errors on failure.") (file-name (git-file-name name version)) (sha256 (base32 - "0bnz3cpj3vwdw409r6f8raakl8n364q5l7wy4i6gckr34a4vla69")))) + "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q")))) (build-system dune-build-system) (arguments `(#:jbuild? #t)) @@ -6256,15 +4820,16 @@ Configurator allows one to: (define-public ocaml-spawn (package (name "ocaml-spawn") - (version "0.12.0") + (version "0.13.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/janestreet/spawn.git") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i")))) + "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf")))) (build-system dune-build-system) (arguments `(#:phases diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 6708a761eb..a490945970 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -110,8 +110,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.16.0") - (commit "b8b1e4d9a2a976c4cd9933bb6a7451340f17e9ec") - (revision 13)) + (commit "0c329bf4b0c00abdc9a7d9c818d36d4d60b3005d") + (revision 14)) (package (name "guix") @@ -127,7 +127,7 @@ (commit commit))) (sha256 (base32 - "1rljn9db8lxajbdcl94a6i7skk4a3rgjs25mxf35hnh0lpipqa03")) + "1403vrazx46w9hcvqjyxa4ipwvqv0432f6rsn4981w1n3p1j4mf6")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1000,8 +1000,8 @@ for packaging and deployment of cross-compiled Windows applications.") (description "@code{libostree} is both a shared library and suite of command line tools that combines a \"git-like\" model for committing and downloading -bootable filesystem trees, along with a layer for deploying them and managing -the bootloader configuration.") +bootable file system trees, along with a layer for deploying them and managing +the boot loader configuration.") (license license:lgpl2.0+))) (define-public flatpak diff --git a/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch b/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch new file mode 100644 index 0000000000..ab7cc83684 --- /dev/null +++ b/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch @@ -0,0 +1,43 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Thu, 25 Apr 2019 04:36:52 +0200 +Subject: [PATCH] gnu: bind: Fix unused PKCS#11 ECC constants. + +Without this patch, the build fails: + + pkcs11-keygen.c: In function ‘main’: + pkcs11-keygen.c:424:32: error: ‘pk11_ecc_prime256v1’ undeclared (first use in this function) + public_template[4].pValue = pk11_ecc_prime256v1; + ^ + pkcs11-keygen.c:424:32: note: each undeclared identifier is reported only once for each function it appears in + pkcs11-keygen.c:428:32: error: ‘pk11_ecc_secp384r1’ undeclared (first use in this function) + public_template[4].pValue = pk11_ecc_secp384r1; + ^ + make[2]: *** [Makefile:217: pkcs11-keygen.o] Error 1 + +Fix copied verbatim from upstream[0]. + +[0]: https://gitlab.isc.org/isc-projects/bind9/issues/935 + +--- +--- orig-bind-9.11.6/bin/pkcs11/pkcs11-keygen.c 2019-02-27 15:28:15.000000000 -0800 ++++ bind-9.11.6/bin/pkcs11/pkcs11-keygen.c 2019-03-11 09:20:50.955257469 -0700 +@@ -403,6 +403,10 @@ + public_template[RSA_PUBLIC_EXPONENT].ulValueLen = expsize; + break; + case key_ecc: ++#if !defined(HAVE_PKCS11_ECDSA) ++ fprintf(stderr, "prime256v1 and secp3841r1 is not supported\n"); ++ usage(); ++#else + op_type = OP_EC; + if (bits == 0) + bits = 256; +@@ -429,7 +433,7 @@ + public_template[4].ulValueLen = + sizeof(pk11_ecc_secp384r1); + } +- ++#endif + break; + case key_ecx: + #if !defined(CKM_EDDSA_KEY_PAIR_GEN) diff --git a/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch b/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch new file mode 100644 index 0000000000..a9488bbe43 --- /dev/null +++ b/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch @@ -0,0 +1,23 @@ +This test incorrectly assumes that the root user is always available. +However, in the build environment, the root user is not available. +Note that because the original file distributed in the release on PyPi +has lines ending in CRLF, those are retained in the diff below. + +--- a/pyfakefs/tests/fake_filesystem_test.py 1969-12-31 16:00:00.000000000 -0800 ++++ b/pyfakefs/tests/fake_filesystem_test.py 1969-12-31 16:00:00.000000000 -0800 +@@ -1021,15 +1021,6 @@ + self.assertEqual(self.path.expanduser('~'), + self.os.environ['HOME'].replace('/', '!')) + +- @unittest.skipIf(TestCase.is_windows or TestCase.is_cygwin, +- 'only tested on unix systems') +- def test_expand_root(self): +- if sys.platform == 'darwin': +- roothome = '!var!root' +- else: +- roothome = '!root' +- self.assertEqual(self.path.expanduser('~root'), roothome) +- + def test_getsize_path_nonexistent(self): + file_path = 'foo!bar!baz' + self.assertRaises(os.error, self.path.getsize, file_path) diff --git a/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch b/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch deleted file mode 100644 index 961a183565..0000000000 --- a/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch +++ /dev/null @@ -1,143 +0,0 @@ -Fix CVE-2018-1000223: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000223 -https://gitlab.com/soundtouch/soundtouch/issues/6 - -Patches copied from upstream source repository: - -https://gitlab.com/soundtouch/soundtouch/commit/9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e -https://gitlab.com/soundtouch/soundtouch/commit/e0240689056e4182fffdc2a16aa6e3425a15e275 -https://gitlab.com/soundtouch/soundtouch/commit/46531e5b92dd80dd9a7947463d6224fc7cb21967 - -From 9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e Mon Sep 17 00:00:00 2001 -From: oparviainen <oparviai@iki.fi> -Date: Sun, 12 Aug 2018 20:24:37 +0300 -Subject: [PATCH] Added minimum size check for WAV header block lengh values - ---- - source/SoundStretch/WavFile.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp -index 7e7ade2..68818c9 100644 ---- a/source/SoundStretch/WavFile.cpp -+++ b/source/SoundStretch/WavFile.cpp -@@ -530,7 +530,11 @@ int WavInFile::readHeaderBlock() - // read length of the format field - if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1; - // swap byte order if necessary -- _swap32(nLen); // int format_len; -+ _swap32(nLen); -+ -+ // verify that header length isn't smaller than expected -+ if (nLen < sizeof(header.format) - 8) return -1; -+ - header.format.format_len = nLen; - - // calculate how much length differs from expected -@@ -572,6 +576,10 @@ int WavInFile::readHeaderBlock() - if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1; - // swap byte order if necessary - _swap32(nLen); // int fact_len; -+ -+ // verify that fact length isn't smaller than expected -+ if (nLen < sizeof(header.fact) - 8) return -1; -+ - header.fact.fact_len = nLen; - - // calculate how much length differs from expected --- -2.18.0 - -From e0240689056e4182fffdc2a16aa6e3425a15e275 Mon Sep 17 00:00:00 2001 -From: oparviainen <oparviai@iki.fi> -Date: Mon, 13 Aug 2018 19:16:16 +0300 -Subject: [PATCH] Fixed WavFile header/fact not-too-small check - ---- - source/SoundStretch/WavFile.cpp | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp -index 4af7a4c..3421bca 100644 ---- a/source/SoundStretch/WavFile.cpp -+++ b/source/SoundStretch/WavFile.cpp -@@ -518,13 +518,13 @@ int WavInFile::readHeaderBlock() - // swap byte order if necessary - _swap32(nLen); - -- // verify that header length isn't smaller than expected -- if (nLen < sizeof(header.format) - 8) return -1; -+ // calculate how much length differs from expected -+ nDump = nLen - ((int)sizeof(header.format) - 8); - -- header.format.format_len = nLen; -+ // verify that header length isn't smaller than expected structure -+ if (nDump < 0) return -1; - -- // calculate how much length differs from expected -- nDump = nLen - ((int)sizeof(header.format) - 8); -+ header.format.format_len = nLen; - - // if format_len is larger than expected, read only as much data as we've space for - if (nDump > 0) -@@ -561,16 +561,16 @@ int WavInFile::readHeaderBlock() - // read length of the fact field - if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1; - // swap byte order if necessary -- _swap32(nLen); // int fact_len; -- -- // verify that fact length isn't smaller than expected -- if (nLen < sizeof(header.fact) - 8) return -1; -- -- header.fact.fact_len = nLen; -+ _swap32(nLen); - - // calculate how much length differs from expected - nDump = nLen - ((int)sizeof(header.fact) - 8); - -+ // verify that fact length isn't smaller than expected structure -+ if (nDump < 0) return -1; -+ -+ header.fact.fact_len = nLen; -+ - // if format_len is larger than expected, read only as much data as we've space for - if (nDump > 0) - { --- -2.18.0 - -From 46531e5b92dd80dd9a7947463d6224fc7cb21967 Mon Sep 17 00:00:00 2001 -From: olli <oparviai@iki.fi> -Date: Mon, 13 Aug 2018 19:42:58 +0300 -Subject: [PATCH] Improved WavFile header/fact not-too-small check - ---- - source/SoundStretch/WavFile.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp -index 3421bca..9d90b8a 100644 ---- a/source/SoundStretch/WavFile.cpp -+++ b/source/SoundStretch/WavFile.cpp -@@ -522,7 +522,7 @@ int WavInFile::readHeaderBlock() - nDump = nLen - ((int)sizeof(header.format) - 8); - - // verify that header length isn't smaller than expected structure -- if (nDump < 0) return -1; -+ if ((nLen < 0) || (nDump < 0)) return -1; - - header.format.format_len = nLen; - -@@ -567,7 +567,7 @@ int WavInFile::readHeaderBlock() - nDump = nLen - ((int)sizeof(header.fact) - 8); - - // verify that fact length isn't smaller than expected structure -- if (nDump < 0) return -1; -+ if ((nLen < 0) || (nDump < 0)) return -1; - - header.fact.fact_len = nLen; - --- -2.18.0 - diff --git a/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch b/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch deleted file mode 100644 index cc0282fc7b..0000000000 --- a/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch +++ /dev/null @@ -1,138 +0,0 @@ -Fix CVE-2018-14044 and CVE-2018-14045: - -https://gitlab.com/soundtouch/soundtouch/issues/7 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14044 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14045 - -Patch copied from upstream source repository: - -https://gitlab.com/soundtouch/soundtouch/commit/107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260 - -From 107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260 Mon Sep 17 00:00:00 2001 -From: oparviainen <oparviai@iki.fi> -Date: Sun, 12 Aug 2018 20:00:56 +0300 -Subject: [PATCH] Replaced illegal-number-of-channel assertions with run-time - exception - ---- - include/FIFOSamplePipe.h | 12 ++++++++++++ - include/STTypes.h | 3 +++ - source/SoundTouch/FIFOSampleBuffer.cpp | 3 ++- - source/SoundTouch/RateTransposer.cpp | 5 ++--- - source/SoundTouch/SoundTouch.cpp | 8 ++------ - source/SoundTouch/TDStretch.cpp | 5 ++--- - 6 files changed, 23 insertions(+), 13 deletions(-) - -diff --git a/include/FIFOSamplePipe.h b/include/FIFOSamplePipe.h -index 4ec9275..b08f836 100644 ---- a/include/FIFOSamplePipe.h -+++ b/include/FIFOSamplePipe.h -@@ -51,6 +51,18 @@ namespace soundtouch - /// Abstract base class for FIFO (first-in-first-out) sample processing classes. - class FIFOSamplePipe - { -+protected: -+ -+ bool verifyNumberOfChannels(int nChannels) const -+ { -+ if ((nChannels > 0) && (nChannels <= SOUNDTOUCH_MAX_CHANNELS)) -+ { -+ return true; -+ } -+ ST_THROW_RT_ERROR("Error: Illegal number of channels"); -+ return false; -+ } -+ - public: - // virtual default destructor - virtual ~FIFOSamplePipe() {} -diff --git a/include/STTypes.h b/include/STTypes.h -index 03e7e07..862505e 100644 ---- a/include/STTypes.h -+++ b/include/STTypes.h -@@ -56,6 +56,9 @@ typedef unsigned long ulong; - - namespace soundtouch - { -+ /// Max allowed number of channels -+ #define SOUNDTOUCH_MAX_CHANNELS 16 -+ - /// Activate these undef's to overrule the possible sampletype - /// setting inherited from some other header file: - //#undef SOUNDTOUCH_INTEGER_SAMPLES -diff --git a/source/SoundTouch/FIFOSampleBuffer.cpp b/source/SoundTouch/FIFOSampleBuffer.cpp -index f0d5e42..706e869 100644 ---- a/source/SoundTouch/FIFOSampleBuffer.cpp -+++ b/source/SoundTouch/FIFOSampleBuffer.cpp -@@ -73,7 +73,8 @@ void FIFOSampleBuffer::setChannels(int numChannels) - { - uint usedBytes; - -- assert(numChannels > 0); -+ if (!verifyNumberOfChannels(numChannels)) return; -+ - usedBytes = channels * samplesInBuffer; - channels = (uint)numChannels; - samplesInBuffer = usedBytes / channels; -diff --git a/source/SoundTouch/RateTransposer.cpp b/source/SoundTouch/RateTransposer.cpp -index 8b66be3..d115a4c 100644 ---- a/source/SoundTouch/RateTransposer.cpp -+++ b/source/SoundTouch/RateTransposer.cpp -@@ -179,11 +179,10 @@ void RateTransposer::processSamples(const SAMPLETYPE *src, uint nSamples) - // Sets the number of channels, 1 = mono, 2 = stereo - void RateTransposer::setChannels(int nChannels) - { -- assert(nChannels > 0); -+ if (!verifyNumberOfChannels(nChannels) || -+ (pTransposer->numChannels == nChannels)) return; - -- if (pTransposer->numChannels == nChannels) return; - pTransposer->setChannels(nChannels); -- - inputBuffer.setChannels(nChannels); - midBuffer.setChannels(nChannels); - outputBuffer.setChannels(nChannels); -diff --git a/source/SoundTouch/SoundTouch.cpp b/source/SoundTouch/SoundTouch.cpp -index 7b6756b..06bdd56 100644 ---- a/source/SoundTouch/SoundTouch.cpp -+++ b/source/SoundTouch/SoundTouch.cpp -@@ -139,18 +139,14 @@ uint SoundTouch::getVersionId() - // Sets the number of channels, 1 = mono, 2 = stereo - void SoundTouch::setChannels(uint numChannels) - { -- /*if (numChannels != 1 && numChannels != 2) -- { -- //ST_THROW_RT_ERROR("Illegal number of channels"); -- return; -- }*/ -+ if (!verifyNumberOfChannels(numChannels)) return; -+ - channels = numChannels; - pRateTransposer->setChannels((int)numChannels); - pTDStretch->setChannels((int)numChannels); - } - - -- - // Sets new rate control value. Normal rate = 1.0, smaller values - // represent slower rate, larger faster rates. - void SoundTouch::setRate(double newRate) -diff --git a/source/SoundTouch/TDStretch.cpp b/source/SoundTouch/TDStretch.cpp -index 149cdb9..be2dc88 100644 ---- a/source/SoundTouch/TDStretch.cpp -+++ b/source/SoundTouch/TDStretch.cpp -@@ -588,9 +588,8 @@ void TDStretch::setTempo(double newTempo) - // Sets the number of channels, 1 = mono, 2 = stereo - void TDStretch::setChannels(int numChannels) - { -- assert(numChannels > 0); -- if (channels == numChannels) return; --// assert(numChannels == 1 || numChannels == 2); -+ if (!verifyNumberOfChannels(numChannels) || -+ (channels == numChannels)) return; - - channels = numChannels; - inputBuffer.setChannels(channels); --- -2.18.0 - diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 671e91262a..75bdf87bf3 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -1034,7 +1034,7 @@ multiple files.") (define-public pdfpc (package (name "pdfpc") - (version "4.2.1") + (version "4.3.2") (source (origin (method git-fetch) @@ -1043,8 +1043,7 @@ multiple files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1rmsrpf5vlqhnyyrhq8apndny88ld2qvfjx6258653pqbimv7mx5")))) + (base32 "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no test target (inputs diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index b2fcd2b9e4..f02d13b086 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3904,11 +3904,11 @@ For instance, it supports the @code{**/*.pm} form.") (home-page "https://metacpan.org/release/Filesys-Notify-Simple") (synopsis "Simple and dumb file system watcher") (description - "Filesys::Notify::Simple is a simple but unified interface to get -notifications of changes to a given filesystem path. It utilizes inotify2 on -Linux, fsevents on OS X, kqueue on FreeBSD and FindFirstChangeNotification on -Windows if they're installed, with a fallback to the full directory scan if -they're not available.") + "@code{Filesys::Notify::Simple} is a simple but unified interface to get +notifications of changes to a given file system path. It uses inotify2 on +Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and +@code{FindFirstChangeNotification} on Windows if they're installed, and falls +back to a full directory scan if none of these are available.") (license perl-license))) (define-public perl-getopt-long diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index e62d13fe91..328eddfbfa 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -163,14 +163,14 @@ from digital cameras.") (define-public gphoto2 (package (name "gphoto2") - (version "2.5.17") + (version "2.5.20") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version "/gphoto2-" version ".tar.bz2")) (sha256 (base32 - "0kslwclyyzvnxjw3gdzhlagj7l5f8lba833ipr9s0s0c4hwi0mxa")))) + "1xj80abkzvqrd6g1j1q946lhbp03gyapyxdwbhc0y14g1ash6vx3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -499,28 +499,28 @@ a complete panorama and stitch any series of overlapping pictures.") (define-public rawtherapee (package (name "rawtherapee") - (version "5.5") + (version "5.6") (source (origin (method url-fetch) (uri (string-append "http://rawtherapee.com/shared/source/" "rawtherapee-" version ".tar.xz")) (sha256 (base32 - "1w28a2rnxnw8hs7s8x8zkccgi5z5y653602jg7g86lfx6zxwjsf1")))) + "0x0dcfp6f3j08gr11wq5ah4prp790xy4iadbgsm9kgc0jlalpspr")))) (build-system cmake-build-system) (arguments - '(#:tests? #f ; no test suite + '(#:tests? #f ; no test suite #:build-type "release" #:configure-flags (list (string-append "-DLENSFUNDBDIR=" (assoc-ref %build-inputs "lensfun") "/share/lensfun") - ; Don't optimize the build for the host machine. See the file - ; 'ProcessorTargets.cmake' in the source distribution for more - ; information. + ;; Don't optimize the build for the host machine. See the file + ;; 'ProcessorTargets.cmake' in the source distribution for more + ;; information. "-DPROC_TARGET_NUMBER=1" - ; These flags are recommended by upstream for distributed packages. - ; See the file 'RELEASE_NOTES.txt' in the source distribution. + ;; These flags are recommended by upstream for distributed packages. + ;; See the file 'RELEASE_NOTES.txt' in the source distribution. "-O3" "-DCACHE_NAME_SUFFIX=\"\""))) (native-inputs @@ -538,6 +538,7 @@ a complete panorama and stitch any series of overlapping pictures.") ("libiptcdata" ,libiptcdata) ("libjpeg" ,libjpeg) ("libpng" ,libpng) + ("librsvg" ,librsvg) ("libsigc++" ,libsigc++) ("libtiff" ,libtiff) ("zlib" ,zlib))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5fd8a2d0eb..35147ebfa7 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -476,6 +476,8 @@ concepts.") (modify-phases %standard-phases (replace 'check (lambda _ + ;; XXX: A Python 2 test fails when HOME=/homeless-shelter. + (setenv "HOME" "/tmp") (invoke "python" "sh.py" "test")))))) (native-inputs `(("python-coverage" ,python-coverage))) @@ -14704,7 +14706,7 @@ introspection.") (synopsis "File transport adapter for Requests") (description "Requests-File is a transport adapter for use with the Requests Python -library to allow local filesystem access via file:// URLs.") +library to allow local file system access via @code{file://} URLs.") (license license:asl2.0))) (define-public python2-requests-file @@ -14950,7 +14952,7 @@ and de-serializing Python objects to the majority of the built-in Python types. Dill provides the user the same interface as the @code{pickle} module, and also includes some additional features. In addition to pickling Python objects, @code{dill} provides the ability to save the state of an interpreter -session in a single command. Hence, it would be feasable to save a +session in a single command. Hence, it would be feasible to save a interpreter session, close the interpreter, ship the pickled file to another computer, open a new interpreter, unpickle the session and thus continue from the saved state of the original interpreter session.") diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index e623f9b8c4..86ce1514f0 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -602,7 +602,7 @@ can also be launched manually in any page.") (synopsis "Advisory locking for ActiveRecord") (description "The With advisory lock gem adds advisory locking to ActiveRecord for -PostgreSQL and MySQL. SQLite is also supported, but this uses the filesystem +PostgreSQL and MySQL. SQLite is also supported, but this uses the file system for locks.") (home-page "https://closuretree.github.io/with_advisory_lock/") (license license:expat))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8bde577229..9370f59e2e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2870,7 +2870,7 @@ conversion to (X)HTML.") `(("ruby-listen" ,ruby-listen))) (synopsis "Run a process, and restart when some monitored files change") (description - "Rerun is a tool to launch programs, then monitor the filesystem, and + "Rerun is a tool to launch programs, then monitor the file system, and restart the program when any of the monitored files change. It's written in Ruby, but can be used for all programs.") (home-page "https://github.com/alexch/rerun/") diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 5451a0059a..5edb37366e 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2018, 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. @@ -29,14 +29,17 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages curl) #:use-module (gnu packages check) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages dns) #:use-module (gnu packages gettext) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) @@ -51,6 +54,10 @@ #:use-module (gnu packages tex) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages swig) #:use-module (gnu packages web) #:use-module (gnu packages xml)) @@ -341,3 +348,205 @@ and other operations. It includes a library and a command-line tool.") line tools for personalizing YubiKeys. You can use these to set an AES key, retrieve a YubiKey's serial number, and so forth.") (license license:bsd-2))) + +(define-public python-pyscard + (package + (name "python-pyscard") + (version "1.9.8") + (source (origin + (method url-fetch) + ;; The maintainer publishes releases on various sites, but + ;; SourceForge is apparently the only one with a signed release. + (uri (string-append + "mirror://sourceforge/pyscard/pyscard/pyscard%20" + version "/pyscard-" version ".tar.gz")) + (sha256 + (base32 + "15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Tell pyscard where to find the PCSC include directory. + (add-after 'unpack 'patch-platform-include-dirs + (lambda* (#:key inputs #:allow-other-keys) + (let ((pcsc-include-dir (string-append + (assoc-ref inputs "pcsc-lite") + "/include/PCSC"))) + (substitute* "setup.py" + (("platform_include_dirs = \\[.*?\\]") + (string-append + "platform_include_dirs = ['" pcsc-include-dir "']"))) + #t))) + ;; pyscard wants to dlopen libpcsclite, so tell it where it is. + (add-after 'unpack 'patch-dlopen + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "smartcard/scard/winscarddll.c" + (("lib = \"libpcsclite\\.so\\.1\";") + (simple-format #f + "lib = \"~a\";" + (string-append (assoc-ref inputs "pcsc-lite") + "/lib/libpcsclite.so.1")))) + #t))))) + (inputs + `(("pcsc-lite" ,pcsc-lite))) + (native-inputs + `(("swig" ,swig))) + (home-page "https://github.com/LudovicRousseau/pyscard") + (synopsis "Smart card library for Python") + (description + "The pyscard smart card library is a framework for building smart card +aware applications in Python. The smart card module is built on top of the +PCSC API Python wrapper module.") + (license license:lgpl2.1+))) + +(define-public python2-pyscard + (package-with-python2 python-pyscard)) + +(define-public libu2f-host + (package + (name "libu2f-host") + (version "1.1.9") + (source (origin + (method url-fetch) + (uri + (string-append + "https://developers.yubico.com" + "/libu2f-host/Releases/libu2f-host-" version ".tar.xz")) + (sha256 + (base32 + "1hnh3f4scx07v9jfkr1nnxasmydk1cmivn0nijcp2p75bc1fznip")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-gtk-doc" + (string-append "--with-udevrulesdir=" + (assoc-ref %outputs "out") + "/lib/udev/rules.d")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + ;; Avoid a network connection attempt during the build. + (substitute* "gtk-doc/u2f-host-docs.xml" + (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/docbookx.dtd"))) + #t))))) + (inputs + `(("json-c" ,json-c) + ("hidapi" ,hidapi))) + (native-inputs + `(("help2man" ,help2man) + ("gengetopt" ,gengetopt) + ("pkg-config" ,pkg-config) + ("gtk-doc" ,gtk-doc) + ("docbook-xml" ,docbook-xml-4.3) + ("eudev" ,eudev))) + (home-page "https://developers.yubico.com/libu2f-host/") + ;; TRANSLATORS: The U2F protocol has a "server side" and a "host side". + (synopsis "U2F host-side C library and tool") + (description + "Libu2f-host provides a C library and command-line tool that implements +the host-side of the Universal 2nd Factor (U2F) protocol. There are APIs to +talk to a U2F device and perform the U2F Register and U2F Authenticate +operations.") + ;; Most files are LGPLv2.1+, but some files are GPLv3+. + (license (list license:lgpl2.1+ license:gpl3+)))) + +(define-public python-fido2 + (package + (name "python-fido2") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri + (string-append + "https://github.com/Yubico/python-fido2/releases/download/" + version "/fido2-" version ".tar.gz")) + (sha256 + (base32 + "1pl8d2pr6jzqj4y9qiaddhjgnl92kikjxy0bgzm2jshkzzic8mp3")) + (snippet + ;; Remove bundled dependency. + #~(delete-file "fido2/public_suffix_list.dat")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'install-public-suffix-list + (lambda* (#:key inputs #:allow-other-keys) + (copy-file + (string-append (assoc-ref inputs "public-suffix-list") + "/share/public-suffix-list-" + ,(package-version public-suffix-list) + "/public_suffix_list.dat") + "fido2/public_suffix_list.dat") + #t))))) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-six" ,python-six))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pyfakefs" ,python-pyfakefs) + ("public-suffix-list" ,public-suffix-list))) + (home-page "https://github.com/Yubico/python-fido2") + (synopsis "Python library for communicating with FIDO devices over USB") + (description + "This Python library provides functionality for communicating with a Fast +IDentity Online (FIDO) device over Universal Serial Bus (USB) as well as +verifying attestation and assertion signatures. It aims to support the FIDO +Universal 2nd Factor (U2F) and FIDO 2.0 protocols for communicating with a USB +authenticator via the Client-to-Authenticator Protocol (CTAP 1 and 2). In +addition to this low-level device access, classes defined in the +@code{fido2.client} and @code{fido2.server} modules implement higher level +operations which are useful when interfacing with an Authenticator, or when +implementing a Relying Party.") + ;; python-fido2 contains some derivative files originally from pyu2f + ;; (https://github.com/google/pyu2f). These files are licensed under the + ;; Apache License, version 2.0. The maintainers have customized these + ;; files for internal use, so they are not really a bundled dependency. + (license (list license:bsd-2 license:asl2.0)))) + +(define-public python2-fido2 + (package-with-python2 python-fido2)) + +(define-public python-yubikey-manager + (package + (name "python-yubikey-manager") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://developers.yubico.com/yubikey-manager/Releases" + "/yubikey-manager-" version ".tar.gz")) + (sha256 + (base32 + "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-pyscard" ,python-pyscard) + ("python-pyusb" ,python-pyusb) + ("python-click" ,python-click) + ("python-cryptography" ,python-cryptography) + ("python-pyopenssl" ,python-pyopenssl) + ("python-fido2" ,python-fido2))) + (inputs + `(("yubikey-personalization" ,yubikey-personalization) + ("pcsc-lite" ,pcsc-lite) + ("libusb" ,libusb))) + (native-inputs + `(("swig" ,swig) + ("python-mock" ,python-mock))) + (home-page "https://developers.yubico.com/yubikey-manager/") + (synopsis "Command line tool and library for configuring a YubiKey") + (description + "Python library and command line tool for configuring a YubiKey. Note +that after installing this package, you might still need to add appropriate +udev rules to your system configuration to be able to configure the YubiKey as +an unprivileged user.") + (license license:bsd-2))) + +(define-public python2-yubikey-manager + (package-with-python2 python-yubikey-manager)) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index fac4c51a54..390800495a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages ssh) #:use-module (gnu packages tcl) + #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages time) #:use-module (gnu packages tls) @@ -177,7 +178,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.") (define r-with-tests (package (name "r-with-tests") - (version "3.5.3") + (version "3.6.0") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -185,7 +186,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.") version ".tar.gz")) (sha256 (base32 - "1337irx9y0r3jm1rcq1dcwnxsgfhnvgjs5wadcyh17vhpnvkgyib")))) + "02bmylmzrm9sdidirmwy233lghmd2346z725ca71ari68lzarz1n")))) (build-system gnu-build-system) (arguments `(#:disallowed-references (,tzdata-for-tests) @@ -251,6 +252,10 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\ (("(install_package_description\\(.*\"')\\)\"" line prefix) (string-append prefix ", builtStamp='1970-01-01')\""))) + (substitute* "src/library/Recommended/Makefile.in" + (("INSTALL_OPTS =" m) + (string-append m " --built-timestamp=1970-01-01" m))) + ;; R bundles an older version of help2man, which does not respect ;; SOURCE_DATE_EPOCH. We cannot just use the latest help2man, ;; because that breaks a test. @@ -312,6 +317,17 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\ ("perl" ,perl) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo) ; for building HTML manuals + ("texlive" ,(texlive-union (list texlive-fonts-amsfonts + texlive-fonts-ec + texlive-latex-amsfonts + texlive-latex-base + texlive-latex-fancyvrb + texlive-latex-graphics + texlive-latex-hyperref + texlive-latex-oberdiek + texlive-latex-tools + texlive-latex-upquote + texlive-latex-url))) ("tzdata" ,tzdata-for-tests) ("xz" ,xz))) (inputs @@ -379,14 +395,14 @@ available, greatly increasing its breadth and scope.") (define-public r-boot (package (name "r-boot") - (version "1.3-20") + (version "1.3-22") (source (origin (method url-fetch) (uri (cran-uri "boot" version)) (sha256 (base32 - "0ai1qpm0p4z07xr0dvag8sdn9jrxcwanrsk9khzmww094jvr1jxd")))) + "1z2dig1mi76b3b9ck6qlkh07l3hs478gaf70db5nv8x7w2qhq7yg")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/boot") (synopsis "Bootstrap functions for R") @@ -400,14 +416,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.") (define-public r-mass (package (name "r-mass") - (version "7.3-51.3") + (version "7.3-51.4") (source (origin (method url-fetch) (uri (cran-uri "MASS" version)) (sha256 (base32 - "1dh8cvvdsf9dx29x6va47qdkswmr03k3yjycinq98fnl0ivhw3jv")))) + "0x1ckf51y851g0kvbhsgdxb26vfpmbw3xdbcnh3ck7fjm13da4cr")))) (properties `((upstream-name . "MASS"))) (build-system r-build-system) (home-page "http://www.stats.ox.ac.uk/pub/MASS4/") @@ -1586,13 +1602,13 @@ R packages that praise their users.") (define-public r-testthat (package (name "r-testthat") - (version "2.0.1") + (version "2.1.1") (source (origin (method url-fetch) (uri (cran-uri "testthat" version)) (sha256 (base32 - "1cafy5xsjx6m08s45456mjsal7mfxzwpbrds0p4z3gwam948gpzy")))) + "03jgr0hlr77yp0aib4v30yjyjrjsa8dczr02yk21m93vl25vqvkp")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) @@ -1714,14 +1730,14 @@ database.") (define-public r-dbplyr (package (name "r-dbplyr") - (version "1.3.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (cran-uri "dbplyr" version)) (sha256 (base32 - "07p23vyvi7s4abldhkyir05kcf7xnfc18igfryq12j67xd0jql0m")))) + "0f4gfkzl07gfwihyc747kdnzxahaw2g28wli4jmikrvczldvjqjx")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -1847,14 +1863,14 @@ and fast file reading.") (define-public r-xtable (package (name "r-xtable") - (version "1.8-3") + (version "1.8-4") (source (origin (method url-fetch) (uri (cran-uri "xtable" version)) (sha256 (base32 - "09f311gq9g7dzf8jdvcx72j11xb7p00jlg066jjbpa6pz3zv1cjk")))) + "077xfm0gphvhsay75amd9v90zk57kjgrrlgih04fyrbqqblc1gjs")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) ; for vignettes @@ -3297,14 +3313,14 @@ package registries.") (define-public r-rngtools (package (name "r-rngtools") - (version "1.3.1") + (version "1.3.1.1") (source (origin (method url-fetch) (uri (cran-uri "rngtools" version)) (sha256 (base32 - "097215qcfw6ybllpzmp1532r59h2srvch3aca4z4s6l2rf9w8gvn")))) + "0k1nlcxggflq0043m15dfclnqnzchkpw2ik7jk82h4dqwvysiqcr")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -4950,14 +4966,14 @@ of the points.") (define-public r-fpc (package (name "r-fpc") - (version "2.1-11.1") + (version "2.1-11.2") (source (origin (method url-fetch) (uri (cran-uri "fpc" version)) (sha256 (base32 - "1ari57hkgqsxh6khr6j52cfrzc0096cnn1q7ghxk2z4brdd4rznc")))) + "0wjjp9xn283acfg6cm1wa6fsi7pf0z97227hrnlpmprks3mbj8kr")))) (build-system r-build-system) (propagated-inputs `(("r-class" ,r-class) @@ -5284,14 +5300,14 @@ to Applied regression, Second Edition, Sage, 2011.") (define-public r-caret (package (name "r-caret") - (version "6.0-83") + (version "6.0-84") (source (origin (method url-fetch) (uri (cran-uri "caret" version)) (sha256 (base32 - "1vyw43z73wa4nrbbyq6km18yh1352g03j93cw2zr1dphl56mxplv")))) + "03898irgb70q0p01kq99yb6q6xji0jx4jmj0yxlv8wcwd841r0x1")))) (build-system r-build-system) (propagated-inputs `(("r-foreach" ,r-foreach) diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 7dbe2128a5..91d0af6313 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -38,7 +38,7 @@ (define-public tmux (package (name "tmux") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append @@ -46,7 +46,7 @@ version "/tmux-" version ".tar.gz")) (sha256 (base32 - "1fm22wva2znkcs5jczrnlxrpzsk2jlwdwy4dhzzyrbsgccsz6svz")))) + "10195hp5ydkwwmpcr7188fgx9daqwrslb1lylgrrkzc6yhr1541l")))) (build-system gnu-build-system) (inputs `(("libevent" ,libevent) @@ -141,7 +141,7 @@ windows.") (define-public tmux-xpanes (package (name "tmux-xpanes") - (version "4.0.0") + (version "4.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -150,7 +150,7 @@ windows.") (file-name (git-file-name name version)) (sha256 (base32 - "0px164ikhnzfls6dld4xhiyd9j5jp2rbmwfg11b1pxzm9mp7qk6r")))) + "11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a")))) (build-system trivial-build-system) (inputs `(("bash" ,bash))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ade3b0b852..517b7259a4 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1446,7 +1446,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2019.04.17") + (version "2019.04.24") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1454,7 +1454,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0dznw06qbb75glzirhnsbsd5xqix08jxdngbd21wndxcj1yq5y8a")))) + "1kzz3y2q6798mwn20i69imf48kb04gx3rznfl06hb8qv5zxm9gqz")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4bdbbb39b6..dd4ef3094e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1089,11 +1089,11 @@ virtual machines.") (home-page "https://github.com/projectatomic/bubblewrap") (synopsis "Unprivileged sandboxing tool") (description "Bubblewrap is aimed at running applications in a sandbox, -where it has restricted access to parts of the operating system or user data -such as the home directory. Bubblewrap always creates a new mount namespace, -and the user can specify exactly what parts of the filesystem should be visible -in the sandbox. Any such directories specified is mounted nodev by default, -and can be made readonly.") +restricting their access to parts of the operating system or user data such as +the home directory. Bubblewrap always creates a new mount namespace, and the +user can specify exactly what parts of the file system should be made visible +in the sandbox. These directories are mounted with the @code{nodev} option +by default and can be made read-only.") (license license:lgpl2.0+))) (define-public bochs diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index bfe5b876de..0c8e8e85b8 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -522,23 +522,23 @@ WireGuard support.") (define-public xl2tpd (package (name "xl2tpd") - (version "1.3.13") + (version "1.3.14") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/xelerance/xl2tpd") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1nzkmhi9arwd4smhr07l0sssx46w48z0cblv7xcz25wg4hw86mcd")) - (file-name (string-append "xl2tpd-" version "-checkout")))) + "1c2ahxz2zmmxwmk951d2qhijgz67zhwa1hn0r59fgz0y14w22myi")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "DESTDIR=" %output) "CC=gcc") #:phases (modify-phases %standard-phases - (delete 'configure)) - #:tests? #f)) ;; no tests provided + (delete 'configure)) ; no configure script + #:tests? #f)) ; no tests provided (inputs `(("libpcap" ,libpcap))) (home-page "https://www.xelerance.com/software/xl2tpd/") (synopsis "Layer 2 Tunnelling Protocol Daemon (RFC 2661)") diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 128041318b..4f8671ad6e 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -93,6 +93,13 @@ in downloaded documents to relative links.") (modify-phases %standard-phases (delete 'configure) (delete 'build) + (add-before 'install 'use-inputs + (lambda* (#:key inputs #:allow-other-keys) + (let* ((wget (assoc-ref inputs "wget"))) + (substitute* "wgetpaste" + (("(LC_ALL=C) wget" _ prefix) + (format "~a ~a/bin/wget" prefix wget))) + #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -100,7 +107,9 @@ in downloaded documents to relative links.") (zsh (string-append out "/share/zsh/site-functions"))) (install-file "wgetpaste" bin) (install-file "_wgetpaste" zsh))))) - #:tests? #f)) ; no test target + #:tests? #f)) ; no test target + (inputs + `(("wget" ,wget))) (home-page "http://wgetpaste.zlin.dk/") (synopsis "Script that automates pasting to a number of pastebin services") (description diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 9cafa07c28..f0843edc99 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -310,7 +310,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "4.6") + (version "4.7") (source (origin (method git-fetch) @@ -320,7 +320,7 @@ integrate Windows applications into your desktop.") (file-name (git-file-name name version)) (sha256 (base32 - "0mripibsi1p8h2j9ngqszkcjppdxji027ss4shqwb0nypaydd9w2")))) + "1sgyq57dyzchwnvkgx96bcx5rv821s0vidzdyz7x5711j7xmiv70")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -366,7 +366,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1nk2nlkdklwpd0kbq8hx59gl05b5wglcla0v3892by6k4kwh341j")))) + "1c5swx6jj0hz9w2jgyl30pdjcq9n62qp1rmqyq1d4q2a6n291jiv")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("faudio" ,faudio) ("ffmpeg" ,ffmpeg) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 8543dcffed..cc79fb4851 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2017 ng0 <ng0@n0.is> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; ;;; This file is part of GNU Guix. @@ -29,17 +29,21 @@ #:use-module ((guix licenses) #:hide (freetype)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (gnu artwork) #:use-module (gnu packages) #:use-module (gnu packages calendar) #:use-module (gnu packages cdrom) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages inkscape) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages web) @@ -692,11 +696,40 @@ on the screen.") name "-" version ".tar.bz2")) (sha256 (base32 - "1jzi851arljq5lza9inyq4ss513l62lbzbfm64a7x4320m8kb2h9")))) + "1jzi851arljq5lza9inyq4ss513l62lbzbfm64a7x4320m8kb2h9")) + (modules '((guix build utils))) + (snippet + #~(begin + (copy-file #$(file-append %artwork-repository "/logo/Guix.svg") + "backgrounds/guix-logo.svg") + #t)))) (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'prepare-background-image + (lambda _ + ;; Stick a Guix logo in the background image. XXX: It + ;; has to go to the center because the image might be + ;; truncated on the edges. :-/ + (invoke "inkscape" "--export-dpi=120" + "--export-png=/tmp/guix.png" + "backgrounds/guix-logo.svg") + (for-each (lambda (image) + (invoke "composite" "-gravity" "center" + "/tmp/guix.png" image + "/tmp/final.jpg") + (copy-file "/tmp/final.jpg" image)) + '(;; "backgrounds/xfce-blue.jpg" + "backgrounds/xfce-teal.jpg")) + #t))) + + #:disallowed-references (,inkscape ,imagemagick))) (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + ("intltool" ,intltool) + + ("inkscape" ,inkscape) + ("imagemagick" ,imagemagick))) (inputs `(("exo" ,exo) ("garcon" ,garcon) @@ -833,15 +866,15 @@ inhibit interface which allows applications to prevent automatic sleep.") (define-public ristretto (package (name "ristretto") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "http://archive.xfce.org/src/apps/ristretto/" (version-major+minor version) "/" - name "-" version ".tar.bz2")) + "ristretto-" version ".tar.bz2")) (sha256 (base32 - "0r96r8r1qslr6cqvwldm99ha563adkw9v2zvaznxkpqn11v1374c")))) + "18nf01djwnbjc91bdlv3p0h6pwcq1kfnjgp6yaxhxv4kdi9f82rs")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/services/authentication.scm b/gnu/services/authentication.scm index 16df4da1fc..73969a5a6d 100644 --- a/gnu/services/authentication.scm +++ b/gnu/services/authentication.scm @@ -53,6 +53,8 @@ (service-type (name 'fprintd) (extensions (list (service-extension dbus-root-service-type + fprintd-dbus-service) + (service-extension polkit-service-type fprintd-dbus-service))) (default-value (fprintd-configuration)) (description diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 65f7ff29c8..952f6f9ab2 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -510,13 +510,30 @@ FILE-SYSTEM." (cons* sink user-unmount (map file-system-shepherd-service file-systems)))) +(define (file-system-fstab-entries file-systems) + "Return the subset of @var{file-systems} that should have an entry in +@file{/etc/fstab}." + ;; /etc/fstab is about telling fsck(8), mount(8), and umount(8) about + ;; relevant file systems they'll have to deal with. That excludes "pseudo" + ;; file systems. + ;; + ;; In particular, things like GIO (part of GLib) use it to determine the set + ;; of mounts, which is then used by graphical file managers and desktop + ;; environments to display "volume" icons. Thus, we really need to exclude + ;; those pseudo file systems from the list. + (remove (lambda (file-system) + (or (member (file-system-type file-system) + %pseudo-file-system-types) + (memq 'bind-mount (file-system-flags file-system)))) + file-systems)) + (define file-system-service-type (service-type (name 'file-systems) (extensions (list (service-extension shepherd-root-service-type file-system-shepherd-services) (service-extension fstab-service-type - identity) + file-system-fstab-entries) ;; Have 'user-processes' depend on 'file-systems'. (service-extension user-processes-service-type diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm index 7565bc97ca..ae34ad17bb 100644 --- a/gnu/services/certbot.scm +++ b/gnu/services/certbot.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 ng0 <ng0@n0.is> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,12 @@ (default #f)) (domains certificate-configuration-domains (default '())) + (challenge certificate-configuration-challenge + (default #f)) + (authentication-hook certificate-authentication-hook + (default #f)) + (cleanup-hook certificate-cleanup-hook + (default #f)) (deploy-hook certificate-configuration-deploy-hook (default #f))) @@ -81,17 +88,32 @@ (commands (map (match-lambda - (($ <certificate-configuration> custom-name domains + (($ <certificate-configuration> custom-name domains challenge + authentication-hook cleanup-hook deploy-hook) (let ((name (or custom-name (car domains)))) - (append - (list name certbot "certonly" "-n" "--agree-tos" - "-m" email - "--webroot" "-w" webroot - "--cert-name" name - "-d" (string-join domains ",")) - (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '()) - (if deploy-hook `("--deploy-hook" ,deploy-hook) '()))))) + (if challenge + (append + (list name certbot "certonly" "-n" "--agree-tos" + "-m" email + "--manual" + (string-append "--preferred-challenges=" challenge) + "--cert-name" name + "-d" (string-join domains ",")) + (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '()) + (if authentication-hook + `("--manual-auth-hook" ,authentication-hook) + '()) + (if cleanup-hook `("--manual-cleanup-hook" ,cleanup-hook) '()) + (if deploy-hook `("--deploy-hook" ,deploy-hook) '())) + (append + (list name certbot "certonly" "-n" "--agree-tos" + "-m" email + "--webroot" "-w" webroot + "--cert-name" name + "-d" (string-join domains ",")) + (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '()) + (if deploy-hook `("--deploy-hook" ,deploy-hook) '())))))) certificates))) (program-file "certbot-command" diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 578095b146..f31dbc112e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -103,6 +103,8 @@ accountsservice-service-type accountsservice-service + cups-pk-helper-service-type + gnome-desktop-configuration gnome-desktop-configuration? gnome-desktop-service diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index 1ef754b360..5f37cb0782 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -163,30 +163,40 @@ (define-record-type* <knot-zone-configuration> knot-zone-configuration make-knot-zone-configuration knot-zone-configuration? - (domain knot-zone-configuration-domain - (default "")) - (file knot-zone-configuration-file - (default "")) ; the file where this zone is saved. - (zone knot-zone-configuration-zone - (default (zone-file))) ; initial content of the zone file - (master knot-zone-configuration-master - (default '())) - (ddns-master knot-zone-configuration-ddns-master - (default #f)) - (notify knot-zone-configuration-notify - (default '())) - (acl knot-zone-configuration-acl - (default '())) - (semantic-checks? knot-zone-configuration-semantic-checks? - (default #f)) - (disable-any? knot-zone-configuration-disable-any? - (default #f)) - (zonefile-sync knot-zone-configuration-zonefile-sync - (default 0)) - (dnssec-policy knot-zone-configuration-dnssec-policy - (default #f)) - (serial-policy knot-zone-configuration-serial-policy - (default 'increment))) + (domain knot-zone-configuration-domain + (default "")) + (file knot-zone-configuration-file + (default "")) ; the file where this zone is saved. + (zone knot-zone-configuration-zone + (default (zone-file))) ; initial content of the zone file + (master knot-zone-configuration-master + (default '())) + (ddns-master knot-zone-configuration-ddns-master + (default #f)) + (notify knot-zone-configuration-notify + (default '())) + (acl knot-zone-configuration-acl + (default '())) + (semantic-checks? knot-zone-configuration-semantic-checks? + (default #f)) + (disable-any? knot-zone-configuration-disable-any? + (default #f)) + (zonefile-sync knot-zone-configuration-zonefile-sync + (default 0)) + (zonefile-load knot-zone-configuration-zonefile-load + (default #f)) + (journal-content knot-zone-configuration-journal-content + (default #f)) + (max-journal-usage knot-zone-configuration-max-journal-usage + (default #f)) + (max-journal-depth knot-zone-configuration-max-journal-depth + (default #f)) + (max-zone-size knot-zone-configuration-max-zone-size + (default #f)) + (dnssec-policy knot-zone-configuration-dnssec-policy + (default #f)) + (serial-policy knot-zone-configuration-serial-policy + (default 'increment))) (define-record-type* <knot-remote-configuration> knot-remote-configuration make-knot-remote-configuration @@ -207,6 +217,8 @@ (default knot)) (run-directory knot-configuration-run-directory (default "/var/run/knot")) + (includes knot-configuration-includes + (default '())) (listen-v4 knot-configuration-listen-v4 (default "0.0.0.0")) (listen-v6 knot-configuration-listen-v6 @@ -296,6 +308,8 @@ (error-out "knot configuration field must be a package.")) (unless (string? (knot-configuration-run-directory config)) (error-out "run-directory must be a string.")) + (unless (list? (knot-configuration-includes config)) + (error-out "includes must be a list of strings or file-like objects.")) (unless (list? (knot-configuration-keys config)) (error-out "keys must be a list of knot-key-configuration.")) (for-each (lambda (key) (verify-knot-key-configuration key)) @@ -332,7 +346,7 @@ (fold (lambda (x1 x2) (string-append (if (symbol? x1) (symbol->string x1) x1) ", " (if (symbol? x2) (symbol->string x2) x2))) - (car l) (cdr l)) + (if (symbol? (car l)) (symbol->string (car l)) (car l)) (cdr l)) "]")))) (define (knot-acl-config acls) @@ -490,6 +504,12 @@ (acl (list #$@(knot-zone-configuration-acl zone))) (semantic-checks? #$(knot-zone-configuration-semantic-checks? zone)) (disable-any? #$(knot-zone-configuration-disable-any? zone)) + (zonefile-sync #$(knot-zone-configuration-zonefile-sync zone)) + (zonefile-load '#$(knot-zone-configuration-zonefile-load zone)) + (journal-content #$(knot-zone-configuration-journal-content zone)) + (max-journal-usage #$(knot-zone-configuration-max-journal-usage zone)) + (max-journal-depth #$(knot-zone-configuration-max-journal-depth zone)) + (max-zone-size #$(knot-zone-configuration-max-zone-size zone)) (dnssec-policy #$(knot-zone-configuration-dnssec-policy zone)) (serial-policy '#$(knot-zone-configuration-serial-policy zone))) (format #t " - domain: ~a\n" domain) @@ -516,6 +536,20 @@ (knot-zone-configuration-acl zone)))) (format #t " semantic-checks: ~a\n" (if semantic-checks? "on" "off")) (format #t " disable-any: ~a\n" (if disable-any? "on" "off")) + (if zonefile-sync + (format #t " zonefile-sync: ~a\n" zonefile-sync)) + (if zonefile-load + (format #t " zonefile-load: ~a\n" + (symbol->string zonefile-load))) + (if journal-content + (format #t " journal-content: ~a\n" + (symbol->string journal-content))) + (if max-journal-usage + (format #t " max-journal-usage: ~a\n" max-journal-usage)) + (if max-journal-depth + (format #t " max-journal-depth: ~a\n" max-journal-depth)) + (if max-zone-size + (format #t " max-zone-size: ~a\n" max-zone-size)) (if dnssec-policy (begin (format #t " dnssec-signing: on\n") @@ -529,6 +563,9 @@ #~(begin (call-with-output-file #$output (lambda (port) + (for-each (lambda (inc) + (format port "include: ~a\n" inc)) + '#$(knot-configuration-includes config)) (format port "server:\n") (format port " rundir: ~a\n" #$(knot-configuration-run-directory config)) (format port " user: knot\n") diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 61561a40dd..03b2c6e1ec 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -985,7 +985,14 @@ wireless networking.")))) (list (string-append #$connman "/sbin/connmand") "-n" "-r" - #$@(if disable-vpn? '("--noplugin=vpn") '())))) + #$@(if disable-vpn? '("--noplugin=vpn") '())) + + ;; As connman(8) notes, when passing '-n', connman + ;; "directs log output to the controlling terminal in + ;; addition to syslog." Redirect stdout and stderr + ;; to avoid spamming the console (XXX: for some reason + ;; redirecting to /dev/null doesn't work.) + #:log-file "/var/log/connman.log")) (stop #~(make-kill-destructor))))))) (define connman-service-type diff --git a/gnu/system.scm b/gnu/system.scm index c4f5740df2..0489b9720d 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -34,6 +34,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages guile) + #:use-module (gnu packages guile-xyz) #:use-module (gnu packages admin) #:use-module (gnu packages linux) #:use-module (gnu packages pciutils) @@ -492,7 +493,9 @@ bookkeeping." (operating-system-groups os)) (operating-system-skeletons os)) (operating-system-etc-service os) - (service fstab-service-type '()) + (service fstab-service-type + (filter file-system-needed-for-boot? + (operating-system-file-systems os))) (session-environment-service (operating-system-environment-variables os)) host-name procs root-fs @@ -560,6 +563,7 @@ bookkeeping." ;; variant propagated by 'guile-final' and the GMP variant propagated ;; by 'gnutls', itself propagated by 'guix'. guile-2.2 + guile-readline guile-colorized ;; The packages below are also in %FINAL-INPUTS, so take them from ;; there to avoid duplication. diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index 6dc67b0901..95cfcb6865 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -1,58 +1,106 @@ -;;; This is an operating system configuration template for a "bare-bones" setup, -;;; suitable for booting in a virtualized environment, including virtual private -;;; servers (VPS). +;; This is an operating system configuration for a VM image. +;; Modify it as you see fit and instantiate the changes by running: +;; +;; guix system reconfigure /etc/config.scm +;; -(use-modules (gnu)) -(use-package-modules bootloaders disk nvi) +(use-modules (gnu) (srfi srfi-1)) +(use-service-modules desktop networking ssh xorg) +(use-package-modules bootloaders fonts nvi wget xorg) (define vm-image-motd (plain-file "motd" " -This is the GNU system. Welcome! +\x1b[1;37mThis is the GNU system. Welcome!\x1b[0m -This instance of Guix System is a bare-bones template for virtualized environments. +This instance of Guix is a template for virtualized environments. +You can reconfigure the whole system by adjusting /etc/config.scm +and running: -You will probably want to do these things first if you booted in a virtual -private server (VPS): + guix system reconfigure /etc/config.scm + +Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation. + +\x1b[1;33mConsider setting a password for the 'root' and 'guest' \ +accounts.\x1b[0m +")) + +(define this-file + (local-file (basename (assoc-ref (current-source-location) 'filename)) + "config.scm")) -* Set a password for 'root'. -* Set up networking. -* Expand the root partition to fill the space available by 0) deleting and -recreating the partition with fdisk, 1) reloading the partition table with -partprobe, and then 2) resizing the filesystem with resize2fs.\n")) (operating-system (host-name "gnu") (timezone "Etc/UTC") (locale "en_US.utf8") + (keyboard-layout (keyboard-layout "us" "altgr-intl")) (firmware '()) - ;; Assuming /dev/sdX is the target hard disk, and "my-root" is - ;; the label of the target root file system. + ;; Below we assume /dev/vda is the VM's hard disk. + ;; Adjust as needed. (bootloader (bootloader-configuration (bootloader grub-bootloader) - (target "/dev/sda") + (target "/dev/vda") (terminal-outputs '(console)))) (file-systems (cons (file-system - (device (file-system-label "my-root")) (mount-point "/") + (device "/dev/vda1") (type "ext4")) %base-file-systems)) - ;; This is where user accounts are specified. The "root" - ;; account is implicit, and is initially created with the - ;; empty password. - (users %base-user-accounts) - - ;; Globally-installed packages. - (packages (append (list nvi fdisk - ;; mostly so xrefs to its manual work - grub - ;; partprobe - parted) + (users (cons (user-account + (name "guest") + (comment "GNU Guix Live") + (password "") ;no password + (group "users") + (supplementary-groups '("wheel" "netdev" + "audio" "video"))) + %base-user-accounts)) + + ;; Our /etc/sudoers file. Since 'guest' initially has an empty password, + ;; allow for password-less sudo. + (sudoers-file (plain-file "sudoers" "\ +root ALL=(ALL) ALL +%wheel ALL=NOPASSWD: ALL\n")) + + (packages (append (list font-bitstream-vera nvi wget) %base-packages)) - (services (modify-services %base-services - (login-service-type config => - (login-configuration - (inherit config) - (motd vm-image-motd)))))) + (services + (append (list (service xfce-desktop-service-type) + + ;; Copy this file to /etc/config.scm in the OS. + (simple-service 'config-file etc-service-type + `(("config.scm" ,this-file))) + + ;; Choose SLiM, which is lighter than the default GDM. + (service slim-service-type + (slim-configuration + (auto-login? #t) + (default-user "guest") + (xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout))))) + + ;; Uncomment the line below to add an SSH server. + ;;(service openssh-service-type) + + ;; Use the DHCP client service rather than NetworkManager. + (service dhcp-client-service-type)) + + ;; Remove GDM, NetworkManager, and wpa-supplicant, which don't make + ;; sense in a VM. + (remove (lambda (service) + (let ((type (service-kind service))) + (memq type (list gdm-service-type + wpa-supplicant-service-type + cups-pk-helper-service-type + network-manager-service-type)))) + (modify-services %desktop-services + (login-service-type config => + (login-configuration + (inherit config) + (motd vm-image-motd))))))) + + ;; Allow resolution of '.local' host names with mDNS. + (name-service-switch %mdns-host-lookup-nss)) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index f20d94f385..45c6051732 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -84,6 +84,7 @@ ;; usually not available at run time, hence this hack. '(("de" . "Systeminstallation") ("en" . "System Installation") + ("es" . "Instalación del sistema") ("fr" . "Installation du système"))) (define (log-to-info tty user) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 22e3fcc522..92b03b01ad 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -617,7 +617,7 @@ to USB sticks meant to be read-only." ;; Volume name of the root file system. (normalize-label "Guix_image")) - (define root-uuid + (define (root-uuid os) ;; UUID of the root file system, computed in a deterministic fashion. ;; This is what we use to locate the root file system so it has to be ;; different from the user's own file system UUIDs. @@ -647,17 +647,26 @@ to USB sticks meant to be read-only." (bootloader grub-mkrescue-bootloader)) (operating-system-bootloader os))) - ;; Force our own root file system. + ;; Force our own root file system. (We need a "/" file system + ;; to call 'root-uuid'.) (file-systems (cons (file-system (mount-point "/") - (device root-uuid) + (device "/dev/placeholder") + (type file-system-type)) + file-systems-to-keep)))) + (uuid (root-uuid os)) + (os (operating-system + (inherit os) + (file-systems (cons (file-system + (mount-point "/") + (device uuid) (type file-system-type)) file-systems-to-keep)))) (bootcfg (operating-system-bootcfg os))) (if (string=? "iso9660" file-system-type) (iso9660-image #:name name #:file-system-label root-label - #:file-system-uuid root-uuid + #:file-system-uuid uuid #:os os #:register-closures? #t #:bootcfg-drv bootcfg @@ -674,7 +683,7 @@ to USB sticks meant to be read-only." #:disk-image-format "raw" #:file-system-type file-system-type #:file-system-label root-label - #:file-system-uuid root-uuid + #:file-system-uuid uuid #:copy-inputs? #t #:register-closures? #t #:inputs `(("system" ,os) |