diff options
Diffstat (limited to 'gnu/packages/patches')
25 files changed, 676 insertions, 581 deletions
diff --git a/gnu/packages/patches/cmake-curl-certificates-3.24.patch b/gnu/packages/patches/cmake-curl-certificates-3.24.patch new file mode 100644 index 0000000000..ca29c9001e --- /dev/null +++ b/gnu/packages/patches/cmake-curl-certificates-3.24.patch @@ -0,0 +1,21 @@ +Submitted upstream at https://gitlab.kitware.com/cmake/cmake/-/merge_requests/7670. + +diff --git a/Source/cmCurl.cxx b/Source/cmCurl.cxx +index 28ee24dfe9..fc5405213a 100644 +--- a/Source/cmCurl.cxx ++++ b/Source/cmCurl.cxx +@@ -38,6 +38,14 @@ std::string cmCurlSetCAInfo(::CURL* curl, const std::string& cafile) + ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, cafile.c_str()); + check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); + } ++ /* Honor the user-configurable OpenSSL environment variables. */ ++ else if (cmSystemTools::GetEnv("SSL_CERT_FILE", e)) { ++ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, e.c_str()); ++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); ++ } else if (cmSystemTools::GetEnv("SSL_CERT_DIR", e)) { ++ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAPATH, e.c_str()); ++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); ++ } + #ifdef CMAKE_FIND_CAFILE + # define CMAKE_CAFILE_FEDORA "/etc/pki/tls/certs/ca-bundle.crt" + else if (cmSystemTools::FileExists(CMAKE_CAFILE_FEDORA, true)) { diff --git a/gnu/packages/patches/cmh-support-fplll.patch b/gnu/packages/patches/cmh-support-fplll.patch deleted file mode 100644 index fae04f456b..0000000000 --- a/gnu/packages/patches/cmh-support-fplll.patch +++ /dev/null @@ -1,27 +0,0 @@ -Patch from the CMH git, after the 1.1.0 release. - -From 2328c819317dda2171217002268f57c74cedc476 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emmanuel=20Thom=C3=A9?= <Emmanuel.Thome@inria.fr> -Date: Tue, 7 Jun 2022 12:17:05 -0700 -Subject: [PATCH] patch suggested by @x-YVicto - ---- - src/lll.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/lll.cpp b/src/lll.cpp -index 83dab07..f005931 100644 ---- a/src/lll.cpp -+++ b/src/lll.cpp -@@ -37,7 +37,7 @@ - #ifdef HAVE_FPLLL - static void lll_fplll (mpz_t *v, mpz_t **M, const int m, const int n) - { -- ZZ_mat <mpz_t> Mp (m, n); -+ fplll::ZZ_mat <mpz_t> Mp (m, n); - int i, j; - - for (i = 0; i < m; i++) --- -2.36.1 - diff --git a/gnu/packages/patches/emacs-kv-fix-tests.patch b/gnu/packages/patches/emacs-kv-fix-tests.patch new file mode 100644 index 0000000000..35a6bf004c --- /dev/null +++ b/gnu/packages/patches/emacs-kv-fix-tests.patch @@ -0,0 +1,30 @@ +From 4702849bfe7462fb6c6303786dac1b670c8f0f8f Mon Sep 17 00:00:00 2001 +From: Andrew Tropin <andrew@trop.in> +Date: Wed, 14 Sep 2022 09:17:31 +0300 +Subject: [PATCH] remove copypasted kvaq test + +--- + kv-tests.el | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/kv-tests.el b/kv-tests.el +index 1713e5e..abd6a24 100644 +--- a/kv-tests.el ++++ b/kv-tests.el +@@ -105,13 +105,6 @@ + (should-not (equal "b" (kvaq "a" '((:a . :b)("a" . "b"))))) + (should-not (kvaq "b" '((:a . :b)("a" . "b"))))) + +-(ert-deftest kvaq () +- "Test the simple assq." +- (should (equal :b (kvaq :a '((:a . :b)("a" . "b"))))) +- (should (equal 2 (kvaq 1 '((1 . 2)("a" . "b"))))) +- (should-not (equal "b" (kvaq "a" '((:a . :b)("a" . "b"))))) +- (should-not (kvaq "b" '((:a . :b)("a" . "b"))))) +- + (ert-deftest kvaqc () + "Test the simple assq." + (should (equal :b (kvaqc :a '((:a . :b)("a" . "b"))))) +-- +2.37.3 + diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch index 475352d8db..c70cc75d92 100644 --- a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch +++ b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch @@ -9,12 +9,13 @@ Content-Transfer-Encoding: 8bit - Emacs 28 has a new mode ‘lisp-data-mode’ for Lisp data. - A test that was temporarily broken passes again. - The default for ‘org-adapt-indentation’ has changed. +- buffer-list may be called with arguments when native-comp is enabled. --- - yasnippet-tests.el | 41 ++++++++++++++++++++++++++--------------- - 1 file changed, 26 insertions(+), 15 deletions(-) + yasnippet-tests.el | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/yasnippet-tests.el b/yasnippet-tests.el -index b8a7980f..9fadf00c 100644 +index f7ca2bb..7618ab7 100644 --- a/yasnippet-tests.el +++ b/yasnippet-tests.el @@ -1,6 +1,6 @@ @@ -55,7 +56,21 @@ index b8a7980f..9fadf00c 100644 ;; Some org-mode versions leave trailing whitespace, some don't. (delete-trailing-whitespace) (should (equal expected (buffer-string)))))) -@@ -1390,7 +1393,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ +@@ -1195,11 +1198,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ + (let ((saved-sym (make-symbol "yas--buffer-list"))) + `(let ((,saved-sym (symbol-function 'buffer-list))) + (cl-letf (((symbol-function 'buffer-list) +- (lambda () ++ (lambda (&rest args) + (cl-remove-if (lambda (buf) + (with-current-buffer buf + (eq major-mode 'lisp-interaction-mode))) +- (funcall ,saved-sym))))) ++ (funcall ,saved-sym args))))) + ,@body)))) + + +@@ -1356,7 +1359,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ ,@(if (fboundp 'prog-mode) '(prog-mode)) emacs-lisp-mode @@ -66,7 +81,7 @@ index b8a7980f..9fadf00c 100644 (observed (yas--modes-to-activate))) (should (equal major-mode (car observed))) (should (equal (sort expected #'string<) (sort observed #'string<)))))))) -@@ -1418,7 +1423,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ +@@ -1384,7 +1389,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \ '(prog-mode)) emacs-lisp-mode and-also-this-one @@ -79,7 +94,7 @@ index b8a7980f..9fadf00c 100644 (observed (yas--modes-to-activate))) (should (equal expected-first (cl-subseq observed 0 (length expected-first)))) -@@ -1691,9 +1700,11 @@ TODO: be meaner" +@@ -1657,9 +1666,11 @@ TODO: be meaner" "Test expansion of snippets in org source blocks." ;; org 9+ no longer runs fontification for text-mode, so our hacks ;; don't work. Note that old ert doesn't have skipping, so we have @@ -93,3 +108,6 @@ index b8a7980f..9fadf00c 100644 :passed :failed) (let ((text-mode-hook #'yas-minor-mode)) (do-yas-org-native-tab-in-source-block "text"))) +-- +2.37.2 + diff --git a/gnu/packages/patches/eog-update-libportal-usage.patch b/gnu/packages/patches/eog-update-libportal-usage.patch deleted file mode 100644 index 220a16ddc4..0000000000 --- a/gnu/packages/patches/eog-update-libportal-usage.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fix eog to work with libportal-0.5 - -This patch is extracted from upstream, see here -https://gitlab.gnome.org/GNOME/eog/-/commit/a06e6325907e136678b0bbe7058c25d688034afd - -diff --git a/meson.build b/meson.build -index 9a32e4bb..9d49aa45 100644 ---- a/meson.build -+++ b/meson.build -@@ -165,10 +165,14 @@ config_h.set('HAVE_EXEMPI', enable_xmp) - # xdg-desktop-portal support with libportal (optional) - enable_libportal = get_option('libportal') - if enable_libportal -- libportal_dep = dependency('libportal', version: '>= 0.3', required: false) -+ libportal_dep = dependency('libportal', version: '>= 0.5', required: false) - assert(libportal_dep.found() and cc.has_header('libportal/portal.h', dependencies: libportal_dep), - 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false') - -- common_deps += libportal_dep -+ libportal_gtk3_dep = dependency('libportal-gtk3', version: '>= 0.5', required: false) -+ assert(libportal_gtk3_dep.found() and cc.has_header('libportal-gtk3/portal-gtk3.h', dependencies: libportal_gtk3_dep), -+ 'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false') -+ -+ common_deps += [libportal_dep, libportal_gtk3_dep] - endif - config_h.set('HAVE_LIBPORTAL', enable_libportal) - -diff --git a/src/eog-util.c b/src/eog-util.c -index 90b9768e..56d23472 100644 ---- a/src/eog-util.c -+++ b/src/eog-util.c -@@ -45,7 +45,7 @@ - #include <glib/gi18n.h> - #ifdef HAVE_LIBPORTAL - #include <libportal/portal.h> --#include <libportal/portal-gtk3.h> -+#include <libportal-gtk3/portal-gtk3.h> - #endif - - void diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch index 8325b6102b..27f7035bfb 100644 --- a/gnu/packages/patches/gdm-default-session.patch +++ b/gnu/packages/patches/gdm-default-session.patch @@ -4,12 +4,14 @@ and not in the directories listed in $XDG_DATA_DIRS. The latter includes /run/current-system/profile, and only then. Fixes <https://bugs.gnu.org/37831>. ---- a/daemon/gdm-session.c 2021-07-23 15:16:15.164201000 +0000 -+++ b/daemon/gdm-session.c 2021-09-26 08:18:58.730134555 +0000 -@@ -354,25 +354,19 @@ +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index 4b709731..3b83fcd3 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -362,16 +362,15 @@ get_system_session_dirs (GdmSession *self, GArray *search_array = NULL; char **search_dirs; - int i; + int i, j; - const gchar * const *system_data_dirs = g_get_system_data_dirs (); static const char *x_search_dirs[] = { @@ -25,43 +27,44 @@ Fixes <https://bugs.gnu.org/37831>. search_array = g_array_new (TRUE, TRUE, sizeof (char *)); - if (type == NULL || g_str_equal (type, "x11")) { -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL); -- g_array_append_val (search_array, dir); -- } -- - g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs)); - } +@@ -380,11 +379,6 @@ get_system_session_dirs (GdmSession *self, -@@ -382,16 +376,7 @@ - #ifdef ENABLE_USER_DISPLAY_SERVER - g_array_prepend_val (search_array, wayland_search_dir); + if (g_str_equal (supported_type, "x11") && + (type == NULL || g_str_equal (type, supported_type))) { +- for (i = 0; system_data_dirs[i]; i++) { +- gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL); +- g_array_append_val (search_array, dir); +- } +- + g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs)); + } -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); -- g_array_insert_val (search_array, i, dir); -- } - #else -- for (i = 0; system_data_dirs[i]; i++) { -- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); -- g_array_append_val (search_array, dir); -- } +@@ -392,11 +386,6 @@ get_system_session_dirs (GdmSession *self, + #ifdef ENABLE_WAYLAND_SUPPORT + if (g_str_equal (supported_type, "wayland") && + (type == NULL || g_str_equal (type, supported_type))) { +- for (i = 0; system_data_dirs[i]; i++) { +- gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL); +- g_array_append_val (search_array, dir); +- } - - g_array_append_val (search_array, wayland_search_dir); + g_array_append_val (search_array, wayland_search_dir); + } #endif - } -diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c ---- a/libgdm/gdm-sessions.c 2019-10-07 04:53:35.000000000 -0400 -+++ b/libgdm/gdm-sessions.c 2020-04-18 18:31:42.491348691 -0400 -@@ -245,35 +245,23 @@ +diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c +index d8b4d5cd..7ed8de91 100644 +--- a/libgdm/gdm-sessions.c ++++ b/libgdm/gdm-sessions.c +@@ -275,7 +275,7 @@ collect_sessions (void) "/etc/X11/sessions/", DMCONFDIR "/Sessions/", DATADIR "/gdm/BuiltInSessions/", - DATADIR "/xsessions/", + "/run/current-system/profile/share/xsessions/" }; - + const gchar *supported_session_types_env = NULL; + g_auto (GStrv) supported_session_types = NULL; +@@ -288,29 +288,17 @@ collect_sessions (void) names_seen_before = g_hash_table_new (g_str_hash, g_str_equal); xorg_search_array = g_ptr_array_new_with_free_func (g_free); diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch index 39cd12dd22..5c8e3bd610 100644 --- a/gnu/packages/patches/gdm-elogind-support.patch +++ b/gnu/packages/patches/gdm-elogind-support.patch @@ -19,7 +19,7 @@ system and user units. 6 files changed, 66 insertions(+), 42 deletions(-) diff --git a/common/meson.build b/common/meson.build -index 074dd92e1..bca58f7c4 100644 +index 074dd92e..bca58f7c 100644 --- a/common/meson.build +++ b/common/meson.build @@ -11,7 +11,7 @@ libgdmcommon_src = files( @@ -32,10 +32,10 @@ index 074dd92e1..bca58f7c4 100644 gio_dep, gio_unix_dep, diff --git a/data/meson.build b/data/meson.build -index 7c5222eaf..403336c31 100644 +index 2dec4c23..c3452e1c 100644 --- a/data/meson.build +++ b/data/meson.build -@@ -168,41 +168,53 @@ else +@@ -164,41 +164,53 @@ else service_config.set('PLYMOUTH_QUIT_SERVICE', '') endif @@ -115,7 +115,7 @@ index 7c5222eaf..403336c31 100644 # XSession if get_option('gdm-xsession') diff --git a/libgdm/meson.build b/libgdm/meson.build -index 3f8cafbb7..83e95151b 100644 +index 3f8cafbb..83e95151 100644 --- a/libgdm/meson.build +++ b/libgdm/meson.build @@ -56,7 +56,7 @@ libgdm_deps = [ @@ -128,12 +128,12 @@ index 3f8cafbb7..83e95151b 100644 ] diff --git a/meson.build b/meson.build -index e6fcf4b8b..a86a486b7 100644 +index 845f673e..d0ca41ef 100644 --- a/meson.build +++ b/meson.build -@@ -92,21 +92,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp')) +@@ -96,21 +96,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp')) if xdmcp_dep.found() and get_option('tcp-wrappers') - libwrap_dep = cc.find_library('libwrap') + libwrap_dep = cc.find_library('wrap') endif -# systemd -systemd_dep = dependency('systemd') @@ -175,7 +175,7 @@ index e6fcf4b8b..a86a486b7 100644 # Plymouth plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth')) # Check for Solaris auditing API (ADT) -@@ -313,6 +322,7 @@ summary({ +@@ -319,6 +328,7 @@ summary({ 'PAM Syslog': have_pam_syslog, 'Supports PAM Extensions': pam_extensions_supported, 'SeLinux': libselinux_dep.found(), @@ -184,7 +184,7 @@ index e6fcf4b8b..a86a486b7 100644 'Use UserDisplayServer': get_option('user-display-server'), 'Use SystemdJournal': get_option('systemd-journal'), diff --git a/meson_options.txt b/meson_options.txt -index 14e0b908b..5135d7d66 100644 +index 14e0b908..5135d7d6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', value: 1, description: 'Initial virtual te @@ -206,6 +206,3 @@ index 14e0b908b..5135d7d66 100644 option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.') option('udev-dir', type: 'string', value: '', description: 'Directory for udev rules file.') option('user', type: 'string', value: 'gdm', description: 'GDM\'s username.') --- -GitLab - diff --git a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch index 4341e3fc30..2c095c8003 100644 --- a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch +++ b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch @@ -1,17 +1,11 @@ -From 444250fce55f916af993bc855930c6809686e4bd Mon Sep 17 00:00:00 2001 From: Josselin Poiret <dev@jpoiret.xyz> Date: Tue, 23 Nov 2021 18:39:39 +0000 Subject: [PATCH] Make GDM pass GDK_PIXBUF_MODULE_FILE to sessions - ---- - daemon/gdm-launch-environment.c | 1 + - 1 file changed, 1 insertion(+) - diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c -index 14ecfac2..3e618321 100644 +index 932c3e8a..a50dcc8c 100644 --- a/daemon/gdm-launch-environment.c +++ b/daemon/gdm-launch-environment.c -@@ -158,6 +158,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment, +@@ -157,6 +157,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment, "WINDOWPATH", "XCURSOR_PATH", "XDG_CONFIG_DIRS", @@ -19,6 +13,3 @@ index 14ecfac2..3e618321 100644 NULL }; char *system_data_dirs; --- -2.33.1 - diff --git a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch index 366fb91668..83d56ddf69 100644 --- a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch +++ b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch @@ -1,22 +1,28 @@ Remove check for hardcoded Xwayland path in gdm. ---- - daemon/gdm-local-display-factory.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c -index da1093bb..37355c06 100644 +index 7de7b99c..065325f4 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c -@@ -203,7 +203,7 @@ gdm_local_display_factory_use_wayland (void) +@@ -245,9 +245,9 @@ struct GdmDisplayServerConfiguration { + const char *session_type; + } display_server_configuration[] = { #ifdef ENABLE_WAYLAND_SUPPORT - gboolean wayland_enabled = FALSE; - if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) { -- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) -+ if (wayland_enabled) - return TRUE; - } +- { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" }, ++ { "wayland", GDM_KEY_WAYLAND_ENABLE, "", "wayland" }, #endif --- -2.33.0 - +- { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" }, ++ { "xorg", GDM_KEY_XORG_ENABLE, "", "x11" }, + { NULL, NULL, NULL }, + }; + +@@ -269,9 +269,6 @@ display_server_enabled (GdmLocalDisplayFactory *factory, + if (!gdm_settings_direct_get_boolean (key, &enabled) || !enabled) + return FALSE; + +- if (!g_file_test (binary, G_FILE_TEST_IS_EXECUTABLE)) +- return FALSE; +- + return TRUE; + } + diff --git a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch index 44ab6a9471..6ea0daf6a7 100644 --- a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch +++ b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch @@ -1,14 +1,10 @@ Get wayland-session wrapper from environment. ---- - daemon/gdm-session.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index 4e303e70..1deca4e9 100644 +index 3b83fcd3..e60e6a57 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c -@@ -2888,8 +2888,9 @@ gdm_session_start_session (GdmSession *self, +@@ -2933,8 +2933,9 @@ gdm_session_start_session (GdmSession *self, allow_remote_connections? "--allow-remote-connections " : "", command); } else { @@ -19,7 +15,7 @@ index 4e303e70..1deca4e9 100644 command); } } else if (run_xsession_script) { -@@ -2942,8 +2942,9 @@ +@@ -2965,8 +2966,9 @@ gdm_session_start_session (GdmSession *self, register_session ? "--register-session " : "", self->selected_program); } else { @@ -30,6 +26,3 @@ index 4e303e70..1deca4e9 100644 self->selected_program); } } else { --- -2.33.0 - diff --git a/gnu/packages/patches/geoclue-config.patch b/gnu/packages/patches/geoclue-config.patch index dd35b90be5..e4ef6f2d33 100644 --- a/gnu/packages/patches/geoclue-config.patch +++ b/gnu/packages/patches/geoclue-config.patch @@ -1,25 +1,27 @@ Allow the configuration file to be specified via an environment variable. ---- geoclue-2.1.10/src/gclue-config.c 2015-04-07 09:50:07.721074380 +0200 -+++ geoclue-2.1.10/src/gclue-config.c 2015-04-07 10:27:26.613171960 +0200 -@@ -235,6 +235,11 @@ +diff --git a/src/gclue-config.c b/src/gclue-config.c +index 7ab2a67..e41f3df 100644 +--- a/src/gclue-config.c ++++ b/src/gclue-config.c +@@ -332,6 +332,11 @@ static void gclue_config_init (GClueConfig *config) { GError *error = NULL; + const char *config_file_path; + + config_file_path = g_getenv ("GEOCLUE_CONFIG_FILE"); -+ if (config_file_path == NULL) -+ config_file_path = CONFIG_FILE_PATH; ++ if (!config_file_path) ++ config_file_path = CONFIG_FILE_PATH; - config->priv = - G_TYPE_INSTANCE_GET_PRIVATE (config, -@@ -242,7 +247,7 @@ - GClueConfigPrivate); + config->priv = gclue_config_get_instance_private(config); config->priv->key_file = g_key_file_new (); - g_key_file_load_from_file (config->priv->key_file, -- CONFIG_FILE_PATH, -+ config_file_path, - 0, +@@ -341,7 +346,7 @@ gclue_config_init (GClueConfig *config) &error); if (error != NULL) { + g_critical ("Failed to load configuration file '%s': %s", +- CONFIG_FILE_PATH, error->message); ++ config_file_path, error->message); + g_error_free (error); + + return; diff --git a/gnu/packages/patches/gnome-boxes-add-guix-logo.patch b/gnu/packages/patches/gnome-boxes-add-guix-logo.patch deleted file mode 100644 index e570675083..0000000000 --- a/gnu/packages/patches/gnome-boxes-add-guix-logo.patch +++ /dev/null @@ -1,32 +0,0 @@ -Taken from upstream commit: 9091c6849652fa083297bc12645d8c57a962874a. - -diff --git a/data/osinfo/guix-1.3.xml b/data/osinfo/guix-1.3.xml -new file mode 100644 -index 00000000..d4e1c167 ---- /dev/null -+++ b/data/osinfo/guix-1.3.xml -@@ -0,0 +1,9 @@ -+<libosinfo version="0.0.1"> -+ -+ <!-- Please read README.logos for any questions about usage of product logos in Boxes. !--> -+ -+ <os id="http://guix.gnu.org/guix/1.3"> -+ <logo>https://gitlab.gnome.org/GNOME/gnome-boxes-logos/-/raw/master/logos/guix.svg</logo> -+ </os> -+ -+</libosinfo> -diff --git a/data/osinfo/meson.build b/data/osinfo/meson.build -index 46ff1570..d5531e60 100644 ---- a/data/osinfo/meson.build -+++ b/data/osinfo/meson.build -@@ -7,6 +7,7 @@ osinfo_db = [ - ['freedos-1.2.xml', 'gnome-boxes/osinfo/os/freedos.org'], - ['gnome-nightly.xml', 'gnome-boxes/osinfo/os/gnome.org'], - ['gnome-3.38.xml', 'gnome-boxes/osinfo/os/gnome.org'], -+ ['guix-1.3.xml', 'gnome-boxes/osinfo/os/guix.gnu.org'], - ['manjaro-19.0.xml', 'gnome-boxes/osinfo/os/manjaro.org'], - ['nixos-20.03.xml', 'gnome-boxes/osinfo/os/nixos.org'], - ['opensuse-10.2.xml', 'gnome-boxes/osinfo/os/opensuse.org'], --- -2.34.0 - diff --git a/gnu/packages/patches/gnome-builder-update-libportal.patch b/gnu/packages/patches/gnome-builder-update-libportal.patch deleted file mode 100644 index 1cf7f32132..0000000000 --- a/gnu/packages/patches/gnome-builder-update-libportal.patch +++ /dev/null @@ -1,93 +0,0 @@ -From b3bfa0df53a3749c3b73cb6c4bad5cab3fa549a1 Mon Sep 17 00:00:00 2001 -From: Abderrahim Kitouni <akitouni@gnome.org> -Date: Sat, 25 Dec 2021 16:25:43 +0100 -Subject: [PATCH] build: use libportal 0.5 - -This partly reverts 2aea4bd7d0ced77a7d0778517b4505af5dea2dac ---- - build-aux/flatpak/org.gnome.Builder.json | 7 ++++--- - meson.build | 2 +- - src/gstyle/gstyle-color-panel.c | 2 +- - src/plugins/devhelp/gbp-devhelp-page.c | 2 +- - src/plugins/open-with-external/gbp-owe-workbench-addin.c | 2 +- - 5 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/build-aux/flatpak/org.gnome.Builder.json b/build-aux/flatpak/org.gnome.Builder.json -index 02ac31ede..a32d29b92 100644 ---- a/build-aux/flatpak/org.gnome.Builder.json -+++ b/build-aux/flatpak/org.gnome.Builder.json -@@ -601,15 +601,16 @@ - "name" : "libportal", - "config-opts" : [ - "--libdir=/app/lib", -- "--buildtype=debugoptimized" -+ "--buildtype=debugoptimized", -+ "-Dbackends=gtk3" - ], - "buildsystem" : "meson", - "builddir" : true, - "sources" : [ - { - "type" : "archive", -- "url" : "https://github.com/flatpak/libportal/releases/download/0.4/libportal-0.4.tar.xz", -- "sha256" : "3cd5f50907831cf236b40aa14c5a14ccbbf08828cecb3286efa82ce03cacef28" -+ "url" : "https://github.com/flatpak/libportal/releases/download/0.5/libportal-0.5.tar.xz", -+ "sha256" : "d8c8cb18a34e5eeb26a39c94044c955995b01de0e139caac5e18c076cf821b3b" - } - ] - }, -diff --git a/meson.build b/meson.build -index 01737034b..494e0d752 100644 ---- a/meson.build -+++ b/meson.build -@@ -284,7 +284,7 @@ libjsonrpc_glib_dep = dependency('jsonrpc-glib-1.0', version: '>= 3.41.0') - libm_dep = cc.find_library('m', required: false) - libpangoft2_dep = dependency('pangoft2', version: '>= 1.38.0') - libpeas_dep = dependency('libpeas-1.0', version: '>= 1.22.0') --libportal_dep = dependency('libportal', version: '>= 0.3', required: false) -+libportal_dep = dependency('libportal-gtk3', required: false) - libtemplate_glib_dep = dependency('template-glib-1.0', version: '>= 3.28.0') - libvte_dep = dependency('vte-2.91', version: '>= 0.65.0') - libwebkit_dep = dependency('webkit2gtk-4.0', version: '>= 2.26', required: false) -diff --git a/src/gstyle/gstyle-color-panel.c b/src/gstyle/gstyle-color-panel.c -index 15742a7be..a6295c168 100644 ---- a/src/gstyle/gstyle-color-panel.c -+++ b/src/gstyle/gstyle-color-panel.c -@@ -30,7 +30,7 @@ - #include "gstyle-color.h" - - #include <libportal/portal.h> --#include <libportal/portal-gtk3.h> -+#include <libportal-gtk3/portal-gtk3.h> - - #define HSV_TO_SCALE_FACTOR (1.0 / 256.0) - #define CIELAB_L_TO_SCALE_FACTOR (100.0 / 256.0) -diff --git a/src/plugins/devhelp/gbp-devhelp-page.c b/src/plugins/devhelp/gbp-devhelp-page.c -index 5d5c52b0d..2ac788414 100644 ---- a/src/plugins/devhelp/gbp-devhelp-page.c -+++ b/src/plugins/devhelp/gbp-devhelp-page.c -@@ -25,7 +25,7 @@ - #include <webkit2/webkit2.h> - - #include <libportal/portal.h> --#include <libportal/portal-gtk3.h> -+#include <libportal-gtk3/portal-gtk3.h> - - #include "gbp-devhelp-page.h" - #include "gbp-devhelp-search.h" -diff --git a/src/plugins/open-with-external/gbp-owe-workbench-addin.c b/src/plugins/open-with-external/gbp-owe-workbench-addin.c -index 51d2da844..816fe643f 100644 ---- a/src/plugins/open-with-external/gbp-owe-workbench-addin.c -+++ b/src/plugins/open-with-external/gbp-owe-workbench-addin.c -@@ -23,7 +23,7 @@ - #include "gbp-owe-workbench-addin.h" - - #include <libportal/portal.h> --#include <libportal/portal-gtk3.h> -+#include <libportal-gtk3/portal-gtk3.h> - - struct _GbpOweWorkbenchAddin - { --- -GitLab - diff --git a/gnu/packages/patches/gnome-screenshot-meson-0.60.patch b/gnu/packages/patches/gnome-screenshot-meson-0.60.patch deleted file mode 100644 index c80ce9d6a3..0000000000 --- a/gnu/packages/patches/gnome-screenshot-meson-0.60.patch +++ /dev/null @@ -1,39 +0,0 @@ -Fixes build issue with Meson 0.60.0. Taken from upstream -https://gitlab.gnome.org/GNOME/gnome-screenshot/-/merge_requests/57 - -From b60dad3c2536c17bd201f74ad8e40eb74385ed9f Mon Sep 17 00:00:00 2001 -From: Jack Hill <jackhill@jackhill.us> -Date: Thu, 18 Nov 2021 00:46:58 -0500 -Subject: [PATCH] meson: remove extraneous positional argument - -* data/meson.build (desktop_file) - (metainfo_file): Remove extraneous positional argument. - -Closes #186 ---- - data/meson.build | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/data/meson.build b/data/meson.build -index fd570b3..4e2e2e8 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -1,7 +1,6 @@ - gnome = import('gnome') - - desktop_file = i18n.merge_file( -- 'desktop', - type: 'desktop', - input: 'org.gnome.Screenshot.desktop.in', - output: 'org.gnome.Screenshot.desktop', -@@ -23,7 +22,6 @@ if desktop_file_validate.found() - endif - - metainfo_file = i18n.merge_file( -- 'appdata', - input: 'org.gnome.Screenshot.metainfo.xml.in', - output: 'org.gnome.Screenshot.metainfo.xml', - po_dir: join_paths(meson.current_source_dir(), '../po'), --- -2.33.1 - diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch new file mode 100644 index 0000000000..8bb86467c0 --- /dev/null +++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path-1.72.patch @@ -0,0 +1,173 @@ +Names of libraries included in typelib files are opened by dlopen. +Here we add the full path. + +This patch was provided by Luca Bruno <lucabru@src.gnome.org>, +for 'gobject-introspection' 1.40.0 in Nix. + +It has since been updated to work with newer versions of +gobject-introspection. + +diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py +index 1d39ab84..e12ed24e 100644 +--- a/giscanner/scannermain.py ++++ b/giscanner/scannermain.py +@@ -95,6 +95,39 @@ def get_windows_option_group(parser): + return group + + ++def _get_default_fallback_libpath(): ++ # Newer multiple-output-optimized stdenv has an environment variable ++ # $outputLib which in turn specifies another variable which then is used as ++ # the destination for the library contents (${!outputLib}/lib). ++ store_path = os.environ.get(os.environ.get("outputLib")) if "outputLib" in os.environ else None ++ if store_path is None: ++ outputs = os.environ.get("outputs", "out").split() ++ if "lib" in outputs: ++ # For multiple output derivations let's try whether there is a $lib ++ # environment variable and use that as the base store path. ++ store_path = os.environ.get("lib") ++ elif "out" in outputs: ++ # Otherwise we have a single output derivation, so the libraries ++ # most certainly will end up in "$out/lib". ++ store_path = os.environ.get("out") ++ ++ if store_path is not None: ++ # Even if we have a $lib as output, there still should be a $lib/lib ++ # directory. ++ return os.path.join(store_path, 'lib') ++ else: ++ # If we haven't found a possible scenario, let's return an empty string ++ # so that the shared library won't be prepended with a path. ++ # ++ # Note that this doesn't mean that all hope is lost, because after all ++ # we can still use --fallback-library-path to set one. ++ # ++ # Also, we're not returning None, because that would make it very ++ # difficult to disable adding fallback paths altogether using something ++ # like: --fallback-library-path="" ++ return "" ++ ++ + def _get_option_parser(): + parser = optparse.OptionParser('%prog [options] sources', + version='%prog ' + giscanner.__version__) +@@ -220,6 +253,10 @@ match the namespace prefix.""") + parser.add_option("", "--compiler", + action="store", dest="compiler", default=None, + help="the C compiler to use internally") ++ parser.add_option("", "--fallback-library-path", ++ action="store", dest="fallback_libpath", ++ default=_get_default_fallback_libpath(), ++ help="Path to prepend to unknown shared libraries") + + group = get_preprocessor_option_group(parser) + parser.add_option_group(group) +diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py +index 9f8ab5df..8aa37c99 100644 +--- a/giscanner/shlibs.py ++++ b/giscanner/shlibs.py +@@ -57,6 +57,14 @@ def _ldd_library_pattern(library_name): + $""" % re.escape(library_name), re.VERBOSE) + + ++def _ldd_library_guix_pattern(library_name): ++ store_dir = re.escape( ++ os.environ.get("NIX_STORE", default="/gnu/store") ++ ) ++ pattern = r'(%s(?:/[^/]*)+lib%s[^A-Za-z0-9_-][^\s\(\)]*)' ++ return re.compile(pattern % (store_dir, re.escape(library_name))) ++ ++ + # This is a what we do for non-la files. We assume that we are on an + # ELF-like system where ldd exists and the soname extracted with ldd is + # a filename that can be opened with dlopen(). +@@ -108,7 +116,8 @@ def _resolve_non_libtool(options, binary, libraries): + output = output.decode("utf-8", "replace") + + shlibs = resolve_from_ldd_output(libraries, output) +- return list(map(sanitize_shlib_path, shlibs)) ++ fallback_libpath = options.fallback_libpath or ""; ++ return list(map(lambda p: os.path.join(fallback_libpath, p), map(sanitize_shlib_path, shlibs))) + + + def sanitize_shlib_path(lib): +@@ -117,19 +126,18 @@ def sanitize_shlib_path(lib): + # In case we get relative paths on macOS (like @rpath) then we fall + # back to the basename as well: + # https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222 +- if sys.platform == "darwin": +- if not os.path.isabs(lib): +- return os.path.basename(lib) +- return lib +- else: ++ ++ # Always use absolute paths if available ++ if not os.path.isabs(lib): + return os.path.basename(lib) ++ return lib + + + def resolve_from_ldd_output(libraries, output): + patterns = {} + for library in libraries: + if not os.path.isfile(library): +- patterns[library] = _ldd_library_pattern(library) ++ patterns[library] = (_ldd_library_pattern(library), _ldd_library_guix_pattern(library)) + if len(patterns) == 0: + return [] + +@@ -141,8 +149,12 @@ def resolve_from_ldd_output(libraries, output): + if line.endswith(':'): + continue + for word in line.split(): +- for library, pattern in patterns.items(): +- m = pattern.match(word) ++ for library, (pattern, guix_pattern) in patterns.items(): ++ store_dir = os.environ.get("NIX_STORE", default="/gnu/store") ++ if line.find(store_dir) != -1: ++ m = guix_pattern.match(word) ++ else: ++ m = pattern.match(word) + if m: + del patterns[library] + shlibs.append(m.group()) +diff --git a/giscanner/utils.py b/giscanner/utils.py +index 31c7ea48..630002a8 100644 +--- a/giscanner/utils.py ++++ b/giscanner/utils.py +@@ -114,16 +114,11 @@ def extract_libtool_shlib(la_file): + if dlname is None: + return None + +- # Darwin uses absolute paths where possible; since the libtool files never +- # contain absolute paths, use the libdir field +- if platform.system() == 'Darwin': +- dlbasename = os.path.basename(dlname) +- libdir = _extract_libdir_field(la_file) +- if libdir is None: +- return dlbasename +- return libdir + '/' + dlbasename +- # Older libtools had a path rather than the raw dlname +- return os.path.basename(dlname) ++ dlbasename = os.path.basename(dlname) ++ libdir = _extract_libdir_field(la_file) ++ if libdir is None: ++ return dlbasename ++ return libdir + '/' + dlbasename + + + # Returns arguments for invoking libtool, if applicable, otherwise None +diff --git a/tests/scanner/test_shlibs.py b/tests/scanner/test_shlibs.py +index a8337c60..7f123103 100644 +--- a/tests/scanner/test_shlibs.py ++++ b/tests/scanner/test_shlibs.py +@@ -40,7 +40,8 @@ class TestLddParser(unittest.TestCase): + + self.assertEqual( + sanitize_shlib_path('/foo/bar'), +- '/foo/bar' if sys.platform == 'darwin' else 'bar') ++ # Always use an absolute filename for Guix ++ '/foo/bar') + + def test_unresolved_library(self): + output = '' diff --git a/gnu/packages/patches/gobject-introspection-cc-1.72.patch b/gnu/packages/patches/gobject-introspection-cc-1.72.patch new file mode 100644 index 0000000000..d3b1df82af --- /dev/null +++ b/gnu/packages/patches/gobject-introspection-cc-1.72.patch @@ -0,0 +1,15 @@ +Use gcc as the default C compiler if CC is not set. + +diff --git a/giscanner/__init__.py b/giscanner/__init__.py +index 7c2f365a..607fe341 100644 +--- a/giscanner/__init__.py ++++ b/giscanner/__init__.py +@@ -21,6 +21,8 @@ import os + builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR') + if builddir is not None: + __path__.append(os.path.join(builddir, 'giscanner')) # type: ignore # mypy issue #1422 ++if not 'CC' in os.environ: ++ os.environ['CC'] = 'gcc' + try: + from ._version import __version__ + except ImportError: diff --git a/gnu/packages/patches/gpaste-fix-paths.patch b/gnu/packages/patches/gpaste-fix-paths.patch index be63878fe6..bacecd61a9 100644 --- a/gnu/packages/patches/gpaste-fix-paths.patch +++ b/gnu/packages/patches/gpaste-fix-paths.patch @@ -1,5 +1,7 @@ This is copied from NixOS, which is under MIT licence. https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/ +diff --git a/src/gnome-shell/extension.js b/src/gnome-shell/extension.js +index c8773fd6..9efbed67 100644 --- a/src/gnome-shell/extension.js +++ b/src/gnome-shell/extension.js @@ -6,6 +6,8 @@ @@ -10,15 +12,34 @@ https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/ + imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; imports.gi.versions.GLib = '2.0'; - imports.gi.versions.GPaste = '1.0'; + imports.gi.versions.GPaste = '2'; +diff --git a/src/gnome-shell/prefs.js b/src/gnome-shell/prefs.js +index 32244ab2..74b85572 100644 --- a/src/gnome-shell/prefs.js +++ b/src/gnome-shell/prefs.js @@ -6,6 +6,8 @@ - const Gettext = imports.gettext; + imports.gi.versions.GPasteGtk = '4'; +imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); + - //const { GPaste } = imports.gi; - const ExtensionUtils = imports.misc.extensionUtils; + + const { GPasteGtk } = imports.gi; +diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpaste-settings.c +index 7e53eb64..57c399fc 100644 +--- a/src/libgpaste/gpaste/gpaste-settings.c ++++ b/src/libgpaste/gpaste/gpaste-settings.c +@@ -1013,7 +1013,11 @@ create_g_settings (void) + } + else + { +- return g_settings_new (G_PASTE_SETTINGS_NAME); ++ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library ++ GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL); ++ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE); ++ g_settings_schema_source_unref (schema_source); ++ return g_settings_new_full (schema, NULL, NULL); + } + } + diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch deleted file mode 100644 index 1c9d77cfba..0000000000 --- a/gnu/packages/patches/gspell-dash-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider -this a valid spelling. Skip it. - -TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed. -See https://bugzilla.gnome.org/show_bug.cgi?id=772406. ---- a/testsuite/test-checker.c 2017-03-24 09:50:50.000000000 -0400 -+++ b/testsuite/test-checker.c 2017-06-15 21:47:07.116173895 -0400 -@@ -105,10 +105,11 @@ - * be considered deprecated, it is better to use hunspell, so WONTFIX. - * For more details, see: - * https://bugzilla.gnome.org/show_bug.cgi?id=772406 -+ * -+ * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); -+ * g_assert_no_error (error); -+ * g_assert (correctly_spelled); - */ -- correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); -- g_assert_no_error (error); -- g_assert (correctly_spelled); - - correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error); - g_assert_no_error (error); diff --git a/gnu/packages/patches/hedgewars-network-bsd.patch b/gnu/packages/patches/hedgewars-network-bsd.patch deleted file mode 100644 index 311ce8bf09..0000000000 --- a/gnu/packages/patches/hedgewars-network-bsd.patch +++ /dev/null @@ -1,150 +0,0 @@ -From f813f3d5b63bb5be1b5e0b44930e77656c547aad Mon Sep 17 00:00:00 2001 -From: Jens Petersen <none@none> -Date: Wed, 8 Jul 2020 17:02:45 +0300 -Subject: [PATCH] update server network - ---- - gameServer/Actions.hs | 2 +- - gameServer/CMakeLists.txt | 3 ++- - gameServer/ClientIO.hs | 4 ++-- - gameServer/CoreTypes.hs | 2 +- - gameServer/OfficialServer/checker.hs | 5 ++--- - gameServer/Utils.hs | 6 +----- - gameServer/hedgewars-server.cabal | 3 ++- - gameServer/hedgewars-server.hs | 5 +++-- - 8 files changed, 14 insertions(+), 16 deletions(-) - -diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs -index 125d6ea832..c42d17b9a9 100644 ---- a/gameServer/Actions.hs -+++ b/gameServer/Actions.hs -@@ -709,7 +709,7 @@ processAction RestartServer = do - args <- gets (runArgs . serverInfo) - io $ do - noticeM "Core" "Closing listening socket" -- sClose sock -+ close sock - noticeM "Core" "Spawning new server" - _ <- createProcess (proc "./hedgewars-server" args) - return () -diff --git a/gameServer/CMakeLists.txt b/gameServer/CMakeLists.txt -index 5f2c882563..e71650c70c 100644 ---- a/gameServer/CMakeLists.txt -+++ b/gameServer/CMakeLists.txt -@@ -9,7 +9,8 @@ check_haskell_package_exists(base "Control.Exception" mask 1) - check_haskell_package_exists(containers "Data.Map" size 1) - check_haskell_package_exists(vector "Data.Vector" length 1) - check_haskell_package_exists(bytestring "Data.ByteString" pack 1) --check_haskell_package_exists(network "Network.BSD" getHostName 0) -+check_haskell_package_exists(network "Network.Socket" defaultHints 0) -+check_haskell_package_exists(network-bsd "Network.BSD" getHostName 0) - check_haskell_package_exists(time "Data.Time" getCurrentTime 0) - check_haskell_package_exists(mtl "Control.Monad.State" fix 1) - check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1) -diff --git a/gameServer/ClientIO.hs b/gameServer/ClientIO.hs -index 46dd40ed9f..0c97bde932 100644 ---- a/gameServer/ClientIO.hs -+++ b/gameServer/ClientIO.hs -@@ -23,7 +23,7 @@ import qualified Control.Exception as Exception - import Control.Monad.State - import Control.Concurrent.Chan - import Control.Concurrent --import Network -+import Network.Socket hiding (recv) - import Network.Socket.ByteString - import qualified Data.ByteString.Char8 as B - ---------------- -@@ -90,7 +90,7 @@ clientSendLoop s tId chan ci = do - sendAll s $ B.unlines answer `B.snoc` '\n' - - if isQuit answer then -- sClose s -+ close s - else - clientSendLoop s tId chan ci - -diff --git a/gameServer/CoreTypes.hs b/gameServer/CoreTypes.hs -index f547df483a..72f35807e3 100644 ---- a/gameServer/CoreTypes.hs -+++ b/gameServer/CoreTypes.hs -@@ -23,7 +23,7 @@ import Control.Concurrent - import Data.Word - import qualified Data.Map as Map - import Data.Time --import Network -+import Network.Socket - import Data.Function - import Data.ByteString.Char8 as B - import Data.Unique -diff --git a/gameServer/OfficialServer/checker.hs b/gameServer/OfficialServer/checker.hs -index 37df3208b9..b4ecb8fc57 100644 ---- a/gameServer/OfficialServer/checker.hs -+++ b/gameServer/OfficialServer/checker.hs -@@ -28,8 +28,7 @@ import System.Directory - import Control.Monad.State - import Control.Concurrent.Chan - import Control.Concurrent --import Network --import Network.BSD -+import Network.BSD hiding (recv) - import Network.Socket hiding (recv, sClose) - import Network.Socket.ByteString - import qualified Data.ByteString.Char8 as B -@@ -207,7 +206,7 @@ main = withSocketsDo . forever $ do - - Exception.bracket - setupConnection -- (\s -> noticeM "Core" "Shutting down" >> sClose s) -+ (\s -> noticeM "Core" "Shutting down" >> close s) - (session login password (d ++ "/.hedgewars") exeFullname dataPrefix) - where - setupConnection = do -diff --git a/gameServer/Utils.hs b/gameServer/Utils.hs -index 3d81b7f7c6..9fd80c01ba 100644 ---- a/gameServer/Utils.hs -+++ b/gameServer/Utils.hs -@@ -41,11 +41,7 @@ import CoreTypes - - - sockAddr2String :: SockAddr -> IO B.ByteString --sockAddr2String (SockAddrInet _ hostAddr) = liftM B.pack $ inet_ntoa hostAddr --sockAddr2String (SockAddrInet6 _ _ (a, b, c, d) _) = -- return $ B.pack $ (foldr1 (.) -- $ List.intersperse (':':) -- $ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n 65536) [a, b, c, d]) [] -+sockAddr2String = liftM (B.pack . fromJust . fst) . getNameInfo [] True False - - maybeRead :: Read a => String -> Maybe a - maybeRead s = case reads s of -diff --git a/gameServer/hedgewars-server.cabal b/gameServer/hedgewars-server.cabal -index 3c7f2418c9..9f764fd997 100644 ---- a/gameServer/hedgewars-server.cabal -+++ b/gameServer/hedgewars-server.cabal -@@ -57,7 +57,8 @@ Executable checker - containers, - vector, - bytestring, -- network >= 2.3 && < 3.0, -+ network >= 2.3, -+ network-bsd, - mtl >= 2, - sandi, - hslogger, -diff --git a/gameServer/hedgewars-server.hs b/gameServer/hedgewars-server.hs -index e47ae2891d..7e6ab8fa38 100644 ---- a/gameServer/hedgewars-server.hs -+++ b/gameServer/hedgewars-server.hs -@@ -50,10 +50,11 @@ server si = do - proto <- getProtocolNumber "tcp" - E.bracket - (socket AF_INET Stream proto) -- sClose -+ close - (\sock -> do - setSocketOption sock ReuseAddr 1 -- bindSocket sock (SockAddrInet (listenPort si) iNADDR_ANY) -+ iNADDR_ANY <- addrAddress . head <$> getAddrInfo Nothing (Just "0") (Just (show (listenPort si))) -+ bind sock iNADDR_ANY - listen sock maxListenQueue - startServer si{serverSocket = Just sock} - ) diff --git a/gnu/packages/patches/libgda-cve-2021-39359.patch b/gnu/packages/patches/libgda-cve-2021-39359.patch new file mode 100644 index 0000000000..5e14e79393 --- /dev/null +++ b/gnu/packages/patches/libgda-cve-2021-39359.patch @@ -0,0 +1,33 @@ +From bebdffb4de586fb43fd07ac549121f4b22f6812d Mon Sep 17 00:00:00 2001 +From: "Douglas R. Reno" <renodr@linuxfromscratch.org> +Date: Mon, 18 Oct 2021 13:18:01 -0500 +Subject: [PATCH] Fix CVE-2021-39359 by forcing TLS certificate validation + +This was done by adding "ssl-use-system-ca-file", TRUE to the options +for each soup_session_new_with_options() call that was made. + +Tested on Linux From Scratch 11.0 and Debian 11. + +Fixes #249 +--- + providers/web/gda-web-provider.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/providers/web/gda-web-provider.c b/providers/web/gda-web-provider.c +index cf8d14dc3..cc818895f 100644 +--- a/providers/web/gda-web-provider.c ++++ b/providers/web/gda-web-provider.c +@@ -355,8 +355,8 @@ gda_web_provider_open_connection (GdaServerProvider *provider, GdaConnection *cn + g_rec_mutex_init (& (cdata->mutex)); + cdata->server_id = NULL; + cdata->forced_closing = FALSE; +- cdata->worker_session = soup_session_new (); +- cdata->front_session = soup_session_new_with_options ("max-conns-per-host", 1, NULL); ++ cdata->worker_session = soup_session_new_with_options ("ssl-use-system-ca-file", TRUE, NULL); ++ cdata->front_session = soup_session_new_with_options ("max-conns-per-host", 1, "ssl-use-system-ca-file", TRUE, NULL); + if (use_ssl) { + server_url = g_string_new ("https://"); + g_print ("USING SSL\n"); +-- +GitLab + diff --git a/gnu/packages/patches/libgda-fix-build.patch b/gnu/packages/patches/libgda-fix-build.patch new file mode 100644 index 0000000000..35f5b9694b --- /dev/null +++ b/gnu/packages/patches/libgda-fix-build.patch @@ -0,0 +1,131 @@ +Taken from upstream. + +From 4c2369083c5941ffada100e4a7e4702e681585e3 Mon Sep 17 00:00:00 2001 +From: taozuhong <taozuhong@gmail.com> +Date: Tue, 11 Jan 2022 15:03:28 +0800 +Subject: [PATCH] fixed compile error + +--- + libgda/Gda-6.0-custom.vala | 3 +++ + libgda/sql-parser/lemon.c | 39 +++++++++++++++++++------------------- + 2 files changed, 22 insertions(+), 20 deletions(-) + +diff --git a/libgda/Gda-6.0-custom.vala b/libgda/Gda-6.0-custom.vala +index d046c5c24..4d1408648 100644 +--- a/libgda/Gda-6.0-custom.vala ++++ b/libgda/Gda-6.0-custom.vala +@@ -92,7 +92,10 @@ namespace Gda { + [CCode (cheader_filename = "libgda.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gda_sql_statement_get_type ()")] + [Compact] + public class SqlStatement { ++ #if VALA_0_50 ++ #else + public static Gda.SqlStatementContentsInfo get_contents_infos (Gda.SqlStatementType type); ++ #endif + } + + } +diff --git a/libgda/sql-parser/lemon.c b/libgda/sql-parser/lemon.c +index a6fe75bb9..a3c727777 100644 +--- a/libgda/sql-parser/lemon.c ++++ b/libgda/sql-parser/lemon.c +@@ -11,6 +11,7 @@ + #include <string.h> + #include <ctype.h> + #include <stdlib.h> ++#include <stdint.h> + #include <assert.h> + #include <gio/gio.h> + +@@ -40,7 +41,7 @@ static const char **made_files = NULL; + static int made_files_count = 0; + static int successful_exit = 0; + +-static char *msort(char*,char**,int(*)(const char*,const char*)); ++static uintptr_t msort(uintptr_t, uintptr_t*, int(*)(const uintptr_t, const uintptr_t)); + + /* + ** Compilers are getting increasingly pedantic about type conversions +@@ -396,8 +397,7 @@ static int actioncmp( + static struct action *Action_sort( + struct action *ap + ){ +- ap = (struct action *)msort((char *)ap,(char **)&ap->next, +- (int(*)(const char*,const char*))actioncmp); ++ ap = (struct action *)msort(ap, &ap->next, actioncmp); + return ap; + } + +@@ -1277,14 +1277,14 @@ void Configlist_closure(struct lemon *lemp) + + /* Sort the configuration list */ + void Configlist_sort(){ +- current = (struct config *)msort((char *)current,(char **)&(current->next),Configcmp); ++ current = (struct config *)msort(current, &(current->next), Configcmp); + currentend = 0; + return; + } + + /* Sort the basis configuration list */ + void Configlist_sortbasis(){ +- basis = (struct config *)msort((char *)current,(char **)&(current->bp),Configcmp); ++ basis = (struct config *)msort(current, &(current->bp), Configcmp); + basisend = 0; + return; + } +@@ -1577,7 +1577,7 @@ int main(G_GNUC_UNUSED int argc, char **argv) + /* + ** Return a pointer to the next structure in the linked list. + */ +-#define NEXT(A) (*(char**)(((unsigned long)A)+offset)) ++#define NEXT(A) (*(uintptr_t *)(((uintptr_t)A)+offset)) + + /* + ** Inputs: +@@ -1594,13 +1594,13 @@ int main(G_GNUC_UNUSED int argc, char **argv) + ** The "next" pointers for elements in the lists a and b are + ** changed. + */ +-static char *merge( +- char *a, +- char *b, +- int (*cmp)(const char*,const char*), +- int offset ++static uintptr_t merge( ++ uintptr_t a, ++ uintptr_t b, ++ int (*cmp)(const uintptr_t, const uintptr_t), ++ uintptr_t offset + ){ +- char *ptr, *head; ++ uintptr_t ptr, *head; + + if( a==0 ){ + head = b; +@@ -1646,16 +1646,15 @@ static char *merge( + ** The "next" pointers for elements in list are changed. + */ + #define LISTSIZE 30 +-static char *msort( +- char *list, +- char **next, +- int (*cmp)(const char*,const char*) ++static uintptr_t msort( ++ uintptr_t list, ++ uintptr_t *next, ++ int (*cmp)(const uintptr_t, const uintptr_t) + ){ +- unsigned long offset; +- char *ep; +- char *set[LISTSIZE]; ++ uintptr_t ep; ++ uintptr_t set[LISTSIZE]; + int i; +- offset = (unsigned long)next - (unsigned long)list; ++ uintptr_t offset = (uintptr_t)next - (uintptr_t)list; + for(i=0; i<LISTSIZE; i++) set[i] = 0; + while( list ){ + ep = list; +-- +GitLab + diff --git a/gnu/packages/patches/libgda-fix-missing-initialization.patch b/gnu/packages/patches/libgda-fix-missing-initialization.patch new file mode 100644 index 0000000000..59c4a21e28 --- /dev/null +++ b/gnu/packages/patches/libgda-fix-missing-initialization.patch @@ -0,0 +1,26 @@ +Taken from upstream. + +From a4a3930ecfc4dc815b7a18dbb7338c165ea08f4e Mon Sep 17 00:00:00 2001 +From: Pavlo Solntsev <p.sun.fun@gmail.com> +Date: Sun, 19 Sep 2021 22:54:33 -0500 +Subject: [PATCH] Test: Fixing missing initialization + +--- + libgda/thread-wrapper/test-itsignaler.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libgda/thread-wrapper/test-itsignaler.c b/libgda/thread-wrapper/test-itsignaler.c +index d0c15ae17..7ac4e958a 100644 +--- a/libgda/thread-wrapper/test-itsignaler.c ++++ b/libgda/thread-wrapper/test-itsignaler.c +@@ -203,6 +203,7 @@ test2 (void) + CbData cbdata; + cbdata.counter = 0; + cbdata.loop = loop; ++ cbdata.its = its; + itsignaler_add (its, NULL, (ITSignalerFunc) source_callback, &cbdata, NULL); + itsignaler_unref (its); + g_mutex_unlock (&mutex); +-- +GitLab + diff --git a/gnu/packages/patches/libgda-skip-postgresql-tests.patch b/gnu/packages/patches/libgda-skip-postgresql-tests.patch new file mode 100644 index 0000000000..28fef585ac --- /dev/null +++ b/gnu/packages/patches/libgda-skip-postgresql-tests.patch @@ -0,0 +1,91 @@ +Taken from upstream. + +From b0cd77e588620465b78f7c017d3f240e13936aa3 Mon Sep 17 00:00:00 2001 +From: Pavlo Solntsev <p.sun.fun@gmail.com> +Date: Sun, 19 Sep 2021 22:51:38 -0500 +Subject: [PATCH] Test: Skip test if no server available + +Two variables will be checked. If they set +and provide all needed information the test +will be executed. If they are not set, the test +will return TRUE and will terminate with +termination status EXIT_SUCCESS. +--- + tests/db/check-db-catalog-postgresql.c | 16 ++++++++++++++++ + tests/test-server-operation-postgresql.c | 16 ++++++++++++++++ + 2 files changed, 32 insertions(+) + +diff --git a/tests/db/check-db-catalog-postgresql.c b/tests/db/check-db-catalog-postgresql.c +index 5b8e9395c..bf9a8942c 100644 +--- a/tests/db/check-db-catalog-postgresql.c ++++ b/tests/db/check-db-catalog-postgresql.c +@@ -25,6 +25,9 @@ + #include <libgda/libgda.h> + #include "../test-cnc-utils.h" + ++#define PROVIDER_DB_CREATE_PARAMS "POSTGRESQL_DBCREATE_PARAMS" ++#define PROVIDER_CNC_PARAMS "POSTGRESQL_CNC_PARAMS" ++ + typedef struct { + GdaDbCatalog *catalog; + GdaConnection *cnc; +@@ -359,6 +362,19 @@ main (gint argc, + { + setlocale (LC_ALL,""); + ++ const gchar *db_create_str; ++ const gchar *cnc_params; ++ ++ db_create_str = g_getenv (PROVIDER_DB_CREATE_PARAMS); ++ cnc_params = g_getenv (PROVIDER_CNC_PARAMS); ++ ++ if (!db_create_str || !cnc_params) { ++ g_print ("Please set POSTGRESQL_DBCREATE_PARAMS and POSTGRESQL_CNC_PARAMS variable" ++ "with dbname, host, user and port (usually 5432)\n"); ++ g_print ("Test will not be performed\n"); ++ return EXIT_SUCCESS; ++ } ++ + g_test_init (&argc,&argv,NULL); + + g_test_add ("/test-db-postgresql/meta-tables", +diff --git a/tests/test-server-operation-postgresql.c b/tests/test-server-operation-postgresql.c +index 37796c4be..860f41a18 100644 +--- a/tests/test-server-operation-postgresql.c ++++ b/tests/test-server-operation-postgresql.c +@@ -38,9 +38,12 @@ + #include <glib/gi18n.h> + #include <locale.h> + #include <libgda/libgda.h> ++/*#include <stdlib.h>*/ + #include "test-cnc-utils.h" + + #define PROVIDER_NAME "PostgreSQL" ++#define PROVIDER_DB_CREATE_PARAMS "POSTGRESQL_DBCREATE_PARAMS" ++#define PROVIDER_CNC_PARAMS "POSTGRESQL_CNC_PARAMS" + + #define GDA_PGSQL_ERROR_HANDLE(e) (g_print("Error: %s: %s\n", G_STRLOC, e && e->message ? e->message : "No default")); + +@@ -1335,6 +1338,19 @@ main(gint argc, gchar *argv[]) + { + setlocale (LC_ALL,""); + ++ const gchar *db_create_str; ++ const gchar *cnc_params; ++ ++ db_create_str = g_getenv (PROVIDER_DB_CREATE_PARAMS); ++ cnc_params = g_getenv (PROVIDER_CNC_PARAMS); ++ ++ if (!db_create_str || !cnc_params) { ++ g_print ("Please set POSTGRESQL_DBCREATE_PARAMS and POSTGRESQL_CNC_PARAMS variable" ++ "with dbname, host, user and port (usually 5432)\n"); ++ g_print ("Test will not be performed\n"); ++ return EXIT_SUCCESS; ++ } ++ + g_test_init (&argc,&argv,NULL); + + g_test_add ("/test-server-operation-sqlite/old-so-module", +-- +GitLab + diff --git a/gnu/packages/patches/nautilus-add-libportal-gtk3.patch b/gnu/packages/patches/nautilus-add-libportal-gtk3.patch deleted file mode 100644 index cefa47cc64..0000000000 --- a/gnu/packages/patches/nautilus-add-libportal-gtk3.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 55cfd66ccca391fc144f5863ff6bfc1f3b137e2d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= <antoniojpfernandes@gmail.com> -Date: Tue, 21 Dec 2021 17:42:27 +0000 -Subject: [PATCH] general: Add libportal-gtk3 dependency - -The portal-gtk3.h header has been moved into a separate library which -binds gtk3 explicitly. - -https://github.com/flatpak/libportal/pull/53 ---- - build-aux/flatpak/org.gnome.Nautilus.json | 5 +++-- ;; Changes removed in Guix - build-aux/flatpak/org.gnome.Nautilus.yml | 3 ++- ;; Changes removed in Guix - meson.build | 4 +++- - src/meson.build | 1 + - src/nautilus-files-view.c | 2 +- - 5 files changed, 10 insertions(+), 5 deletions(-) - -diff --git a/meson.build b/meson.build -index 927216636..4626fa0bb 100644 ---- a/meson.build -+++ b/meson.build -@@ -122,8 +122,10 @@ gnome_desktop = dependency('gnome-desktop-3.0', version: '>= 3.0.0') - gtk = dependency('gtk+-3.0', version: '>= 3.22.27') - libhandy = dependency('libhandy-1', version: '>= 1.1.90') - libportal = [] -+libportal_gtk3 = [] - if get_option('libportal') -- libportal = dependency('libportal', version: '>= 0.3') -+ libportal = dependency('libportal', version: '>= 0.5') -+ libportal_gtk3 = dependency('libportal-gtk3', version: '>= 0.5') - endif - selinux = [] - if get_option('selinux') -diff --git a/src/meson.build b/src/meson.build -index 682d6f3a3..d7fb76d53 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -285,6 +285,7 @@ nautilus_deps = [ - libgd_dep, - libhandy, - libportal, -+ libportal_gtk3, - nautilus_extension, - selinux, - tracker_sparql, -diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c -index dfb7fb26c..a24005a11 100644 ---- a/src/nautilus-files-view.c -+++ b/src/nautilus-files-view.c -@@ -93,7 +93,7 @@ - - #ifdef HAVE_LIBPORTAL - #include <libportal/portal.h> --#include <libportal/portal-gtk3.h> -+#include <libportal-gtk3/portal-gtk3.h> - #endif - - /* Minimum starting update inverval */ --- -GitLab - diff --git a/gnu/packages/patches/network-manager-plugin-path.patch b/gnu/packages/patches/network-manager-plugin-path.patch index ec6767aaac..cd2447cf03 100644 --- a/gnu/packages/patches/network-manager-plugin-path.patch +++ b/gnu/packages/patches/network-manager-plugin-path.patch @@ -3,39 +3,47 @@ From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@gnu.org> Date: Wed, 3 Jul 2019 13:31:54 +0200 Subject: [PATCH] respect NM_VPN_PLUGIN_DIR ---- a/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:20:01.062917840 -0400 -+++ b/src/core/vpn/nm-vpn-manager.c 2021-10-29 13:26:46.094397018 -0400 -@@ -211,6 +211,7 @@ - GSList * infos, *info; - const char * conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc(); - const char * conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib(); -+ const char * conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user (); +Rebased by Maxim Cournoyer on 2022/08/23. + +diff --git a/src/core/vpn/nm-vpn-manager.c b/src/core/vpn/nm-vpn-manager.c +index 6bf8edaee5..9bd960ba86 100644 +--- a/src/core/vpn/nm-vpn-manager.c ++++ b/src/core/vpn/nm-vpn-manager.c +@@ -209,8 +209,9 @@ nm_vpn_manager_init(NMVpnManager *self) + NMVpnManagerPrivate *priv = NM_VPN_MANAGER_GET_PRIVATE(self); + GFile *file; + GSList *infos, *info; +- const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc(); +- const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib(); ++ const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc(); ++ const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib(); ++ const char *conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user(); /* Watch the VPN directory for changes */ file = g_file_new_for_path(conf_dir_lib); -@@ -229,6 +230,14 @@ +@@ -229,6 +230,14 @@ nm_vpn_manager_init(NMVpnManager *self) g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self); } -+ file = g_file_new_for_path (conf_dir_user); -+ priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL); -+ g_object_unref (file); ++ file = g_file_new_for_path(conf_dir_user); ++ priv->monitor_etc = g_file_monitor_directory(file, G_FILE_MONITOR_NONE, NULL, NULL); ++ g_object_unref(file); + if (priv->monitor_etc) { + priv->monitor_id_etc = -+ g_signal_connect (priv->monitor_etc, "changed", G_CALLBACK (vpn_dir_changed), self); ++ g_signal_connect(priv->monitor_etc, "changed", G_CALLBACK(vpn_dir_changed), self); + } + /* first read conf_dir_lib. The name files are not really user configuration, but * plugin configuration. Hence we expect ~newer~ plugins to install their files * in /usr/lib/NetworkManager. We want to prefer those files. -@@ -243,6 +252,11 @@ +@@ -243,6 +252,11 @@ nm_vpn_manager_init(NMVpnManager *self) try_add_plugin(self, info->data); g_slist_free_full(infos, g_object_unref); + infos = _nm_vpn_plugin_info_list_load_dir(conf_dir_user, TRUE, 0, NULL, NULL); + for (info = infos; info; info = info->next) -+ try_add_plugin (self, info->data); -+ g_slist_free_full (infos, g_object_unref); ++ try_add_plugin(self, info->data); ++ g_slist_free_full(infos, g_object_unref); + priv->active_services = g_hash_table_new_full(nm_str_hash, g_str_equal, g_free, NULL); } |