From 372b037540395b688a0406c89709fdc3af880e4a Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 18 Nov 2022 08:14:31 +0100 Subject: gnu: VLC: Fix build with dav1d 1.0. * gnu/packages/video.scm (vlc)[source](patches): New field. * gnu/packages/patches/vlc-dav1d-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index b154caaaaa..8f59fb5faf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1979,6 +1979,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ + %D%/packages/patches/vlc-dav1d-compat.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ -- cgit v1.2.3 From ad6463451128a644970676b0a03d8bb09f02326b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 8 Sep 2022 19:55:23 +0200 Subject: gnu: MariaDB: Update to 10.10.2. * gnu/packages/databases.scm (mariadb): Update to 10.9.3. [source](snippet): Remove adjustments for deprecated TokuDB. [arguments]: Remove obsolete #:configure-flags. Build with system libfmt. Adjust tests for 10.10.2, and mariadb_config file name. Remove patch phase. [native-inputs]: Remove obsolete patch. [inputs]: Add FMT. Change from OPENSSL-1.1 to OPENSSL. * gnu/tests/databases.scm (%mysql-os): Adjust config file so MariaDB works on overlayfs. --- gnu/local.mk | 1 - gnu/packages/databases.scm | 79 +++++---------------- gnu/packages/patches/mariadb-link-libatomic.patch | 83 ----------------------- gnu/tests/databases.scm | 6 +- 4 files changed, 21 insertions(+), 148 deletions(-) delete mode 100644 gnu/packages/patches/mariadb-link-libatomic.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index ec8480c201..98ba39cef7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1512,7 +1512,6 @@ dist_patch_DATA = \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/make-impure-dirs.patch \ - %D%/packages/patches/mariadb-link-libatomic.patch \ %D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/mathjax-disable-webpack.patch \ diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index e4dde1b22b..470b2bb38a 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -132,6 +132,7 @@ #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-build) @@ -900,7 +901,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.5.12") + (version "10.10.2") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.com/MariaDB" @@ -908,21 +909,11 @@ Language.") version ".tar.gz")) (sha256 (base32 - "1gg4h9ahmk78cx01zyw0fqr6hhd78fsyhs0s34p3gi9hkak1qkxb")) + "1ciw7y08wms9g3hzhyria49r1b9n5wpbhkndazv95d925c8x1jsp")) (modules '((guix build utils))) (snippet '(begin - ;; Delete bundled snappy and xz. - (delete-file-recursively "storage/tokudb/PerconaFT/third_party") - (substitute* "storage/tokudb/PerconaFT/CMakeLists.txt" - ;; This file checks that the bundled sources are present and - ;; declares build procedures for them. - (("^include\\(TokuThirdParty\\)") "")) - (substitute* "storage/tokudb/PerconaFT/ft/CMakeLists.txt" - ;; Don't attempt to use the procedures we just removed. - ((" build_lzma build_snappy") "")) - - ;; Preserve CMakeLists.txt for these. + ;; Delete bundled libraries, but preserve CMakeLists.txt. (for-each (lambda (file) (unless (string-suffix? "CMakeLists.txt" file) (delete-file file))) @@ -934,21 +925,10 @@ Language.") `(#:configure-flags (list "-DBUILD_CONFIG=mysql_release" - ;; Linking with libarchive fails, like this: - - ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o): - ;; relocation R_X86_64_32 against `.bss' can not be used when - ;; making a shared object; recompile with -fPIC - - ;; For now, disable the features that that use libarchive (xtrabackup). - "-DWITH_LIBARCHIVE=OFF" - - ;; Disable the TokuDB engine, because its test suite frequently fails, - ;; and loading it crashes the server: . - "-DTOKUDB_OK=OFF" ;; Ensure the system libraries are used. "-DWITH_JEMALLOC=yes" + "-DWITH_LIBFMT=system" "-DWITH_PCRE=system" "-DWITH_SSL=system" "-DWITH_ZLIB=system" @@ -988,14 +968,6 @@ Language.") #:parallel-tests? ,(target-x86-64?) #:phases (modify-phases %standard-phases - ,@(if (target-ppc32?) - `((add-after 'unpack 'apply-libatomics-patch - (lambda* (#:key inputs #:allow-other-keys) - (let ((patch-file - (assoc-ref inputs - "mariadb-link-libatomic.patch"))) - (invoke "patch" "-p1" "-i" patch-file))))) - '()) (add-after 'unpack 'adjust-output-references (lambda _ ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX @@ -1031,6 +1003,9 @@ Language.") "main.explain_non_select" "main.upgrade_MDEV-19650" "roles.acl_statistics" + "main.stat_tables_innodb" + "main.stat_tables" + "main.mysql_upgrade" ;; Probably same as above, test failure reported upstream: ;; . @@ -1057,36 +1032,19 @@ Language.") disabled-tests) (close-port unstable-tests) - ;; XXX: These fail because they expect a latin1 charset and - ;; collation. See . - (substitute* '("mysql-test/main/gis_notembedded.result" - "mysql-test/main/system_mysql_db.result") - (("latin1_swedish_ci") "utf8_general_ci") - (("\tlatin1") "\tutf8")) - (substitute* "mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test" (("/bin/bash") (which "bash"))) - (substitute* "mysql-test/mysql-test-run.pl" + (substitute* "mysql-test/mariadb-test-run.pl" (("/bin/ls") (which "ls")) (("/bin/sh") (which "sh")))))) - (add-before 'configure 'disable-plugins - (lambda _ - (let ((disable-plugin (lambda (name) - (call-with-output-file - (string-append "plugin/" name - "/CMakeLists.txt") - (lambda (port) - (format port "\n"))))) - (disabled-plugins '(;; XXX: Causes a test failure. - "disks"))) - (for-each disable-plugin disabled-plugins)))) (replace 'check (lambda* (#:key (tests? #t) parallel-tests? #:allow-other-keys) (if tests? (with-directory-excursion "mysql-test" - (invoke "./mtr" "--verbose" + (invoke "./mariadb-test-run" + "--verbose" "--retry=3" "--suite=main" "--testcase-timeout=40" @@ -1133,7 +1091,7 @@ Language.") (mkdir-p (string-append dev "/lib")) (rename-file (string-append lib "/lib/pkgconfig") (string-append dev "/lib/pkgconfig")) - (rename-file (string-append lib "/bin/mariadb_config") + (rename-file (string-append out "/bin/mariadb_config") (string-append dev "/bin/mariadb_config")) (rename-file (string-append out "/bin/mysql_config") (string-append dev "/bin/mysql_config")) @@ -1146,19 +1104,14 @@ Language.") (("-lssl -lcrypto" all) (string-append "-L" openssl "/lib " all))))))))) (native-inputs - (if (target-ppc32?) - `(("mariadb-link-libatomic.patch" - ,(search-patch "mariadb-link-libatomic.patch")) - ("patch" ,patch) - ("bison" ,bison) - ("perl" ,perl)) - (list bison perl))) + (list bison perl)) (inputs - `(("jemalloc" ,jemalloc) + `(("fmt" ,fmt) + ("jemalloc" ,jemalloc) ("libaio" ,libaio) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("openssl" ,openssl-1.1) + ("openssl" ,openssl) ("pam" ,linux-pam) ("pcre2" ,pcre2) ("xz" ,xz) diff --git a/gnu/packages/patches/mariadb-link-libatomic.patch b/gnu/packages/patches/mariadb-link-libatomic.patch deleted file mode 100644 index f331067b6e..0000000000 --- a/gnu/packages/patches/mariadb-link-libatomic.patch +++ /dev/null @@ -1,83 +0,0 @@ -https://github.com/MariaDB/server/commit/f502ccbcb5dfce29067434885a23db8d1bd5f134.patch -This was apparently merged in 10.8.2. - -From f502ccbcb5dfce29067434885a23db8d1bd5f134 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= -Date: Fri, 15 Oct 2021 16:51:05 +0300 -Subject: [PATCH] Link with libatomic to enable C11 atomics support -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Some architectures (mips) require libatomic to support proper -atomic operations. Check first if support is available without -linking, otherwise use the library. - -Contributors: -James Cowgill -Jessica Clarke -Vicențiu Ciorbaru ---- - configure.cmake | 20 +++++++++++++++++++- - mysys/CMakeLists.txt | 4 ++++ - sql/CMakeLists.txt | 1 - - 3 files changed, 23 insertions(+), 2 deletions(-) - -diff --git a/configure.cmake b/configure.cmake -index 7a1369d77703f..db8742bb93b5a 100644 ---- a/configure.cmake -+++ b/configure.cmake -@@ -895,7 +895,25 @@ int main() - long long int *ptr= &var; - return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); - }" --HAVE_GCC_C11_ATOMICS) -+HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC) -+IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC) -+ SET(HAVE_GCC_C11_ATOMICS True) -+ELSE() -+ SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) -+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") -+ CHECK_CXX_SOURCE_COMPILES(" -+ int main() -+ { -+ long long int var= 1; -+ long long int *ptr= &var; -+ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); -+ }" -+ HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) -+ IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) -+ SET(HAVE_GCC_C11_ATOMICS True) -+ ENDIF() -+ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES}) -+ENDIF() - - IF(WITH_VALGRIND) - SET(HAVE_valgrind 1) -diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt -index f97e3b4d3904c..09d3f726ffc74 100644 ---- a/mysys/CMakeLists.txt -+++ b/mysys/CMakeLists.txt -@@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY} - ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY}) - DTRACE_INSTRUMENT(mysys) - -+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) -+ TARGET_LINK_LIBRARIES(mysys atomic) -+ENDIF() -+ - IF(HAVE_BFD_H) - TARGET_LINK_LIBRARIES(mysys bfd) - ENDIF(HAVE_BFD_H) -diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt -index 5f5d7daf1a5bc..f574f1f20295d 100644 ---- a/sql/CMakeLists.txt -+++ b/sql/CMakeLists.txt -@@ -307,7 +307,6 @@ IF(WITH_MYSQLD_LDFLAGS) - "${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}") - ENDIF() - -- - FIND_PACKAGE(BISON 2.0) - - diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm index 2ca13577a1..92be1a829b 100644 --- a/gnu/tests/databases.scm +++ b/gnu/tests/databases.scm @@ -389,7 +389,11 @@ data double PRECISION NULL (define %mysql-os (simple-operating-system - (service mysql-service-type))) + (service mysql-service-type + (mysql-configuration + ;; Disable O_DIRECT since it's not supported on overlayfs. + ;; See . + (extra-content "innodb-flush-method = fsync"))))) (define* (run-mysql-test) "Run tests in %MYSQL-OS." -- cgit v1.2.3 From 74100ba40f50a0a6def57e0f645c1f5a7ab68977 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 23 Nov 2022 20:41:36 +0100 Subject: gnu: libcdio: Fix test failure with glibc 2.36. * gnu/packages/patches/libcdio-glibc-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/cdrom.scm (libcdio)[source](patches): New field. --- gnu/local.mk | 1 + gnu/packages/cdrom.scm | 1 + gnu/packages/patches/libcdio-glibc-compat.patch | 43 +++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 gnu/packages/patches/libcdio-glibc-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 98ba39cef7..c2e4e2f357 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1481,6 +1481,7 @@ dist_patch_DATA = \ %D%/packages/patches/lierolibre-newer-libconfig.patch \ %D%/packages/patches/lierolibre-remove-arch-warning.patch \ %D%/packages/patches/lierolibre-try-building-other-arch.patch \ + %D%/packages/patches/libcdio-glibc-compat.patch \ %D%/packages/patches/linbox-fix-pkgconfig.patch \ %D%/packages/patches/linphone-desktop-without-sdk.patch \ %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \ diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 8cf106b5e4..0467e6b1c9 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -113,6 +113,7 @@ caching facility provided by the library.") (method url-fetch) (uri (string-append "mirror://gnu/libcdio/libcdio-" version ".tar.bz2")) + (patches (search-patches "libcdio-glibc-compat.patch")) (sha256 (base32 "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45")))) diff --git a/gnu/packages/patches/libcdio-glibc-compat.patch b/gnu/packages/patches/libcdio-glibc-compat.patch new file mode 100644 index 0000000000..1d325bce96 --- /dev/null +++ b/gnu/packages/patches/libcdio-glibc-compat.patch @@ -0,0 +1,43 @@ +Fix test failure with glibc 2.36: + + https://savannah.gnu.org/bugs/?62948 + +Patch taken from upstream: + + https://git.savannah.gnu.org/cgit/libcdio.git/commit/?id=56335fff0f21d294cd0e478d49542a43e9495ed0 + +diff --git a/test/driver/realpath.c b/test/driver/realpath.c +index 289253e..cd46d62 100644 +--- a/test/driver/realpath.c ++++ b/test/driver/realpath.c +@@ -1,5 +1,7 @@ + /* -*- C -*- +- Copyright (C) 2010-2012, 2015, 2017 Rocky Bernstein ++ ++ Copyright (C) 2010-2012, 2015, 2017, 2022 Rocky Bernstein ++ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -175,16 +177,17 @@ main(int argc, const char *argv[]) + rc = check_rc(symlink(psz_symlink_file, psz_symlink_file), + "symlink", psz_symlink_file); + if (0 == rc) { +- cdio_realpath(psz_symlink_file, psz_file_check); +- if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) { ++ char *retvalue = cdio_realpath(psz_symlink_file, psz_file_check); ++ if (0 != retvalue) { ++ if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) { + fprintf(stderr, "direct cdio_realpath cycle test failed. %s vs %s\n", + psz_file_check, symlink_file); + rc = 5; + goto err_exit; ++ } ++ check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file); + } +- check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file); + } +- + } + + check_rc(unlink(psz_orig_file), "unlink", psz_orig_file); -- cgit v1.2.3 From c668d37276bf1331569821ad9b1284c7e2d5321e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 26 Nov 2022 11:01:48 +0100 Subject: gnu: openboardview: Update to 9.0.3. * gnu/packages/electronics.scm (openboardview): Update to 9.0.3. [source](patches): Remove obsolete patch. * gnu/packages/patches/openboardview-use-system-utf8.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 - gnu/packages/electronics.scm | 7 ++-- .../patches/openboardview-use-system-utf8.patch | 48 ---------------------- 3 files changed, 3 insertions(+), 53 deletions(-) delete mode 100644 gnu/packages/patches/openboardview-use-system-utf8.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c2e4e2f357..bd8d391b05 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1602,7 +1602,6 @@ dist_patch_DATA = \ %D%/packages/patches/onnx-shared-libraries.patch \ %D%/packages/patches/onnx-skip-model-downloads.patch \ %D%/packages/patches/openboardview-use-system-imgui.patch \ - %D%/packages/patches/openboardview-use-system-utf8.patch \ %D%/packages/patches/openbox-python3.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 15e7318926..47885083c0 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -252,7 +252,7 @@ supported devices, as well as input/output file format support.") (define-public openboardview (package (name "openboardview") - (version "8.95.2") + (version "9.0.3") (source (origin (method git-fetch) (uri (git-reference @@ -270,11 +270,10 @@ supported devices, as well as input/output file format support.") (delete-file-recursively f))) (scandir "." (negate (cut member <> keep)))))) (patches - (search-patches "openboardview-use-system-imgui.patch" - "openboardview-use-system-utf8.patch")) + (search-patches "openboardview-use-system-imgui.patch")) (sha256 (base32 - "1n2yfi8wpky0y231kq2zdgwn7f7kff8m53m904hxi5ppmwhx1d6q")))) + "0wmplzgi3rpkcajdrnkxvqhgxrn6qdxa6vwgd24bm10ryyhiqw54")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/patches/openboardview-use-system-utf8.patch b/gnu/packages/patches/openboardview-use-system-utf8.patch deleted file mode 100644 index 25b5952bda..0000000000 --- a/gnu/packages/patches/openboardview-use-system-utf8.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 251e23422f37c93a3f460fb660c5e5bfa8200d91 Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer -Date: Sun, 2 Dec 2018 16:40:39 -0500 -Subject: [PATCH] build system: Allow using utf8.h from the system. - ---- - src/CMakeLists.txt | 12 ++++++++---- - src/openboardview/CMakeLists.txt | 1 + - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 90442ed..26d4a69 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -8,10 +8,14 @@ if(NOT WIN32 OR MINGW) - endif() - - ## utf8.h ## --execute_process( -- COMMAND git submodule update --init src/utf8 -- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} --) -+FIND_PATH(UTF8_INCLUDE_DIR utf8.h) -+if(NOT UTF8_INCLUDE_DIR) -+ execute_process( -+ COMMAND git submodule update --init src/utf8 -+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -+ ) -+ set(UTF8_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/utf8) -+endif() - - ## zlib ## - find_package(ZLIB) -diff --git a/src/openboardview/CMakeLists.txt b/src/openboardview/CMakeLists.txt -index b0bdbe3..6c4564c 100644 ---- a/src/openboardview/CMakeLists.txt -+++ b/src/openboardview/CMakeLists.txt -@@ -44,6 +44,7 @@ include_directories( - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/.. - ${IMGUI_INCLUDE_DIRS} -+ ${UTF8_INCLUDE_DIR} - ${GLAD_INCLUDE_DIRS} - ${GTK_INCLUDE_DIRS} - ${OPENGL_INCLUDE_DIR} --- -2.34.0 - -- cgit v1.2.3 From 403d06e7e73a5756fd8374dd2f0a13ddc51230b8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 12 Dec 2022 10:47:29 +0100 Subject: gnu: glslang: Install all libraries. * gnu/packages/patches/glslang-install-static-libs.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/vulkan.scm (glslang)[source](patches): New field. --- gnu/local.mk | 1 + .../patches/glslang-install-static-libs.patch | 61 ++++++++++++++++++++++ gnu/packages/vulkan.scm | 1 + 3 files changed, 63 insertions(+) create mode 100644 gnu/packages/patches/glslang-install-static-libs.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index a109c52b54..777c069de7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1228,6 +1228,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-2.29-supported-locales.patch \ %D%/packages/patches/glibc-static-nss.patch \ %D%/packages/patches/glibc-supported-locales.patch \ + %D%/packages/patches/glslang-install-static-libs.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnash-fix-giflib-version.patch \ diff --git a/gnu/packages/patches/glslang-install-static-libs.patch b/gnu/packages/patches/glslang-install-static-libs.patch new file mode 100644 index 0000000000..a155dde30e --- /dev/null +++ b/gnu/packages/patches/glslang-install-static-libs.patch @@ -0,0 +1,61 @@ +Install OGLCompiler et.al. even when building shared libraries. Also fix +CMake file locations. + +Patch taken from Gentoo: + + https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/glslang/files/glslang-1.3.231-Install-static-libs.patch + +diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt +--- a/OGLCompilersDLL/CMakeLists.txt ++++ b/OGLCompilersDLL/CMakeLists.txt +@@ -41,7 +41,7 @@ if(WIN32) + source_group("Source" FILES ${SOURCES}) + endif(WIN32) + +-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) ++if(ENABLE_GLSLANG_INSTALL) + install(TARGETS OGLCompiler EXPORT glslang-targets) + + # Backward compatibility +@@ -49,7 +49,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) + message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::OGLCompiler) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(OGLCompiler ALIAS glslang::OGLCompiler) +diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt +--- a/glslang/CMakeLists.txt ++++ b/glslang/CMakeLists.txt +@@ -203,7 +203,7 @@ endif() + ################################################################################ + if(ENABLE_GLSLANG_INSTALL) + install(TARGETS glslang EXPORT glslang-targets) +- if(NOT BUILD_SHARED_LIBS) ++ if(BUILD_SHARED_LIBS) + install(TARGETS MachineIndependent EXPORT glslang-targets) + install(TARGETS GenericCodeGen EXPORT glslang-targets) + +diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt +--- a/glslang/OSDependent/Unix/CMakeLists.txt ++++ b/glslang/OSDependent/Unix/CMakeLists.txt +@@ -52,7 +52,7 @@ else() + target_link_libraries(OSDependent Threads::Threads) + endif() + +-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) ++if(ENABLE_GLSLANG_INSTALL) + install(TARGETS OSDependent EXPORT glslang-targets) + + # Backward compatibility +@@ -60,7 +60,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS) + message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\") + + if (NOT TARGET glslang::OSDependent) +- include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\") ++ include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\") + endif() + + add_library(OSDependent ALIAS glslang::OSDependent) diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 550d594731..7a21ea1e37 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -164,6 +164,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.") (uri (git-reference (url "https://github.com/KhronosGroup/glslang") (commit version))) + (patches (search-patches "glslang-install-static-libs.patch")) (sha256 (base32 "12a1zl8qxa28nbf6m67260c0lwdw3bqbj0jz1382wgm5px1fpqw6")) -- cgit v1.2.3 From 222a04ff97d892b4d3e7c35e4158035aada6f149 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 8 Jan 2023 19:34:10 +0100 Subject: gnu: VLC: Remove obsolete patch. This reverts 372b037540395b688a0406c89709fdc3af880e4a, which became obsolete with af74211d987d2b8510e2f4937e65f6480754886f. * gnu/packages/video.scm (vlc)[source](patches): Remove. * gnu/packages/patches/vlc-dav1d-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 - gnu/packages/patches/vlc-dav1d-compat.patch | 70 ----------------------------- gnu/packages/video.scm | 1 - 3 files changed, 72 deletions(-) delete mode 100644 gnu/packages/patches/vlc-dav1d-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 12bf871516..b56f80e16b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1978,7 +1978,6 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \ - %D%/packages/patches/vlc-dav1d-compat.patch \ %D%/packages/patches/vsearch-unbundle-cityhash.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ diff --git a/gnu/packages/patches/vlc-dav1d-compat.patch b/gnu/packages/patches/vlc-dav1d-compat.patch deleted file mode 100644 index 3cb737faba..0000000000 --- a/gnu/packages/patches/vlc-dav1d-compat.patch +++ /dev/null @@ -1,70 +0,0 @@ -Fix build against dav1d 1.0. - - https://code.videolan.org/videolan/vlc/-/merge_requests/1618 - -Patch adjusted for VLC 3.0 taken from Gentoo: - - https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/vlc/files/vlc-3.0.17.3-dav1d-1.0.0.patch - ---- a/modules/codec/dav1d.c -+++ b/modules/codec/dav1d.c -@@ -63,10 +63,16 @@ vlc_module_begin () - set_category(CAT_INPUT) - set_subcategory(SUBCAT_INPUT_VCODEC) - -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS, -+ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) -+ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0 -+#else - add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS, - THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) - add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS, - THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false) -+#endif - vlc_module_end () - - /***************************************************************************** -@@ -294,6 +300,11 @@ static int OpenDecoder(vlc_object_t *p_this) - return VLC_ENOMEM; - - dav1d_default_settings(&p_sys->s); -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); -+ if (p_sys->s.n_threads == 0) -+ p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16; -+#else - p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); - if (p_sys->s.n_tile_threads == 0) - p_sys->s.n_tile_threads = -@@ -303,6 +314,7 @@ static int OpenDecoder(vlc_object_t *p_this) - p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); - if (p_sys->s.n_frame_threads == 0) - p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16; -+#endif - p_sys->s.allocator.cookie = dec; - p_sys->s.allocator.alloc_picture_callback = NewPicture; - p_sys->s.allocator.release_picture_callback = FreePicture; -@@ -313,12 +325,20 @@ static int OpenDecoder(vlc_object_t *p_this) - return VLC_EGENERIC; - } - -+#if DAV1D_API_VERSION_MAJOR >= 6 -+ msg_Dbg(p_this, "Using dav1d version %s with %d threads", -+ dav1d_version(), p_sys->s.n_threads); -+ -+ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); -+#else - msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", - dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); - -+ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); -+#endif -+ - dec->pf_decode = Decode; - dec->pf_flush = FlushDecoder; -- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); - - dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; - dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; -GitLab diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4dc50b31a3..4e7dad28e7 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1924,7 +1924,6 @@ videoformats depend on the configuration flags of ffmpeg.") "https://download.videolan.org/pub/videolan/vlc/" (car (string-split version #\-)) "/vlc-" version ".tar.xz")) - (patches (search-patches "vlc-dav1d-compat.patch")) (sha256 (base32 "1v7db9icrb12yz7banq2wvpjpvqfrj031yj1kf5smn35qcwl82ap")))) -- cgit v1.2.3 From 03ab1a27620d18f7e09ef7cc28f62d0a0c78b186 Mon Sep 17 00:00:00 2001 From: Danny O'Brien Date: Sat, 4 Mar 2023 23:24:37 -0800 Subject: gnu: dbacl: Fix failing check phase. * gnu/packages/patches/dbacl-icheck-multiple-definitions.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/textutils.scm (dbacl) [source]: Apply patch. Signed-off-by: Maxim Cournoyer --- gnu/local.mk | 1 + .../dbacl-icheck-multiple-definitions.patch | 33 ++++++++++++++++++++++ gnu/packages/textutils.scm | 3 +- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/dbacl-icheck-multiple-definitions.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 2abece0d2f..186d82a8ab 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1035,6 +1035,7 @@ dist_patch_DATA = \ %D%/packages/patches/date-output-pkg-config-files.patch \ %D%/packages/patches/datefudge-gettimeofday.patch \ %D%/packages/patches/dbacl-include-locale.h.patch \ + %D%/packages/patches/dbacl-icheck-multiple-definitions.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \ %D%/packages/patches/dbus-c++-threading-mutex.patch \ diff --git a/gnu/packages/patches/dbacl-icheck-multiple-definitions.patch b/gnu/packages/patches/dbacl-icheck-multiple-definitions.patch new file mode 100644 index 0000000000..e82d0819bb --- /dev/null +++ b/gnu/packages/patches/dbacl-icheck-multiple-definitions.patch @@ -0,0 +1,33 @@ +From f5df6813e305372e25b8a2124c491293a176e115 Mon Sep 17 00:00:00 2001 +From: Danny O'Brien +Date: Fri, 3 Feb 2023 16:48:59 -0800 +Subject: [PATCH] Fix failing build of icheck. + +Building icheck fails with a duplicate symbol definition +error. This allows the icheck executable to compile. + +Submitted upstream[1] but not yet moderated/accepted. + +[1] https://sourceforge.net/p/dbacl/discussion/239876/thread/87636b0114/ + +--- + src/icheck.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/icheck.c b/src/icheck.c +index efbb6a5..12a3b7a 100644 +--- a/src/icheck.c ++++ b/src/icheck.c +@@ -39,9 +39,6 @@ extern regex_count_t regex_count; + extern empirical_t empirical; + + extern int cmd; +-char *progname = "icheck"; +-char *inputfile = ""; +-long inputline = 0; + + extern long system_pagesize; + extern void *in_iobuf; +-- +2.39.1 + diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index e5d3a0efc0..fb8bc7e868 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -711,7 +711,8 @@ in a portable way.") "dbacl-" version ".tar.gz")) (sha256 (base32 "1gas0112wqjvwn9qg3hxnawk7h3prr0w9b2h68f3p1ifd1kzn3gz")) - (patches (search-patches "dbacl-include-locale.h.patch")))) + (patches (search-patches "dbacl-include-locale.h.patch" + "dbacl-icheck-multiple-definitions.patch")))) (build-system gnu-build-system) (arguments `(#:make-flags -- cgit v1.2.3 From e970e9149d4e327fd72e6b40f93fa9f8c2c09c07 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 17 Mar 2023 14:56:30 +0000 Subject: gnu: guile-3.0-latest: Add patch for invalid unicode handling. This patch fixes handling of invalid unicode when using suspendable ports. Reported upstream at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62290 and patch merged as cba2e7e3fec3c781230570f5d1ef070625eeeda8. As the build coordinator agents use suspendable ports, this will fix issues with building things where the log output contains invalid unicode. * gnu/packages/patches/guile-fix-invalid-unicode-handling.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/guile.scm (guile-3.0-latest)[source]: Use it. Signed-off-by: Christopher Baines --- gnu/local.mk | 1 + gnu/packages/guile.scm | 4 +- .../guile-fix-invalid-unicode-handling.patch | 83 ++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/guile-fix-invalid-unicode-handling.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 186d82a8ab..64a1268fbe 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1298,6 +1298,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \ %D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \ %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \ + %D%/packages/patches/guile-fix-invalid-unicode-handling.patch \ %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \ %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \ %D%/packages/patches/guile-present-coding.patch \ diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 2fd9b711ce..b6db506140 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -398,7 +398,9 @@ without requiring the source code to be rewritten.") version ".tar.xz")) (sha256 (base32 - "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs")))) + "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs")) + (patches (search-patches + "guile-fix-invalid-unicode-handling.patch")))) (arguments (substitute-keyword-arguments (package-arguments guile-3.0) ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to diff --git a/gnu/packages/patches/guile-fix-invalid-unicode-handling.patch b/gnu/packages/patches/guile-fix-invalid-unicode-handling.patch new file mode 100644 index 0000000000..20ee1a2cf5 --- /dev/null +++ b/gnu/packages/patches/guile-fix-invalid-unicode-handling.patch @@ -0,0 +1,83 @@ +Reported upstream at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62290 and +patch merged as cba2e7e3fec3c781230570f5d1ef070625eeeda8. + +From 31a1c3c4783e8e66b93500737f23f209d8115f77 Mon Sep 17 00:00:00 2001 +From: Christopher Baines +Date: Fri, 17 Mar 2023 12:48:39 +0000 +Subject: [PATCH] Fix some invalid unicode handling issues with suspendable + ports. + +Based on the implementation in ports.c. I don't understand what this +code is really doing, but the suspendable ports implementation differs +from the similar C code for a couple of inequalities. + +* module/ice-9/suspendable-ports.scm (decode-utf8, bad-utf8-len): Flip a +couple of inequalities. +* test-suite/tests/ports.test ("string ports"): Add additional invalid +UTF-8 test case. +--- + module/ice-9/suspendable-ports.scm | 8 ++++---- + test-suite/tests/ports.test | 7 +++++++ + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/module/ice-9/suspendable-ports.scm b/module/ice-9/suspendable-ports.scm +index a823f1d37..9fac1df62 100644 +--- a/module/ice-9/suspendable-ports.scm ++++ b/module/ice-9/suspendable-ports.scm +@@ -419,7 +419,7 @@ + (= (logand u8_2 #xc0) #x80) + (case u8_0 + ((#xe0) (>= u8_1 #xa0)) +- ((#xed) (>= u8_1 #x9f)) ++ ((#xed) (<= u8_1 #x9f)) + (else #t))) + (kt (integer->char + (logior (ash (logand u8_0 #x0f) 12) +@@ -436,7 +436,7 @@ + (= (logand u8_3 #xc0) #x80) + (case u8_0 + ((#xf0) (>= u8_1 #x90)) +- ((#xf4) (>= u8_1 #x8f)) ++ ((#xf4) (<= u8_1 #x8f)) + (else #t))) + (kt (integer->char + (logior (ash (logand u8_0 #x07) 18) +@@ -462,7 +462,7 @@ + ((< buffering 2) 1) + ((not (= (logand (ref 1) #xc0) #x80)) 1) + ((and (eq? first-byte #xe0) (< (ref 1) #xa0)) 1) +- ((and (eq? first-byte #xed) (< (ref 1) #x9f)) 1) ++ ((and (eq? first-byte #xed) (> (ref 1) #x9f)) 1) + ((< buffering 3) 2) + ((not (= (logand (ref 2) #xc0) #x80)) 2) + (else 0))) +@@ -471,7 +471,7 @@ + ((< buffering 2) 1) + ((not (= (logand (ref 1) #xc0) #x80)) 1) + ((and (eq? first-byte #xf0) (< (ref 1) #x90)) 1) +- ((and (eq? first-byte #xf4) (< (ref 1) #x8f)) 1) ++ ((and (eq? first-byte #xf4) (> (ref 1) #x8f)) 1) + ((< buffering 3) 2) + ((not (= (logand (ref 2) #xc0) #x80)) 2) + ((< buffering 4) 3) +diff --git a/test-suite/tests/ports.test b/test-suite/tests/ports.test +index 66e10e3dd..1b30e1a68 100644 +--- a/test-suite/tests/ports.test ++++ b/test-suite/tests/ports.test +@@ -1059,6 +1059,13 @@ + eof)) + + (test-decoding-error (#xf0 #x88 #x88 #x88) "UTF-8" ++ (error ;; 2nd byte should be in the 90..BF range ++ error ;; 88: not a valid starting byte ++ error ;; 88: not a valid starting byte ++ error ;; 88: not a valid starting byte ++ eof)) ++ ++ (test-decoding-error (#xf4 #xa4 #xbd #xa4) "UTF-8" + (error ;; 2nd byte should be in the 90..BF range + error ;; 88: not a valid starting byte + error ;; 88: not a valid starting byte +-- +2.39.1 + -- cgit v1.2.3 From 30f0fd2176f966a7dbce9b78e089d252b14dbdba Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 25 Mar 2023 09:19:30 -0400 Subject: gnu: webkitgtk: Update to 2.40.0. The version is re-integrated with the package to allow 'guix refresh -l' to work. * gnu/packages/patches/webkitgtk-libelogind.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/webkit.scm (%webkit-version): Delete variable. (webkitgtk): Update to 2.40.0. Apply new patch. [arguments]: Add a CMAKE_CXX_FLAGS configure flag. Delete help-cmake-find-elogind phase. [native-inputs]: Add unifdef. [inputs]: Remove gtk+-2. Add libavif. (wpewebkit): Update to 2.40.0. (webkitgtk-next) [inputs]: Remove now extraneous gtk+-2 deletion. --- gnu/local.mk | 1 + gnu/packages/patches/webkitgtk-libelogind.patch | 38 +++++++++++++++ gnu/packages/webkit.scm | 62 +++++++++++++------------ 3 files changed, 71 insertions(+), 30 deletions(-) create mode 100644 gnu/packages/patches/webkitgtk-libelogind.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 4be3e43250..192d7f4828 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2001,6 +2001,7 @@ dist_patch_DATA = \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \ %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \ + %D%/packages/patches/webkitgtk-libelogind.patch \ %D%/packages/patches/webrtc-audio-processing-big-endian.patch \ %D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch \ %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \ diff --git a/gnu/packages/patches/webkitgtk-libelogind.patch b/gnu/packages/patches/webkitgtk-libelogind.patch new file mode 100644 index 0000000000..fa1fbc8783 --- /dev/null +++ b/gnu/packages/patches/webkitgtk-libelogind.patch @@ -0,0 +1,38 @@ +From 8d46803c09edc2b6d4e35c778a3d2f90e5baad0b Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer +Date: Sat, 25 Mar 2023 22:55:16 -0400 +Subject: [PATCH] Fallback to elogind when systemd is unavailable at build time + https://bugs.webkit.org/show_bug.cgi?id=254475 + +Reviewed by NOBODY (OOPS!). + +The build system supports elogind, but it only considers the +'libsystemd' library name for the pkg-config lookup and not +'libelogind'. This change makes the build system fallback to search +for libelogind when libsystemd was not found. + +* Source/cmake/FindJournald.cmake [!PC_SYSTEMD_FOUND]: Search for libelogind. +--- + Source/cmake/FindJournald.cmake | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Source/cmake/FindJournald.cmake b/Source/cmake/FindJournald.cmake +index 18dd6b50908c..e0dc9ce1d397 100644 +--- a/Source/cmake/FindJournald.cmake ++++ b/Source/cmake/FindJournald.cmake +@@ -55,6 +55,10 @@ find_package(PkgConfig QUIET) + + # libelogind provides compatible pc and header files + pkg_check_modules(PC_SYSTEMD QUIET libsystemd) ++if (NOT PC_SYSTEMD_FOUND) ++ pkg_check_modules(PC_SYSTEMD QUIET libelogind) ++endif () ++ + set(Journald_COMPILE_OPTIONS ${PC_SYSTEMD_CFLAGS_OTHER}) + set(Journald_VERSION ${PC_SYSTEMD_VERSION}) + + +base-commit: 43ea8744bc6065aad7ae5988e32d31d253905e5f +-- +2.39.2 + diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 0a51479985..e5eafcb142 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Marius Bakke -;;; Copyright © 2021, 2022 Maxim Cournoyer +;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2022, 2023 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -36,6 +36,7 @@ #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages c) #:use-module (gnu packages compression) #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) @@ -123,20 +124,19 @@ the WPE-flavored port of WebKit.") engine that uses Wayland for graphics output.") (license license:bsd-2))) -(define %webkit-version "2.38.5") - (define-public webkitgtk (package (name "webkitgtk") ; webkit2gtk4 - (version %webkit-version) + (version "2.40.0") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "19y1n05mp370mq4bp2bk0pm3wk49z9a10azjjdcdyx12091hrhj0")) + (base32 "14xkgamqlshxqw6fcslvw0yzj4y5mvx66b6bn64rwrl9pyhpwq54")) (patches (search-patches - "webkitgtk-adjust-bubblewrap-paths.patch")))) + "webkitgtk-adjust-bubblewrap-paths.patch" + "webkitgtk-libelogind.patch")))) (build-system cmake-build-system) (outputs '("out" "doc" "debug")) (arguments @@ -148,18 +148,26 @@ engine that uses Wayland for graphics output.") ;; binaries require 20 GiB of memory to link (even with ld.gold or lld) ;; and produce 4.6 GiB of debug symbols. #:build-type "Release" - #:configure-flags #~(list - "-DPORT=GTK" - ;; GTKDOC will be removed upstream soon in favor of - ;; gi-docgen; it is normally disabled because the - ;; doc is rather expensive to build. - "-DENABLE_GTKDOC=ON" - ;; The minibrowser, not built by default, is a good - ;; tool to validate the good operation of - ;; webkitgtk. - "-DENABLE_MINIBROWSER=ON" - ;; The default lib installation prefix is lib64. - (string-append "-DLIB_INSTALL_DIR=" #$output "/lib")) + #:configure-flags + #~(list "-DPORT=GTK" + ;; GTKDOC will be removed upstream soon in favor of + ;; gi-docgen; it is normally disabled because the + ;; doc is rather expensive to build. + "-DENABLE_GTKDOC=ON" + ;; The minibrowser, not built by default, is a good + ;; tool to validate the good operation of + ;; webkitgtk. + "-DENABLE_MINIBROWSER=ON" + ;; The default lib installation prefix is lib64. + (string-append "-DLIB_INSTALL_DIR=" #$output "/lib") + ;; XXX: WebKitGTK makes use of elogind's systemd-compatible + ;; headers, which are under the include/elogind prefix. The WTF + ;; component doesn't propagate the Journald header correctly + ;; detected (stubs from elogind), hence the following hack (see: + ;; https://bugs.webkit.org/show_bug.cgi?id=254495). + (string-append "-DCMAKE_CXX_FLAGS=-I" + (search-input-directory + %build-inputs "include/elogind"))) ;; The build may fail with -j1 (see: ;; https://bugs.webkit.org/show_bug.cgi?id=195251). #:make-flags #~(list "-j" (number->string (max 2 (parallel-job-count)))) @@ -186,13 +194,6 @@ engine that uses Wayland for graphics output.") (substitute* "Source/cmake/OptionsCommon.cmake" (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)") "if (FALSE)")))) - (add-after 'unpack 'help-cmake-find-elogind - (lambda _ - (substitute* "Source/cmake/FindJournald.cmake" - ;; Otherwise, CMake would throw an error because it relies on - ;; the pkg-config search to locate headers. - (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd") - "pkg_check_modules(PC_SYSTEMD QUIET libelogind")))) (add-after 'unpack 'embed-absolute-wpebackend-reference (lambda* (#:key inputs #:allow-other-keys) (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo"))) @@ -222,7 +223,8 @@ engine that uses Wayland for graphics output.") pkg-config python-wrapper gi-docgen - ruby)) + ruby + unifdef)) (propagated-inputs (list gtk+ libsoup)) (inputs @@ -233,11 +235,11 @@ engine that uses Wayland for graphics output.") geoclue gst-plugins-base gst-plugins-bad-minimal - gtk+-2 harfbuzz hyphen icu4c lcms + libavif libgcrypt libgudev libjpeg-turbo @@ -290,7 +292,7 @@ propagated by default) such as @code{gst-plugins-good} and (replace "gtk+" gtk))) (inputs (modify-inputs (package-inputs webkitgtk) - (delete "gtk+-2" "libnotify") + (delete "libnotify") (append pango-next))))) ;TODO: remove after it's the default ;;; Required by e.g. emacs-next-pgtk, emacs-xwidgets, and some other GNOME @@ -310,13 +312,13 @@ propagated by default) such as @code{gst-plugins-good} and (package (inherit webkitgtk) (name "wpewebkit") - (version %webkit-version) + (version "2.40.0") (source (origin (inherit (package-source webkitgtk)) (uri (string-append "https://wpewebkit.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "0q8nmk9l6bqv2bhljm9wv7mvgdl393z7v2m7a0c5avac18yzs07z")))) + (base32 "1dl663nbm011sx099x9gdhk3aj119yn5rxp77jmnhdv1l77jpv58")))) (arguments (substitute-keyword-arguments (package-arguments webkitgtk) ((#:configure-flags flags) -- cgit v1.2.3 From 6a5fb9bf195acfd07b6142ab122050ea691584a1 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 2 Mar 2023 13:09:25 -0500 Subject: gnu: Add ruby-hiredis. * gnu/packages/databases.scm (ruby-hiredis): New variable. * gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/databases.scm | 62 +++++++++++++++++++++- .../patches/ruby-hiredis-use-system-hiredis.patch | 52 ++++++++++++++++++ 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 64a1268fbe..52be2b1bab 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1821,6 +1821,7 @@ dist_patch_DATA = \ %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \ %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \ %D%/packages/patches/rottlog-direntry.patch \ + %D%/packages/patches/ruby-hiredis-use-system-hiredis.patch \ %D%/packages/patches/ruby-hydra-minimal-no-byebug.patch \ %D%/packages/patches/ruby-anystyle-data-immutable-install.patch \ %D%/packages/patches/ruby-anystyle-fix-dictionary-populate.patch \ diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index e51ddd5bf2..a4560d40e3 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -32,7 +32,7 @@ ;;; Copyright © 2017 Kristofer Buffington ;;; Copyright © 2018 Amirouche Boubekki ;;; Copyright © 2018 Joshua Sierles, Nextjournal -;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer +;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Gábor Boskovits @@ -2520,6 +2520,66 @@ protocol is supported.") (home-page "https://github.com/redis/hiredis") (license license:bsd-3))) +(define-public ruby-hiredis + (package + (name "ruby-hiredis") + (version "0.6.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/redis/hiredis-rb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05y4g7frhym59m9x208zpvg2qvqvfjlgqmygxj8sqgl07n0ww1ks")) + (patches (search-patches + "ruby-hiredis-use-system-hiredis.patch")))) + (build-system ruby-build-system) + (arguments + (list + #:tests? #f ;require native extension + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-hiredis-include-directory + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "ext/hiredis_ext/extconf.rb" + ;; Adjust the hiredis include directory. + (("\\$CFLAGS << \" -I/usr/include/hiredis\"") + (format #f "$CFLAGS << \" -I~a\"" + (search-input-directory inputs "include/hiredis")))))) + (add-after 'unpack 'disable-building-c-extension + (lambda _ + ;; FIXME: The produced native extension appears to segfault when + ;; run; disable building it until a solution is found (see: + ;; https://github.com/redis/hiredis-rb/issues/93). + (substitute* "ext/hiredis_ext/extconf.rb" + (("build_hiredis = true") + "build_hiredis = false")))) + ;; FIXME: Un-comment phase after the extension can be made to run + ;; without crashing (see above). + ;; (add-after 'build 'build-ext + ;; (lambda _ + ;; (setenv "CC" #$(cc-for-target)) + ;; (invoke "rake" "compile"))) + (add-before 'check 'start-redis + (lambda _ + (invoke "redis-server" "--daemonize" "yes"))) + (add-after 'install 'delete-mkmf.log + (lambda _ + ;; This build log captures non-deterministic file names (see: + ;; https://github.com/rubygems/rubygems/issues/6259). + (for-each delete-file (find-files #$output "^mkmf\\.log$"))))))) + (native-inputs (list redis ruby-rake-compiler)) + (inputs (list hiredis)) + (synopsis "Ruby wrapper for hiredis") + (description "@code{hiredis-rb} is a Ruby extension that wraps +@code{hiredis}, a minimalist C client for Redis. Both the synchronous +connection API and a separate protocol reader are supported. It is primarily +intended to speed up parsing multi bulk replies.") + (home-page "https://github.com/redis/hiredis-rb") + (license license:bsd-3))) + (define-public ruby-redis (package (name "ruby-redis") diff --git a/gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch b/gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch new file mode 100644 index 0000000000..1b238f5099 --- /dev/null +++ b/gnu/packages/patches/ruby-hiredis-use-system-hiredis.patch @@ -0,0 +1,52 @@ +Retrieved 2023-03-05 from +https://sources.debian.org/data/main/r/ruby-hiredis/0.6.3-2/debian/patches/use_system_libhiredis.patch. + +From: Apollon Oikonomopoulos +Date: Mon, 20 Jan 2020 09:28:45 -0300 +Subject: Use system libhiredis + +Last-Update: 2013-04-10 +Forwarded: no + +Use Debian's libhiredis version instead of downloading one and statically +linking against it. +--- + ext/hiredis_ext/extconf.rb | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +diff --git a/ext/hiredis_ext/extconf.rb b/ext/hiredis_ext/extconf.rb +index da39eb5..ffa3abf 100644 +--- a/ext/hiredis_ext/extconf.rb ++++ b/ext/hiredis_ext/extconf.rb +@@ -9,12 +9,6 @@ end + + RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC'] + +-hiredis_dir = File.join(File.dirname(__FILE__), %w{.. .. vendor hiredis}) +-unless File.directory?(hiredis_dir) +- STDERR.puts "vendor/hiredis missing, please checkout its submodule..." +- exit 1 +-end +- + RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/ + make_program = $1 || ENV['make'] + make_program ||= case RUBY_PLATFORM +@@ -27,15 +21,9 @@ else + end + + if build_hiredis +- # Make sure hiredis is built... +- Dir.chdir(hiredis_dir) do +- success = system("#{make_program} static") +- raise "Building hiredis failed" if !success +- end +- +- # Statically link to hiredis (mkmf can't do this for us) +- $CFLAGS << " -I#{hiredis_dir}" +- $LDFLAGS << " #{hiredis_dir}/libhiredis.a" ++ # Debian: use system hiredis ++ $CFLAGS << " -I/usr/include/hiredis" ++ $LDFLAGS << " -lhiredis" + + have_func("rb_thread_fd_select") + create_makefile('hiredis/ext/hiredis_ext') -- cgit v1.2.3 From 7e5c0dc8746c673a31266394987ec026cd99bb24 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 13 Mar 2023 22:28:36 -0400 Subject: gnu: Add fpm. * gnu/packages/package-management.scm (fpm): New variable. * gnu/packages/patches/fpm-newer-clamp-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/package-management.scm | 86 ++++++++++++++++++++++++++ gnu/packages/patches/fpm-newer-clamp-fix.patch | 33 ++++++++++ 3 files changed, 120 insertions(+) create mode 100644 gnu/packages/patches/fpm-newer-clamp-fix.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 52be2b1bab..74114a2ba4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1136,6 +1136,7 @@ dist_patch_DATA = \ %D%/packages/patches/fp16-implicit-double.patch \ %D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fpc-reproducibility.patch \ + %D%/packages/patches/fpm-newer-clamp-fix.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/fuse-glibc-2.34.patch \ diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index b439f9326c..537d01e164 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) + #:use-module (gnu packages debian) #:use-module (gnu packages dejagnu) #:use-module (gnu packages dbm) #:use-module (gnu packages docbook) @@ -87,6 +88,7 @@ #:use-module (gnu packages nettle) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) + #:use-module (gnu packages node) #:use-module (gnu packages nss) #:use-module (gnu packages patchutils) #:use-module (gnu packages perl) @@ -98,6 +100,7 @@ #:use-module (gnu packages python-check) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages ruby) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) @@ -117,6 +120,7 @@ #:use-module (guix build-system guile) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system ruby) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix gexp) @@ -2005,6 +2009,88 @@ applications") sandboxed desktop applications on GNU/Linux.") (license license:lgpl2.1+))) +(define-public fpm + (package + (name "fpm") + (version "1.15.1") + (source (origin + (method git-fetch) ;for tests + (uri (git-reference + (url "https://github.com/jordansissel/fpm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m2zxf7wyk7psvm611yxs68hnwm0pyqilsmcq3x791hz7rvbg68w")) + (patches (search-patches "fpm-newer-clamp-fix.patch")))) + (build-system ruby-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'extract-gemspec 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("lib/fpm/util.rb" + "spec/fpm/util_spec.rb" + "spec/fpm/package/rpm_spec.rb") + (("\"/bin/sh\"") + (string-append "\"" (search-input-file inputs "bin/sh") + "\""))))) + (add-after 'extract-gemspec 'relax-requirements + (lambda _ + (substitute* "fpm.gemspec" + (("\"clamp\", \"~> 1.0.0\"") + "\"clamp\", \">= 1.0.0\"")))) + (add-after 'extract-gemspec 'disable-problematic-tests + ;; Disable some tests which are failing (see: + ;; https://github.com/jordansissel/fpm/issues/2000). + (lambda _ + ;; There are 4 'NoMethodError' test failures in the + ;; command_spec suite, for unknown reasons. + (delete-file "spec/fpm/command_spec.rb") + (substitute* "spec/fpm/package_spec.rb" + (("@oldtmp = ENV\\[\"TMP\"]" all) + "skip('fails with guix')")) + (substitute* "spec/fpm/package/cpan_spec.rb" + ;; This test is marked as expected to fail (pending) when + ;; TRAVIS_OS_NAME is set, but passes with Guix; skip it. + (("it \"should unpack tarball containing" all) + (string-append "x" all))) + (substitute* "spec/fpm/package/gem_spec.rb" + ;; This test fails for unknown reason; perhaps a patched + ;; shebang. + (("it 'should not change the shebang'" all) + (string-append "x" all))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Set TRAVIS_OS_NAME to skip tests known to cause + ;; problems in minimal environments. + (setenv "TRAVIS_OS_NAME" "GNU Guix") + (invoke "rspec"))))))) + (native-inputs + (list dpkg + libarchive + node + perl-app-cpanminus + python + ruby-rspec + squashfs-tools + zstd)) + (inputs + (list bash-minimal + ruby-arr-pm + ruby-backports + ruby-cabin + ruby-clamp + ruby-pleaserun + ruby-rexml + ruby-stud)) + (home-page "https://github.com/jordansissel/fpm/") + (synopsis "Package building and mangling tool") + (description "@command{fpm} is a command to convert directories, RPMs, +Python eggs, Ruby gems, and more to RPMs, debs, Solaris packages and more.") + (license license:expat))) + (define-public akku (package (name "akku") diff --git a/gnu/packages/patches/fpm-newer-clamp-fix.patch b/gnu/packages/patches/fpm-newer-clamp-fix.patch new file mode 100644 index 0000000000..9fbb15ee29 --- /dev/null +++ b/gnu/packages/patches/fpm-newer-clamp-fix.patch @@ -0,0 +1,33 @@ +Retrieved from: https://github.com/jordansissel/fpm/pull/1561.patch + +From 956a218a7b35de08ea35da3b702ffdc716656b68 Mon Sep 17 00:00:00 2001 +From: Jordan Sissel +Date: Mon, 15 Oct 2018 21:05:47 -0700 +Subject: [PATCH] Check if an option has a default value before we try to look + it up. + +This fixes fpm when used with clamp 1.3.0 or above. + +Fixes #1543 +--- + lib/fpm/command.rb | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/lib/fpm/command.rb b/lib/fpm/command.rb +index a204001e1..a99ddb627 100644 +--- a/lib/fpm/command.rb ++++ b/lib/fpm/command.rb +@@ -394,7 +394,12 @@ def execute + set = proc do |object, attribute| + # if the package's attribute is currently nil *or* the flag setting for this + # attribute is non-default, use the value. +- if object.send(attribute).nil? || send(attribute) != send("default_#{attribute}") ++ ++ # Not all options have a default value, so we assume `nil` if there's no default. (#1543) ++ # In clamp >= 1.3.0, options without `:default => ..` will not have any # `default_xyz` ++ # methods generated, so we need to check for the presence of this method first. ++ default = respond_to?("default_#{attribute}") ? send("default_#{attribute}") : nil ++ if object.send(attribute).nil? || send(attribute) != default + logger.info("Setting from flags: #{attribute}=#{send(attribute)}") + object.send("#{attribute}=", send(attribute)) + end -- cgit v1.2.3 From e05de22479ddc0775377464bd0ef4f1e946c75ce Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 21 Mar 2023 23:35:12 -0400 Subject: gnu: geeqie: Update to 2.0.1. * gnu/packages/image-viewers.scm (geeqie): Update to 2.0.1. [build-system]: Switch to meson. [arguments]: Delete field. [inputs]: Remove clutter. [native-inputs]: Add xxd. Remove autoconf and automake. * gnu/packages/patches/geeqie-clutter.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/image-viewers.scm | 48 +++++++++---------------------- gnu/packages/patches/geeqie-clutter.patch | 35 ---------------------- 3 files changed, 13 insertions(+), 71 deletions(-) delete mode 100644 gnu/packages/patches/geeqie-clutter.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 74114a2ba4..aee0b8a645 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1202,7 +1202,6 @@ dist_patch_DATA = \ %D%/packages/patches/gdm-remove-hardcoded-xwayland-path.patch \ %D%/packages/patches/gdm-wayland-session-wrapper-from-env.patch \ %D%/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch \ - %D%/packages/patches/geeqie-clutter.patch \ %D%/packages/patches/gemmi-fix-pegtl-usage.patch \ %D%/packages/patches/gemmi-fix-sajson-types.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \ diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 0758cf5b27..470ae08a9b 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 dissent ;;; Copyright © 2022 Michael Rohleder -;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022, 2023 Maxim Cournoyer ;;; Copyright © 2022 Tomasz Jeneralczyk ;;; Copyright © 2022 Cairn ;;; @@ -101,6 +101,7 @@ #:use-module (gnu packages upnp) #:use-module (gnu packages version-control) #:use-module (gnu packages video) + #:use-module (gnu packages vim) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) @@ -231,7 +232,7 @@ actions.") (define-public geeqie (package (name "geeqie") - (version "1.6") + (version "2.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -239,43 +240,20 @@ actions.") (commit (string-append "v" version)))) (sha256 (base32 - "1i9yd8lddp6b9s9vjjjzbpqj4bvwidxc6kiba6vdrk7dda5akyky")) - (file-name (git-file-name name version)) - (patches (search-patches "geeqie-clutter.patch")))) - (build-system gnu-build-system) - (arguments - ;; Enable support for a "map" pane using GPS data. - `(#:configure-flags '("CFLAGS=-O2 -g -fcommon" - "--enable-map" - "--enable-gtk3") - #:phases (modify-phases %standard-phases - (add-after 'unpack 'correctly-locate-aux-scripts - ;; The git checkout has symlinks under the auxdir - ;; directory pointing to /usr/share/automake-1.16/depcomp - ;; and /usr/share/automake-1.16/install-sh, which causes - ;; the configure phase to fail (see: - ;; https://github.com/BestImageViewer/geeqie/issues/936). - (lambda* (#:key inputs #:allow-other-keys) - (let ((automake (assoc-ref inputs "automake"))) - (delete-file "auxdir/depcomp") - (symlink (car (find-files automake "depcomp")) - "auxdir/depcomp") - (delete-file "auxdir/install-sh") - (symlink (car (find-files automake "install-sh")) - "auxdir/install-sh"))))))) + "199s0f3khnycr5vhk2ww3xnnasz7dzwxdl89pxjadq6rpgprfqyh")) + (file-name (git-file-name name version)))) + (build-system meson-build-system) (inputs - (list clutter - libchamplain + (list exiv2 + gtk+ lcms - exiv2 - libpng - gtk+)) + libchamplain + libpng)) (native-inputs - (list autoconf - automake - `(,glib "bin") ; glib-gettextize + (list `(,glib "bin") ; glib-gettextize intltool - pkg-config)) + pkg-config + xxd)) (home-page "https://www.geeqie.org/") (synopsis "Lightweight GTK+ based image viewer") (description diff --git a/gnu/packages/patches/geeqie-clutter.patch b/gnu/packages/patches/geeqie-clutter.patch deleted file mode 100644 index ab7cc957d8..0000000000 --- a/gnu/packages/patches/geeqie-clutter.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c99084ac5fc2fb854ff8e8abd4bd3298fb08fb43 Mon Sep 17 00:00:00 2001 -From: Colin Clark -Date: Sat, 9 Jan 2021 11:35:41 +0000 -Subject: [PATCH] Fix #829: segfault with clutter-gtk - -https://github.com/BestImageViewer/geeqie/issues/829 - -This fix might cause other problems which might be cured by calling: -LIBGL_ALWAYS_INDIRECT=1 geeqie - -or, worst case: -geeqie --disable-clutter ---- - src/main.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/src/main.c b/src/main.c -index f497240d..4af654fe 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -904,11 +904,6 @@ gint main(gint argc, gchar *argv[]) - #ifdef HAVE_GTHREAD - #if !GLIB_CHECK_VERSION(2,32,0) - g_thread_init(NULL); --#endif --#ifdef HAVE_CLUTTER --/* FIXME: see below */ -- putenv("LIBGL_ALWAYS_INDIRECT=1"); -- XInitThreads(); - #endif - gdk_threads_init(); - gdk_threads_enter(); --- -2.34.0 - -- cgit v1.2.3 From 6d0ad930206dccf382ec65c6504df51b5c798a34 Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Sat, 4 Mar 2023 21:17:39 +0000 Subject: services: pam-limits-service-type: Deprecate file-like object support in favour for lists as service value. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Base Services): Document it. * gnu/local.mk: Register test. * gnu/services/base.scm (pam-limits-service-type): Accept both lists and file-like objects. Deprecate file-like object support. * gnu/tests/pam.scm: New file. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 27 ++++++-------- gnu/local.mk | 1 + gnu/services/base.scm | 36 +++++++++++++------ gnu/tests/pam.scm | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 134 insertions(+), 27 deletions(-) create mode 100644 gnu/tests/pam.scm (limited to 'gnu/local.mk') diff --git a/doc/guix.texi b/doc/guix.texi index c5f5558e2c..a58ea8f9ec 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18971,23 +18971,18 @@ will fail if @var{device} does not exist. Type of the service that installs a configuration file for the @uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} module}. The value for this service type is -a file-like object containing a list of @code{pam-limits-entry} values -which can be used to specify @code{ulimit} limits and @code{nice} -priority limits to user sessions. +a list of @code{pam-limits-entry} values, which can be used to specify +@code{ulimit} limits and @code{nice} priority limits to user sessions. +By default, the value is the empty list. The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group: @lisp -(service - pam-limits-service-type - (plain-file - "limits.conf" - (string-join - (map pam-limits-entry->string - (list (pam-limits-entry "@@realtime" 'both 'rtprio 99) - (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited))) - "\n"))) +(service pam-limits-service-type + (list + (pam-limits-entry "@@realtime" 'both 'rtprio 99) + (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited))) @end lisp The first entry increases the maximum realtime priority for @@ -18999,11 +18994,9 @@ Another useful example is raising the maximum number of open file descriptors that can be used: @lisp -(service - pam-limits-service-type - (plain-file - "limits.conf" - (pam-limits-entry->string (pam-limits-entry "*" 'both 'nofile 100000)))) +(service pam-limits-service-type + (list + (pam-limits-entry "*" 'both 'nofile 100000))) @end lisp In the above example, the asterisk means the limit should apply to any diff --git a/gnu/local.mk b/gnu/local.mk index aee0b8a645..3a93ab50dd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -782,6 +782,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/messaging.scm \ %D%/tests/networking.scm \ %D%/tests/package-management.scm \ + %D%/tests/pam.scm \ %D%/tests/reconfigure.scm \ %D%/tests/rsync.scm \ %D%/tests/samba.scm \ diff --git a/gnu/services/base.scm b/gnu/services/base.scm index acbfb879fc..e063828d3b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -40,7 +40,7 @@ (define-module (gnu services base) #:use-module (guix store) #:use-module (guix deprecation) - #:autoload (guix diagnostics) (warning &fix-hint) + #:autoload (guix diagnostics) (warning formatted-message &fix-hint) #:autoload (guix i18n) (G_) #:use-module (guix combinators) #:use-module (gnu services) @@ -1588,17 +1588,13 @@ information on the configuration file syntax." (define pam-limits-service-type - (let ((security-limits - ;; Create /etc/security containing the provided "limits.conf" file. - (lambda (limits-file) - `(("security/limits.conf" - ,limits-file)))) - (pam-extension + (let ((pam-extension (lambda (pam) (let ((pam-limits (pam-entry (control "required") (module "pam_limits.so") - (arguments '("conf=/etc/security/limits.conf"))))) + (arguments + '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) '("login" "greetd" "su" "slim" "gdm-password" "sddm" "sudo" "sshd")) @@ -1606,7 +1602,27 @@ information on the configuration file syntax." (inherit pam) (session (cons pam-limits (pam-service-session pam)))) - pam))))) + pam)))) + + ;; XXX: Using file-like objects is deprecated, use lists instead. + ;; This is to be reduced into the list? case when the deprecated + ;; code gets removed. + ;; Create /etc/security containing the provided "limits.conf" file. + (security-limits + (match-lambda + ((? file-like? obj) + (warning (G_ "Using file-like value for \ +'pam-limits-service-type' is deprecated~%")) + `(("security/limits.conf" ,obj))) + ((? list? lst) + `(("security/limits.conf" + ,(plain-file "limits.conf" + (string-join (map pam-limits-entry->string lst) + "\n" 'suffix))))) + (_ (raise + (formatted-message + (G_ "invalid input for 'pam-limits-service-type'~%"))))))) + (service-type (name 'limits) (extensions @@ -1617,7 +1633,7 @@ information on the configuration file syntax." "Install the specified resource usage limits by populating @file{/etc/security/limits.conf} and using the @code{pam_limits} authentication module.") - (default-value (plain-file "limits.conf" ""))))) + (default-value '())))) (define-deprecated (pam-limits-service #:optional (limits '())) pam-limits-service-type diff --git a/gnu/tests/pam.scm b/gnu/tests/pam.scm new file mode 100644 index 0000000000..5cf13d97d7 --- /dev/null +++ b/gnu/tests/pam.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Bruno Victal +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu tests pam) + #:use-module (gnu tests) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu system) + #:use-module (gnu system pam) + #:use-module (gnu system vm) + #:use-module (guix gexp) + #:use-module (ice-9 format) + #:export (%test-pam-limits + %test-pam-limits-deprecated)) + + +;;; +;;; pam-limits-service-type +;;; + +(define pam-limit-entries + (list + (pam-limits-entry "@realtime" 'both 'rtprio 99) + (pam-limits-entry "@realtime" 'both 'memlock 'unlimited))) + +(define (run-test-pam-limits config) + "Run tests in a os with pam-limits-service-type configured." + (define os + (marionette-operating-system + (simple-operating-system + (service pam-limits-service-type config)))) + + (define vm + (virtual-machine os)) + + (define name (format #f "pam-limit-service~:[~;-deprecated~]" + (file-like? config))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-64)) + + (let ((marionette (make-marionette (list #$vm)))) + + (test-runner-current (system-test-runner #$output)) + + (test-begin #$name) + + (test-assert "/etc/security/limits.conf ready" + (wait-for-file "/etc/security/limits.conf" marionette)) + + (test-equal "/etc/security/limits.conf content matches" + #$(string-join (map pam-limits-entry->string pam-limit-entries) + "\n" 'suffix) + (marionette-eval + '(call-with-input-file "/etc/security/limits.conf" + get-string-all) + marionette)) + + (test-end))))) + + (gexp->derivation (string-append name "-test") test)) + +(define %test-pam-limits + (system-test + (name "pam-limits-service") + (description "Test that pam-limits-service can serialize its config +(as a list) to @file{limits.conf}.") + (value (run-test-pam-limits pam-limit-entries)))) + +(define %test-pam-limits-deprecated + (system-test + (name "pam-limits-service-deprecated") + (description "Test that pam-limits-service can serialize its config +(as a file-like object) to @file{limits.conf}.") + (value (run-test-pam-limits + (plain-file "limits.conf" + (string-join (map pam-limits-entry->string + pam-limit-entries) + "\n" 'suffix)))))) -- cgit v1.2.3 From 9800aaca91d5dab8cefbf2f9f1d119a8fed653e4 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 31 Mar 2023 15:07:00 -0400 Subject: gnu: Add orangeduck-mpc. * gnu/packages/c.scm (orangeduck-mpc): New variable. * gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/c.scm | 50 +++++++++++++++++++++- .../patches/orangeduck-mpc-fix-pkg-config.patch | 25 +++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 724cd3216a..592c719ae9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1631,6 +1631,7 @@ dist_patch_DATA = \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \ %D%/packages/patches/opentaxsolver-file-browser-fix.patch \ %D%/packages/patches/open-zwave-hidapi.patch \ + %D%/packages/patches/orangeduck-mpc-fix-pkg-config.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \ %D%/packages/patches/ots-no-include-missing-file.patch \ diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index b2f16613dd..96b4e904f7 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2020, 2021 Marius Bakke ;;; Copyright © 2020 Katherine Cox-Buday -;;; Copyright © 2020, 2022 Maxim Cournoyer +;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2020, 2021 Greg Hogan ;;; Copyright © 2021 David Dashyan ;;; Copyright © 2021 Foo Chuan Wei @@ -1145,6 +1145,54 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.") (home-page "https://microsoft.github.io/mimalloc/") (license license:expat))) +;;; The package is named orangeduck-mpc to differentiate it from GNU mpc. +(define-public orangeduck-mpc + ;; The last release lacks an 'install' target. + (let ((commit "7c910e9303833c349f7432188ff77f2745254df2") + (revision "0")) + (package + (name "orangeduck-mpc") + (version (git-version "0.9.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/orangeduck/mpc") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01a4vcxdnz0fbn90c9zc3jzklyqqvp9sfjpjwpq0f5r0l2pp37ad")) + (patches + (search-patches "orangeduck-mpc-fix-pkg-config.patch")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-Makefile + (lambda _ + (substitute* "Makefile" + ;; Do not attempt to alter the permissions, + ;; otherwise 'install' would error with + ;; "cannot stat [...] Permission denied" + ;; errors. + (("\\s\\-m[0-9]{3}\\s") + " ")))) + (delete 'configure)))) + (home-page "https://github.com/orangeduck/mpc") + (synopsis "Parser Combinator library for C ") + (description "@code{mpc} is a lightweight Parser Combinator library for C. +@code{mpc} can help with tasks such as: +@itemize +@item Building a new programming language +@item Building a new data format +@item Parsing an existing programming language +@item Parsing an existing data format +@item Embedding a Domain Specific Language +@item Implementing Greenspun's Tenth Rule. +@end itemize") + (license license:bsd-2)))) + ;;; Factored out of the ck package so that it can be adjusted and called on ;;; the host side easily, without impacting the package definition. (define (gnu-triplet->ck-machine target) diff --git a/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch b/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch new file mode 100644 index 0000000000..f6155517d1 --- /dev/null +++ b/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch @@ -0,0 +1,25 @@ +Upstream status: https://github.com/orangeduck/mpc/pull/160 + +diff --git a/Makefile b/Makefile +index 7719acc..fe798c5 100644 +--- a/Makefile ++++ b/Makefile +@@ -15,7 +15,7 @@ EXAMPLESEXE = $(EXAMPLES:.c=) + + .PHONY: all check clean libs $(DIST)/$(PROJ).pc + +-all: $(EXAMPLESEXE) check ++all: $(EXAMPLESEXE) check libs $(DIST)/$(PROJ).pc + + $(DIST): + $(MKDIR) $(DIST) +@@ -65,7 +65,8 @@ install: all + install -m755 -t $(DESTDIR)$(PREFIX)/lib $(DIST)/lib* + install -m644 -t $(DESTDIR)$(PREFIX)/share/$(PROJ) $(PROJ).c $(PROJ).h + install -m644 $(PROJ).h $(DESTDIR)$(PREFIX)/include/$(PROJ).h +- install -m644 $(PROJ).pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/$(PROJ).pc ++ install -m644 $(DIST)/$(PROJ).pc \ ++ $(DESTDIR)$(PREFIX)/lib/pkgconfig/$(PROJ).pc + + uninstall: + rm -rf -- \ -- cgit v1.2.3 From cfbddc3d54852d218a9e00a605e8e67bd992b94b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 31 Mar 2023 16:21:38 -0400 Subject: gnu: openboardview: Update to 9.95.0. * gnu/packages/electronics.scm (openboardview): Update to 9.95.0. [source]: Apply patch. [arguments]: Update fix-utf8-include-directive phase. [inputs]: Add orangeduck-mpc. * gnu/packages/patches/openboardview-use-system-mpc.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/electronics.scm | 11 +++--- .../patches/openboardview-use-system-mpc.patch | 42 ++++++++++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/openboardview-use-system-mpc.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 592c719ae9..57116c5292 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1617,6 +1617,7 @@ dist_patch_DATA = \ %D%/packages/patches/onnx-skip-model-downloads.patch \ %D%/packages/patches/openbios-aarch64-riscv64-support.patch \ %D%/packages/patches/openboardview-use-system-imgui.patch \ + %D%/packages/patches/openboardview-use-system-mpc.patch \ %D%/packages/patches/openbox-python3.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 4d7f4d2e05..5ab9662551 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2019 Clément Lassieur ;;; Copyright © 2021 Efraim Flashner ;;; Copyright © 2021 Leo Famulari -;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022, 2023 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -252,7 +252,7 @@ supported devices, as well as input/output file format support.") (define-public openboardview (package (name "openboardview") - (version "9.0.3") + (version "9.95.0") (source (origin (method git-fetch) (uri (git-reference @@ -270,10 +270,11 @@ supported devices, as well as input/output file format support.") (delete-file-recursively f))) (scandir "." (negate (cut member <> keep)))))) (patches - (search-patches "openboardview-use-system-imgui.patch")) + (search-patches "openboardview-use-system-imgui.patch" + "openboardview-use-system-mpc.patch")) (sha256 (base32 - "0wmplzgi3rpkcajdrnkxvqhgxrn6qdxa6vwgd24bm10ryyhiqw54")))) + "1safjd729a7591rigkiy3c678bivrj5q1qwg1f18sijhlsfkf5b3")))) (build-system cmake-build-system) (arguments (list @@ -302,6 +303,7 @@ supported devices, as well as input/output file format support.") ;; directly rather than "utf8/utf8.h". (lambda _ (substitute* '("src/openboardview/FileFormats/BRDFile.cpp" + "src/openboardview/FileFormats/BRDFileBase.cpp" "src/openboardview/BoardView.cpp") (("utf8/utf8.h") "utf8.h")))) (add-before 'configure 'dynamically-load-gtk-via-absolute-path @@ -327,6 +329,7 @@ supported devices, as well as input/output file format support.") (list fontconfig gtk+ imgui + orangeduck-mpc sdl2 sqlite zlib)) diff --git a/gnu/packages/patches/openboardview-use-system-mpc.patch b/gnu/packages/patches/openboardview-use-system-mpc.patch new file mode 100644 index 0000000000..7726c55fe8 --- /dev/null +++ b/gnu/packages/patches/openboardview-use-system-mpc.patch @@ -0,0 +1,42 @@ +Upstream status: https://github.com/OpenBoardView/OpenBoardView/pull/281 + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 452dfa9..e30c3cf 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -206,13 +206,15 @@ endif() + add_definitions(-DSTBI_FAILURE_USERMSG) + + ## mpc - Micro Parser Combinators ## +-execute_process( +- COMMAND git submodule update --init src/mpc +- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +-) +- +-add_library(mpc STATIC "mpc/mpc.c") +- ++pkg_check_modules(MPC QUIET mpc) ++if(NOT MPC_FOUND) ++ execute_process( ++ COMMAND git submodule update --init src/mpc ++ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} ++ ) ++ add_library(mpc STATIC "mpc/mpc.c") ++ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mpc) ++endif() + + ## OpenBoardView ## + add_subdirectory(openboardview) +diff --git a/src/openboardview/FileFormats/GenCADFile.h b/src/openboardview/FileFormats/GenCADFile.h +index 1ccf8df..c57f7ff 100644 +--- a/src/openboardview/FileFormats/GenCADFile.h ++++ b/src/openboardview/FileFormats/GenCADFile.h +@@ -5,7 +5,7 @@ + + #include "build-generated/GenCADFileGrammar.h" + +-#include "mpc/mpc.h" ++#include "mpc.h" + + #include + #include -- cgit v1.2.3 From 367fce7a2ff8c23fe6dfd8c94857b112b79dbd96 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 1 Apr 2023 23:36:02 -0400 Subject: gnu: python-pyopenssl: Update to 23.1.1. * gnu/packages/python-crypto.scm (python-pyopenssl): Update to 23.1.1. [source]: Remove patches. [arguments]: Update faketime date in check phase. Normalize pytest invocation in check phase override. [propagated-inputs]: Remove python-six. --- gnu/local.mk | 1 - .../patches/python2-pyopenssl-openssl-compat.patch | 51 ---------------------- gnu/packages/python-crypto.scm | 22 ++++------ 3 files changed, 8 insertions(+), 66 deletions(-) delete mode 100644 gnu/packages/patches/python2-pyopenssl-openssl-compat.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 57116c5292..83bde9e1dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1755,7 +1755,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-pillow-CVE-2022-45199.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-pyflakes-test-location.patch \ - %D%/packages/patches/python2-pyopenssl-openssl-compat.patch \ %D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-magic-python-bytecode.patch \ diff --git a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch deleted file mode 100644 index a185f4172d..0000000000 --- a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch +++ /dev/null @@ -1,51 +0,0 @@ -Adjust for OpenSSL 1.1.1: - - https://github.com/pyca/pyopenssl/issues/1043 - -Taken from upstream: - - https://github.com/pyca/pyopenssl/commit/cc5c00ae5fd3c19d07fff79b5c4a08f5e58697ad - -diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py -index 59f21cec..fcdee047 100644 ---- a/src/OpenSSL/SSL.py -+++ b/src/OpenSSL/SSL.py -@@ -1421,6 +1421,12 @@ def set_alpn_protos(self, protos): - This list should be a Python list of bytestrings representing the - protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``. - """ -+ # Different versions of OpenSSL are inconsistent about how they handle empty -+ # proto lists (see #1043), so we avoid the problem entirely by rejecting them -+ # ourselves. -+ if not protos: -+ raise ValueError("at least one protocol must be specified") -+ - # Take the list of protocols and join them together, prefixing them - # with their lengths. - protostr = b"".join( -@@ -2449,6 +2455,12 @@ def set_alpn_protos(self, protos): - This list should be a Python list of bytestrings representing the - protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``. - """ -+ # Different versions of OpenSSL are inconsistent about how they handle empty -+ # proto lists (see #1043), so we avoid the problem entirely by rejecting them -+ # ourselves. -+ if not protos: -+ raise ValueError("at least one protocol must be specified") -+ - # Take the list of protocols and join them together, prefixing them - # with their lengths. - protostr = b"".join( -diff --git a/tests/test_ssl.py b/tests/test_ssl.py -index ffc505d8..ca363b45 100644 ---- a/tests/test_ssl.py -+++ b/tests/test_ssl.py -@@ -1928,7 +1928,7 @@ def test_alpn_call_failure(self): - protocols list. Ensure that we produce a user-visible error. - """ - context = Context(SSLv23_METHOD) -- with pytest.raises(Error): -+ with pytest.raises(ValueError): - context.set_alpn_protos([]) - - def test_alpn_set_on_connection(self): diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index a9355d134f..b3c9e57d70 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -654,19 +654,17 @@ ciphers, message digests and key derivation functions.") (propagated-inputs '()) (synopsis "Core implementation of the Cryptography Python library"))) -;; This is the last version which is compatable with python-cryptography < 35. (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "21.0.0") + (version "23.1.1") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay")) - (patches (search-patches "python2-pyopenssl-openssl-compat.patch")))) + "1dxhip610zw1j2bz35g1w1h7vh374g0bnzn4nsqj65n6pswrh544")))) (build-system python-build-system) (arguments (list @@ -678,7 +676,7 @@ ciphers, message digests and key derivation functions.") ;; PyOpenSSL runs tests against a certificate with a fixed ;; expiry time. To ensure successful builds in the future, ;; set the time to roughly the release date. - (invoke "faketime" "2022-02-01" "py.test" "-v" "-k" + (invoke "faketime" "2023-03-25" "pytest" "-vv" "-k" (string-append ;; This test tries to look up certificates from ;; the compiled-in default path in OpenSSL, which @@ -690,17 +688,13 @@ ciphers, message digests and key derivation functions.") ;; Fails on i686-linux and possibly other 32-bit platforms ;; https://github.com/pyca/pyopenssl/issues/974 "and not test_verify_with_time")))))))) - (propagated-inputs - (list python-cryptography python-six)) - (inputs - (list openssl)) - (native-inputs - (list libfaketime python-flaky python-pretend python-pytest)) + (propagated-inputs (list python-cryptography)) + (inputs (list openssl)) + (native-inputs (list libfaketime python-flaky python-pretend python-pytest)) (home-page "https://github.com/pyca/pyopenssl") (synopsis "Python wrapper module around the OpenSSL library") - (description - "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL -library.") + (description "PyOpenSSL is a high-level wrapper around a subset of the +OpenSSL library.") (license license:asl2.0))) (define-public python-ed25519 -- cgit v1.2.3 From 55f9bfeda9133fecfd7e2a88404d47cfabaf5965 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 1 Apr 2023 16:13:13 +0200 Subject: gnu: Add mecab. * gnu/packages/language.scm (mecab): New variable. * gnu/packages/patches/mecab-variable-param.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/language.scm | 51 ++++++++++++++++++++++++- gnu/packages/patches/mecab-variable-param.patch | 30 +++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/mecab-variable-param.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 83bde9e1dc..05edf8b0b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1541,6 +1541,7 @@ dist_patch_DATA = \ %D%/packages/patches/libmemcached-build-with-gcc7.patch \ %D%/packages/patches/libmhash-hmac-fix-uaf.patch \ %D%/packages/patches/libsigrokdecode-python3.9-fix.patch \ + %D%/packages/patches/mecab-variable-param.patch \ %D%/packages/patches/memtest86+-build-reproducibly.patch \ %D%/packages/patches/mercurial-hg-extension-path.patch \ %D%/packages/patches/mercurial-openssl-compat.patch \ diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index f7e3ea6cd6..5dda0c1eeb 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2018 Nikita ;;; Copyright © 2019 Alex Vong ;;; Copyright © 2020 Ricardo Wurmus -;;; Copyright © 2020 Julien Lepiller +;;; Copyright © 2020, 2022 Julien Lepiller ;;; Copyright © 2022 Milran ;;; ;;; This file is part of GNU Guix. @@ -928,3 +928,52 @@ and manipulation.") (description "libskk is a library to deal with Japanese kana-to-kanji conversion method.") (license license:gpl3+))) + +(define-public mecab + (package + (name "mecab") + (version "0.996") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/taku910/mecab") + ;; latest commit + (commit "046fa78b2ed56fbd4fac312040f6d62fc1bc31e3"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hdv7rgn8j0ym9gsbigydwrbxa8cx2fb0qngg1ya15vvbw0lk4aa")) + (patches + (search-patches + "mecab-variable-param.patch")))) + (build-system gnu-build-system) + (native-search-paths + (list (search-path-specification + (variable "MECAB_DICDIR") + (separator #f) + (files '("lib/mecab/dic"))))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "mecab"))) + (add-before 'build 'add-mecab-dicdir-variable + (lambda _ + (substitute* "mecabrc.in" + (("dicdir = .*") + "dicdir = $MECAB_DICDIR")) + (substitute* "mecab-config.in" + (("echo @libdir@/mecab/dic") + "if [ -z \"$MECAB_DICDIR\" ]; then + echo @libdir@/mecab/dic +else + echo \"$MECAB_DICDIR\" +fi"))))))) + (inputs (list libiconv)) + (home-page "https://taku910.github.io/mecab") + (synopsis "Morphological analysis engine for texts") + (description "Mecab is a morphological analysis engine developped as a +collaboration between the Kyoto university and Nippon Telegraph and Telephone +Corporation. The engine is independent of any language, dictionary or corpus.") + (license (list license:gpl2+ license:lgpl2.1+ license:bsd-3)))) diff --git a/gnu/packages/patches/mecab-variable-param.patch b/gnu/packages/patches/mecab-variable-param.patch new file mode 100644 index 0000000000..4457cf3f44 --- /dev/null +++ b/gnu/packages/patches/mecab-variable-param.patch @@ -0,0 +1,30 @@ +From 2396e90056706ef897acab3aaa081289c7336483 Mon Sep 17 00:00:00 2001 +From: LEPILLER Julien +Date: Fri, 19 Apr 2019 11:48:39 +0200 +Subject: [PATCH] Allow variable parameters + +--- + mecab/src/param.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/mecab/src/param.cpp b/mecab/src/param.cpp +index 65328a2..006b1b5 100644 +--- a/mecab/src/param.cpp ++++ b/mecab/src/param.cpp +@@ -79,8 +79,12 @@ bool Param::load(const char *filename) { + size_t s1, s2; + for (s1 = pos+1; s1 < line.size() && isspace(line[s1]); s1++); + for (s2 = pos-1; static_cast(s2) >= 0 && isspace(line[s2]); s2--); +- const std::string value = line.substr(s1, line.size() - s1); ++ std::string value = line.substr(s1, line.size() - s1); + const std::string key = line.substr(0, s2 + 1); ++ ++ if(value.find('$') == 0) { ++ value = std::getenv(value.substr(1).c_str()); ++ } + set(key.c_str(), value, false); + } + +-- +2.20.1 + -- cgit v1.2.3 From 3a1a70b447bd88b6bc4e581a596dd484ce2ee4a4 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 18 Mar 2023 08:23:00 +0100 Subject: gnu: Separate potassco packages into their own module. * gnu/packages/potassco.scm: New file. * gnu/packages/maths.scm (libpotassco, clasp, clingo, python-clingo) (python-telingo): Move to potassco module. Adjust imports accordingly. * gnu/packages/emacs-xyz.scm (emacs-pasp-mode): Move to potassco module. * gnu/local.mk (GNU_SYSTEM_MODULES): Add %D%/packages/potassco.scm. --- gnu/local.mk | 1 + gnu/packages/emacs-xyz.scm | 47 ------ gnu/packages/maths.scm | 263 ---------------------------------- gnu/packages/potassco.scm | 345 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 346 insertions(+), 310 deletions(-) create mode 100644 gnu/packages/potassco.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 05edf8b0b5..d0a6e9a864 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -502,6 +502,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/potassco.scm \ %D%/packages/printers.scm \ %D%/packages/profiling.scm \ %D%/packages/prolog.scm \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b11fbaf7b7..ed8f7f6820 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4601,53 +4601,6 @@ written text. Unlike dynamic abbreviation, the text is analysed during idle time, while Emacs is doing nothing else.") (license license:gpl3+))) -(define-public emacs-pasp-mode - (let ((commit "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92") - (revision "1")) - (package - (name "emacs-pasp-mode") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/santifa/pasp-mode") - (commit commit))) - (patches - (search-patches "emacs-pasp-mode-quote-file-names.patch")) - (sha256 - (base32 - "1ar4vws3izzmir7m870mccci620ns3c5j26dcmwaxavhgw45wcmf")))) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'defconst-version - (lambda _ - (emacs-batch-edit-file "pasp-mode.el" - '(progn - (search-forward-regexp "(defcustom pasp-mode-version") - (forward-sexp) - (kill-sexp) - (backward-sexp) - (beginning-of-line) - (kill-sexp) - (insert (format "(defconst emacs-pasp-version \"%s\" %s)" - #$version (cadr kill-ring))) - (basic-save-buffer))))) - (add-after 'unpack 'hardcode-clingo - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "pasp-mode.el" - ("pasp-clingo-path" - (search-input-file inputs "/bin/clingo")))))))) - (inputs (list clingo)) - (home-page "https://github.com/santifa/pasp-mode") - (synopsis "Major mode for editing answer set programs") - (description - "This package provides a major mode for editing answer set programs, -in particular ones that can be solved by @command{clingo}.") - (license license:gpl3+)))) - (define-public emacs-pdf-tools (package (name "emacs-pdf-tools") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 286532fa70..be93d4a26f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -97,7 +97,6 @@ #:use-module (guix build-system ocaml) #:use-module (guix build-system perl) #:use-module (guix build-system python) - #:use-module (guix build-system pyproject) #:use-module (guix build-system ruby) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) @@ -135,7 +134,6 @@ #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages less) - #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -2660,267 +2658,6 @@ Computational Engineering and Sciences} at The University of Texas at Austin. includes a complete LAPACK implementation.") (license license:bsd-3))) -(define-public libpotassco - ;; No public release, update together with clasp - (let ((revision "1") - (commit "2f9fb7ca2c202f1b47643aa414054f2f4f9c1821")) - (package - (name "libpotassco") - (version (git-version "0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/potassco/libpotassco") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1c32f9gqclf7qx07lpx8wd720vfhkjqhzc6nyy8mjmgwpmb3iyyn")))) - (arguments - `(#:configure-flags '("-DLIB_POTASSCO_BUILD_TESTS=on" - "-DLIB_POTASSCO_INSTALL_LIB=on" - "-DBUILD_SHARED_LIBS=on") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-cmake - (lambda _ - (substitute* "CMakeLists.txt" - ;; clasp expects lowercase potassco and include directory is - ;; lowercase as well, so let's use that - (("\"cmake/Potassco\"") "\"cmake/potassco\"") - (("PotasscoConfig\\.cmake") "potassco-config.cmake") - (("PotasscoConfigVersion\\.cmake") - "potassco-config-version.cmake")) - (rename-file "cmake/PotasscoConfig.cmake.in" - "cmake/potassco-config.cmake.in")))))) - (build-system cmake-build-system) - (home-page "https://potassco.org/") - (synopsis "Utility library for Potassco's projects") - (description "@code{libpotassco} is a utility library providing functions -and datatypes for -@itemize -@item parsing, writing, and converting logic programs in aspif and smodels -format, -@item passing information between a grounder and a solver, -@item and defining and parsing command-line options and for creating -command-line applications. -@end itemize -Furthermore, it comes with the tool @command{lpconvert} that converts either -between aspif and smodels format or to a human-readable text format.") - (license license:expat)))) - -(define-public clasp - (package - (name "clasp") - (version "3.3.9") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/potassco/clasp") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "163ps9zq7xppqy9hj5qnw6z5lcjnm4xf5fwjsavpia5ynm3hngcw")))) - (build-system cmake-build-system) - (arguments - `(#:configure-flags '("-DCLASP_BUILD_TESTS=on" - "-DCLASP_INSTALL_LIB=on" - "-DCLASP_USE_LOCAL_LIB_POTASSCO=off" - "-DBUILD_SHARED_LIBS=on") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-cmake - (lambda _ - (substitute* "CMakeLists.txt" - ;; Use lowercase to be consistent with libpotassco - (("\"cmake/Clasp\"") "\"cmake/clasp\"") - (("ClaspConfig\\.cmake") "clasp-config.cmake") - (("ClaspConfigVersion\\.cmake") - "clasp-config-version.cmake")) - (substitute* "cmake/ClaspConfig.cmake.in" - (("find_package\\(Potassco") "find_package(potassco")) - (rename-file "cmake/ClaspConfig.cmake.in" - "cmake/clasp-config.cmake.in")))))) - (inputs - (list libpotassco)) - (home-page "https://potassco.org/") - (synopsis "Answer set solver") - (description "clasp is an answer set solver for (extended) normal and -disjunctive logic programs. The primary algorithm of clasp relies on -conflict-driven nogood learning, a technique that proved very successful for -satisfiability checking (SAT).") - (license license:expat))) - -(define-public clingo - (package - (name "clingo") - (version "5.6.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/potassco/clingo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (modules '((guix build utils))) - (snippet - #~(begin - (delete-file-recursively "clasp") - ;; TODO: Unvendor other third-party stuff - (delete-file-recursively "third_party/catch"))) - (sha256 - (base32 - "19s59ndcm2yj0kxlikfxnx2bmp6b7n31wq1zvwc7hyk37rqarwys")))) - (build-system cmake-build-system) - (arguments - (list - #:configure-flags #~`("-DCLINGO_BUILD_TESTS=on" - "-DCLINGO_INSTALL_LIB=on" - "-DCLINGO_BUILD_STATIC=off" - "-DCLINGO_BUILD_SHARED=on" - "-DCLINGO_USE_LOCAL_CLASP=off" - "-DCLINGO_USE_LOCAL_CATCH=off") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-cmake - (lambda _ - (substitute* "CMakeLists.txt" - (("add_subdirectory\\(clasp\\)") - "find_package(clasp REQUIRED)")) - (substitute* "libclingo/CMakeLists.txt" - (("\"cmake/Clingo\"") "\"cmake/clingo\"") - (("ClingoConfig\\.cmake") "clingo-config.cmake") - (("ClingoConfigVersion\\.cmake") - "clingo-config-version.cmake")) - (substitute* "cmake/ClingoConfig.cmake.in" - (("find_package\\(Clasp") "find_package(clasp")) - (rename-file "cmake/ClingoConfig.cmake.in" - "cmake/clingo-config.cmake.in"))) - (add-after 'unpack 'skip-failing-tests - (lambda _ - (with-directory-excursion "libclingo/tests" - (substitute* "CMakeLists.txt" - (("COMMAND test_clingo" all) - (string-append all - " -f " - "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\""))) - (call-with-output-file "good.txt" - (lambda (port) - (for-each (lambda (test) (format port "~s~%" test)) - '("parse-ast-v2" "add-ast-v2" "build-ast-v2" - "unpool-ast-v2" "parse_term" - "propagator" "propgator-sequence-mining" - "symbol" "visitor")))))))))) - (inputs (list catch2-3.1 clasp libpotassco)) - (native-inputs (list pkg-config)) - (home-page "https://potassco.org/") - (synopsis "Grounder and solver for logic programs") - (description "Clingo computes answer sets for a given logic program.") - (license license:expat))) - -(define-public python-clingo - (package - (inherit clingo) - (name "python-clingo") - (version (package-version clingo)) ; for #$version in arguments - (arguments - (substitute-keyword-arguments (package-arguments clingo) - ((#:configure-flags flags #~'()) - #~(cons* "-DCLINGO_BUILD_WITH_PYTHON=pip" - "-DCLINGO_USE_LIB=yes" - #$flags)) - ((#:imported-modules _ '()) - `(,@%cmake-build-system-modules - (guix build python-build-system))) - ((#:modules _ '()) - '((guix build cmake-build-system) - ((guix build python-build-system) #:prefix python:) - (guix build utils))) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'unpack 'fix-failing-tests - (lambda _ - (substitute* "libpyclingo/clingo/tests/test_conf.py" - (("ctl\\.solve\\(on_statistics=on_statistics\\)" all) - (string-append - all - "; self.skipTest(\"You shall not fail.\")"))))) - (add-after 'install 'install-distinfo - (lambda* (#:key inputs outputs #:allow-other-keys) - (with-directory-excursion (python:site-packages inputs outputs) - (let ((dir (string-append "clingo-" #$version ".dist-info"))) - (mkdir-p dir) - (call-with-output-file (string-append dir "/METADATA") - (lambda (port) - (format port "Metadata-Version: 1.1~%") - (format port "Name: clingo~%") - (format port "Version: ~a~%" #$version))))))))))) - (inputs (list clingo python-wrapper)) - (propagated-inputs (list python-cffi)) - (native-inputs (modify-inputs (package-native-inputs clingo) - (prepend python-scikit-build))) - (synopsis "Python bindings for clingo") - (description "This package provides Python bindings to the clingo package, -making it so that you can write @acronym{ASPs, Answer Set Programs} through -Python code."))) - -(define-public python-clorm - (package - (name "python-clorm") - (version "1.4.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/potassco/clorm") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0jx99y71mrgdicn1da5dwz5nzgvvpabrikff783sg4shbv2cf0b5")))) - (build-system pyproject-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-before 'check 'fix-breaking-tests - (lambda _ - ;; noclingo tests rely on this being set - (setenv "CLORM_NOCLINGO" "1") - (delete-file "tests/test_mypy_query.py") - (substitute* "tests/test_clingo.py" - (("self\\.assertTrue\\(os_called\\)" all) - (string-append "# " all)))))))) - (propagated-inputs (list python-clingo)) - (native-inputs (list python-typing-extensions)) - (home-page "https://potassco.org") - (synopsis "Object relational mapping to clingo") - (description "@acronym{Clorm, Clingo ORM} provides an @acronym{ORM, -Object Relational Mapping} interface to the @acronym{ASP, answer set -programming} solver clingo. Its goal is to make integration of clingo -into Python programs easier.") - (license license:expat))) - -(define-public python-telingo - (package - (name "python-telingo") - (version "2.1.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/potassco/telingo") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (patches (search-patches "python-telingo-fix-comparison.patch")) - (sha256 - (base32 - "0g3khxfdzc2hc7dkiyyqhb399h6h21m5wkp6wy8w71n0m32fiy53")))) - (build-system pyproject-build-system) - (propagated-inputs (list python-clingo)) - (home-page "https://potassco.org/") - (synopsis "Solve dynamic temporal logic programs") - (description "This package provides a system to solve dynamic temporal -logic programs based on clingo.") - (license license:expat))) - (define-public scasp (let ((commit "89a427aa04ec6346425a40111c99b310901ffe51") (revision "1")) diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm new file mode 100644 index 0000000000..22f70eba7f --- /dev/null +++ b/gnu/packages/potassco.scm @@ -0,0 +1,345 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022, 2023 Liliana Marie Prikler +;;; Copyright © 2023 Simon Tournier +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages potassco) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix build-system cmake) + #:use-module (guix build-system emacs) + #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) + #:use-module (gnu packages check) + #:use-module (gnu packages libffi) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz)) + +(define-public libpotassco + ;; No public release, update together with clasp + (let ((revision "1") + (commit "2f9fb7ca2c202f1b47643aa414054f2f4f9c1821")) + (package + (name "libpotassco") + (version (git-version "0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/libpotassco") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1c32f9gqclf7qx07lpx8wd720vfhkjqhzc6nyy8mjmgwpmb3iyyn")))) + (arguments + `(#:configure-flags '("-DLIB_POTASSCO_BUILD_TESTS=on" + "-DLIB_POTASSCO_INSTALL_LIB=on" + "-DBUILD_SHARED_LIBS=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + ;; clasp expects lowercase potassco and include directory is + ;; lowercase as well, so let's use that + (("\"cmake/Potassco\"") "\"cmake/potassco\"") + (("PotasscoConfig\\.cmake") "potassco-config.cmake") + (("PotasscoConfigVersion\\.cmake") + "potassco-config-version.cmake")) + (rename-file "cmake/PotasscoConfig.cmake.in" + "cmake/potassco-config.cmake.in")))))) + (build-system cmake-build-system) + (home-page "https://potassco.org/") + (synopsis "Utility library for Potassco's projects") + (description "@code{libpotassco} is a utility library providing functions +and datatypes for +@itemize +@item parsing, writing, and converting logic programs in aspif and smodels +format, +@item passing information between a grounder and a solver, +@item and defining and parsing command-line options and for creating +command-line applications. +@end itemize +Furthermore, it comes with the tool @command{lpconvert} that converts either +between aspif and smodels format or to a human-readable text format.") + (license license:expat)))) + +(define-public clasp + (package + (name "clasp") + (version "3.3.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/clasp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "163ps9zq7xppqy9hj5qnw6z5lcjnm4xf5fwjsavpia5ynm3hngcw")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DCLASP_BUILD_TESTS=on" + "-DCLASP_INSTALL_LIB=on" + "-DCLASP_USE_LOCAL_LIB_POTASSCO=off" + "-DBUILD_SHARED_LIBS=on") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + ;; Use lowercase to be consistent with libpotassco + (("\"cmake/Clasp\"") "\"cmake/clasp\"") + (("ClaspConfig\\.cmake") "clasp-config.cmake") + (("ClaspConfigVersion\\.cmake") + "clasp-config-version.cmake")) + (substitute* "cmake/ClaspConfig.cmake.in" + (("find_package\\(Potassco") "find_package(potassco")) + (rename-file "cmake/ClaspConfig.cmake.in" + "cmake/clasp-config.cmake.in")))))) + (inputs + (list libpotassco)) + (home-page "https://potassco.org/") + (synopsis "Answer set solver") + (description "clasp is an answer set solver for (extended) normal and +disjunctive logic programs. The primary algorithm of clasp relies on +conflict-driven nogood learning, a technique that proved very successful for +satisfiability checking (SAT).") + (license license:expat))) + +(define-public clingo + (package + (name "clingo") + (version "5.6.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/clingo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file-recursively "clasp") + ;; TODO: Unvendor other third-party stuff + (delete-file-recursively "third_party/catch"))) + (sha256 + (base32 + "19s59ndcm2yj0kxlikfxnx2bmp6b7n31wq1zvwc7hyk37rqarwys")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags #~`("-DCLINGO_BUILD_TESTS=on" + "-DCLINGO_INSTALL_LIB=on" + "-DCLINGO_BUILD_STATIC=off" + "-DCLINGO_BUILD_SHARED=on" + "-DCLINGO_USE_LOCAL_CLASP=off" + "-DCLINGO_USE_LOCAL_CATCH=off") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(clasp\\)") + "find_package(clasp REQUIRED)")) + (substitute* "libclingo/CMakeLists.txt" + (("\"cmake/Clingo\"") "\"cmake/clingo\"") + (("ClingoConfig\\.cmake") "clingo-config.cmake") + (("ClingoConfigVersion\\.cmake") + "clingo-config-version.cmake")) + (substitute* "cmake/ClingoConfig.cmake.in" + (("find_package\\(Clasp") "find_package(clasp")) + (rename-file "cmake/ClingoConfig.cmake.in" + "cmake/clingo-config.cmake.in"))) + (add-after 'unpack 'skip-failing-tests + (lambda _ + (with-directory-excursion "libclingo/tests" + (substitute* "CMakeLists.txt" + (("COMMAND test_clingo" all) + (string-append all + " -f " + "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\""))) + (call-with-output-file "good.txt" + (lambda (port) + (for-each (lambda (test) (format port "~s~%" test)) + '("parse-ast-v2" "add-ast-v2" "build-ast-v2" + "unpool-ast-v2" "parse_term" + "propagator" "propgator-sequence-mining" + "symbol" "visitor")))))))))) + (inputs (list catch2-3.1 clasp libpotassco)) + (native-inputs (list pkg-config)) + (home-page "https://potassco.org/") + (synopsis "Grounder and solver for logic programs") + (description "Clingo computes answer sets for a given logic program.") + (license license:expat))) + +(define-public emacs-pasp-mode + (let ((commit "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92") + (revision "1")) + (package + (name "emacs-pasp-mode") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/santifa/pasp-mode") + (commit commit))) + (patches + (search-patches "emacs-pasp-mode-quote-file-names.patch")) + (sha256 + (base32 + "1ar4vws3izzmir7m870mccci620ns3c5j26dcmwaxavhgw45wcmf")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'defconst-version + (lambda _ + (emacs-batch-edit-file "pasp-mode.el" + '(progn + (search-forward-regexp "(defcustom pasp-mode-version") + (forward-sexp) + (kill-sexp) + (backward-sexp) + (beginning-of-line) + (kill-sexp) + (insert (format "(defconst emacs-pasp-version \"%s\" %s)" + #$version (cadr kill-ring))) + (basic-save-buffer))))) + (add-after 'unpack 'hardcode-clingo + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "pasp-mode.el" + ("pasp-clingo-path" + (search-input-file inputs "/bin/clingo")))))))) + (inputs (list clingo)) + (home-page "https://github.com/santifa/pasp-mode") + (synopsis "Major mode for editing answer set programs") + (description + "This package provides a major mode for editing answer set programs, +in particular ones that can be solved by @command{clingo}.") + (license license:gpl3+)))) + +(define-public python-clingo + (package + (inherit clingo) + (name "python-clingo") + (version (package-version clingo)) ; for #$version in arguments + (arguments + (substitute-keyword-arguments (package-arguments clingo) + ((#:configure-flags flags #~'()) + #~(cons* "-DCLINGO_BUILD_WITH_PYTHON=pip" + "-DCLINGO_USE_LIB=yes" + #$flags)) + ((#:imported-modules _ '()) + `(,@%cmake-build-system-modules + (guix build python-build-system))) + ((#:modules _ '()) + '((guix build cmake-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils))) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'fix-failing-tests + (lambda _ + (substitute* "libpyclingo/clingo/tests/test_conf.py" + (("ctl\\.solve\\(on_statistics=on_statistics\\)" all) + (string-append + all + "; self.skipTest(\"You shall not fail.\")"))))) + (add-after 'install 'install-distinfo + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion (python:site-packages inputs outputs) + (let ((dir (string-append "clingo-" #$version ".dist-info"))) + (mkdir-p dir) + (call-with-output-file (string-append dir "/METADATA") + (lambda (port) + (format port "Metadata-Version: 1.1~%") + (format port "Name: clingo~%") + (format port "Version: ~a~%" #$version))))))))))) + (inputs (list clingo python-wrapper)) + (propagated-inputs (list python-cffi)) + (native-inputs (modify-inputs (package-native-inputs clingo) + (prepend python-scikit-build))) + (synopsis "Python bindings for clingo") + (description "This package provides Python bindings to the clingo package, +making it so that you can write @acronym{ASPs, Answer Set Programs} through +Python code."))) + +(define-public python-clorm + (package + (name "python-clorm") + (version "1.4.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/clorm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jx99y71mrgdicn1da5dwz5nzgvvpabrikff783sg4shbv2cf0b5")))) + (build-system pyproject-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-breaking-tests + (lambda _ + ;; noclingo tests rely on this being set + (setenv "CLORM_NOCLINGO" "1") + (delete-file "tests/test_mypy_query.py") + (substitute* "tests/test_clingo.py" + (("self\\.assertTrue\\(os_called\\)" all) + (string-append "# " all)))))))) + (propagated-inputs (list python-clingo)) + (native-inputs (list python-typing-extensions)) + (home-page "https://potassco.org") + (synopsis "Object relational mapping to clingo") + (description "@acronym{Clorm, Clingo ORM} provides an @acronym{ORM, +Object Relational Mapping} interface to the @acronym{ASP, answer set +programming} solver clingo. Its goal is to make integration of clingo +into Python programs easier.") + (license license:expat))) + +(define-public python-telingo + (package + (name "python-telingo") + (version "2.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/telingo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "python-telingo-fix-comparison.patch")) + (sha256 + (base32 + "0g3khxfdzc2hc7dkiyyqhb399h6h21m5wkp6wy8w71n0m32fiy53")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-clingo)) + (home-page "https://potassco.org/") + (synopsis "Solve dynamic temporal logic programs") + (description "This package provides a system to solve dynamic temporal +logic programs based on clingo.") + (license license:expat))) -- cgit v1.2.3 From 4239b6ac8574fd4014546ec056a1163997a0d9dd Mon Sep 17 00:00:00 2001 From: Andy Tai Date: Mon, 3 Apr 2023 12:31:04 +0200 Subject: gnu: a2ps: Update to 4.15.3. * gnu/packages/pretty-print.scm (a2ps): Update to 4.15.3. [inputs]: Add FILE, LIBGC, LIBPAPER. Re-order alphabetically. [native-inputs]: Add PKG-CONFIG. Re-order alphabetically. * gnu/packages/patches/a2ps-CVE-2001-1593.patch, gnu/packages/patches/a2ps-CVE-2014-0466.patch, gnu/packages/patches/a2ps-CVE-2015-8107.patch: Remove. * gnu/local.mk (dist_patch_DATA): Remove entries above. Signed-off-by: Nicolas Goaziou --- gnu/local.mk | 3 - gnu/packages/patches/a2ps-CVE-2001-1593.patch | 69 ----------------------- gnu/packages/patches/a2ps-CVE-2014-0466.patch | 30 ---------- gnu/packages/patches/a2ps-CVE-2015-8107.patch | 80 --------------------------- gnu/packages/pretty-print.scm | 25 +++++---- 5 files changed, 13 insertions(+), 194 deletions(-) delete mode 100644 gnu/packages/patches/a2ps-CVE-2001-1593.patch delete mode 100644 gnu/packages/patches/a2ps-CVE-2014-0466.patch delete mode 100644 gnu/packages/patches/a2ps-CVE-2015-8107.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index d0a6e9a864..baead7895d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -865,9 +865,6 @@ MODULES_NOT_COMPILED += \ patchdir = $(guilemoduledir)/%D%/packages/patches dist_patch_DATA = \ - %D%/packages/patches/a2ps-CVE-2001-1593.patch \ - %D%/packages/patches/a2ps-CVE-2014-0466.patch \ - %D%/packages/patches/a2ps-CVE-2015-8107.patch \ %D%/packages/patches/abcl-fix-build-xml.patch \ %D%/packages/patches/ableton-link-system-libraries-debian.patch \ %D%/packages/patches/abiword-explictly-cast-bools.patch \ diff --git a/gnu/packages/patches/a2ps-CVE-2001-1593.patch b/gnu/packages/patches/a2ps-CVE-2001-1593.patch deleted file mode 100644 index 17b7e7d932..0000000000 --- a/gnu/packages/patches/a2ps-CVE-2001-1593.patch +++ /dev/null @@ -1,69 +0,0 @@ -Index: b/lib/routines.c -=================================================================== ---- a/lib/routines.c -+++ b/lib/routines.c -@@ -242,3 +242,50 @@ - /* Don't complain if you can't unlink. Who cares of a tmp file? */ - unlink (filename); - } -+ -+/* -+ * Securely generate a temp file, and make sure it gets -+ * deleted upon exit. -+ */ -+static char ** tempfiles; -+static unsigned ntempfiles; -+ -+static void -+cleanup_tempfiles() -+{ -+ while (ntempfiles--) -+ unlink(tempfiles[ntempfiles]); -+} -+ -+char * -+safe_tempnam(const char *pfx) -+{ -+ char *dirname, *filename; -+ int fd; -+ -+ if (!(dirname = getenv("TMPDIR"))) -+ dirname = "/tmp"; -+ -+ tempfiles = (char **) realloc(tempfiles, -+ (ntempfiles+1) * sizeof(char *)); -+ if (tempfiles == NULL) -+ return NULL; -+ -+ filename = malloc(strlen(dirname) + strlen(pfx) + sizeof("/XXXXXX")); -+ if (!filename) -+ return NULL; -+ -+ sprintf(filename, "%s/%sXXXXXX", dirname, pfx); -+ -+ if ((fd = mkstemp(filename)) < 0) { -+ free(filename); -+ return NULL; -+ } -+ close(fd); -+ -+ if (ntempfiles == 0) -+ atexit(cleanup_tempfiles); -+ tempfiles[ntempfiles++] = filename; -+ -+ return filename; -+} -Index: b/lib/routines.h -=================================================================== ---- a/lib/routines.h -+++ b/lib/routines.h -@@ -255,7 +255,8 @@ - /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */ - #define tempname_ensure(Str) \ - do { \ -- (Str) = (Str) ? (Str) : tempnam (NULL, "a2_"); \ -+ (Str) = (Str) ? (Str) : safe_tempnam("a2_"); \ - } while (0) -+char * safe_tempnam(const char *); - - #endif diff --git a/gnu/packages/patches/a2ps-CVE-2014-0466.patch b/gnu/packages/patches/a2ps-CVE-2014-0466.patch deleted file mode 100644 index 85199e35b0..0000000000 --- a/gnu/packages/patches/a2ps-CVE-2014-0466.patch +++ /dev/null @@ -1,30 +0,0 @@ -Description: CVE-2014-0466: fixps does not invoke gs with -dSAFER - A malicious PostScript file could delete files with the privileges of - the invoking user. -Origin: vendor -Bug-Debian: http://bugs.debian.org/742902 -Author: Salvatore Bonaccorso -Last-Update: 2014-03-28 - ---- a/contrib/fixps.in -+++ b/contrib/fixps.in -@@ -389,7 +389,7 @@ - eval "$command" ;; - gs) - $verbose "$program: making a full rewrite of the file ($gs)." >&2 -- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; -+ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; - esac - ) - fi ---- a/contrib/fixps.m4 -+++ b/contrib/fixps.m4 -@@ -307,7 +307,7 @@ - eval "$command" ;; - gs) - $verbose "$program: making a full rewrite of the file ($gs)." >&2 -- $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; -+ $gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; - esac - ) - fi diff --git a/gnu/packages/patches/a2ps-CVE-2015-8107.patch b/gnu/packages/patches/a2ps-CVE-2015-8107.patch deleted file mode 100644 index 5ea35d45da..0000000000 --- a/gnu/packages/patches/a2ps-CVE-2015-8107.patch +++ /dev/null @@ -1,80 +0,0 @@ -https://sources.debian.org/data/main/a/a2ps/1:4.14-2/debian/patches/fix-format-security.diff - -Index: b/lib/psgen.c -=================================================================== ---- a/lib/psgen.c -+++ b/lib/psgen.c -@@ -232,7 +232,7 @@ - default: - *buf = '\0'; - ps_escape_char (job, cp[i], buf); -- output (jdiv, (char *) buf); -+ output (jdiv, "%s", (char *) buf); - break; - } - } -Index: b/lib/output.c -=================================================================== ---- a/lib/output.c -+++ b/lib/output.c -@@ -525,7 +525,7 @@ - expand_user_string (job, FIRST_FILE (job), - (const uchar *) "Expand: requirement", - (const uchar *) token)); -- output (dest, expansion); -+ output (dest, "%s", expansion); - continue; - } - -Index: b/lib/parseppd.y -=================================================================== ---- a/lib/parseppd.y -+++ b/lib/parseppd.y -@@ -154,7 +154,7 @@ - void - yyerror (const char *msg) - { -- error_at_line (1, 0, ppdfilename, ppdlineno, msg); -+ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg); - } - - /* -Index: b/src/parsessh.y -=================================================================== ---- a/src/parsessh.y -+++ b/src/parsessh.y -@@ -740,7 +740,7 @@ - void - yyerror (const char *msg) - { -- error_at_line (1, 0, sshfilename, sshlineno, msg); -+ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg); - } - - /* -Index: b/lib/parseppd.c -=================================================================== ---- a/lib/parseppd.c -+++ b/lib/parseppd.c -@@ -1707,7 +1707,7 @@ - void - yyerror (const char *msg) - { -- error_at_line (1, 0, ppdfilename, ppdlineno, msg); -+ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg); - } - - /* -Index: b/src/parsessh.c -=================================================================== ---- a/src/parsessh.c -+++ b/src/parsessh.c -@@ -2639,7 +2639,7 @@ - void - yyerror (const char *msg) - { -- error_at_line (1, 0, sshfilename, sshlineno, msg); -+ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg); - } - - /* diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 7bc54c4a0b..365743261b 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -37,7 +37,9 @@ #:use-module (gnu packages) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) + #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gperf) @@ -52,34 +54,29 @@ (define-public a2ps (package (name "a2ps") - (version "4.14") + (version "4.15.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/a2ps/a2ps-" version ".tar.gz")) (sha256 (base32 - "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk")) + "1izpmbk3i66g8cn1bd3kdpk72vxn5ggy329xjvag5jsdxgh823nh")) (modules '((guix build utils))) (snippet ;; Remove timestamp from the installed 'README' file. '(begin (substitute* "etc/README.in" (("@date@") - "1st of some month, sometime after 1970")) - #t)) - (patches (search-patches - "a2ps-CVE-2001-1593.patch" - "a2ps-CVE-2014-0466.patch" - "a2ps-CVE-2015-8107.patch")))) + "1st of some month, sometime after 1970")))))) (build-system gnu-build-system) - (inputs - (list psutils gv)) - (native-inputs - (list gperf groff perl)) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'skip-failing-tests + (lambda _ + (substitute* (list "tests/Makefile.am" "tests/Makefile.in") + (("(encoding|prolog-2)\\.tst") "")))) (add-before 'build 'patch-scripts (lambda _ (substitute* @@ -108,6 +105,10 @@ "tests/gps-ref/psmandup.ps") (("#! */bin/sh") (string-append "#!" (which "sh"))))))))) + (native-inputs + (list gperf groff perl pkg-config)) + (inputs + (list file gv libgc libpaper psutils)) (home-page "https://www.gnu.org/software/a2ps/") (synopsis "Any file to PostScript, including pretty-printing") (description -- cgit v1.2.3 From 140c0f11b397370f70d1e303a75649377cf68d11 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 2 Apr 2023 12:49:40 +0200 Subject: home: Add gpg-agent service. * gnu/home/services/gnupg.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (GNU Privacy Guard): New node. (Secure Shell): Link to it. --- doc/guix.texi | 93 +++++++++++++++++++++++++-- gnu/home/services/gnupg.scm | 150 ++++++++++++++++++++++++++++++++++++++++++++ gnu/local.mk | 1 + 3 files changed, 240 insertions(+), 4 deletions(-) create mode 100644 gnu/home/services/gnupg.scm (limited to 'gnu/local.mk') diff --git a/doc/guix.texi b/doc/guix.texi index c0bd28fdae..ed42488882 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -41869,11 +41869,12 @@ services)}. * Power Management: Power Management Home Services. Services for battery power. * Shepherd: Shepherd Home Service. Managing User's Daemons. * SSH: Secure Shell. Setting up the secure shell client. +* GPG: GNU Privacy Guard. Setting up GPG and related tools. * Desktop: Desktop Home Services. Services for graphical environments. * Guix: Guix Home Services. Services for Guix. * Fonts: Fonts Home Services. Services for managing User's fonts. * Sound: Sound Home Services. Dealing with audio. -* Messaging: Messaging Home Services. Services for managing messaging. +* Messaging: Messaging Home Services. Services for managing messaging. * Media: Media Home Services. Services for managing media. @end menu @c In addition to that Home Services can provide @@ -42639,15 +42640,18 @@ The @uref{https://www.openssh.com, OpenSSH package} includes a daemon, the @command{ssh-agent} command, that manages keys to connect to remote machines using the @acronym{SSH, secure shell} protocol. With the @code{(gnu home services ssh-agent)} service, you can configure the -OpenSSH ssh-agent to run upon login. +OpenSSH ssh-agent to run upon login. @xref{GNU Privacy Guard, +@code{home-gpg-agent-service-type}}, for an alternative to OpenSSH's +@command{ssh-agent}. + Here is an example of a service and its configuration that you could add to the @code{services} field of your @code{home-environment}: @lisp (service home-ssh-agent-service-type - (home-ssh-agent-configuration - (extra-options '("-t" "1h30m")))) + (home-ssh-agent-configuration + (extra-options '("-t" "1h30m")))) @end lisp @defvar home-ssh-agent-service-type @@ -42672,6 +42676,87 @@ Extra options will be passed to @command{ssh-agent}, please run @end table @end deftp +@node GNU Privacy Guard +@subsection GNU Privacy Guard + +@cindex GNU Privacy Guard, Home service +@cindex GPG, Home service +The @code{(gnu home services gnupg)} modules provides services that help +you set up the GNU Privacy Guard, also known as GnuPG or GPG, in your +home environment. + +@cindex gpg-agent, Home service +@cindex SSH agent, with gpg-agent +The @code{gpg-agent} service configures and sets up GPG's agent, the +program that is responsible for managing OpenPGP private keys and, +optionally, OpenSSH (secure shell) private keys (@pxref{Invoking +GPG-AGENT,,, gnupg, Using the GNU Privacy Guard}). + +As an example, here is how you would configure @code{gpg-agent} with SSH +support such that it uses the Emacs-based Pinentry interface when +prompting for a passphrase: + +@lisp +(service home-gpg-agent-service-type + (home-gpg-agent-configuration + (pinentry-program + (file-append pinentry-emacs "/bin/pinentry-emacs")) + (ssh-support? #t))) +@end lisp + +The service reference is given below. + +@defvar home-gpg-agent-service-type +This is the service type for @command{gpg-agent} (@pxref{Invoking +GPG-AGENT,,, gnupg, Using the GNU Privacy Guard}). Its value must be a +@code{home-gpg-agent-configuration}, as shown below. +@end defvar + +@c %start of fragment + +@deftp {Data Type} home-gpg-agent-configuration +Available @code{home-gpg-agent-configuration} fields are: + +@table @asis +@item @code{gnupg} (default: @code{gnupg}) (type: file-like) +The GnuPG package to use. + +@item @code{pinentry-program} (type: file-like) +Pinentry program to use. Pinentry is a small user interface that +@command{gpg-agent} delegates to anytime it needs user input for a +passphrase or @acronym{PIN,personal identification number} +(@pxref{Top,,, pinentry,Using the PIN-Entry}). + +@item @code{ssh-support?} (default: @code{#f}) (type: boolean) +Whether to enable @acronym{SSH,secure shell} support. When true, +@command{gpg-agent} acts as a drop-in replacement for OpenSSH's +@command{ssh-agent} program, taking care of OpenSSH secret keys and +directing passphrase requests to the chosen Pinentry program. + +@item @code{default-cache-ttl} (default: @code{600}) (type: integer) +Time a cache entry is valid, in seconds. + +@item @code{max-cache-ttl} (default: @code{7200}) (type: integer) +Maximum time a cache entry is valid, in seconds. After this time a +cache entry will be expired even if it has been accessed recently. + +@item @code{default-cache-ttl-ssh} (default: @code{1800}) (type: integer) +Time a cache entry for SSH keys is valid, in seconds. + +@item @code{max-cache-ttl-ssh} (default: @code{7200}) (type: integer) +Maximum time a cache entry for SSH keys is valid, in seconds. + +@item @code{extra-content} (default: @code{""}) (type: raw-configuration-string) +Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}. + +@end table + +@end deftp + + +@c %end of fragment + + @node Desktop Home Services @subsection Desktop Home Services diff --git a/gnu/home/services/gnupg.scm b/gnu/home/services/gnupg.scm new file mode 100644 index 0000000000..7e9e02a3cc --- /dev/null +++ b/gnu/home/services/gnupg.scm @@ -0,0 +1,150 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu home services gnupg) + #:use-module (guix gexp) + #:use-module ((guix records) #:select (match-record)) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:autoload (gnu packages gnupg) (gnupg pinentry) + #:export (home-gpg-agent-configuration + home-gpg-agent-configuration? + home-gpg-agent-configuration-gnupg + home-gpg-agent-configuration-pinentry-program + home-gpg-agent-configuration-ssh-support? + home-gpg-agent-configuration-default-cache-ttl + home-gpg-agent-configuration-max-cache-ttl + home-gpg-agent-configuration-max-cache-ttl-ssh + home-gpg-agent-configuration-extra-content + + home-gpg-agent-service-type)) + +(define raw-configuration-string? string?) + +;; Configuration of 'gpg-agent'. +(define-configuration/no-serialization home-gpg-agent-configuration + (gnupg + (file-like gnupg) + "The GnuPG package to use.") + (pinentry-program + (file-like (file-append pinentry "/bin/pinentry-curses")) + "Pinentry program to use. Pinentry is a small user interface that +@command{gpg-agent} delegates to anytime it needs user input for a passphrase +or @acronym{PIN, personal identification number} (@pxref{Top,,, pinentry, +Using the PIN-Entry}).") + (ssh-support? + (boolean #f) + "Whether to enable @acronym{SSH, secure shell} support. When true, +@command{gpg-agent} acts as a drop-in replacement for OpenSSH's +@command{ssh-agent} program, taking care of OpenSSH secret keys and directing +passphrase requests to the chosen Pinentry program.") + (default-cache-ttl + (integer 600) + "Time a cache entry is valid, in seconds.") + (max-cache-ttl + (integer 7200) + "Maximum time a cache entry is valid, in seconds. After this time a cache +entry will be expired even if it has been accessed recently.") + (default-cache-ttl-ssh + (integer 1800) + "Time a cache entry for SSH keys is valid, in seconds.") + (max-cache-ttl-ssh + (integer 7200) + "Maximum time a cache entry for SSH keys is valid, in seconds.") + (extra-content + (raw-configuration-string "") + "Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}.")) + +(define (home-gpg-agent-configuration-file config) + "Return the @file{gpg-agent.conf} file for @var{config}." + (match-record config + (pinentry-program default-cache-ttl max-cache-ttl + default-cache-ttl-ssh max-cache-ttl-ssh + extra-content) + (mixed-text-file "gpg-agent.conf" + "pinentry-program " pinentry-program "\n" + "default-cache-ttl " + (number->string default-cache-ttl) "\n" + "max-cache-ttl " + (number->string max-cache-ttl) "\n" + "default-cache-ttl-ssh " + (number->string default-cache-ttl-ssh) "\n" + "max-cache-ttl-ssh " + (number->string max-cache-ttl-ssh) "\n" + extra-content))) + +(define (home-gpg-agent-shepherd-services config) + "Return the possibly-empty list of Shepherd services for @var{config}." + (match-record config + (gnupg ssh-support?) + ;; 'gpg-agent' is started on demand by GnuPG's programs, but it has to be + ;; started explicitly when OpenSSH support is enabled (info "(gnupg) Agent + ;; Options"). + (if ssh-support? + (let ((endpoint (lambda (name socket) + #~(endpoint + (make-socket-address + AF_UNIX + (string-append %user-runtime-dir + "/gnupg/" #$socket)) + #:name #$name + #:socket-directory-permissions #o700)))) + (list (shepherd-service + (provision '(gpg-agent ssh-agent)) + (modules '((shepherd support))) ;for '%user-runtime-dir' + (start #~(make-systemd-constructor + (list #$(file-append gnupg "/bin/gpg-agent") + "--supervised" "--enable-ssh-support") + (list #$(endpoint "ssh" "S.gpg-agent.ssh") + #$(endpoint "browser" "S.gpg-agent.browser") + #$(endpoint "extra" "S.gpg-agent.extra") + ;; #$(endpoint "scdaemon" "S.scdaemon") + #$(endpoint "std" "S.gpg-agent")))) + (stop #~(make-systemd-destructor)) + (documentation "Start 'gpg-agent', the GnuPG passphrase +agent, with support for handling OpenSSH material.")))) + '()))) + +(define (home-gpg-agent-files config) + `((".gnupg/gpg-agent.conf" ,(home-gpg-agent-configuration-file config)))) + +(define (home-gpg-agent-environment-variables config) + "Return GnuPG environment variables needed for @var{config}." + (if (home-gpg-agent-configuration-ssh-support? config) + `(("SSH_AUTH_SOCK" + . "$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh")) + '())) + +(define home-gpg-agent-service-type + (service-type + (name 'home-gpg-agent) + (extensions + (list (service-extension home-files-service-type + home-gpg-agent-files) + (service-extension home-shepherd-service-type + home-gpg-agent-shepherd-services) + (service-extension home-environment-variables-service-type + home-gpg-agent-environment-variables))) + (default-value (home-gpg-agent-configuration)) + (description + "Configure GnuPG's agent, @command{gpg-agent}, which is responsible for +managing OpenPGP and optionally SSH private keys. When SSH support is +enabled, @command{gpg-agent} acts as a drop-in replacement for OpenSSH's +@command{ssh-agent}."))) diff --git a/gnu/local.mk b/gnu/local.mk index baead7895d..a5ac123586 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -91,6 +91,7 @@ GNU_SYSTEM_MODULES = \ %D%/home/services/desktop.scm \ %D%/home/services/symlink-manager.scm \ %D%/home/services/fontutils.scm \ + %D%/home/services/gnupg.scm \ %D%/home/services/guix.scm \ %D%/home/services/media.scm \ %D%/home/services/messaging.scm \ -- cgit v1.2.3 From 4edf7d93ddfdadde198e75c160e83e30eaba44ae Mon Sep 17 00:00:00 2001 From: Felix Lechner Date: Mon, 10 Apr 2023 21:23:12 -0700 Subject: gnu: heimdal: Apply patch to fix CVE-2022-45142. Several recent Heimdal releases are affected by the serious vulnerability CVE-2022-45142, which NIST scored as "7.5 HIGH". [1] At the time of writing, the upstream developers had not yet cut any releases post-7.8.0, which is why the patch is being applied here. The patch was extracted from Helmut Grohne's public vulnerability disclosure. [2] [1] https://nvd.nist.gov/vuln/detail/CVE-2022-45142 [2] https://www.openwall.com/lists/oss-security/2023/02/08/1 * gnu/packages/patches/heimdal-CVE-2022-45142.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/kerberos.scm (heimdal)[source]: Apply it. Signed-off-by: Maxim Cournoyer --- gnu/local.mk | 1 + gnu/packages/kerberos.scm | 2 + gnu/packages/patches/heimdal-CVE-2022-45142.patch | 49 +++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 gnu/packages/patches/heimdal-CVE-2022-45142.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index a5ac123586..eeb26d34d0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1329,6 +1329,7 @@ dist_patch_DATA = \ %D%/packages/patches/hdf-eos5-remove-gctp.patch \ %D%/packages/patches/hdf-eos5-fix-szip.patch \ %D%/packages/patches/hdf-eos5-fortrantests.patch \ + %D%/packages/patches/heimdal-CVE-2022-45142.patch \ %D%/packages/patches/helm-fix-gcc-9-build.patch \ %D%/packages/patches/http-parser-CVE-2020-8287.patch \ %D%/packages/patches/htslib-for-stringtie.patch \ diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 6f3770db28..2035f16d71 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -176,6 +176,8 @@ After installation, the system administrator should generate keys using (sha256 (base32 "0f4dblav859p5hn7b2jdj1akw6d8p32as6bj6zym19kghh3s51zx")) + (patches + (search-patches "heimdal-CVE-2022-45142.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/heimdal-CVE-2022-45142.patch b/gnu/packages/patches/heimdal-CVE-2022-45142.patch new file mode 100644 index 0000000000..a7258a937c --- /dev/null +++ b/gnu/packages/patches/heimdal-CVE-2022-45142.patch @@ -0,0 +1,49 @@ +From: Helmut Grohne +Subject: [PATCH v3] CVE-2022-45142: gsskrb5: fix accidental logic inversions + +The referenced commit attempted to fix miscompilations with gcc-9 and +gcc-10 by changing `memcmp(...)` to `memcmp(...) != 0`. Unfortunately, +it also inverted the result of the comparison in two occasions. This +inversion happened during backporting the patch to 7.7.1 and 7.8.0. + +Fixes: f6edaafcfefd ("gsskrb5: CVE-2022-3437 Use constant-time memcmp() + for arcfour unwrap") +Signed-off-by: Helmut Grohne +--- + lib/gssapi/krb5/arcfour.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Changes since v1: + * Fix typo in commit message. + * Mention 7.8.0 in commit message. Thanks to Jeffrey Altman. + +Changes since v2: + * Add CVE identifier. + +NB (Felix Lechner): The message above and the patch below were taken from the +disclosure here: https://www.openwall.com/lists/oss-security/2023/02/08/1 + +diff --git a/lib/gssapi/krb5/arcfour.c b/lib/gssapi/krb5/arcfour.c +index e838d007a..eee6ad72f 100644 +--- a/lib/gssapi/krb5/arcfour.c ++++ b/lib/gssapi/krb5/arcfour.c +@@ -365,7 +365,7 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status, + return GSS_S_FAILURE; + } + +- cmp = (ct_memcmp(cksum_data, p + 8, 8) == 0); ++ cmp = (ct_memcmp(cksum_data, p + 8, 8) != 0); + if (cmp) { + *minor_status = 0; + return GSS_S_BAD_MIC; +@@ -730,7 +730,7 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status, + return GSS_S_FAILURE; + } + +- cmp = (ct_memcmp(cksum_data, p0 + 16, 8) == 0); /* SGN_CKSUM */ ++ cmp = (ct_memcmp(cksum_data, p0 + 16, 8) != 0); /* SGN_CKSUM */ + if (cmp) { + _gsskrb5_release_buffer(minor_status, output_message_buffer); + *minor_status = 0; +-- +2.38.1 -- cgit v1.2.3 From 35ec0a8e28558bab98d6ee041414d47cf93f55be Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 12 Apr 2023 09:55:49 -0400 Subject: gnu: python-afdko: Update to 3.9.4. * gnu/packages/fontutils.scm (python-afdko): Update to 3.9.4. [source]: Remove patch. [arguments]: Disable a few extra tests in the check phase override. Delete use-system-libxml2 phase. Update patch-problematic-requirements phase. * gnu/packages/patches/python-afdko-suppress-copyright-test.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - gnu/packages/fontutils.scm | 34 +++++++++------------- .../python-afdko-suppress-copyright-test.patch | 20 ------------- 3 files changed, 13 insertions(+), 42 deletions(-) delete mode 100644 gnu/packages/patches/python-afdko-suppress-copyright-test.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index eeb26d34d0..0849d32276 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1734,7 +1734,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-hurd-configure.patch \ %D%/packages/patches/python-3-no-static-lib.patch \ - %D%/packages/patches/python-afdko-suppress-copyright-test.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \ %D%/packages/patches/python-cross-compile.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 4118b1e8b5..6ff8daa06f 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2019, 2020, 2022 Marius Bakke ;;; Copyright © 2020 Roel Janssen ;;; Copyright © 2020, 2021 Nicolas Goaziou -;;; Copyright © 2021, 2022 Maxim Cournoyer +;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2022 Felipe Balbi ;;; @@ -139,14 +139,13 @@ them as it goes.") (define-public python-afdko (package (name "python-afdko") - (version "3.9.1") + (version "3.9.4") (source (origin (method url-fetch) (uri (pypi-uri "afdko" version)) (sha256 - (base32 "0k1204vykgx32saa495s1lgmz1dixcp8bjiv486imx77killvm02")) - (patches (search-patches "python-afdko-suppress-copyright-test.patch")) + (base32 "1d3b1590gxlindh1sjhwvxnryn5zil98hgdwbgsr76fd657r3f99")) (modules '((guix build utils))) (snippet #~(begin @@ -172,27 +171,13 @@ them as it goes.") (substitute* "CMakeLists.txt" (("CMAKE_CXX_STANDARD 11") "CMAKE_CXX_STANDARD 17")))) - (add-after 'unpack 'use-system-libxml2 - (lambda _ - ;; XXX: These horrifying substitutions revert this upstream - ;; PR: . - ;; Hopefully it's only temporary..! - (substitute* (find-files "." "^CMakeLists.txt$") - (("\\(\\(NOT \\$\\{LibXml2_FOUND\\}\\) OR \ -\"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)") - "(NOT ${LibXml2_FOUND})") - (("\\(\\(\\$\\{LibXml2_FOUND\\}\\) AND \ -\\(NOT \"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)\\)") - "(${LibXml2_FOUND})")) - (substitute* "cmake/ExternalLibXML2.cmake" - (("set\\(LIBXML2_STATIC_INCLUDE_DIR") - "set(LIBXML2_INCLUDE_DIR)")))) (add-after 'unpack 'patch-problematic-requirements (lambda _ (substitute* "requirements.txt" ;; Remove lxml because the version requested here is different ;; than the one propagated by the python-fonttools package. - (("^lxml==.*") "")))) + (("^lxml==.*") "") + (("<=4.38.0") ">=4.38.0")))) (add-after 'unpack 'patch-setup.py (lambda _ ;; There is no use for Python-provided CMake nor Ninja binaries. @@ -232,7 +217,14 @@ them as it goes.") (number->string (parallel-job-count)) ;; This test is known to fail on multiple architectures. ;; https://github.com/adobe-type-tools/afdko/issues/1163 - "-k not test_type1mm_inputs")))) + "-k" + (string-append + "not test_type1mm_inputs " + ;; These tests fail for unknown reasons (see: + ;; https://github.com/adobe-type-tools/afdko/issues/1635). + "and not test_rvrn_vf " + "and not test_cjk_vf " + "and not test_sparse_cjk_vf"))))) (add-after 'check 'wrap (assoc-ref %standard-phases 'wrap)) (add-before 'wrap 'wrap-PATH diff --git a/gnu/packages/patches/python-afdko-suppress-copyright-test.patch b/gnu/packages/patches/python-afdko-suppress-copyright-test.patch deleted file mode 100644 index 94cd73d5f7..0000000000 --- a/gnu/packages/patches/python-afdko-suppress-copyright-test.patch +++ /dev/null @@ -1,20 +0,0 @@ -Supress copyright check in tests which can differ based on current year. - - https://github.com/adobe-type-tools/afdko/issues/1589 - -Adapted from upstream: - - https://github.com/adobe-type-tools/afdko/commit/feebd77d9b6507a0b32f837535511be3c94d9c6f - -diff --git a/tests/tx_test.py b/tests/tx_test.py ---- a/tests/tx_test.py -+++ b/tests/tx_test.py -@@ -1246,7 +1246,7 @@ def test_ufo_fontinfo_parsing(file, msg, ret_code): - if (ret_code == 0): - expected_path = generate_ps_dump(expected_path) - output_path = generate_ps_dump(output_path) -- assert differ([expected_path, output_path]) -+ assert differ([expected_path, output_path, '-s'] + PFA_SKIP) - else: - arg = [TOOL, '-t1', '-f', ufo_input_path] - assert subprocess.call(arg) == 6 -- cgit v1.2.3