Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2022-09-18 16:21:44 +02:00
commit 51482db4da
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
25 changed files with 683 additions and 168 deletions

View File

@ -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

View File

@ -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 \

View File

@ -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 Emacss 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 Emacss 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")

View File

@ -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 #~'())

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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")

View File

@ -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'.)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -381,7 +381,7 @@
("libzip" ,libzip)
("oniguruma" ,oniguruma)
("openldap" ,openldap)
("openssl" ,openssl)
("openssl" ,openssl-1.1)
("pcre" ,pcre2)
("postgresql" ,postgresql)
("readline" ,readline)

View File

@ -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.

View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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 ...)

View File

@ -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")

View File

@ -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)