From 75a7fc8791ecd1cc722a619da6dda285ddfaa0c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Fri, 8 Sep 2023 00:28:21 +0100 Subject: [PATCH] Use "grep -E" instead of the obsoleted "egrep" - Resolves: BZ#2140197 - mark LICENSE as %license - Spec cleanup - Small patches, as a rule, are in git dist, to be more easy to read. --- .gitignore | 17 ---- 0001-open-for-post-1.1.3-development.patch | 37 +++++++++ ...tter-pcmanfm-check-BR106636-BR106161.patch | 38 +++++++++ 0003-xdg-email-Support-for-Deepin.patch | 82 +++++++++++++++++++ ...store-matching-of-older-deepin-names.patch | 27 ++++++ 0005-xdg-open-handle-file-localhost.patch | 61 ++++++++++++++ ...-lib.sh-run-eat-xdg-open-s-exit-code.patch | 45 ++++++++++ ...dg-terminal-needs-gsettings-to-get-t.patch | 38 +++++++++ ...-which-is-the-default-for-gnome-mate.patch | 67 +++++++++++++++ ...Sanitise-window-name-before-sending-.patch | 41 ++++++++++ 0010-xdg-su-fix-some-easy-TODOs.patch | 60 ++++++++++++++ 0011-xdg-open-fix-comment-typo.patch | 40 +++++++++ ...screensaver-for-xdg-aware-desktop-en.patch | 26 ++++++ 0013-support-digits-in-uri-scheme-regex.patch | 30 +++++++ ...e-return-correct-exit-code-for-GNOME.patch | 40 +++++++++ ...en-dose-not-search-correctly-in-dire.patch | 40 +++++++++ ...-support-for-default-web-browser-for.patch | 59 +++++++++++++ ...rep-E-instead-of-the-obsoleted-egrep.patch | 30 +++++++ sources | 17 ---- xdg-utils.spec | 24 +++--- 20 files changed, 775 insertions(+), 44 deletions(-) create mode 100644 0001-open-for-post-1.1.3-development.patch create mode 100644 0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch create mode 100644 0003-xdg-email-Support-for-Deepin.patch create mode 100644 0004-Restore-matching-of-older-deepin-names.patch create mode 100644 0005-xdg-open-handle-file-localhost.patch create mode 100644 0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch create mode 100644 0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch create mode 100644 0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch create mode 100644 0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch create mode 100644 0010-xdg-su-fix-some-easy-TODOs.patch create mode 100644 0011-xdg-open-fix-comment-typo.patch create mode 100644 0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch create mode 100644 0013-support-digits-in-uri-scheme-regex.patch create mode 100644 0014-xdg-mime-return-correct-exit-code-for-GNOME.patch create mode 100644 0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch create mode 100644 0016-Fix-xdg-settings-support-for-default-web-browser-for.patch create mode 100644 0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch diff --git a/.gitignore b/.gitignore index 32b5887..5029ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,3 @@ /xdg-utils-1.1.3.tar.gz /xdg-utils-1.1.3.tar.gz.md5sum /xdg-utils-1.1.3.tar.gz.sha1sum -/0001-open-for-post-1.1.3-development.patch -/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch -/0003-xdg-email-Support-for-Deepin.patch -/0004-Restore-matching-of-older-deepin-names.patch -/0005-xdg-open-handle-file-localhost.patch -/0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch -/0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch -/0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch -/0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch -/0010-xdg-su-fix-some-easy-TODOs.patch -/0011-xdg-open-fix-comment-typo.patch -/0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch -/0013-support-digits-in-uri-scheme-regex.patch -/0014-xdg-mime-return-correct-exit-code-for-GNOME.patch -/0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch -/0016-Fix-xdg-settings-support-for-default-web-browser-for.patch -/0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch diff --git a/0001-open-for-post-1.1.3-development.patch b/0001-open-for-post-1.1.3-development.patch new file mode 100644 index 0000000..0472e21 --- /dev/null +++ b/0001-open-for-post-1.1.3-development.patch @@ -0,0 +1,37 @@ +From 0b73fb82ccf178d496bd8da5b8c0a6906b14d030 Mon Sep 17 00:00:00 2001 +From: Rex Dieter +Date: Sun, 13 May 2018 08:40:55 -0500 +Subject: [PATCH 1/2] open for post 1.1.3 development + +--- + ChangeLog | 3 +++ + scripts/xdg-utils-common.in | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index c9eaeea..6864f88 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,6 @@ ++=== xdg-utils 1.1.4 === ++ ++ + === xdg-utils 1.1.3 === + + 2018-05-10 +diff --git a/scripts/xdg-utils-common.in b/scripts/xdg-utils-common.in +index 9cfc8a3..a8abed8 100644 +--- a/scripts/xdg-utils-common.in ++++ b/scripts/xdg-utils-common.in +@@ -245,7 +245,7 @@ check_common_commands() + ;; + + --version) +- echo "@NAME@ 1.1.3" ++ echo "@NAME@ 1.1.3+" + exit_success + ;; + esac +-- +2.17.0 + diff --git a/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch b/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch new file mode 100644 index 0000000..f5ed02e --- /dev/null +++ b/0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch @@ -0,0 +1,38 @@ +From 31525d3855f876ddf2e29091b2e8d376f923e09e Mon Sep 17 00:00:00 2001 +From: Rex Dieter +Date: Thu, 24 May 2018 14:40:53 -0500 +Subject: [PATCH 2/2] xdg-open: better pcmanfm check (BR106636,BR106161) + +--- + ChangeLog | 2 ++ + scripts/xdg-open.in | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/ChangeLog b/ChangeLog +index 6864f88..3eed7c4 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,5 +1,7 @@ + === xdg-utils 1.1.4 === + ++2018-05-24 ++ * xdg-open: better pcmanfm check (BR106636,BR106161) + + === xdg-utils 1.1.3 === + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 630e63e..bf9da4c 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -451,7 +451,7 @@ open_lxde() + { + + # pcmanfm only knows how to handle file:// urls and filepaths, it seems. +- if pcmanfm --help >/dev/null 2>&1 -a is_file_url_or_path "$1"; then ++ if pcmanfm --help >/dev/null 2>&1 && is_file_url_or_path "$1"; then + local file="$(file_url_to_path "$1")" + + # handle relative paths +-- +2.17.0 + diff --git a/0003-xdg-email-Support-for-Deepin.patch b/0003-xdg-email-Support-for-Deepin.patch new file mode 100644 index 0000000..8ab0ba8 --- /dev/null +++ b/0003-xdg-email-Support-for-Deepin.patch @@ -0,0 +1,82 @@ +From 56991bc165577f011f9ad7ca721c5a5134710e33 Mon Sep 17 00:00:00 2001 +From: Alberto Salvia Novella +Date: Tue, 11 Sep 2018 02:26:39 +0200 +Subject: [PATCH 03/16] xdg-email: Support for Deepin + +--- + ChangeLog | 6 ++++++ + scripts/xdg-email.in | 2 +- + scripts/xdg-open.in | 6 +++--- + scripts/xdg-utils-common.in | 5 ++--- + 4 files changed, 12 insertions(+), 7 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 3eed7c4..1c6b4c1 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,9 @@ ++=== xdg-utils 1.1.5 === ++ ++2018-09-11 Alberto Salvia Novella ++ * all: Deepin Desktop name standarised as "deepin" ++ * xdg-email: Support for Deepin (BR107877) ++ + === xdg-utils 1.1.4 === + + 2018-05-24 +diff --git a/scripts/xdg-email.in b/scripts/xdg-email.in +index 3614776..6db58ad 100644 +--- a/scripts/xdg-email.in ++++ b/scripts/xdg-email.in +@@ -472,7 +472,7 @@ case "$DE" in + open_gnome "${mailto}" + ;; + +- gnome3|cinnamon|lxde|mate) ++ gnome3|cinnamon|lxde|mate|deepin) + open_gnome3 "${mailto}" + ;; + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index bf9da4c..4928538 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -142,7 +142,7 @@ open_kde() + fi + } + +-open_dde() ++open_deepin() + { + if dde-open -version >/dev/null 2>&1; then + dde-open "$1" +@@ -524,8 +524,8 @@ case "$DE" in + open_kde "$url" + ;; + +- dde) +- open_dde "$url" ++ deepin) ++ open_deepin "$url" + ;; + + gnome3|cinnamon) +diff --git a/scripts/xdg-utils-common.in b/scripts/xdg-utils-common.in +index a8abed8..7d2c49c 100644 +--- a/scripts/xdg-utils-common.in ++++ b/scripts/xdg-utils-common.in +@@ -288,9 +288,8 @@ detectDE() + KDE) + DE=kde; + ;; +- # Deepin Desktop Environments +- DEEPIN|Deepin|deepin) +- DE=dde; ++ Deepin) ++ DE=deepin; + ;; + LXDE) + DE=lxde; +-- +2.31.1 + diff --git a/0004-Restore-matching-of-older-deepin-names.patch b/0004-Restore-matching-of-older-deepin-names.patch new file mode 100644 index 0000000..8fdc457 --- /dev/null +++ b/0004-Restore-matching-of-older-deepin-names.patch @@ -0,0 +1,27 @@ +From 74776910981b60877d25b1ab9587e5928af1e9c4 Mon Sep 17 00:00:00 2001 +From: Rex Dieter +Date: Thu, 13 Sep 2018 10:48:28 -0500 +Subject: [PATCH 04/16] Restore matching of older deepin names + +Reverts a small part of prior commit +56991bc165577f011f9ad7ca721c5a5134710e33 +--- + scripts/xdg-utils-common.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/xdg-utils-common.in b/scripts/xdg-utils-common.in +index 7d2c49c..b4333e2 100644 +--- a/scripts/xdg-utils-common.in ++++ b/scripts/xdg-utils-common.in +@@ -288,7 +288,7 @@ detectDE() + KDE) + DE=kde; + ;; +- Deepin) ++ DEEPIN|Deepin|deepin) + DE=deepin; + ;; + LXDE) +-- +2.31.1 + diff --git a/0005-xdg-open-handle-file-localhost.patch b/0005-xdg-open-handle-file-localhost.patch new file mode 100644 index 0000000..0ca69d1 --- /dev/null +++ b/0005-xdg-open-handle-file-localhost.patch @@ -0,0 +1,61 @@ +From 186966735dcccd61afde937118f27043bd084f57 Mon Sep 17 00:00:00 2001 +From: Richard Tollerton +Date: Thu, 10 Jan 2019 15:41:08 -0600 +Subject: [PATCH 05/16] xdg-open: handle file://localhost/ + +Presently, file://localhost/ URLs are totally unsupported: is_file_url_or_path +correctly considers them files, but they are undecoded and hence +check_input_file fails. + +While the standardization surrounding file: URLs is admittedly vague [1], AFAIK, +*all* literature, and other implementations, unambiguously demonstrate that +file://localhost/ should be equivalent to file:///: + +- The "File URI specification" explicitly linked to from the xdg-utils homepage [2] +- RFC 8089 section 1.1 +- RFC 1738 section 3.10 +- Observed implementations of Windows `start`, macOS `open`, Firefox, Chrome, IE + +Fix this by adding some simple carve-outs for file://localhost specifically in +file_url_to_path. + +[1] https://lists.freedesktop.org/archives/xdg/2004-November/003711.html +[2] https://edeproject.org/spec/file-uri-spec.txt + +Signed-off-by: Richard Tollerton +--- + autotests/t-xdg-open.sh | 6 ++++++ + scripts/xdg-open.in | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/autotests/t-xdg-open.sh b/autotests/t-xdg-open.sh +index 810bdc3..0d4b8d2 100755 +--- a/autotests/t-xdg-open.sh ++++ b/autotests/t-xdg-open.sh +@@ -155,3 +155,9 @@ test_generic_open_file 'test#file.txt' + + test_that_it opens files with spaces in their name in generic mode + test_generic_open_file 'test file.txt' ++ ++test_that_it opens file://localhost/ paths ++mock pcmanfm ++touch $LABDIR/file.txt ++run lxde xdg-open file://localhost$(pwd)/$LABDIR/file%2etxt ++assert_run pcmanfm $(pwd)/$LABDIR/file.txt +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 4928538..09ef6d8 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -84,7 +84,8 @@ is_file_url_or_path() + file_url_to_path() + { + local file="$1" +- if echo "$file" | grep -q '^file:///'; then ++ if echo "$file" | grep -q '^file://\(localhost\)\?/'; then ++ file=${file#file://localhost} + file=${file#file://} + file=${file%%#*} + file=$(echo "$file" | sed -r 's/\?.*$//') +-- +2.31.1 + diff --git a/0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch b/0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch new file mode 100644 index 0000000..9a57a9a --- /dev/null +++ b/0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch @@ -0,0 +1,45 @@ +From af7b34a6d3b77b7c9565fa7b396c7da676aa2fec Mon Sep 17 00:00:00 2001 +From: Richard Tollerton +Date: Thu, 10 Jan 2019 16:31:38 -0600 +Subject: [PATCH 06/16] test-lib.sh: run: eat xdg-open's exit code + +It was observed that t-xdg-open.sh exits after only a fraction of the tests have +been run, e.g. + +ASSERTION FAILED: expected command to be run: gio open http://www.freedesktop.org/ +ASSERTION FAILED: expected command to be run: gio open http://www.freedesktop.org/ + - opens a URL with gvfs-open if gio open is missing in GNOME 3, GNOME 2, and Cinnamon +gio: http://www.freedesktop.org/: Operation not supported +make: *** [Makefile:21: t-xdg-open.sh] Error 4 + +Given that some tests are failing on my machine (likely because of the +peculiarities of my archlinux install), the root cause is `set -e`. The nonzero +exit code returned by xdg-open gets returned by run(), which is also returned by +e.g. test_open_url(), which causes the script to exit immediately. + +All test passes/failures at present are being defined by explicit assertions, +not by exit codes, and it seems at least plausible that some xdg-open calls are +meant to fail. So rather than report the nonzero error code, just ignore it, and +trust that the assertions determine the results. + +Signed-off-by: Richard Tollerton +--- + autotests/test-lib.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/autotests/test-lib.sh b/autotests/test-lib.sh +index 5ea01b3..ca3b10b 100644 +--- a/autotests/test-lib.sh ++++ b/autotests/test-lib.sh +@@ -213,7 +213,7 @@ run() { + XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS \ + DISPLAY=x \ + BROWSER="$BROWSER" \ +- $trace ../scripts/$cmd "$@" ++ $trace ../scripts/$cmd "$@" ||: + } + + echo "* Testing that $COMMAND_TESTED" +-- +2.31.1 + diff --git a/0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch b/0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch new file mode 100644 index 0000000..97ef5cc --- /dev/null +++ b/0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch @@ -0,0 +1,38 @@ +From 755e1f27c58016507053d192351666862905b3cc Mon Sep 17 00:00:00 2001 +From: Ronan Arraes Jardim Chagas +Date: Tue, 19 Mar 2019 15:12:58 +1030 +Subject: [PATCH 07/16] Fix a bug when xdg-terminal needs gsettings to get the + default terminal + +xdg-terminal is not working when it needs gsettings to obtain the +default terminal. Thus, xdg-terminal cannot be used in MATE, Cinnamon +or GNOME. This issue was already reported in: +https://bugs.freedesktop.org/show_bug.cgi?id=93231 + +Thus, this patch provides a temporary workaround until upstream fixes +it. + +Link: https://bugs.freedesktop.org/show_bug.cgi?id=93231 +Signed-off-by: Simon Lees +--- + scripts/xdg-terminal.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/scripts/xdg-terminal.in b/scripts/xdg-terminal.in +index f67897d..221487c 100644 +--- a/scripts/xdg-terminal.in ++++ b/scripts/xdg-terminal.in +@@ -86,8 +86,8 @@ terminal_gsettings() + { + term_schema="$1"; shift + +- term_exec=`gsettings get ${term_schema} exec` +- term_exec_arg=`gsettings get ${term_schema} exec-arg` ++ term_exec=`gsettings get ${term_schema} exec | sed -r "s/^'(.*)'$/\1/"` ++ term_exec_arg=`gsettings get ${term_schema} exec-arg | sed -r "s/^'(.*)'$/\1/"` + + terminal_exec=`which $term_exec 2>/dev/null` + +-- +2.31.1 + diff --git a/0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch b/0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch new file mode 100644 index 0000000..121bd2d --- /dev/null +++ b/0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch @@ -0,0 +1,67 @@ +From acdf8909f2bf65ca20e69ab1e6bc6854d54b333d Mon Sep 17 00:00:00 2001 +From: "sor.alexei@meowr.ru" +Date: Tue, 19 Mar 2019 15:13:38 +1030 +Subject: [PATCH 08/16] Fixes -x argument, which is the default for + {gnome,mate}-terminal + +Signed-off-by: Simon Lees +--- + scripts/xdg-terminal.in | 34 +++++++++++++++++++++++----------- + 1 file changed, 23 insertions(+), 11 deletions(-) + +diff --git a/scripts/xdg-terminal.in b/scripts/xdg-terminal.in +index 221487c..36a9833 100644 +--- a/scripts/xdg-terminal.in ++++ b/scripts/xdg-terminal.in +@@ -65,11 +65,17 @@ terminal_gnome() + if [ x"$1" = x"" ]; then + $terminal_exec + else +- if [ x"$term_exec_arg" = x"" ]; then +- $terminal_exec "$1" +- else +- $terminal_exec "$term_exec_arg" "$1" +- fi ++ case "$term_exec_arg" in ++ "") ++ "$terminal_exec" "$1" ++ ;; ++ *-x*) ++ "$terminal_exec" "$term_exec_arg" sh -c "$1" ++ ;; ++ *) ++ "$terminal_exec" "$term_exec_arg" "$1" ++ ;; ++ esac + fi + + if [ $? -eq 0 ]; then +@@ -93,13 +99,19 @@ terminal_gsettings() + + if [ -x "$terminal_exec" ]; then + if [ x"$1" = x"" ]; then +- $terminal_exec ++ "$terminal_exec" + else +- if [ x"$term_exec_arg" = x"" ]; then +- $terminal_exec "$1" +- else +- $terminal_exec "$term_exec_arg" "$1" +- fi ++ case "$term_exec_arg" in ++ "") ++ "$terminal_exec" "$1" ++ ;; ++ *-x*) ++ "$terminal_exec" "$term_exec_arg" sh -c "$1" ++ ;; ++ *) ++ "$terminal_exec" "$term_exec_arg" "$1" ++ ;; ++ esac + fi + + if [ $? -eq 0 ]; then +-- +2.31.1 + diff --git a/0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch b/0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch new file mode 100644 index 0000000..6be4931 --- /dev/null +++ b/0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch @@ -0,0 +1,41 @@ +From 455d066182546b37984e6b9719bde2347bf6fa94 Mon Sep 17 00:00:00 2001 +From: Iain Lane +Date: Tue, 2 Oct 2018 10:29:03 +0100 +Subject: [PATCH 09/16] xdg-screensaver: Sanitise window name before sending it + over the bus + +libdbus expects string arguments to be valid UTF-8. If they are not, +then it aborts, which causes our backgrounded command to terminate +abnormally. + +Signed-off-by: Simon Lees +--- + scripts/xdg-screensaver.in | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/scripts/xdg-screensaver.in b/scripts/xdg-screensaver.in +index 9e68196..ccb4307 100644 +--- a/scripts/xdg-screensaver.in ++++ b/scripts/xdg-screensaver.in +@@ -468,6 +468,7 @@ screensaver_gnome_screensaver() + perl -e ' + use strict; + use warnings; ++use Encode qw(decode); + use IO::File; + use Net::DBus; + use X11::Protocol; +@@ -489,6 +490,10 @@ while (1) { + } + } + ++# Replace any invalid unicode characters with U+FFFD, so we dont crash when we ++# pass them over to D-Bus ++$window_name = decode("utf8", $window_name, Encode::FB_DEFAULT); ++ + # Inhibit idle detection (flags = 8) with window name and ID. + # We have no reason so just send the window name again. + my $bus = Net::DBus->session(); +-- +2.31.1 + diff --git a/0010-xdg-su-fix-some-easy-TODOs.patch b/0010-xdg-su-fix-some-easy-TODOs.patch new file mode 100644 index 0000000..6bd38ba --- /dev/null +++ b/0010-xdg-su-fix-some-easy-TODOs.patch @@ -0,0 +1,60 @@ +From 0801b7104c46ac2eff07bf8b867f7d45c74963c2 Mon Sep 17 00:00:00 2001 +From: Reuben Thomas +Date: Sun, 30 Oct 2016 06:21:53 +0000 +Subject: [PATCH 10/16] xdg-su: fix some easy TODOs + +Although xdg-su is not currently shipped, fix some trivial documentation +TODOs. + +Signed-off-by: Simon Lees +--- + TODO | 3 --- + scripts/desc/xdg-su.xml | 11 ++++++++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/TODO b/TODO +index 183ea6c..a4f3b17 100644 +--- a/TODO ++++ b/TODO +@@ -16,9 +16,6 @@ General + * Add xdg-autostart + + xdg-su: +-* The summary is incorrect, it suggests that it can only run things as +-root which is incorrect according to the main body of the document. +-* The -c option is listed in the synopsis, but not in options. + * It would be useful if it was possible to distinguish between a failure + because of a bad password or some other failure. + * use sudo style syntax, drop -c option +diff --git a/scripts/desc/xdg-su.xml b/scripts/desc/xdg-su.xml +index 53a0f32..b4e1b7e 100644 +--- a/scripts/desc/xdg-su.xml ++++ b/scripts/desc/xdg-su.xml +@@ -30,7 +30,7 @@ + + + xdg-su +- run a GUI program as root after prompting for the root password ++ run a GUI program as another user (typically root) after prompting for that user's password + + + +@@ -67,6 +67,15 @@ + + Options + ++ ++ ++ ++ ++ the command to run. This argument is mandatory. ++ ++ ++ ++ + + + +-- +2.31.1 + diff --git a/0011-xdg-open-fix-comment-typo.patch b/0011-xdg-open-fix-comment-typo.patch new file mode 100644 index 0000000..45ecc8f --- /dev/null +++ b/0011-xdg-open-fix-comment-typo.patch @@ -0,0 +1,40 @@ +From 15144f8abd0bfd7de23b18a282f539d1e9c79ef9 Mon Sep 17 00:00:00 2001 +From: Reuben Thomas +Date: Sun, 30 Oct 2016 06:12:45 +0000 +Subject: [PATCH 11/16] xdg-open: fix comment typo +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Also bump Rex Dieter’s copyright date + +Signed-off-by: Simon Lees +--- + scripts/xdg-open.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 09ef6d8..c38e1e0 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -7,7 +7,7 @@ + # Refer to the usage() function below for usage. + # + # Copyright 2009-2010, Fathi Boudra +-# Copyright 2009-2010, Rex Dieter ++# Copyright 2009-2016, Rex Dieter + # Copyright 2006, Kevin Krammer + # Copyright 2006, Jeremy White + # +@@ -510,7 +510,7 @@ fi + + DEBUG 2 "Selected DE $DE" + +-# sanitize BROWSER (avoid caling ourselves in particular) ++# sanitize BROWSER (avoid calling ourselves in particular) + case "${BROWSER}" in + *:"xdg-open"|"xdg-open":*) + BROWSER=$(echo $BROWSER | sed -e 's|:xdg-open||g' -e 's|xdg-open:||g') +-- +2.31.1 + diff --git a/0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch b/0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch new file mode 100644 index 0000000..84b0da6 --- /dev/null +++ b/0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch @@ -0,0 +1,26 @@ +From 7f5349ea485fa9e0a4cb69dc645fbaf9ce3cec2e Mon Sep 17 00:00:00 2001 +From: mvdlinde +Date: Sun, 3 Mar 2019 16:20:48 +0000 +Subject: [PATCH 12/16] Enable cinnamon screensaver for xdg aware desktop + environments (eg lxqt) + +--- + scripts/xdg-screensaver.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/scripts/xdg-screensaver.in b/scripts/xdg-screensaver.in +index 9e68196..bc5c4ee 100644 +--- a/scripts/xdg-screensaver.in ++++ b/scripts/xdg-screensaver.in +@@ -887,6 +887,8 @@ xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE + dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.ScreenSaver > /dev/null 2>&1 && DE="gnome_screensaver" + # Consider "mate-screensaver" a separate DE + dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.mate.ScreenSaver > /dev/null 2>&1 && DE="mate_screensaver" ++# Consider "cinnamon-screensaver" a separate DE ++dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.cinnamon.ScreenSaver > /dev/null 2>&1 && DE="cinnamon" + # Consider "xautolock" a separate DE + xautolock -enable > /dev/null 2>&1 && DE="xautolock_screensaver" + +-- +2.31.1 + diff --git a/0013-support-digits-in-uri-scheme-regex.patch b/0013-support-digits-in-uri-scheme-regex.patch new file mode 100644 index 0000000..47fd030 --- /dev/null +++ b/0013-support-digits-in-uri-scheme-regex.patch @@ -0,0 +1,30 @@ +From bfcefa162b1dcd6d62e193019969ff2f5ff331cf Mon Sep 17 00:00:00 2001 +From: Cameron Fieber +Date: Mon, 25 Mar 2019 22:30:25 -0700 +Subject: [PATCH 13/16] support digits in uri scheme regex + +As per RFC 2396[1] a valid URI scheme may contain a digit: + +scheme = alpha *( alpha | digit | + | - | . ) + +[1]: https://www.ietf.org/rfc/rfc2396.txt +--- + scripts/xdg-open.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index c38e1e0..202f3e3 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -72,7 +72,7 @@ get_key() + is_file_url_or_path() + { + if echo "$1" | grep -q '^file://' \ +- || ! echo "$1" | egrep -q '^[[:alpha:]+\.\-]+:'; then ++ || ! echo "$1" | egrep -q '^[[:alpha:]][[:alpha:][:digit:]+\.\-]*:'; then + return 0 + else + return 1 +-- +2.31.1 + diff --git a/0014-xdg-mime-return-correct-exit-code-for-GNOME.patch b/0014-xdg-mime-return-correct-exit-code-for-GNOME.patch new file mode 100644 index 0000000..5b43aaa --- /dev/null +++ b/0014-xdg-mime-return-correct-exit-code-for-GNOME.patch @@ -0,0 +1,40 @@ +From 0547886c0a7ae79145998495a6e3af6a1450d0c7 Mon Sep 17 00:00:00 2001 +From: Martin Puppe +Date: Sat, 13 Apr 2019 12:46:44 +0200 +Subject: [PATCH 14/16] xdg-mime: return correct exit code for GNOME + +If the desktop environment was GNOME and none of the commands for +detecting the MIME type of a file was available, xdg-mime used to return +exit code 0 even though it failed. The man page says it should return +exit code 3. This commit fixes the issue. + +I have considered returning exit code 4 instead since that is what would +be returned if info_kde() or info_generic() fail to find a tool for MIME +type detection. But I have decided to implement the behavior as +specified in the man page. + +The exit code of an if construct is 0 if no condition +tested true [^1]. The author of the original code probably was not aware +of this. + +[^1]: https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#Conditional-Constructs +--- + scripts/xdg-mime.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/scripts/xdg-mime.in b/scripts/xdg-mime.in +index 0e567c7..034d0ef 100644 +--- a/scripts/xdg-mime.in ++++ b/scripts/xdg-mime.in +@@ -84,6 +84,8 @@ info_gnome() + elif gnomevfs-info --help 2>/dev/null 1>&2; then + DEBUG 1 "Running gnomevfs-info \"$1\"" + gnomevfs-info --slow-mime "$1" 2> /dev/null | grep "^MIME" | cut -d ":" -f 2 | sed s/"^ "// ++ else ++ exit_failure_operation_impossible "no method available for querying MIME type of '$filename'" + fi + + if [ $? -eq 0 ]; then +-- +2.31.1 + diff --git a/0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch b/0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch new file mode 100644 index 0000000..1dad7fe --- /dev/null +++ b/0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch @@ -0,0 +1,40 @@ +From 9816ebb3e6fd9f23e993b8b7fcbd56f92d9c9197 Mon Sep 17 00:00:00 2001 +From: Andrea Tarocchi +Date: Thu, 20 Feb 2020 22:01:04 +0100 +Subject: [PATCH 15/16] fixed #166: xdg-open dose not search correctly in + directories with spaces in the name + +--- + scripts/xdg-mime.in | 2 +- + scripts/xdg-open.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/scripts/xdg-mime.in b/scripts/xdg-mime.in +index 034d0ef..612d2ce 100644 +--- a/scripts/xdg-mime.in ++++ b/scripts/xdg-mime.in +@@ -307,7 +307,7 @@ search_desktop_file() + + grep -l "$MIME;" "$dir/"*.desktop 2>/dev/null + +- for f in $dir/*/; do ++ for f in "$dir/"*/; do + [ -d "$f" ] && search_desktop_file "$MIME" "$f" + done + } +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 202f3e3..8de839a 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -328,7 +328,7 @@ search_desktop_file() + fi + fi + +- for d in $dir/*/; do ++ for d in "$dir/"*/; do + [ -d "$d" ] && search_desktop_file "$default" "$d" "$target" + done + } +-- +2.31.1 + diff --git a/0016-Fix-xdg-settings-support-for-default-web-browser-for.patch b/0016-Fix-xdg-settings-support-for-default-web-browser-for.patch new file mode 100644 index 0000000..48dff61 --- /dev/null +++ b/0016-Fix-xdg-settings-support-for-default-web-browser-for.patch @@ -0,0 +1,59 @@ +From d11b33ec7f24cfb1546f6b459611d440013bdc72 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?M=C3=A9ven=20Car?= +Date: Wed, 21 Oct 2020 16:58:20 +0200 +Subject: [PATCH 16/16] Fix xdg-settings support for default-web-browser for + Plasma 5.19+ + +--- + scripts/xdg-settings.in | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + mode change 100644 => 100755 scripts/xdg-settings.in + +diff --git a/scripts/xdg-settings.in b/scripts/xdg-settings.in +old mode 100644 +new mode 100755 +index 3781de8..ab18d3a +--- a/scripts/xdg-settings.in ++++ b/scripts/xdg-settings.in +@@ -130,7 +130,7 @@ set_browser_mime() + fix_local_desktop_file "$1" "$MIME" || return + mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/applications" + xdg-mime default "$1" "$MIME" || return +- if [ x"`get_browser_mime`" != x"$1" ]; then ++ if [ x"`get_browser_mime $MIME`" != x"$1" ]; then + # Put back the original value + xdg-mime default "$orig" "$MIME" + exit_failure_operation_failed +@@ -203,7 +203,13 @@ resolve_kde_browser_desktop() + + read_kde_browser() + { +- read_kde_config kdeglobals General BrowserApplication ++ ret=`read_kde_config kdeglobals General BrowserApplication` ++ if [ -z "$ret" ]; then ++ # since Plasma >= 5.19 ++ ret=`get_browser_mime "x-scheme-handler/http"` ++ fi ++ ++ echo $ret + } + + get_browser_kde() +@@ -252,7 +258,13 @@ check_browser_kde() + + set_browser_kde() + { +- set_browser_mime "$1" || return ++ # Set the default browser. ++ for protocol in http https; do ++ set_browser_mime "$1" "x-scheme-handler/$protocol" || return ++ done ++ ++ # Plasma < 5.19 ++ set_browser_mime "$1" "text/html" || return + if [ x"${KDE_SESSION_VERSION}" = x"5" ]; then + kwriteconfig5 --file kdeglobals --group General --key BrowserApplication "$1" + else +-- +2.31.1 + diff --git a/0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch b/0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch new file mode 100644 index 0000000..0a6e3b6 --- /dev/null +++ b/0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch @@ -0,0 +1,30 @@ +From 6519ca76246c3c1ad941d3117d4e3a2d4a1dc599 Mon Sep 17 00:00:00 2001 +From: shamilbi +Date: Tue, 27 Jun 2023 19:25:38 +0200 +Subject: [PATCH] fix: egrep and fgrep commands have been deprecated since 2007 + +https://news.slashdot.org/story/22/09/05/0135254/ +The egrep and fgrep commands have been deprecated since 2007. +Beginning with GNU Grep 3.8 today, calling these commands will now issue +a warning to the user that instead they should use +grep -E and grep -F, respectively +--- + scripts/xdg-open.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in +index 2456aa7..140a216 100644 +--- a/scripts/xdg-open.in ++++ b/scripts/xdg-open.in +@@ -72,7 +72,7 @@ get_key() + is_file_url_or_path() + { + if echo "$1" | grep -q '^file://' \ +- || ! echo "$1" | egrep -q '^[[:alpha:]][[:alpha:][:digit:]+\.\-]*:'; then ++ || ! echo "$1" | grep -Eq '^[[:alpha:]][[:alpha:][:digit:]+\.\-]*:'; then + return 0 + else + return 1 +-- +GitLab + diff --git a/sources b/sources index 912394b..d368ca4 100644 --- a/sources +++ b/sources @@ -1,20 +1,3 @@ SHA512 (xdg-utils-1.1.3.tar.gz) = d1f819a211eb4104a90dfdc6fedcb640fd46b15ccfc8762266f8f538c49d74cb00027b8c1af991fb2a200acb4379986ae375700e06a2aa08fb41a38f883acb3e SHA512 (xdg-utils-1.1.3.tar.gz.md5sum) = e467c3226563f800be9120a499181e91e5dc8ef1347140aceb9ac582bbf2ad2b54ecdcd6fef7dc3cec599333dfda02f830f17cb857d0fb91238a47f36399c3b1 SHA512 (xdg-utils-1.1.3.tar.gz.sha1sum) = bd5986c298c6496a2b21aa83a86d768473dd19b25070c04487000a2b5c3b29df5b3e967eab400db94f9a21444a334b97965e5555bcbbfaed48ab56280222c8a2 -SHA512 (0001-open-for-post-1.1.3-development.patch) = e1335d9d1ef13431eeb6945162bde6af4d5351af814a0e56d627a0e53e31e3d60d4466e59c3024e8c4badba127860d42ee43935ebdd4f6407de4e02fc70e5674 -SHA512 (0002-xdg-open-better-pcmanfm-check-BR106636-BR106161.patch) = d7f36222e0ab32179ddb62e72576f9740f0bf829ec01f5b1c12c3f8206a16faeb2c7bff232d75d04aa91f80cf2478b36cc91e60f750791ad707f909df33f299b -SHA512 (0003-xdg-email-Support-for-Deepin.patch) = dd765bc2d7585a41b144cdb5b2a9955efb484cfb1130d138d46e3fc5e82245597f610ebd519df3b5fa840c03be1667038c8c5b606b6b2311410c955610b7b1f7 -SHA512 (0004-Restore-matching-of-older-deepin-names.patch) = cefa214ed2f98f6f018ce73ecdcdb8be5337875121534f0be48becfea3a4b1c5b3ff5cd333c32fff30d11f174f91c59a69267f80b12f0364d42bf902278089e4 -SHA512 (0005-xdg-open-handle-file-localhost.patch) = 112a48fd5f6376dfed090e0ea5e22427309187325d775e7c4e92b71713f300ec390e14ea45f3d5132489316de19754d020da301fdc8f5892538de8b14298cc2e -SHA512 (0006-test-lib.sh-run-eat-xdg-open-s-exit-code.patch) = 0c222edfd0212b54cd80231927d6cfdbcbc5980e84246a782167a8963fc34b541242e0c36e4cad264fdf7eff0c1b050426216980f552a6da7e7105e596324dd8 -SHA512 (0007-Fix-a-bug-when-xdg-terminal-needs-gsettings-to-get-t.patch) = 4497285c808bac541f02d19658e8e05aa5e039e43a9111a1d34ff48933a7a28aee592f0f54e504dd9094d266cde261ef47272a6737fcf66c776753d5835bdef2 -SHA512 (0008-Fixes-x-argument-which-is-the-default-for-gnome-mate.patch) = 65985208b2850f52c7c6105afb24aa1a0ccdd0841c4f863ff4af2ef5bcd0a72e17c3e6f454afa02399bc987a44249cab368f0f574ead08e972015d5157e0e3f9 -SHA512 (0009-xdg-screensaver-Sanitise-window-name-before-sending-.patch) = d910eafb08cfc9508f9035c6a28e402d7da26c1461b6d3411a34ce17315d64b9de802c65cf5ffb93439ba55336e64410ee313bb3a43ec68d637f0a360c011fb3 -SHA512 (0010-xdg-su-fix-some-easy-TODOs.patch) = f055e3093508409f0a29eb2bc056c1ee225f2dd072176947cb87056c4ca26a5605eff2bb61dcc96cbf6977fc754fb7e05aad38de3481ea9de016101d4eb70cfd -SHA512 (0011-xdg-open-fix-comment-typo.patch) = 7f0dc54b3460222096e150f767de9241f75591452dd8101817a607bfc83c9eec4c20c4c28e66e013ba68dca5e0bb0de93d9223e5596658cc7c7d8544aaab13dc -SHA512 (0012-Enable-cinnamon-screensaver-for-xdg-aware-desktop-en.patch) = 6bf9ec232d6d6df961dbbcb9b797f8242221c837ab5524148c7e9e7e6c888797a4312fed996b966fff8d29dc6017ca1d33cee3560287d8bcf372db20182c6779 -SHA512 (0013-support-digits-in-uri-scheme-regex.patch) = c4f6f2efb1dd8c884d452fcb9067b3eedc104604856da361b163bf1323ae880e253f3e62d33b47c6f0c549ad939a96974aae21efde679783590b511f71e194e9 -SHA512 (0014-xdg-mime-return-correct-exit-code-for-GNOME.patch) = bb6c89009067db65fbfc9ffafcf8d329ad809bb7420358a1c20cb21a391f6916390c2f18134a3b5654e267583a036c5ec8ce1fc0cc4df9b221a0f572e6941627 -SHA512 (0015-fixed-166-xdg-open-dose-not-search-correctly-in-dire.patch) = dd23d094e3db5c984617e577e56056e7ac168b2ab6b66ec0aaa4cca2c43709bff36671fe2681004e08bc0886c2efc12ece5fe10697b2fd9ea64ddb81c09c05ba -SHA512 (0016-Fix-xdg-settings-support-for-default-web-browser-for.patch) = 1f5841c4c46b62e3f6ae2ddb6bc0411d9105e23941e0c593a23a6731a8a4cc6946574d4f9c85b766ca4297303edb9f6a91cf2c435e74609936c86b89e5e190f2 -SHA512 (0017-Use-grep-E-instead-of-the-obsoleted-egrep.patch) = 94e8f391c51946a730d8b2a86f48b34e5e60a77b6b26af2be11c660e8493db2ac375f619d60ed21e8f9de84ec7c000ff497f076013e2028648dd84bd18229514 diff --git a/xdg-utils.spec b/xdg-utils.spec index 380234b..9facd53 100644 --- a/xdg-utils.spec +++ b/xdg-utils.spec @@ -1,19 +1,20 @@ -Summary: Basic desktop integration functions +Summary: Basic desktop integration functions Name: xdg-utils Version: 1.1.3 Release: 15%{?dist} -URL: http://portland.freedesktop.org/ +URL: https://www.freedesktop.org/wiki/Software/xdg-utils/ %if 0%{?snap:1} Source0: xdg-utils-%{version}-%{snap}.tar.gz %else -# at least until freedesktop folks move over to release dir Source0: https://people.freedesktop.org/~rdieter/xdg-utils/xdg-utils-%{version}.tar.gz -#Source0: http://portland.freedesktop.org/download/xdg-utils-%{version}%{?prerelease:-%{prerelease}}.tar.gz +# New location +#Source0: https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/v1.1.3/xdg-utils-v%%{version}.tar.gz +#Source0: http://portland.freedesktop.org/download/xdg-utils-%%{version}%%{?prerelease:-%%{prerelease}}.tar.gz %endif Source1: xdg-utils-git_checkout.sh -License: MIT +License: MIT ## upstream patches (treat as sources in lookaside cache) Patch1: 0001-open-for-post-1.1.3-development.patch @@ -49,7 +50,7 @@ Requires: which %description The %{name} package is a set of simple scripts that provide basic desktop integration functions for any Free Desktop, such as Linux. -They are intended to provide a set of defacto standards. +They are intended to provide a set of defacto standards. This means that: * Third party software developers can rely on these xdg-utils for all of their simple integration needs. @@ -80,15 +81,15 @@ The following scripts are provided at this time: make scripts-clean -C scripts make man scripts %{?_smp_mflags} -C scripts %endif -make %{?_smp_mflags} - +%make_build %install -make install DESTDIR=%{buildroot} +%make_install %files -%doc ChangeLog LICENSE README TODO +%doc ChangeLog README TODO +%license LICENSE %{_bindir}/xdg-desktop-icon %{_bindir}/xdg-desktop-menu %{_bindir}/xdg-email @@ -111,6 +112,9 @@ make install DESTDIR=%{buildroot} * Tue Jul 25 2023 Rafael Guterres Jeffman - 1.1.3-15 - Use "grep -E" instead of the obsoleted "egrep" Resolves: BZ#2140197 +- mark LICENSE as %%license +- Spec cleanup +- Small patches, as a rule, are in git dist, to be more easy to read. * Sat Jul 22 2023 Fedora Release Engineering - 1.1.3-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild