diff --git a/doc/guix.texi b/doc/guix.texi index 2473170b6b..246403bcba 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -38494,7 +38494,7 @@ image -t qcow2} on x86_64 hardware: @example $ qemu-system-x86_64 \ -nic user,model=virtio-net-pci \ - -enable-kvm -m 1024 \ + -enable-kvm -m 2048 \ -device virtio-blk,drive=myhd \ -drive if=none,file=/tmp/qemu-image,id=myhd @end example @@ -38521,7 +38521,7 @@ virtual machine support (KVM) of the Linux kernel will make things run faster. @c To run Xfce + 'guix pull', we need at least 1G of RAM. -@item -m 1024 +@item -m 2048 RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, which may be insufficient for some operations. diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm index dd70068490..e2be7f0eee 100644 --- a/etc/release-manifest.scm +++ b/etc/release-manifest.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2020, 2021 Ludovic Courtès +;;; Copyright © 2020-2022 Ludovic Courtès ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. @@ -26,6 +26,7 @@ ((guix platform) #:select (targets)) ((gnu services xorg) #:select (%default-xorg-modules)) (guix utils) + (guix gexp) (srfi srfi-1) (srfi srfi-26)) @@ -142,9 +143,16 @@ TARGET." (if (target-mingw? target) %packages-to-cross-build-for-mingw %packages-to-cross-build))) - ;; XXX: Important bits like libsigsegv and libffi don't support - ;; RISCV at the moment, so don't require RISCV support. - (delete "riscv64-linux-gnu" (targets))))) + (fold delete (targets) + '(;; Like in (gnu ci), dismiss cross-compilation to x86: + ;; it's pointless. + "x86_64-linux-gnu" + "i686-linux-gnu" + + ;; XXX: Important bits like libsigsegv and libffi don't + ;; support RISCV at the moment, so don't require RISCV + ;; support. + "riscv64-linux-gnu"))))) (define %cross-bootstrap-manifest (manifest diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 641a1f45e8..84fdbe24fb 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018, 2019 Mathieu Othacehe ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès ;;; Copyright © 2020 Tobias Geerinckx-Rice +;;; Copyright © 2022 Josselin Poiret ;;; ;;; This file is part of GNU Guix. ;;; @@ -983,6 +984,11 @@ exists." (for-each (lambda (partition) (and (data-partition? partition) + ;; Do not remove logical partitions ourselves, since + ;; disk-remove-partition* will remove all the logical partitions + ;; residing on an extended partition, which would lead to a + ;; double-remove and ensuing SEGFAULT. + (not (logical-partition? partition)) (disk-remove-partition* disk partition))) non-boot-partitions) diff --git a/gnu/local.mk b/gnu/local.mk index 1c4c102e11..f050a37be6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -947,7 +947,6 @@ dist_patch_DATA = \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ %D%/packages/patches/ceph-boost-compat.patch \ %D%/packages/patches/ceph-rocksdb-compat.patch \ - %D%/packages/patches/cheese-vala-update.patch \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/cl-asdf-config-directories.patch \ %D%/packages/patches/clamav-config-llvm-libs.patch \ @@ -1172,8 +1171,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/giara-fix-login.patch \ - %D%/packages/patches/glade-gls-set-script-name.patch \ - %D%/packages/patches/glade-test-widget-null-icon.patch \ %D%/packages/patches/glib-appinfo-watch.patch \ %D%/packages/patches/glib-networking-gnutls-binding.patch \ %D%/packages/patches/glib-networking-32-bit-time.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 8795caef71..663123e638 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -5843,7 +5843,7 @@ and DSD streams.") (define-public qpwgraph (package (name "qpwgraph") - (version "0.3.4") + (version "0.3.5") (source (origin (method git-fetch) (uri (git-reference @@ -5852,7 +5852,7 @@ and DSD streams.") (file-name (git-file-name name version)) (sha256 (base32 - "1xqmlbqj6ny4cpclzr8xyy6d6i392h9f1vmlbasp6xfy5b0yya94")))) + "01f4zabn22dp0yl7szxck6gkbayk1p5iqajfgzls7mdkba7515b6")))) (build-system cmake-build-system) (arguments (list #:tests? #f)) ;; no tests (inputs (list alsa-lib diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 71f4806b24..118f25ba09 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -519,6 +519,18 @@ complexity of working with shared libraries across platforms.") (license gpl3+) (home-page "https://www.gnu.org/software/libtool/"))) +(define-public libtool-2.4.7 + (package + (inherit libtool) + (version "2.4.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libtool/libtool-" + version ".tar.xz")) + (sha256 + (base32 + "0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg")))))) + (define-public config (let ((revision "1") (commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f")) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index a5ce51a456..96e3f4d805 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -123,6 +123,7 @@ "third_party/ced" ;BSD-3 "third_party/cld_3" ;ASL2.0 "third_party/closure_compiler" ;ASL2.0 + "third_party/content_analysis_sdk" ;BSD-3 "third_party/cpuinfo" ;BSD-2 "third_party/crashpad" ;ASL2.0 "third_party/crashpad/crashpad/third_party/lss" ;ASL2.0 @@ -316,7 +317,7 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "104.0.5112.101") +(define %chromium-version "105.0.5195.52") (define %ungoogled-revision (string-append %chromium-version "-1")) (define %debian-revision "debian/102.0.5005.61-1") @@ -328,7 +329,7 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "0jy5hjn61p5mnbqns3jlybim7iy8w9cmzm3i84wn68cyyx1bk25m")))) + "1smzgnd3zmh57pz7sk9nb7m31wbhx1x9y3ll3m4zaxwrrb41kghn")))) (define %debian-origin (origin @@ -343,18 +344,45 @@ (base32 "1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j")))) -(define (debian-patch name) +(define %chromium-gcc-patchset + (let ((commit "chromium-105-patchset-1")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stha09/chromium-patches") + (commit commit))) + (file-name (git-file-name "chromium-gcc-patches" + (string-drop commit 9))) + (sha256 + (base32 + "08c3pbdqjdqi7rmyqkkh6q429611ikakf4gkzwg1gr07vyknwkfa"))))) + +(define (origin-file origin file) (computed-file - (basename name) - #~(symlink (string-append #$%debian-origin "/debian/patches/" #$name) + (basename file) + #~(symlink (string-append #$origin "/" #$file) #$output))) +(define (debian-patch name) + (origin-file %debian-origin (string-append "/debian/patches/" name))) + (define %debian-patches (map debian-patch '("system/jsoncpp.patch" "system/zlib.patch" "system/openjpeg.patch"))) +(define (gcc-patch name) + (origin-file %chromium-gcc-patchset name)) + +(define %gcc-patches + (map gcc-patch + '("chromium-105-AdjustMaskLayerGeometry-ceilf.patch" + "chromium-105-Bitmap-include.patch" + "chromium-105-browser_finder-include.patch" + "chromium-105-raw_ptr-noexcept.patch" + "chromium-105-Trap-raw_ptr.patch"))) + ;; Take a patch from Arch that reverts a change which requires an unreleased ;; version of ffmpeg. (define %ungoogled-chromium-unroll-ffmpeg.patch @@ -405,7 +433,8 @@ (for-each (lambda (patch) (invoke "patch" "-p1" "--force" "--input" patch "--no-backup-if-mismatch")) - (append '#+%debian-patches '#+%guix-patches)) + (append '#+%debian-patches '#+%guix-patches + '#+%gcc-patches)) (invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch" "--input" #$%ungoogled-chromium-unroll-ffmpeg.patch) @@ -477,7 +506,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "0nrghgngxdn9richjnxii9y94dg5zpwc3gd3vx609r4xaphibw30")) + "0hkwjilzy0x28knm6nrkywnsmldhz4kgpnxka2iaghihkjzb4wfw")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -611,25 +640,25 @@ "sandbox/linux/syscall_broker/broker_host.cc") (("include \"base/third_party/valgrind/") "include \"valgrind/")) - (for-each (lambda (file) - (substitute* file - ;; Fix opus include path. - ;; Do not substitute opus_private.h. - (("#include \"opus\\.h\"") - "#include \"opus/opus.h\"") - (("#include \"opus_custom\\.h\"") - "#include \"opus/opus_custom.h\"") - (("#include \"opus_defines\\.h\"") - "#include \"opus/opus_defines.h\"") - (("#include \"opus_multistream\\.h\"") - "#include \"opus/opus_multistream.h\"") - (("#include \"opus_types\\.h\"") - "#include \"opus/opus_types.h\""))) - (find-files (string-append "third_party/webrtc/modules" - "/audio_coding/codecs/opus"))) - (substitute* "media/audio/audio_opus_encoder.h" - (("\"third_party/opus/src/include/opus.h\"") - "")) + (substitute* + (append + '("media/audio/audio_opus_encoder.h") + (find-files (string-append "third_party/webrtc/modules" + "/audio_coding/codecs/opus"))) + ;; Fix opus include path. + ;; Do not substitute opus_private.h. + (("#include \"opus\\.h\"") + "#include \"opus/opus.h\"") + (("#include \"opus_custom\\.h\"") + "#include \"opus/opus_custom.h\"") + (("#include \"opus_defines\\.h\"") + "#include \"opus/opus_defines.h\"") + (("#include \"opus_multistream\\.h\"") + "#include \"opus/opus_multistream.h\"") + (("#include \"opus_types\\.h\"") + "#include \"opus/opus_types.h\"") + (("\"third_party/opus/src/include/([a-z_-]+\\.h)\"" _ header) + (string-append ""))) (substitute* "third_party/webrtc/rtc_base/strings/json.h" (("#include \"third_party/jsoncpp/") diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 3a5ade4b77..696814cc71 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -205,32 +205,46 @@ driver.") "02jf052qj1nl47ppqrgz3s9qapq4pajgkf6lbj5rxr5sshlrw44n")))) (build-system meson-build-system) (arguments - (list #:configure-flags #~(list "--wrap-mode=nofallback" - "-Dsystemd=false" - (string-append "-Defi_os_dir=" - #$gnu-efi "/lib") - "-Defi_binary=false" - (string-append "-Dudevdir=" - #$output "/lib/udev") - "--localstatedir=/var" - (string-append "--libexecdir=" - #$output "/libexec") - "-Dsupported_build=true") - #:glib-or-gtk? #t ;To wrap binaries and/or compile schemas - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'make-source-writable - (lambda _ - (for-each make-file-writable - (find-files ".")) - (substitute* "src/fu-self-test.c" - (("/bin/sh") - (which "sh"))))) - (add-before 'build 'setup-home - (lambda _ - (setenv "HOME" "/tmp"))) - (add-before 'install 'no-polkit-magic - (lambda _ - (setenv "PKEXEC_UID" "something")))))) + (list + #:configure-flags #~(list "--wrap-mode=nofallback" + "-Dsystemd=false" + (string-append "-Defi_os_dir=" + #$gnu-efi "/lib") + "-Defi_binary=false" + (string-append "-Dudevdir=" + #$output "/lib/udev") + "--localstatedir=/var" + (string-append "--libexecdir=" + #$output "/libexec") + "-Dsupported_build=true" + ;; Disable LVFS, because it contains + ;; nonfree firmwares. + "-Dlvfs=disabled") + #:glib-or-gtk? #t ;To wrap binaries and/or compile schemas + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-source-writable + (lambda _ + (for-each make-file-writable + (find-files ".")) + (substitute* "src/fu-self-test.c" + (("/bin/sh") + (which "sh"))))) + (add-before 'build 'setup-home + (lambda _ + (setenv "HOME" "/tmp"))) + (add-before 'install 'no-polkit-magic + (lambda _ + (setenv "PKEXEC_UID" "something"))) + (add-after 'install 'ensure-all-remotes-are-disabled + ;; Because no remote currently promises to offer only free + ;; software firmwares, disable them to prevent a user to + ;; unknowingly install proprietary firmware updates. + (lambda _ + (substitute* (find-files (string-append #$output "/etc") + "\\.conf$") + (("Enabled=true") + "Enabled=false"))))))) (native-inputs (list gobject-introspection python-pygobject python-pillow diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index fe20a9fa20..5cb577270b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -977,30 +977,30 @@ cloud integration is offered through GNOME Online Accounts.") `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))))))))) (native-inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk+:bin" ,gtk+ "bin") - ("itstools" ,itstool) - ("pkg-config" ,pkg-config))) + (list desktop-file-utils + gettext-minimal + `(,glib "bin") + gobject-introspection + `(,gtk+ "bin") + itstool + pkg-config)) (inputs - `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib") - ("grilo" ,grilo) - ("grilo-plugins" ,grilo-plugins) - ("gst-plugins-base" ,gst-plugins-base) - ("gst-plugins-good" ,gst-plugins-good) - ("gstreamer" ,gstreamer) - ("gvfs" ,gvfs) - ("json-glib" ,json-glib) - ("libdazzle" ,libdazzle) - ("libmediaart" ,libmediaart) - ("libsoup" ,libsoup-minimal-2) - ("pycairo" ,python-pycairo) - ("pygobject" ,python-pygobject) - ("python" ,python) - ("tracker" ,tracker) - ("tracker-miners" ,tracker-miners))) + (list `(,gnome-online-accounts "lib") + grilo + grilo-plugins + gst-plugins-base + gst-plugins-good + gstreamer + gvfs + json-glib + libdazzle + libmediaart + libsoup-minimal-2 + python-pycairo + python-pygobject + python + tracker + tracker-miners)) (synopsis "Simple music player for GNOME desktop") (description "GNOME Music is the new GNOME music playing application that aims to combine an elegant and immersive browsing experience with simple @@ -3121,7 +3121,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.38.2") + (version "3.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3129,68 +3129,56 @@ API add-ons to make GTK+ widgets OpenGL-capable.") name "-" version ".tar.xz")) (sha256 (base32 - "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q")) - (patches (search-patches - "glade-gls-set-script-name.patch" - "glade-test-widget-null-icon.patch")))) + "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i")))) (build-system meson-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'skip-gtk-update-icon-cache - ;; Don't create 'icon-theme.cache'. - (lambda _ - (substitute* "meson_post_install.py" - (("gtk-update-icon-cache") "true")))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")))) - ,@(if (this-package-native-input "gjs") - '() - '((add-after 'unpack 'skip-gjs-test - (lambda _ - ;; When the optional dependency on GJS is missing, skip - ;; the GJS plugin tests. - (substitute* "tests/modules.c" - (("g_test_add.*JavaScript.*" all) - (string-append "// " all "\n"))) - (delete-file "tests/catalogs/gjsplugin.xml"))))) - - (add-before 'configure 'fix-docbook - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "man/meson.build" - (("http://docbook.sourceforge.net/release/xsl/\ -current/manpages/docbook.xsl") - (string-append (assoc-ref inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl) - "/manpages/docbook.xsl"))))) - (add-before 'check 'pre-check - (lambda _ - (setenv "HOME" "/tmp") - ;; Tests require a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1")))))) + #$@(if (this-package-input "gjs") + '() + '((add-after 'unpack 'skip-gjs-test + (lambda _ + ;; When the optional dependency on GJS is missing, skip + ;; the GJS plugin tests. + (substitute* "tests/modules.c" + (("g_test_add.*JavaScript.*" all) + (string-append "// " all "\n"))) + (delete-file "tests/catalogs/gjsplugin.xml"))))) + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" "/tmp") + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1")))))) (inputs - (list gtk+ libxml2)) + (append + ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS + ;; dependency on other platforms (FIXME). + (if (target-x86-64?) + (list gjs) + '()) + (list gtk+ libxml2))) (native-inputs - `(("hicolor-icon-theme" ,hicolor-icon-theme) - ("intltool" ,intltool) - ("itstool" ,itstool) - ("libxslt" ,libxslt) ;for xsltproc - ("docbook-xml" ,docbook-xml-4.2) - ("docbook-xsl" ,docbook-xsl) - ("glib:bin" ,glib "bin") - ("python" ,python) - ("python-pygobject" ,python-pygobject) - ("gobject-introspection" ,gobject-introspection) - - ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS - ;; dependency on other platforms (FIXME). - ,@(if (target-x86-64?) - `(("gjs" ,gjs)) - '()) - - ("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server-for-tests))) + (list docbook-xml-4.2 + docbook-xsl + gettext-minimal + `(,glib "bin") + gobject-introspection + hicolor-icon-theme + itstool + libxml2 ;for XML_CATALOG_FILES + libxslt ;for xsltproc + python + python-pygobject + pkg-config + xorg-server-for-tests)) (home-page "https://glade.gnome.org") (synopsis "GTK+ rapid application development tool") (description "Glade is a rapid application development (RAD) tool to @@ -8202,7 +8190,7 @@ Cisco's AnyConnect SSL VPN.") (define-public network-manager-applet (package (name "network-manager-applet") - (version "1.22.0") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/network-manager-applet/" @@ -8210,18 +8198,18 @@ Cisco's AnyConnect SSL VPN.") "network-manager-applet-" version ".tar.xz")) (sha256 (base32 - "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7")))) + "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:configure-flags '("-Dappindicator=yes"))) (native-inputs - `(("intltool" ,intltool) - ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc. - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) - ("pkg-config" ,pkg-config))) + (list gettext-minimal + `(,glib "bin") ; for glib-compile-resources, etc. + gobject-introspection + gtk-doc/stable + pkg-config)) (propagated-inputs ;; libnm-gtk.pc refers to all these. (list dbus-glib gtk+ network-manager @@ -8875,7 +8863,7 @@ like switching to windows and launching applications.") (define-public gtk-vnc (package (name "gtk-vnc") - (version "1.0.0") + (version "1.2.0") (source (origin (method url-fetch) @@ -8884,36 +8872,38 @@ like switching to windows and launching applications.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8")))) + (base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas (native-inputs - `(;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS - ;; dependency on other platforms (FIXME). - ,@(if (target-x86-64?) - `(("gjs" ,gjs)) - '()) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("intltool" ,intltool) - ("node" ,node) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("vala" ,vala))) + (append + ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS + ;; dependency on other platforms (FIXME). + (if (target-x86-64?) + (list gjs) + '()) + (list gettext-minimal + `(,glib "bin") + gobject-introspection + node + perl + pkg-config + python-wrapper + vala))) (inputs - `(("cairo" ,cairo) - ("librsvg" ,(librsvg-for-system)) - ("glib" ,glib) - ("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt) - ("libsasl" ,cyrus-sasl) - ("pulseaudio" ,pulseaudio) - ("x11" ,libx11) - ("zlib" ,zlib))) + (list cairo (librsvg-for-system))) (propagated-inputs - (list gtk+)) + ;; These are all in Requires or Requires.private of the .pc files. + (list cyrus-sasl + gdk-pixbuf + glib + gnutls + gtk+ + libgcrypt + libx11 + pulseaudio + zlib)) (synopsis "VNC client viewer widget for GTK+") (description "GTK-VNC is a project providing client side APIs for the RFB protocol / VNC remote desktop technology. It is built using coroutines allowing @@ -10749,7 +10739,7 @@ photo-booth-like software, such as Cheese.") (define-public cheese (package (name "cheese") - (version "3.38.0") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -10757,8 +10747,7 @@ photo-booth-like software, such as Cheese.") version ".tar.xz")) (sha256 (base32 - "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8")) - (patches (search-patches "cheese-vala-update.patch")))) + "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh")))) (arguments `(#:glib-or-gtk? #t ;; Tests require GDK. @@ -10771,15 +10760,6 @@ photo-booth-like software, such as Cheese.") (substitute* "meson_post_install.py" (("gtk-update-icon-cache") (which "true"))) #t)) - (add-after 'unpack 'patch-docbook-xml - (lambda* (#:key inputs #:allow-other-keys) - ;; Avoid a network connection attempt during the build. - (substitute* '("docs/reference/cheese.xml" - "docs/reference/cheese-docs.xml") - (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd") - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/docbookx.dtd"))) - #t)) (add-after 'install 'wrap-cheese (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -10789,16 +10769,16 @@ photo-booth-like software, such as Cheese.") #t))))) (build-system meson-build-system) (native-inputs - `(("docbook-xsl" ,docbook-xsl) - ("docbook-xml" ,docbook-xml-4.3) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") - ("gtk-doc" ,gtk-doc/stable) - ("itstool" ,itstool) - ("libxml2" ,libxml2) - ("libxslt" ,libxslt) - ("pkg-config" ,pkg-config) - ("vala" ,vala))) + (list docbook-xsl + docbook-xml-4.3 + gettext-minimal + `(,glib "bin") + gtk-doc/stable + itstool + libxml2 + libxslt + pkg-config + vala)) (propagated-inputs (list gnome-video-effects clutter diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 931a558e8a..fdc72d5a8d 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2021 Ludovic Courtès +;;; Copyright © 2015, 2016, 2021, 2022 Ludovic Courtès ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2016, 2019 Leo Famulari ;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus @@ -771,11 +771,21 @@ applications, including the \"half\" 16-bit floating-point type.") (patches (search-patches "ilmbase-fix-tests.patch")))) (build-system cmake-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'change-directory - (lambda _ - (chdir "IlmBase") - #t))))) + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "IlmBase") + #t)) + #$@(if (target-x86-32?) + #~((add-after 'change-directory 'skip-test + (lambda _ + ;; XXX: This test fails on i686, + ;; possibly due to excess precision when + ;; comparing floats. Skip it. + (substitute* "ImathTest/testFun.cpp" + (("assert \\(bit_cast.*" all) + (string-append "// " all "\n")))))) + #~())))) (home-page "https://www.openexr.com/") (synopsis "Utility C++ libraries for threads, maths, and exceptions") (description diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index b6e87bfd27..b37e8c4580 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8716,7 +8716,7 @@ of Linux application development.") (package (inherit pipewire) (name "pipewire") - (version "0.3.43") + (version "0.3.56") (source (origin (method git-fetch) (uri (git-reference @@ -8725,17 +8725,13 @@ of Linux application development.") (file-name (git-file-name name version)) (sha256 (base32 - "0gp2h0sidapcqmnifl0iipdmbzb18bdh8zdi7pfywr9gsksh0cxy")))) + "066g4ri2k8pdflclvr2919f6x98gmqrqyj1xyiingw2nn2pwgcf1")))) (arguments '(#:configure-flags (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out") "/lib/udev/rules.d") "-Dsystemd=disabled" - "-Dsession-managers=[]") - #:phases - (modify-phases %standard-phases - ;; Skip shrink-runpath, otherwise validate-runpath fails. - (delete 'shrink-runpath)))) + "-Dsession-managers=[]"))) (inputs (modify-inputs (package-inputs pipewire) (prepend avahi bluez @@ -8748,7 +8744,7 @@ of Linux application development.") (define-public wireplumber (package (name "wireplumber") - (version "0.4.6") + (version "0.4.11") (source (origin (method git-fetch) @@ -8758,7 +8754,7 @@ of Linux application development.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0g7xkgkjlxrhs49hqkwrjk2hb478gq55wwydafvvbsv78vsa7qfb")))) + (base32 "09pg5cki1xn9bwn3bcjdc54z7b4iqkk1dhn560qyjcglq8xg7nnw")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dsystemd=disabled" diff --git a/gnu/packages/patches/cheese-vala-update.patch b/gnu/packages/patches/cheese-vala-update.patch deleted file mode 100644 index cb18952ce4..0000000000 --- a/gnu/packages/patches/cheese-vala-update.patch +++ /dev/null @@ -1,180 +0,0 @@ -Taken from upstream: -https://gitlab.gnome.org/GNOME/cheese/-/commit/7cf6268e54620bbbe5e6e61800c50fb0cb4bea57.patch. - -From 7cf6268e54620bbbe5e6e61800c50fb0cb4bea57 Mon Sep 17 00:00:00 2001 From: -=?UTF-8?q?Corentin=20No=C3=ABl?= Date: Fri, 16 Oct -2020 19:56:26 +0200 Subject: [PATCH] Change GLib.PtrArray into -GLib.GenericArray - -This is the vala-friendly way of handling GPtrArray. -Fix several memory leaks on the go and unnecessary reference increase. ---- - src/cheese-preferences.vala | 26 ++++++++++++-------------- - src/cheese-window.vala | 22 +++++++++++----------- - src/vapi/cheese-common.vapi | 2 +- - 3 files changed, 24 insertions(+), 26 deletions(-) - -diff --git a/src/cheese-preferences.vala b/src/cheese-preferences.vala -index f56af7e0..80a92431 100644 ---- a/src/cheese-preferences.vala -+++ b/src/cheese-preferences.vala -@@ -100,7 +100,7 @@ public PreferencesDialog (Cheese.Camera camera) - */ - private void initialize_camera_devices () - { -- unowned GLib.PtrArray devices = camera.get_camera_devices (); -+ GLib.GenericArray devices = camera.get_camera_devices (); - camera_model = new Gtk.ListStore (2, typeof (string), typeof (Cheese.CameraDevice)); - - source_combo.model = camera_model; -@@ -357,13 +357,13 @@ public PreferencesDialog (Cheese.Camera camera) - */ - private void on_camera_update_num_camera_devices () - { -- unowned GLib.PtrArray devices = camera.get_camera_devices (); -- Cheese.CameraDevice dev; -+ GLib.GenericArray devices = camera.get_camera_devices (); -+ unowned Cheese.CameraDevice dev; - - // Add (if) / Remove (else) a camera device. -- if (devices.len > camera_model.iter_n_children (null)) -+ if (devices.length > camera_model.iter_n_children (null)) - { -- dev = (Cheese.CameraDevice) devices.index (devices.len - 1); -+ dev = devices.get (devices.length - 1); - add_camera_device(dev); - } - else -@@ -382,12 +382,11 @@ public PreferencesDialog (Cheese.Camera camera) - bool device_removed = false; - devices.foreach ((device) => - { -- var old_device = (Cheese.CameraDevice) device; - Cheese.CameraDevice new_device; - camera_model.get (iter, 1, out new_device, -1); - - // Found the device that was removed. -- if (old_device != new_device) -+ if (device != new_device) - { - remove_camera_device (iter, new_device, active_device); - device_removed = true; -@@ -418,17 +417,16 @@ public PreferencesDialog (Cheese.Camera camera) - * - * @param device a Cheese.CameraDevice to add to the device combo box model - */ -- private void add_camera_device (void *device) -+ private void add_camera_device (Cheese.CameraDevice device) - { - TreeIter iter; -- Cheese.CameraDevice dev = (Cheese.CameraDevice) device; - - camera_model.append (out iter); - camera_model.set (iter, -- 0, dev.get_name (), -- 1, dev); -+ 0, device.get_name (), -+ 1, device); - -- if (camera.get_selected_device () == dev) -+ if (camera.get_selected_device () == device) - source_combo.set_active_iter (iter); - - if (camera_model.iter_n_children (null) > 1) -@@ -445,12 +443,12 @@ public PreferencesDialog (Cheese.Camera camera) - private void remove_camera_device (TreeIter iter, Cheese.CameraDevice device_node, - Cheese.CameraDevice active_device_node) - { -- unowned GLib.PtrArray devices = camera.get_camera_devices (); -+ GLib.GenericArray devices = camera.get_camera_devices (); - - // Check if the camera that we want to remove, is the active one - if (device_node == active_device_node) - { -- if (devices.len > 0) -+ if (devices.length > 0) - set_new_available_camera_device (iter); - else - this.hide (); -diff --git a/src/cheese-window.vala b/src/cheese-window.vala -index ff069808..cc119b68 100644 ---- a/src/cheese-window.vala -+++ b/src/cheese-window.vala -@@ -1216,9 +1216,9 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow - */ - public void on_switch_camera_clicked () - { -- Cheese.CameraDevice selected; -- Cheese.CameraDevice next = null; -- GLib.PtrArray cameras; -+ unowned Cheese.CameraDevice selected; -+ unowned Cheese.CameraDevice next = null; -+ GLib.GenericArray cameras; - uint i; - - if (camera == null) -@@ -1235,9 +1235,9 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow - - cameras = camera.get_camera_devices (); - -- for (i = 0; i < cameras.len; i++) -+ for (i = 0; i < cameras.length; i++) - { -- next = (Cheese.CameraDevice )cameras.index (i); -+ next = cameras.get (i); - - if (next == selected) - { -@@ -1245,13 +1245,13 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow - } - } - -- if (i + 1 < cameras.len) -+ if (i + 1 < cameras.length) - { -- next = (Cheese.CameraDevice )cameras.index (i + 1); -+ next = cameras.get (i + 1); - } - else - { -- next = (Cheese.CameraDevice )cameras.index (0); -+ next = cameras.get (0); - } - - if (next == selected) -@@ -1269,8 +1269,8 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow - */ - public void set_switch_camera_button_state () - { -- Cheese.CameraDevice selected; -- GLib.PtrArray cameras; -+ unowned Cheese.CameraDevice selected; -+ GLib.GenericArray cameras; - - if (camera == null) - { -@@ -1288,7 +1288,7 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow - - cameras = camera.get_camera_devices (); - -- if (cameras.len > 1) -+ if (cameras.length > 1) - { - switch_camera_button.set_visible (true); - return; -diff --git a/src/vapi/cheese-common.vapi b/src/vapi/cheese-common.vapi -index 6517cdfc..e4ae7ad3 100644 ---- a/src/vapi/cheese-common.vapi -+++ b/src/vapi/cheese-common.vapi -@@ -35,7 +35,7 @@ namespace Cheese - [CCode (has_construct_function = false)] - public Camera (Clutter.Actor video_texture, string camera_device_node, int x_resolution, int y_resolution); - public bool get_balance_property_range (string property, double min, double max, double def); -- public unowned GLib.PtrArray get_camera_devices (); -+ public GLib.GenericArray get_camera_devices (); - public unowned Cheese.VideoFormat get_current_video_format (); - public int get_num_camera_devices (); - public unowned Cheese.CameraDevice get_selected_device (); --- -GitLab - diff --git a/gnu/packages/patches/glade-gls-set-script-name.patch b/gnu/packages/patches/glade-gls-set-script-name.patch deleted file mode 100644 index 61fbdf3914..0000000000 --- a/gnu/packages/patches/glade-gls-set-script-name.patch +++ /dev/null @@ -1,32 +0,0 @@ -Taken from upstream: -https://gitlab.gnome.org/GNOME/glade/-/commit/eb0429d318c017b57b9e59de1d5b3f142a0f455e. - -From 6cf1d3e11d4f8035f33c3003d33f6465896025a5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Tue, 18 May 2021 19:54:50 +0200 -Subject: [PATCH] plugins: Define an invalid but non-null file path as script - path - -This is following the gjs applications behaviors, setting a valid string -as the script path that will be shown in JS stack traces, even though -won't load a real file through g_file_new_for_commandline_arg() ---- - plugins/gjs/glade-gjs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/gjs/glade-gjs.c b/plugins/gjs/glade-gjs.c -index e1779665..aeae9906 100644 ---- a/plugins/gjs/glade-gjs.c -+++ b/plugins/gjs/glade-gjs.c -@@ -93,7 +93,7 @@ glade_gjs_init (const gchar *name) - - /* Importing the module will create all the GTypes so that glade can use them at runtime */ - retval = gjs_context_eval (gjs_context_get_current (), -- import_sentence, -1, NULL, -+ import_sentence, -1, "", - &exit_status, - &error); - if (!retval && error) --- -GitLab - diff --git a/gnu/packages/patches/glade-test-widget-null-icon.patch b/gnu/packages/patches/glade-test-widget-null-icon.patch deleted file mode 100644 index 75668a2f68..0000000000 --- a/gnu/packages/patches/glade-test-widget-null-icon.patch +++ /dev/null @@ -1,30 +0,0 @@ -Taken from upstream: -https://gitlab.gnome.org/GNOME/glade/-/commit/6cf1d3e11d4f8035f33c3003d33f6465896025a5. - -From eb0429d318c017b57b9e59de1d5b3f142a0f455e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Wed, 19 May 2021 00:10:29 +0200 -Subject: [PATCH] tests: Do not create a file icon when no filename is provided - -This would fail otherwise as GFileIcon requires a GFile parameter on -construction. ---- - tests/create-widgets.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/create-widgets.c b/tests/create-widgets.c -index 2094059d..db8311f8 100644 ---- a/tests/create-widgets.c -+++ b/tests/create-widgets.c -@@ -106,6 +106,8 @@ main (int argc, - if (G_TYPE_IS_INSTANTIATABLE (adaptor_type) && !G_TYPE_IS_ABSTRACT (adaptor_type) && - /* FIXME: can not create a themed icon without a name */ - !g_type_is_a (adaptor_type, G_TYPE_THEMED_ICON) && -+ /* FIXME: can not create a file icon without a file name */ -+ !g_type_is_a (adaptor_type, G_TYPE_FILE_ICON) && - /* FIXME: GtkPopoverMenu gives a few warnings */ - !g_type_is_a (adaptor_type, GTK_TYPE_POPOVER_MENU) && - /* FIXME: GtkFileChooserNative is hard to test here */ --- -GitLab - diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index eaf88543fd..5f871ff887 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -743,6 +743,25 @@ variables into the markdown template") Markdown. All extensions are found under the module namespace of pymdownx.") (license license:expat))) +(define-public python-plotille + (package + (name "python-plotille") + (version "4.0.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "plotille" version)) + (sha256 + (base32 + "0fvsk6glxfphhqy405h05rj3v95jd1byl5hv2fyd5l31wln23shj")))) + (build-system python-build-system) + (native-inputs (list python-six)) + (home-page "https://github.com/tammoippen/plotille") + (synopsis "Plot in the terminal using braille dots") + (description + "Plotille provides a figure class and graphing functions to create plots, +scatter plots, histograms and heatmaps in the terminal using braille dots.") + (license license:expat))) + (define-public python-mdx-gh-links (package (name "python-mdx-gh-links") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index bc2c13b847..132cc95f12 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -1945,59 +1945,76 @@ defined radio with support for rtl-sdr.") (license license:gpl2+))) (define-public csdr - ;; No release since 2017, use commit directly. - (let ((commit "6ef2a74206887155290a54c7117636f66742f858") - (revision "1")) - (package - (name "csdr") - (version (git-version "0.15" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ha7ilm/csdr") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ic35130lf66lk3wawgc5bcg711l7chv9al1hzdc1xrmq9qf9hri")))) - (build-system gnu-build-system) - (inputs - (list fftwf)) - (arguments - `(#:make-flags - (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - ;; Don't print summary of SIMD optimized functions. - "PARSEVECT=no") - #:tests? #f ; No check phase - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("PARAMS_MISC = -Wno-unused-result" all) - ;; The 'validate-runpath' phase fails without this. - (string-append - all " -Wl,-rpath=" (assoc-ref outputs "out") "/lib")) - (("PARAMS_SIMD =.*") - ;; Disable to make reproducibility and cross-compilation work. - "") - (("gcc ") - ,(string-append (cc-for-target) " ")) - (("g\\+\\+ ") - ,(string-append (cxx-for-target) " "))))) - (add-before 'install 'make-installation-directories - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/lib")))))))) - (home-page "https://github.com/ha7ilm/csdr") - (synopsis "DSP for software defined radio") - (description - "This package includes the @code{libcsdr} library of + (package + (name "csdr") + (version "0.18.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jketterl/csdr") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sdni0p9qcf4yw1wf5jz1pyb9wv6wmdblirh2q6s7jblh50vfwz1")))) + (build-system cmake-build-system) + (native-inputs + (list pkg-config)) + (inputs + (list fftwf libsamplerate)) + (arguments + (list #:tests? #f)) ; No check phase + (home-page "https://github.com/jketterl/csdr") + (synopsis "DSP for software defined radio") + (description + "This package includes the @code{libcsdr} library of @acronym{DSP, Digital Signal Processing} functions for @acronym{SDRs, Software Defined Radios}, and the @code{csdr} command line program that can be used to build simple signal processing flow graphs.") - (license license:gpl3+)))) + (license license:gpl3+))) + +(define-public convert-samples + (package + (name "convert-samples") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/convert-samples") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d9w9m5agi8fiv1wk8nhjrbm2jkm2fks4ymbxkn0xphbwj3gwr7i")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf automake)) + (inputs + (list liquid-dsp)) + (synopsis "SDR samples converter") + (description + "@code{convert-samples} is a command-line program to convert samples +received from software defined radios from one format to another. + +Supported formats: +@itemize +@item s8: signed 8 bit integer +@item u8: unsigned 8 bit integer +@item s16: signed 16 bit integer +@item u16: unsigned 16 bit integer +@item s32: signed 32 bit integer +@item u32: unsigned 32 bit integer +@item f32: 32 bit float +@item cs8: complex made of signed 8 bit integers +@item cu8: complex made of unsigned 8 bit integers +@item cs16: complex made of signed 16 bit integers +@item cu16: complex made of unsigned 16 bit integers +@item cs32: complex made of signed 32 bit integers +@item cu32: complex made of unsigned 32 bit integers +@item cf32: complex made of 32 bit floats +@end itemize") + (home-page "https://github.com/glv2/convert-samples") + (license license:gpl3+))) (define-public serialdv (package diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 82df12b55a..15a9278fe8 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1549,6 +1549,9 @@ also walk each side of a merge and test those changes individually.") (assoc-ref inputs "inetutils") "/bin/logger\""))) + (substitute* "src/lib/Gitolite/Cache.pm" + (("/usr/sbin/redis-server") "redis-server")) + (substitute* "src/commands/svnserve" (("/usr/bin/svnserve") "svnserve")))) (replace 'install diff --git a/guix/read-print.scm b/guix/read-print.scm index 63ff9ca5bd..00dde870f4 100644 --- a/guix/read-print.scm +++ b/guix/read-print.scm @@ -22,6 +22,7 @@ #:use-module (ice-9 rdelim) #:use-module (ice-9 vlist) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (guix i18n) @@ -426,6 +427,34 @@ each line except the first one (they're assumed to be already there)." (display (make-string indent #\space) port) (loop tail))))) +(define %symbols-followed-by-octal-integers + ;; Symbols for which the following integer must be printed as octal. + '(chmod umask mkdir mkstemp)) + +(define %symbols-followed-by-hexadecimal-integers + ;; Likewise, for hexadecimal integers. + '(logand logior logxor lognot)) + +(define (integer->string integer context) + "Render INTEGER as a string using a base suitable based on CONTEXT." + (define base + (match context + ((head . tail) + (cond ((memq head %symbols-followed-by-octal-integers) 8) + ((memq head %symbols-followed-by-hexadecimal-integers) + (if (any (cut memq <> %symbols-followed-by-octal-integers) + tail) + 8 + 16)) + (else 10))) + (_ 10))) + + (string-append (match base + (10 "") + (16 "#x") + (8 "#o")) + (number->string integer base))) + (define* (pretty-print-with-comments port obj #:key (format-comment @@ -661,9 +690,12 @@ FORMAT-VERTICAL-SPACE; a useful value of 'canonicalize-vertical-space'." (display ")" port) (+ column 1))))) (_ - (let* ((str (if (string? obj) - (escaped-string obj) - (object->string obj))) + (let* ((str (cond ((string? obj) + (escaped-string obj)) + ((integer? obj) + (integer->string obj context)) + (else + (object->string obj)))) (len (string-width str))) (if (and (> (+ column 1 len) max-width) (not delimited?)) diff --git a/tests/read-print.scm b/tests/read-print.scm index 4dabcc1e64..1b0d865972 100644 --- a/tests/read-print.scm +++ b/tests/read-print.scm @@ -247,6 +247,14 @@ mnopqrstuvwxyz.\")" (+ a b)))) (list x y z))") +(test-pretty-print "\ +(begin + (chmod \"foo\" #o750) + (chmod port + (logand #o644 + (lognot (umask)))) + (logand #x7f xyz))") + (test-pretty-print "\ (substitute-keyword-arguments (package-arguments x) ((#:phases phases)