summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi6
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/emacs-xyz.scm251
-rw-r--r--gnu/packages/emacs.scm4
-rw-r--r--gnu/packages/fontutils.scm9
-rw-r--r--gnu/packages/geo.scm9
-rw-r--r--gnu/packages/gnome.scm14
-rw-r--r--gnu/packages/image-processing.scm22
-rw-r--r--gnu/packages/linux.scm32
-rw-r--r--gnu/packages/messaging.scm76
-rw-r--r--gnu/packages/ntp.scm2
-rw-r--r--gnu/packages/patches/emacs-pgtk-super-key-fix.patch49
-rw-r--r--gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch37
-rw-r--r--gnu/packages/pdf.scm60
-rw-r--r--gnu/packages/php.scm2
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/python-science.scm6
-rw-r--r--gnu/packages/python-xyz.scm12
-rw-r--r--gnu/services/desktop.scm23
-rw-r--r--gnu/services/xorg.scm23
-rw-r--r--guix/gnu-maintenance.scm7
-rw-r--r--guix/import/gem.scm19
-rw-r--r--guix/scripts/import/gem.scm39
-rw-r--r--tests/gem.scm113
-rw-r--r--tests/gnu-maintenance.scm29
25 files changed, 683 insertions, 168 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index c5d2c2d5d8..eb12efa85e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -13219,6 +13219,12 @@ The command below imports metadata for the @code{rails} Ruby package:
guix import gem rails
@end example
+You can also ask for a specific version:
+
+@example
+guix import gem @@7.0.4
+@end example
+
@table @code
@item --recursive
@itemx -r
diff --git a/gnu/local.mk b/gnu/local.mk
index b4c032da90..2764a138e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -52,6 +52,7 @@
# Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
# Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
# Copyright © 2022 muradm <mail@muradm.net>
+# Copyright © 2022 Hilton Chain <hako@ultrarare.space>
#
# This file is part of GNU Guix.
#
@@ -1046,12 +1047,14 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
%D%/packages/patches/emacs-lispy-fix-thread-last-test.patch \
+ %D%/packages/patches/emacs-polymode-fix-lexical-variable-error.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/emacs-telega-path-placeholder.patch \
%D%/packages/patches/emacs-telega-test-env.patch \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-yasnippet-fix-tests.patch \
%D%/packages/patches/emacs-kv-fix-tests.patch \
+ %D%/packages/patches/emacs-pgtk-super-key-fix.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/erlang-man-path.patch \
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 5aff012adb..30bd0ca48b 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1348,6 +1348,28 @@ color scheme used by Visual Studio Code.")
Apprentice and Sourcerer.")
(license license:gpl3+))))
+(define-public emacs-suneater-theme
+ (package
+ (name "emacs-suneater-theme")
+ (version "2.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~plattfot/suneater-theme")
+ (commit version)))
+ (sha256
+ (base32
+ "0nlam8f8ly86y7p2dn10y9ixnm7bhmigsx7si4cjynh6aiyczyds"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://git.sr.ht/~plattfot/suneater-theme")
+ (synopsis "Minimalistic dark theme for Emacs")
+ (description
+ "Suneater is a dark, minimalistic Emacs theme. It was based on Sunburst
+theme but now takes more inspiration from the Nano theme.")
+ (license license:gpl3+)))
+
(define-public emacs-treepy
(package
(name "emacs-treepy")
@@ -2572,6 +2594,30 @@ light user interface.")
within a specified width. It is useful for displaying long track titles.")
(license license:gpl3+)))
+(define-public emacs-emprise
+ (package
+ (name "emacs-emprise")
+ (version "0.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~plattfot/emprise")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0yddvvpjdcgsiwv24jbddkgl5r1lxgz037akjln6z9acx9qrc8px"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://sr.ht/~plattfot/emprise")
+ (synopsis "Control MPRIS supported media players from Emacs")
+ (description "This package provides a set of commands to control media
+players that supports the Media Player Remote Interfacing
+Specification (MPRIS) protocol from Emacs. It uses Emacs' Completing Read
+framework as the user interface, which integrates well with Vertico or
+Selectrum.")
+ (license license:gpl3+)))
+
;;;
;;; Miscellaneous.
@@ -2605,6 +2651,31 @@ This package turns this into an O(1) operation. It does so by assigning a
letter to each link using avy.")
(license license:gpl3+)))
+(define-public emacs-app-launcher
+ ;; XXX: Upstream did not tag any commit so far. Base version is extracted
+ ;; from Version keyword.
+ (let ((commit "d5015e394b0a666a8c7c4d4bdf786266e773b145")
+ (revision "0"))
+ (package
+ (name "emacs-app-launcher")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SebastienWae/app-launcher")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0l97ajy27awydyd4gc6323wyhpm5vm2db6i0lp5gqaxi9fp7jivp"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/SebastienWae/app-launcher")
+ (synopsis "Use Emacs standard completion to launch applications")
+ (description "This package defines the @code{app-launcher-run-app}
+command, which uses Emacs standard completion to select an application
+installed on your machine and launch it.")
+ (license license:gpl3+))))
+
(define-public emacs-auto-sudoedit
(package
(name "emacs-auto-sudoedit")
@@ -6162,6 +6233,64 @@ and retrieving information using the SQLite program through Elisp programming.
It is not intended as a user interface.")
(license license:gpl3+))))
+(define-public emacs-sqlite3-api
+ (package
+ (name "emacs-sqlite3-api")
+ (version "0.16")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pekingduck/emacs-sqlite3-api")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yrfwb3yvhp1ib4izxh1ds68b3zw8gjkjhlk1kivarxnfjnjnly2"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:tests? (not (%current-target-system))
+ #:test-command #~(list "make" "test" "EMACS=emacs")
+ #:modules '((guix build emacs-build-system)
+ (guix build emacs-utils)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-module-load
+ (lambda _
+ (make-file-writable "sqlite3.el")
+ (emacs-substitute-sexps "sqlite3.el"
+ ("(require 'sqlite3-api nil t)"
+ (string-append
+ "(module-load \"" #$output "/lib/sqlite3-api.so\")")))))
+ (add-before 'check 'build-emacs-module
+ (lambda _
+ ;; Remove code that fetches constants from the SQLite website
+ ;; and the call to generate a timestamp.
+ (invoke "sed" "--in-place" "3,4d;24,28d;31d" "tools/gen-consts.sh")
+ ;; Remove filter logic from the script that generates the constants.
+ (invoke "sed" "--in-place" "7,11d;18,22d" "tools/gen-consts.py")
+ ;; Generate the consts.c file.
+ (invoke "make" "--directory=tools")
+ ;; Remove the SQLITE_STATIC and SQLITE_TRANSIENT
+ ;; constants. They cause a compilation warning and would have
+ ;; been removed by the original script.
+ (invoke "sed" "--in-place" "/ifdef SQLITE_STATIC/,+2d" "consts.c")
+ (invoke "sed" "--in-place" "/ifdef SQLITE_TRANSIENT/,+2d" "consts.c")
+ ;; Compile the shared object file.
+ (invoke "make" #$(string-append "CC=" (cc-for-target)))
+ ;; Move the shared object file into /lib.
+ (install-file "sqlite3-api.so"
+ (string-append #$output "/lib")))))))
+ (native-inputs (list python sed))
+ (inputs (list sqlite))
+ (home-page "https://github.com/pekingduck/emacs-sqlite3-api")
+ (synopsis "Dynamic module for Emacs to access the SQLite C interface")
+ (description "This package provides a dynamic module for Emacs that allows
+direct access to the SQLite C interface. It only exposes a subset of the full
+SQLite C interface, but should satisfy most user's needs.")
+ (license license:gpl3+)))
+
(define-public emacs-sr-speedbar
(let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
(revision "0"))
@@ -6725,14 +6854,14 @@ user.")
(define-public emacs-subed
(package
(name "emacs-subed")
- (version "1.0.8")
+ (version "1.0.9")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
version ".tar"))
(sha256
(base32
- "05dx4ywma7n73d0cihf4v8ayihm7gmfqpzvdycq4yk0zkxb958z1"))))
+ "192m7pg8hiqx7ppr1sk6n5qjcbz78dmcg6m14syq12ll07zfpcm0"))))
(arguments
(list
#:tests? #t
@@ -15755,7 +15884,7 @@ gnugo-image-display-mode}.")
(define-public emacs-transpose-frame
(package
(name "emacs-transpose-frame")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
(method git-fetch)
@@ -15764,7 +15893,7 @@ gnugo-image-display-mode}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
+ (base32 "0m9jmfwwhgkwxbq3y000ymx7parbgqr7gq3yjm2wh1ll747gv51y"))))
(build-system emacs-build-system)
(home-page "https://www.emacswiki.org/emacs/TransposeFrame")
(synopsis "Transpose window arrangement in current frame")
@@ -15773,6 +15902,31 @@ functions which allows users to transpose windows arrangement in currently
selected frame.")
(license license:bsd-2)))
+(define-public emacs-transpose-mark
+ ;; XXX: Upstream made no release so far, and did not add a Version keyword.
+ (let ((commit "667327602004794de97214cf336ac61650ef75b7")
+ (revision "0"))
+ (package
+ (name "emacs-transpose-mark")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kwrooijen/transpose-mark")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03wc50vn1kmrgnzzhs06pwpap2p2rx84wwzxw0hawsg1f1l35m2x"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/kwrooijen/transpose-mark")
+ (synopsis "Library for transposing lines and regions")
+ (description "Transpose mark provides some commands that makes
+transposing lines and regions easier. You can mark a line and transpose it
+with a line at point, or mark a region and transpose it with another region
+a point. The plugin provides visual feedback for marked regions.")
+ (license license:gpl3+))))
+
(define-public emacs-key-chord
(package
(name "emacs-key-chord")
@@ -16574,7 +16728,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.")
(define-public emacs-ement
(package
(name "emacs-ement")
- (version "0.1.3")
+ (version "0.1.4")
(source
(origin
(method git-fetch)
@@ -16583,7 +16737,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "075mwlc616rr86zgli36n6r8w09c5cvlk43by0f1xzla5rmiza8r"))))
+ (base32 "1kms6l14h6ig8kphzpkxv16z7gpvcwvcfsp5ljssdnrx0c7dzz16"))))
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs)) ;need libxml support
@@ -17525,7 +17679,10 @@ contexts.
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
+ (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))
+ (patches
+ ;; XXX: Cherry-picked from upstream, remove when bumping to 0.2.3.
+ (search-patches "emacs-polymode-fix-lexical-variable-error.patch"))))
(build-system emacs-build-system)
(home-page "https://github.com/polymode/polymode")
(synopsis "Framework for multiple Emacs modes based on indirect buffers")
@@ -19292,7 +19449,7 @@ files to be expanded upon opening them.")
(define-public emacs-parsebib
(package
(name "emacs-parsebib")
- (version "4.2")
+ (version "4.3")
(source
(origin
(method git-fetch)
@@ -19301,7 +19458,7 @@ files to be expanded upon opening them.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0da4b6d65bq9xhyhq7h9g315zg6g5q9435vz870la966rgav5szd"))))
+ (base32 "0vcl2wvxwpr62c9ym0fm3qaxzhjcrpk4r6r0zaqhkvlf8qr3rg8y"))))
(build-system emacs-build-system)
(home-page "https://github.com/joostkremers/parsebib")
(synopsis "Library for parsing @file{.bib} files")
@@ -19619,7 +19776,7 @@ that it can display an error message showing how the parser fails.")
(define-public emacs-move-text
(package
(name "emacs-move-text")
- (version "2.0.8")
+ (version "2.0.10")
(source
(origin
(method git-fetch)
@@ -19628,7 +19785,7 @@ that it can display an error message showing how the parser fails.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
+ (base32 "0pxvipjp9xvr9zwiwij943jgpy7fk8pxphbdj0vrg8ar5avlqiam"))))
(build-system emacs-build-system)
(home-page "https://github.com/emacsfodder/move-text")
(synopsis "Move current line or region with M-up or M-down")
@@ -21005,7 +21162,7 @@ and doesn't require memorisation of commands.
(define-public emacs-logview
(package
(name "emacs-logview")
- (version "0.15")
+ (version "0.15.1")
(source
(origin
(method git-fetch)
@@ -21014,7 +21171,7 @@ and doesn't require memorisation of commands.
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "08bn7fj336krlrsf7flk0fgx9mdkd44vq8sxyx6s1c1q5bc0hqnk"))))
+ (base32 "1khri5632pjirj191x3ps94s4pyrwapf1pbrkmqqp0d26b50d3s2"))))
(propagated-inputs
(list emacs-datetime emacs-extmap))
(build-system emacs-build-system)
@@ -30320,14 +30477,14 @@ detected language.")
(define-public emacs-persist
(package
(name "emacs-persist")
- (version "0.4")
+ (version "0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"persist-" version ".tar"))
(sha256
- (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
+ (base32 "090n4479zs82by7a3vb551gyjvv8lpfcylk43ywr2lfyssc9xiq0"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/persist.html")
(synopsis "Persist variables between Emacs sessions")
@@ -30655,6 +30812,34 @@ conventions.")
snippets for Emacs.")
(license license:expat))))
+(define-public emacs-orca
+ ;; XXX: Upstream did not tag any commit so far. Base version is extracted
+ ;; from Version keyword.
+ (let ((commit "0687f416a5573f63b691d384454f5a793266ed97")
+ (revision "0"))
+ (package
+ (name "emacs-orca")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abo-abo/orca")
+ (commit commit)))
+ (sha256
+ (base32 "00a363vkqvryw5s7pj0kh8pqq5vvbf1pmbzz0b1z1fckwr49sv0f"))))
+ (build-system emacs-build-system)
+ (propagated-inputs (list emacs-zoutline))
+ (home-page "https://github.com/abo-abo/orca")
+ (synopsis "Handler for Org Capture")
+ (description
+ "This package provides several convenient recipes for configuring Org
+Capture, mainly for capturing from a browser. It can match URLs and inject
+the capture in a targeted Org file, under a targeted heading. The more this
+package is configured, the less refiling is needed on your captures: they will
+go directly to where they belong.")
+ (license license:gpl3+))))
+
(define-public emacs-org-roam
(package
(name "emacs-org-roam")
@@ -30717,6 +30902,34 @@ as a plug-and-play solution for anyone already using Org mode for their
personal wiki.")
(license license:gpl3+)))
+(define-public emacs-org-roam-ui
+ (let ((commit "c75fc7506ee7f03840a9a93ed9336d7ed24551aa")
+ (revision "0"))
+ (package
+ (name "emacs-org-roam-ui")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/org-roam/org-roam-ui")
+ (commit commit)))
+ (sha256
+ (base32 "0mkcd2622np8s5qz2zvx7lch6dc586xqmn6914gi4ym7nvklf3zy"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list #:include #~(cons "^out" %default-include)))
+ (propagated-inputs
+ (list emacs-org-roam emacs-simple-httpd emacs-websocket))
+ (home-page "https://github.com/org-roam/org-roam-ui")
+ (synopsis "Web User Interface for Org Roam")
+ (description
+ "Org Roam UI is meant as a successor of Org Roam server that extends
+functionality of Org Roam with a web app that runs side-by-side with Emacs,
+providing a web interface for navigating around notes created within Org
+Roam.")
+ (license license:gpl3+))))
+
(define-public emacs-org-roam-bibtex
(package
(name "emacs-org-roam-bibtex")
@@ -31575,14 +31788,14 @@ work on alists, hash-table and arrays. All functions are prefixed with
(define-public emacs-xref
(package
(name "emacs-xref")
- (version "1.5.0")
+ (version "1.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/xref-"
version ".tar"))
(sha256
- (base32 "0xl6aiwkjbgs44c3wxk6s85diydm3y5lsd7znb0dhbqb7milid2d"))))
+ (base32 "131jxsc1sl8q3r9drhylwyfig9qjjkj3hilv3npidp868pr7xdna"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/xref.html")
(synopsis "Cross-referencing commands")
@@ -32155,14 +32368,14 @@ are prefixed with @code{seq-} and work on lists, strings, and vectors.")
(define-public emacs-setup
(package
(name "emacs-setup")
- (version "1.3.0")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/setup-"
version ".tar"))
(sha256
- (base32 "0r13ry73jm31j8fq7v1sh0k113fr4blfkiz85696bdpah2pnca87"))))
+ (base32 "0n9zjclf4b2sr8c8zd37fs45p25p3856frm419c9hch69hhcsv3a"))))
(build-system emacs-build-system)
(home-page "https://git.sr.ht/~pkal/setup")
(synopsis "Helpful configuration macro")
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ef6e9ae1f1..fc93852880 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -409,6 +409,10 @@ languages.")
(package
(inherit emacs-next)
(name "emacs-next-pgtk")
+ (source
+ (origin
+ (inherit (package-source emacs-next))
+ (patches (search-patches "emacs-pgtk-super-key-fix.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments emacs-next)
((#:configure-flags flags #~'())
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 3806d78b1e..9b7f1ac879 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -447,8 +447,15 @@ converts any cubic curves to quadratic. The most useful function is probably
(sha256
(base32 "068hm62s1iphyg66w96vgiif6ahpcsaf8fr44rk6jdf71f6fyqd5"))))
(build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
(native-inputs
- (list python-pytest python-pytest-runner python-setuptools-scm))
+ (list python-pytest python-setuptools-scm))
(propagated-inputs
(list python-booleanoperations
python-cffsubr
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 2c3a17a201..008e855b48 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2367,7 +2367,14 @@ visualization.")
(version-major version) "/SAGA%20-%20" version
"/saga-" version ".tar.gz"))
(sha256
- (base32 "008izjs6gvj09abxf16ssl1xy0ay3ljq4jswbggp6wiiq459minv"))))
+ (base32 "008izjs6gvj09abxf16ssl1xy0ay3ljq4jswbggp6wiiq459minv"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "saga-gis/src/tools/docs/docs_pdf/doc_pdf.cpp"
+ (("^#include <hpdf\\.h>\n" all)
+ (string-append all "#include <hpdf_version.h>\n"))
+ (("\\bHPDF_PROJECTING_SCUARE_END\\b")
+ "HPDF_PROJECTING_SQUARE_END")))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config swig))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 49089fefd6..e5034717f5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2292,6 +2292,7 @@ The gnome-about program helps find which version of GNOME is installed.")
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dlogind=libelogind")
+ #:meson ,meson-0.60
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
@@ -5904,7 +5905,10 @@ services for numerous locations.")
"-Dsystemd=false"
;; Otherwise, the RUNPATH will lack the final path component.
(string-append "-Dc_link_args=-Wl,-rpath=" #$output
- "/lib/gnome-settings-daemon-3.0"))
+ "/lib/gnome-settings-daemon-3.0:"
+ ;; Also add NSS because for some reason Meson
+ ;; > 0.60 does not add it automatically (XXX).
+ (search-input-directory %build-inputs "lib/nss")))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'set-baobab-file-name
@@ -9712,7 +9716,8 @@ can add your own files to the collection.")
"15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))))
(build-system meson-build-system)
(arguments
- '(#:glib-or-gtk? #t
+ `(#:meson ,meson-0.60
+ #:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
@@ -9754,6 +9759,8 @@ beautifying border effects.")
(base32
"1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
(build-system meson-build-system)
+ (arguments
+ (list #:meson meson-0.60))
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
@@ -11857,7 +11864,7 @@ higher level porcelain stuff.")
gsettings-desktop-schemas
gspell
gtk+
- gtksourceview
+ gtksourceview-4
json-glib
libdazzle
libgee
@@ -12123,6 +12130,7 @@ desktop environment.")
gspell
gtk
gjs
+ libadwaita
libsecret
libsoup
telepathy-glib
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index aa8efd97c6..a8f40c4454 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -324,14 +324,18 @@ many popular formats.")
(snippet
'(begin
(for-each
- (lambda (dir)
- (delete-file-recursively
- (string-append "ThirdParty/" dir "/vtk" dir)))
- ;; pugixml depended upon unconditionally
- '("doubleconversion" "eigen" "expat" "freetype" "gl2ps"
- "glew" "hdf5" "jpeg" "jsoncpp" "libproj" "libxml2" "lz4"
- "netcdf" "ogg" "png" "sqlite" "theora" "tiff" "zlib"))
- #t))))
+ (lambda (dir)
+ (delete-file-recursively
+ (string-append "ThirdParty/" dir "/vtk" dir)))
+ ;; pugixml depended upon unconditionally
+ '("doubleconversion" "eigen" "expat" "freetype" "gl2ps"
+ "glew" "hdf5" "jpeg" "jsoncpp" "libharu" "libproj"
+ "libxml2" "lz4" "netcdf" "ogg" "png" "sqlite" "theora"
+ "tiff" "zlib"))
+ (substitute* "IO/ExportPDF/vtkPDFContextDevice2D.cxx"
+ (("\\bHPDF_UINT16 (noPen|dash|dot|denseDot|dashDot|dashDotDot)\\b"
+ _ var)
+ (string-append "HPDF_REAL " var)))))))
(properties `((release-monitoring-url . "https://vtk.org/download/")))
(build-system cmake-build-system)
(arguments
@@ -348,6 +352,7 @@ many popular formats.")
"-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp=ON"
+ "-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_libproj=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON"
"-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON"
@@ -381,6 +386,7 @@ many popular formats.")
glew
glu
hdf5
+ libharu
libjpeg-turbo
jsoncpp
libtheora
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 867cee0763..2001b4a0ba 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -353,17 +353,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-5.19-version "5.19.8")
+(define-public linux-libre-5.19-version "5.19.9")
(define-public linux-libre-5.19-gnu-revision "gnu")
(define deblob-scripts-5.19
(linux-libre-deblob-scripts
linux-libre-5.19-version
linux-libre-5.19-gnu-revision
(base32 "1lk90psz33ldb8aiaws4iayhycl5bmywr6badvzffjpr87s5phxw")
- (base32 "1ph67fvg5qvlkh4cynrrmvkngkb0sw6k90b1mwy9466s24khn05i")))
+ (base32 "092myqjixvy1k3ylcj0hfc4whfxapjvxsxm4gk30a3jv5dnh7mly")))
(define-public linux-libre-5.19-pristine-source
(let ((version linux-libre-5.19-version)
- (hash (base32 "1kl7fifsa6vsm34xg3kd2svhx18n771hfj67nhwnlalmb9whhqv1")))
+ (hash (base32 "0dvzjbyknzlx4ndz77fsm6v28fj2chxbq1z85fbc3bckcscbbm8a")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.19)))
@@ -372,22 +372,22 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.15-version "5.15.67")
+(define-public linux-libre-5.15-version "5.15.68")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
linux-libre-5.15-version
linux-libre-5.15-gnu-revision
(base32 "0vj60bra81fmbx3lz924czbhxs4dmvd4d584g9mcs80b7c4q52kg")
- (base32 "1r189c704jvizk452zcsm9v3g27ybjcjchjwxazsy3nx0wdwx7si")))
+ (base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "0h7r2k59jsw8ykb2p7nxrpazbwx1n5p3nmfbbj1lhib91fldjiys")))
+ (hash (base32 "0zlb44bwpc0hwfynzz5v5b3lkv4aha7w5737ns1qb8cvbk5v7fqp")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.142")
+(define-public linux-libre-5.10-version "5.10.143")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -397,12 +397,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0s52vfvw5pgnq7gq9n66ib05ryhkxwv765f16862l5gykbdynirz")))
+ (hash (base32 "14af0lsvgh1k0fh283d0nrm1pkrk2kaf2mz0ab59vlvjybg9wb7s")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.212")
+(define-public linux-libre-5.4-version "5.4.213")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -412,12 +412,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "1hngr4hsrcd6hmlyvc3msy5racniav2jagp5abmp7xsxv0yjxiq9")))
+ (hash (base32 "1wdssqmac66zqsnq5lx2z8ampa0rd3qswg0gm1sh6n3y8xlf2z76")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.257")
+(define-public linux-libre-4.19-version "4.19.258")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@@ -427,12 +427,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0izaldl2l2zsshkd07qsnr9x6ikipmj5jp7lxr8dyz7kf2m17pga")))
+ (hash (base32 "002sw8b272dzkp3vff0x89sbj5p3vrrikqygfdgrsxv7k3w4459x")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.292")
+(define-public linux-libre-4.14-version "4.14.293")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@@ -442,12 +442,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0zc97qy62dhc5xkjnvsfn4lpl4dgrj23hlxvxcr4cr8sj0hxzx3h")))
+ (hash (base32 "047gl9nqrvpi9jaxlmhfnx848qvnrhf13710ka8fwn3lyv22k342")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.327")
+(define-public linux-libre-4.9-version "4.9.328")
(define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
@@ -457,7 +457,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "1lh63viynf9f7vl0a52mnal8jack9lbqfsfammwkxi3kafpw30r2")))
+ (hash (base32 "1px2np3k796cjwq1sp9gfxyql6hqyqya82vq9cb5y0canq6fqmg8")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index f0814bf28a..b5600d4baf 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1253,45 +1253,45 @@ of xmpppy.")
"3.9"
"/site-packages"))))))
(native-inputs
- `(("gettext" ,gettext-minimal)
- ("glib:bin" ,glib "bin")
- ("gobject-introspection" ,gobject-introspection)
- ("gtk+:bin" ,gtk+ "bin")
- ("python-distutils-extra" ,python-distutils-extra)
- ("python-setuptools" ,python-setuptools)
- ("xorg-server" ,xorg-server-for-tests)))
+ (list gettext-minimal
+ `(,glib "bin")
+ gobject-introspection
+ `(,gtk+ "bin")
+ python-distutils-extra
+ python-setuptools
+ xorg-server-for-tests))
(inputs
- `(("avahi" ,avahi)
- ("dbus" ,dbus)
- ("farstream" ,farstream)
- ("geoclue" ,geoclue)
- ("glib" ,glib)
- ("glib-networking" ,glib-networking)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gsound",gsound)
- ("gspell" ,gspell)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview)
- ("gupnp-igd" ,gupnp-igd)
- ("libappindicator" ,libappindicator)
- ("libnice" ,libnice)
- ("libsecret" ,libsecret)
- ("libsoup" ,libsoup)
- ("libxss" ,libxscrnsaver)
- ("network-manager" ,network-manager)
- ("python-css-parser" ,python-css-parser)
- ("python-dbus" ,python-dbus)
- ("python-gssapi" ,python-gssapi)
- ("python-keyring" ,python-keyring)
- ("python-nbxmpp" ,python-nbxmpp)
- ("python-packaging" ,python-packaging)
- ("python-pillow" ,python-pillow)
- ("python-precis-i18n" ,python-precis-i18n)
- ("python-pycairo" ,python-pycairo)
- ("python-pygobject" ,python-pygobject)
- ("python-pyopenssl" ,python-pyopenssl)))
+ (list avahi
+ dbus
+ farstream
+ geoclue
+ glib
+ glib-networking
+ gsettings-desktop-schemas
+ gsound
+ gspell
+ gstreamer
+ gst-plugins-base
+ gtk+
+ gtksourceview-4
+ gupnp-igd
+ libappindicator
+ libnice
+ libsecret
+ libsoup
+ libxscrnsaver
+ network-manager
+ python-css-parser
+ python-dbus
+ python-gssapi
+ python-keyring
+ python-nbxmpp
+ python-packaging
+ python-pillow
+ python-precis-i18n
+ python-pycairo
+ python-pygobject
+ python-pyopenssl))
(propagated-inputs
(list dconf))
(synopsis "Fully-featured XMPP client")
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index b942703ff3..a27c1c6a12 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -155,7 +155,7 @@ time-stamping or reference clock, sub-microsecond accuracy is possible.")
#t))))
(native-inputs (list which pkg-config))
(inputs
- `(("openssl" ,openssl)
+ `(("openssl" ,openssl-1.1)
("libevent" ,libevent)
;; Build with POSIX capabilities support on GNU/Linux. This allows 'ntpd'
;; to run as non-root (when invoked with '-u'.)
diff --git a/gnu/packages/patches/emacs-pgtk-super-key-fix.patch b/gnu/packages/patches/emacs-pgtk-super-key-fix.patch
new file mode 100644
index 0000000000..a58c448af9
--- /dev/null
+++ b/gnu/packages/patches/emacs-pgtk-super-key-fix.patch
@@ -0,0 +1,49 @@
+From a897516fc5ec380938115ad42023f279d128fc1e Mon Sep 17 00:00:00 2001
+From: Andrew Tropin <andrew@trop.in>
+Date: Fri, 16 Sep 2022 15:24:19 +0300
+Subject: [PATCH] Workaround gtk bug for superkey handling
+
+https://gitlab.gnome.org/GNOME/gtk/-/issues/4913
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55362
+Patch based on Thomas Jost's suggestion.
+
+---
+ src/pgtkterm.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/pgtkterm.c b/src/pgtkterm.c
+index 491ba33882..d5a9970693 100644
+--- a/src/pgtkterm.c
++++ b/src/pgtkterm.c
+@@ -5051,7 +5051,7 @@ pgtk_gtk_to_emacs_modifiers (struct pgtk_display_info *dpyinfo, int state)
+ mod |= mod_ctrl;
+ if (state & GDK_META_MASK || state & GDK_MOD1_MASK)
+ mod |= mod_meta;
+- if (state & GDK_SUPER_MASK)
++ if (state & GDK_SUPER_MASK || state & GDK_MOD4_MASK)
+ mod |= mod_super;
+ if (state & GDK_HYPER_MASK)
+ mod |= mod_hyper;
+@@ -5184,7 +5184,7 @@ key_press_event (GtkWidget *widget, GdkEvent *event, gpointer *user_data)
+ /* While super is pressed, the input method will always always
+ resend the key events ignoring super. As a workaround, don't
+ filter key events with super or hyper pressed. */
+- if (!(event->key.state & (GDK_SUPER_MASK | GDK_HYPER_MASK)))
++ if (!(event->key.state & (GDK_SUPER_MASK | GDK_MOD4_MASK | GDK_HYPER_MASK)))
+ {
+ if (pgtk_im_filter_keypress (f, &event->key))
+ return TRUE;
+@@ -5199,8 +5199,9 @@ key_press_event (GtkWidget *widget, GdkEvent *event, gpointer *user_data)
+ /* make_lispy_event turns chars into control chars.
+ Don't do it here because XLookupString is too eager. */
+ state &= ~GDK_CONTROL_MASK;
+- state &= ~(GDK_META_MASK
+- | GDK_SUPER_MASK | GDK_HYPER_MASK | GDK_MOD1_MASK);
++ state &= ~(GDK_META_MASK | GDK_MOD1_MASK
++ | GDK_SUPER_MASK | GDK_MOD4_MASK
++ | GDK_HYPER_MASK);
+
+ nbytes = event->key.length;
+ if (nbytes > copy_bufsiz)
+--
+2.37.3
diff --git a/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch b/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch
new file mode 100644
index 0000000000..77a8452c2a
--- /dev/null
+++ b/gnu/packages/patches/emacs-polymode-fix-lexical-variable-error.patch
@@ -0,0 +1,37 @@
+From 8b83fa772a71efc9dc030c43db2cba944e4338c1 Mon Sep 17 00:00:00 2001
+From: Kien Nguyen <kien.n.quang@gmail.com>
+Date: Wed, 19 May 2021 23:15:01 +0900
+Subject: [PATCH] Fix using of temporary lexical variable causes error in
+ native compiling
+
+---
+ polymode-core.el | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/polymode-core.el b/polymode-core.el
+index e7d40be..ef316f8 100644
+--- a/polymode-core.el
++++ b/polymode-core.el
+@@ -2088,14 +2088,14 @@ Elements of LIST can be either strings or symbols."
+ (stringp pm--output-file)
+ (pm--file-mod-time pm--output-file)))
+ (imt (and omt (pm--file-mod-time pm--input-file)))
+- (action (if is-exporter "exporting" "weaving"))
+ (ofile (if (and imt (time-less-p imt omt))
+ (progn
+ (message "Not re-%s as input file '%s' hasn't changed"
+- (file-name-nondirectory ifile) action)
++ (if is-exporter "exporting" "weaving")
++ (file-name-nondirectory ifile))
+ pm--output-file)
+ (message "%s '%s' with '%s' ..."
+- (capitalize action)
++ (if is-exporter "EXPORTING" "WEAVING")
+ (file-name-nondirectory ifile)
+ (eieio-object-name processor))
+ (let ((fn (with-no-warnings
+
+base-commit: 44265e35161d77f6eaa09388ea2256b89bd5dcc8
+--
+2.37.2
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 73ae2c2d0f..ca4e7f2557 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -381,36 +382,37 @@ Poppler PDF rendering library.")
(define-public libharu
(package
- (name "libharu")
- (version "2.3.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/libharu/libharu")
- (commit (string-append
- "RELEASE_"
- (string-join (string-split version #\.) "_")))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "15s9hswnl3qqi7yh29jyrg0hma2n99haxznvcywmsp8kjqlyg75q"))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (list (string-append "--with-zlib="
- (assoc-ref %build-inputs "zlib"))
- (string-append "--with-png="
- (assoc-ref %build-inputs "libpng")))))
- (inputs
- (list zlib libpng))
- (native-inputs
- (list autoconf automake libtool))
- (home-page "http://libharu.org/")
- (synopsis "Library for generating PDF files")
- (description
- "libHaru is a library for generating PDF files. libHaru does not support
+ (name "libharu")
+ (version "2.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libharu/libharu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jwzqvv81zf5f7zssyixhyjirlp9ddwkbaabd177syb1bxljlsdc"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ; No tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-cmake
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("^install\\(FILES (README\\.md CHANGES) INSTALL DESTINATION .*\\)"
+ _ files)
+ (format #f "install(FILES ~a DESTINATION ~a/share/doc/~a-~a)"
+ files #$output #$name #$version))))))))
+ (inputs
+ (list libpng zlib))
+ (home-page "http://libharu.org/")
+ (synopsis "Library for generating PDF files")
+ (description
+ "libHaru is a library for generating PDF files. libHaru does not support
reading and editing of existing PDF files.")
- (license license:zlib)))
+ (license license:zlib)))
(define-public xpdf
(package
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index fdea27160d..645a8edee1 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -381,7 +381,7 @@
("libzip" ,libzip)
("oniguruma" ,oniguruma)
("openldap" ,openldap)
- ("openssl" ,openssl)
+ ("openssl" ,openssl-1.1)
("pcre" ,pcre2)
("postgresql" ,postgresql)
("readline" ,readline)
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index a5e1a1ad55..678963575e 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -269,14 +269,14 @@ colors, styles, options and details.")
(define-public asymptote
(package
(name "asymptote")
- (version "2.82")
+ (version "2.83")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asymptote/"
version "/asymptote-" version ".src.tgz"))
(sha256
- (base32 "13blmsapbai4hqynyj1r1sjpypdv6frfassl2f2x7j2ql1dbqvsg"))
+ (base32 "18w8nf0p1b3h74sk1b7w96kq5gcaq09idi4771ini7p594gsfg7y"))
(modules '((guix build utils)))
(snippet
;; Remove bundled RapidJSON.
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index d1698e5f67..d828399f79 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -348,13 +348,13 @@ library.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "1.4.2")
+ (version "1.4.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(sha256
- (base32 "04lsak3j5hq2hk0vfjf532rdxdqmg2akamdl4yl3qipihp2izg4j"))))
+ (base32 "0ryv66s9cvd27q6a985vv556k2qlnlrdna2z7qc7bdhphrrhsv5b"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build utils)
@@ -422,7 +422,7 @@ library.")
(inputs
(list which xclip xsel))
(native-inputs
- (list python-cython
+ (list python-cython-0.29.32
python-beautifulsoup4
python-lxml
python-html5lib
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 56a07564c9..946b7e839b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -5605,6 +5605,18 @@ programming language and the extended Cython programming language. It makes
writing C extensions for Python as easy as Python itself.")
(license license:asl2.0)))
+;; Newer version required for Pandas.
+(define-public python-cython-0.29.32
+ (package
+ (inherit python-cython)
+ (version "0.29.32")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "Cython" version))
+ (sha256
+ (base32
+ "1xqsihpqnfal29nb5kmw8z71nd4jbsnbz7p3lkr094xpb13wycw7"))))))
+
(define-public python-cython-3
(package
(inherit python-cython)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 9b3eb12613..1b087635d1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -117,6 +117,9 @@
elogind-service
elogind-service-type
+ %gdm-file-system
+ gdm-file-system-service
+
%fontconfig-file-system
fontconfig-file-system-service
@@ -1232,6 +1235,13 @@ when they log out."
(flags '(read-only))
(check? #f)))
+(define %gdm-file-system
+ (file-system
+ (device "none")
+ (mount-point "/var/lib/gdm")
+ (type "tmpfs")
+ (check? #f)))
+
;; The global fontconfig cache directory can sometimes contain stale entries,
;; possibly referencing fonts that have been GC'd, so mount it read-only.
;; As mentioned https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36924#8 and
@@ -1240,6 +1250,15 @@ when they log out."
(simple-service 'fontconfig-file-system
file-system-service-type
(list %fontconfig-file-system)))
+
+;; Avoid stale caches and stale user IDs being reused between system
+;; reconfigurations, which would crash GDM and render the system unusable.
+;; GDM doesn't require persisting anything valuable there anyway.
+(define gdm-file-system-service
+ (simple-service 'gdm-file-system
+ file-system-service-type
+ (list %gdm-file-system)))
+
;;;
;;; AccountsService service.
@@ -1750,6 +1769,10 @@ applications needing access to be root.")
(list (file-append nfs-utils "/sbin/mount.nfs")
(file-append ntfs-3g "/sbin/mount.ntfs-3g"))))
+ ;; This is a volatile read-write file system mounted at /var/lib/gdm,
+ ;; to avoid GDM stale cache and permission issues.
+ gdm-file-system-service
+
;; The global fontconfig cache directory can sometimes contain
;; stale entries, possibly referencing fonts that have been GC'd,
;; so mount it read-only.
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 0cbd9aa53b..3ff290c197 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -818,27 +818,6 @@ the GNOME desktop environment.")
(home-directory "/var/lib/gdm")
(shell (file-append shadow "/sbin/nologin")))))
-(define %gdm-activation
- ;; Ensure /var/lib/gdm is owned by the "gdm" user. This is normally the
- ;; case but could be wrong if the "gdm" user was created, then removed, and
- ;; then recreated under a different UID/GID: <https://bugs.gnu.org/37423>.
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils))
-
- (let* ((gdm (getpwnam "gdm"))
- (uid (passwd:uid gdm))
- (gid (passwd:gid gdm))
- (st (stat "/var/lib/gdm" #f)))
- ;; Recurse into /var/lib/gdm only if it has wrong ownership.
- (when (and st
- (or (not (= uid (stat:uid st)))
- (not (= gid (stat:gid st)))))
- (for-each (lambda (file)
- (chown file uid gid))
- (find-files "/var/lib/gdm"
- #:directories? #t)))))))
-
(define dbus-daemon-wrapper
(program-file
"gdm-dbus-wrapper"
@@ -1022,8 +1001,6 @@ the GNOME desktop environment.")
(extensions
(list (service-extension shepherd-root-service-type
gdm-shepherd-service)
- (service-extension activation-service-type
- (const %gdm-activation))
(service-extension account-service-type
(const %gdm-accounts))
(service-extension pam-root-service-type
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index e7edbf6656..1ffa408666 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -499,6 +500,12 @@ are unavailable."
(base-url (string-append base-url directory))
(url (cond ((and=> (string->uri url) uri-scheme) ;full URL?
url)
+ ;; full URL, except for URI scheme. Reuse the URI
+ ;; scheme of the document that contains the link.
+ ((string-prefix? "//" url)
+ (string-append
+ (symbol->string (uri-scheme (string->uri base-url)))
+ ":" url))
((string-prefix? "/" url) ;absolute path?
(let ((uri (string->uri base-url)))
(uri->string
diff --git a/guix/import/gem.scm b/guix/import/gem.scm
index 0e5bb7e635..ad1343bff4 100644
--- a/guix/import/gem.scm
+++ b/guix/import/gem.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -81,10 +82,12 @@
(requirements gem-dependency-requirements)) ;string
-(define (rubygems-fetch name)
- "Return a <gem> record for the package NAME, or #f on failure."
+(define* (rubygems-fetch name #:optional version)
+ "Return a <gem> record for the package NAME and VERSION, or #f on failure. If VERSION is #f or missing, return the latest version gem."
(and=> (json-fetch
- (string-append "https://rubygems.org/api/v1/gems/" name ".json"))
+ (if version
+ (string-append "https://rubygems.org/api/v2/rubygems/" name "/versions/" version ".json")
+ (string-append "https://rubygems.org/api/v1/gems/" name ".json")))
json->gem))
(define (ruby-package-name name)
@@ -122,8 +125,11 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
(define* (gem->guix-package package-name #:key (repo 'rubygems) version)
"Fetch the metadata for PACKAGE-NAME from rubygems.org, and return the
-`package' s-expression corresponding to that package, or #f on failure."
- (let ((gem (rubygems-fetch package-name)))
+`package' s-expression corresponding to that package, or #f on failure.
+Optionally include a VERSION string to fetch a specific version gem."
+ (let ((gem (if version
+ (rubygems-fetch package-name version)
+ (rubygems-fetch package-name))))
(if gem
(let* ((dependencies-names (map gem-dependency-name
(gem-dependencies-runtime
@@ -189,4 +195,5 @@ package on RubyGems."
(recursive-import package-name
#:repo '()
#:repo->guix-package gem->guix-package
- #:guix-name ruby-package-name))
+ #:guix-name ruby-package-name
+ #:version version))
diff --git a/guix/scripts/import/gem.scm b/guix/scripts/import/gem.scm
index 82deac16ad..7f1e73332b 100644
--- a/guix/scripts/import/gem.scm
+++ b/guix/scripts/import/gem.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,6 +32,7 @@
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
+ #:use-module (ice-9 receive)
#:export (guix-import-gem))
@@ -42,8 +44,9 @@
'())
(define (show-help)
- (display (G_ "Usage: guix import gem PACKAGE-NAME
-Import and convert the RubyGems package for PACKAGE-NAME.\n"))
+ (display (G_ "Usage: guix import gem PACKAGE-NAME[@VERSION] Import and
+convert the RubyGems package for PACKAGE-NAME. Optionally, a version can be
+specified after the at-sign (@) character.\n"))
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
@@ -86,21 +89,23 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n"))
(_ #f))
(reverse opts))))
(match args
- ((package-name)
- (let ((code (if (assoc-ref opts 'recursive)
- (map (match-lambda
- ((and ('package ('name name) . rest) pkg)
- `(define-public ,(string->symbol name)
- ,pkg))
- (_ #f))
- (gem-recursive-import package-name 'rubygems))
- (let ((sexp (gem->guix-package package-name)))
- (if sexp sexp #f)))))
- (match code
- ((or #f '(#f))
- (leave (G_ "failed to download meta-data for package '~a'~%")
- package-name))
- (_ code))))
+ ((spec)
+ (receive (package-name package-version)
+ (package-name->name+version spec)
+ (let ((code (if (assoc-ref opts 'recursive)
+ (map (match-lambda
+ ((and ('package ('name name) . rest) pkg)
+ `(define-public ,(string->symbol name)
+ ,pkg))
+ (_ #f))
+ (gem-recursive-import package-name package-version))
+ (let ((sexp (gem->guix-package package-name #:version package-version)))
+ (if sexp sexp #f)))))
+ (match code
+ ((or #f '(#f))
+ (leave (G_ "failed to download meta-data for package '~a'~%")
+ package-name))
+ (_ code)))))
(()
(leave (G_ "too few arguments~%")))
((many ...)
diff --git a/tests/gem.scm b/tests/gem.scm
index c8fe15398e..6aa0d279dc 100644
--- a/tests/gem.scm
+++ b/tests/gem.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,6 +45,22 @@
\"licenses\": [\"MIT\", \"Apache 2.0\"]
}")
+(define test-foo-v2-json
+ "{
+ \"name\": \"foo\",
+ \"version\": \"2.0.0\",
+ \"sha\": \"f3676eafca9987cb5fe263df1edf2538bf6dafc712b30e17be3543a9680547a8\",
+ \"info\": \"A cool gem\",
+ \"homepage_uri\": \"https://example.com\",
+ \"dependencies\": {
+ \"runtime\": [
+ { \"name\": \"bundler\" },
+ { \"name\": \"bar\" }
+ ]
+ },
+ \"licenses\": [\"MIT\", \"Apache 2.0\"]
+}")
+
(define test-bar-json
"{
\"name\": \"bar\",
@@ -103,6 +120,35 @@
(x
(pk 'fail x #f)))))
+(test-assert "gem->guix-package with a specific version"
+ ;; Replace network resources with sample data.
+ (mock ((guix http-client) http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://rubygems.org/api/v2/rubygems/foo/versions/2.0.0.json"
+ (values (open-input-string test-foo-v2-json)
+ (string-length test-foo-v2-json)))
+ (_ (error "Unexpected URL: " url)))))
+ (match (gem->guix-package "foo" #:version "2.0.0")
+ (('package
+ ('name "ruby-foo")
+ ('version "2.0.0")
+ ('source ('origin
+ ('method 'url-fetch)
+ ('uri ('rubygems-uri "foo" 'version))
+ ('sha256
+ ('base32
+ "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+ ('build-system 'ruby-build-system)
+ ('propagated-inputs ('list 'bundler 'ruby-bar))
+ ('synopsis "A cool gem")
+ ('description "This package provides a cool gem")
+ ('home-page "https://example.com")
+ ('license ('list 'license:expat 'license:asl2.0)))
+ #t)
+ (x
+ (pk 'fail x #f)))))
+
(test-assert "gem-recursive-import"
;; Replace network resources with sample data.
(mock ((guix http-client) http-fetch
@@ -170,4 +216,71 @@
(x
(pk 'fail x #f)))))
+(test-assert "gem-recursive-import with a specific version"
+ ;; Replace network resources with sample data.
+ (mock ((guix http-client) http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://rubygems.org/api/v2/rubygems/foo/versions/2.0.0.json"
+ (values (open-input-string test-foo-v2-json)
+ (string-length test-foo-v2-json)))
+ ("https://rubygems.org/api/v1/gems/bar.json"
+ (values (open-input-string test-bar-json)
+ (string-length test-bar-json)))
+ ("https://rubygems.org/api/v1/gems/bundler.json"
+ (values (open-input-string test-bundler-json)
+ (string-length test-bundler-json)))
+ (_ (error "Unexpected URL: " url)))))
+ (match (gem-recursive-import "foo" "2.0.0")
+ ((('package
+ ('name "ruby-bar")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('rubygems-uri "bar" 'version))
+ ('sha256
+ ('base32
+ "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+ ('build-system 'ruby-build-system)
+ ('propagated-inputs ('list 'bundler))
+ ('synopsis "Another cool gem")
+ ('description "Another cool gem")
+ ('home-page "https://example.com")
+ ('license #f)) ;no licensing info
+ ('package
+ ('name "ruby-bundler")
+ ('version "1.14.2")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('rubygems-uri "bundler" 'version))
+ ('sha256
+ ('base32
+ "1446xiz7zg0bz7kgx9jv84y0s4hpsg61dj5l3qb0i00avc1kxd9v"))))
+ ('build-system 'ruby-build-system)
+ ('synopsis "Ruby gem bundler")
+ ('description "Ruby gem bundler")
+ ('home-page "https://bundler.io/")
+ ('license 'license:expat))
+ ('package
+ ('name "ruby-foo")
+ ('version "2.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('rubygems-uri "foo" 'version))
+ ('sha256
+ ('base32
+ "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+ ('build-system 'ruby-build-system)
+ ('propagated-inputs ('list 'bundler 'ruby-bar))
+ ('synopsis "A cool gem")
+ ('description "This package provides a cool gem")
+ ('home-page "https://example.com")
+ ('license ('list 'license:expat 'license:asl2.0))))
+ #t)
+ (x
+ (pk 'fail x #f)))))
+
(test-end "gem")
diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm
index c04d8ba733..89b0684c25 100644
--- a/tests/gnu-maintenance.scm
+++ b/tests/gnu-maintenance.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,6 +19,10 @@
(define-module (test-gnu-maintenance)
#:use-module (guix gnu-maintenance)
+ #:use-module (guix tests)
+ #:use-module (guix tests http)
+ #:use-module (guix upstream)
+ #:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64)
#:use-module (ice-9 match))
@@ -55,4 +60,28 @@
("mpg321_0.3.2.orig.tar.gz" "0.3.2")
("bvi-1.4.1.src.tar.gz" "1.4.1")))))
+(test-assert "latest-html-release, scheme-less URIs"
+ (with-http-server
+ `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\">
+<head>
+<title>Releases (on another domain)!</title>
+</head>
+<body
+<a href=\"//another-site/foo-2.tar.gz\">version 1</a>
+</body>
+</html>"))
+ (let ()
+ (define package
+ (dummy-package "foo"
+ (source
+ (dummy-origin
+ (uri (string-append (%local-url) "/foo-1.tar.gz"))))
+ (properties
+ `((release-monitoring-url . ,(%local-url))))))
+ (define update ((upstream-updater-latest %generic-html-updater) package))
+ (define expected-new-url "http://another-site/foo-2.tar.gz")
+ (and (pk 'u update)
+ (equal? (upstream-source-version update) "2")
+ (equal? (list expected-new-url) (upstream-source-urls update))))))
+
(test-end)