forked from pool/xdg-utils
Accepting request 18111 from X11:common:Factory
Copy from X11:common:Factory/xdg-utils based on submit request 18111 from user llunak OBS-URL: https://build.opensuse.org/request/show/18111 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xdg-utils?expand=0&rev=9
This commit is contained in:
parent
3636f76c6f
commit
dac0db4603
388
xdg-kde4-upstream.patch
Normal file
388
xdg-kde4-upstream.patch
Normal file
@ -0,0 +1,388 @@
|
||||
Index: xdg-utils/scripts/xdg-email
|
||||
===================================================================
|
||||
RCS file: /cvs/portland/portland/xdg-utils/scripts/xdg-email,v
|
||||
retrieving revision 1.37
|
||||
retrieving revision 1.39
|
||||
diff -u -p -r1.37 -r1.39
|
||||
--- xdg-utils/scripts/xdg-email 24 Jan 2008 20:24:50 -0000 1.37
|
||||
+++ xdg-utils/scripts/xdg-email 27 Jul 2009 15:44:14 -0000 1.39
|
||||
@@ -367,7 +367,7 @@ detectDE()
|
||||
|
||||
kfmclient_fix_exit_code()
|
||||
{
|
||||
- version=`kde-config --version 2>/dev/null | grep KDE`
|
||||
+ version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE`
|
||||
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
|
||||
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
|
||||
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
|
||||
@@ -393,8 +393,13 @@ open_kde()
|
||||
fi
|
||||
fi
|
||||
DEBUG 1 "Running kmailservice \"$1\""
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ KMAILSERVICE=`kde4-config --locate kmailservice --path exe 2>/dev/null`
|
||||
+ else
|
||||
+ KMAILSERVICE=`which kmailservice 2>/dev/null`
|
||||
+ fi
|
||||
# KDE uses locale's encoding when decoding the URI, so set it to UTF-8
|
||||
- LC_ALL=C.UTF-8 kmailservice "$1"
|
||||
+ LC_ALL=C.UTF-8 $KMAILSERVICE "$1"
|
||||
kfmclient_fix_exit_code $?
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
Index: xdg-utils/scripts/xdg-mime
|
||||
===================================================================
|
||||
RCS file: /cvs/portland/portland/xdg-utils/scripts/xdg-mime,v
|
||||
retrieving revision 1.46
|
||||
retrieving revision 1.56
|
||||
diff -u -p -r1.46 -r1.56
|
||||
--- xdg-utils/scripts/xdg-mime 4 Nov 2006 06:23:49 -0000 1.46
|
||||
+++ xdg-utils/scripts/xdg-mime 31 Jul 2009 06:42:46 -0000 1.56
|
||||
@@ -436,7 +436,7 @@ detectDE()
|
||||
|
||||
kfmclient_fix_exit_code()
|
||||
{
|
||||
- version=`kde-config --version 2>/dev/null | grep KDE`
|
||||
+ version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE`
|
||||
major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
|
||||
minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
|
||||
release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
|
||||
@@ -452,7 +452,11 @@ update_mime_database()
|
||||
detectDE
|
||||
if [ x"$DE" = x"kde" ] ; then
|
||||
DEBUG 1 "Running kbuildsycoca"
|
||||
- eval 'kbuildsycoca'$xdg_redirect_output
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ eval 'kbuildsycoca4'$xdg_redirect_output
|
||||
+ else
|
||||
+ eval 'kbuildsycoca'$xdg_redirect_output
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
|
||||
@@ -466,8 +470,15 @@ update_mime_database()
|
||||
|
||||
info_kde()
|
||||
{
|
||||
- DEBUG 1 "Running kfile \"$1\""
|
||||
- kfile "$1" 2> /dev/null | head -n 1 | cut -d "(" -f 2 | cut -d ")" -f 1
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ DEBUG 1 "Running kmimetypefinder \"$1\""
|
||||
+ KMIMETYPEFINDER=`which kmimetypefinder 2>/dev/null`
|
||||
+ $KMIMETYPEFINDER "$1" 2>/dev/null | head -n 1
|
||||
+ else
|
||||
+ DEBUG 1 "Running kfile \"$1\""
|
||||
+ KFILE=`which kfile 2>/dev/null`
|
||||
+ $KFILE "$1" 2> /dev/null | head -n 1 | cut -d "(" -f 2 | cut -d ")" -f 1
|
||||
+ fi
|
||||
|
||||
exit_success
|
||||
}
|
||||
@@ -483,7 +494,7 @@ info_gnome()
|
||||
|
||||
info_generic()
|
||||
{
|
||||
- DEBUG 1 "Running /usr/bin/file -i \"$1\""
|
||||
+ DEBUG 1 "Running file -i \"$1\""
|
||||
/usr/bin/file -i "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "//
|
||||
|
||||
exit_success
|
||||
@@ -492,25 +503,47 @@ info_generic()
|
||||
make_default_kde()
|
||||
{
|
||||
# $1 is vendor-name.desktop
|
||||
- # $2 is mime/type
|
||||
- # Add to $KDE_HOME/share/config/profilerc:
|
||||
+ # $2 is mime/type
|
||||
+ #
|
||||
+ # On KDE 3, add to $KDE_CONFIG_PATH/profilerc:
|
||||
# [$2 - 1]
|
||||
# Application=$1
|
||||
#
|
||||
# Remove all [$2 - *] sections, or even better,
|
||||
# renumber [$2 - *] sections and remove duplicate
|
||||
-
|
||||
- default_file="$HOME/.kde/share/config/profilerc"
|
||||
- DEBUG 2 "make_default_kde $1 $2"
|
||||
+ #
|
||||
+ # On KDE 4, add $2=$1 to $XDG_DATA_APPS/mimeapps.list
|
||||
+ #
|
||||
+ # Example file:
|
||||
+ #
|
||||
+ # [Added Associations]
|
||||
+ # text/plain=kde4-kate.desktop;kde4-kwrite.desktop;
|
||||
+ #
|
||||
+ # [Removed Associations]
|
||||
+ # text/plain=gnome-gedit.desktop;gnu-emacs.desktop;
|
||||
+ vendor="$1"
|
||||
+ mimetype="$2"
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ default_dir=`kde4-config --path xdgdata-apps | cut -d ':' -f 1`
|
||||
+ default_file="$default_dir/mimeapps.list"
|
||||
+ else
|
||||
+ default_dir=`kde-config --path config | cut -d ':' -f 1`
|
||||
+ default_file="$default_dir/profilerc"
|
||||
+ fi
|
||||
+ DEBUG 2 "make_default_kde $vendor $mimetype"
|
||||
DEBUG 1 "Updating $default_file"
|
||||
- mkdir -p "$HOME/.kde/share/config"
|
||||
+ mkdir -p "$default_dir"
|
||||
[ -f $default_file ] || touch $default_file
|
||||
- awk -v application="$1" -v mimetype="$2" '
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ # FIXME update the required section "[Added Associations]"
|
||||
+ DEBUG 1 "NOT IMPLEMENTED YET"
|
||||
+ else
|
||||
+ awk -v application="$vendor" -v mimetype="$mimetype" '
|
||||
BEGIN {
|
||||
header_start="[" mimetype " - "
|
||||
supress=0
|
||||
}
|
||||
- {
|
||||
+ {
|
||||
if (index($0, header_start) == 1 )
|
||||
supress=1
|
||||
else
|
||||
@@ -521,7 +554,7 @@ make_default_kde()
|
||||
}
|
||||
}
|
||||
END {
|
||||
- print ""
|
||||
+ print ""
|
||||
print "[" mimetype " - 1]"
|
||||
print "Application=" application
|
||||
print "AllowAsDefault=true"
|
||||
@@ -530,18 +563,21 @@ make_default_kde()
|
||||
print "ServiceType=" mimetype
|
||||
}
|
||||
' $default_file > ${default_file}.new && mv ${default_file}.new $default_file
|
||||
+ fi
|
||||
}
|
||||
|
||||
make_default_generic()
|
||||
{
|
||||
# $1 is vendor-name.desktop
|
||||
- # $2 is mime/type
|
||||
+ # $2 is mime/type
|
||||
# Add $2=$1 to XDG_DATA_HOME/applications/defaults.list
|
||||
xdg_user_dir="$XDG_DATA_HOME"
|
||||
[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
|
||||
default_file="$xdg_user_dir/applications/defaults.list"
|
||||
DEBUG 2 "make_default_generic $1 $2"
|
||||
DEBUG 1 "Updating $default_file"
|
||||
+ mkdir -p "$xdg_user_dir/applications"
|
||||
+ [ -f $default_file ] || touch $default_file
|
||||
grep -v "$2=" $default_file > ${default_file}.new 2> /dev/null
|
||||
if ! grep "[Default Applications]" ${default_file}.new > /dev/null; then
|
||||
echo "[Default Applications]" >> ${default_file}.new
|
||||
@@ -573,11 +609,17 @@ defapp_generic()
|
||||
defapp_kde()
|
||||
{
|
||||
MIME="$1"
|
||||
- ktradertest=`which ktradertest 2> /dev/null`
|
||||
- if [ -n "$ktradertest" ] ; then
|
||||
- DEBUG 1 "Running ktradertest \"$MIME\" Application"
|
||||
- trader_result=`ktradertest "$MIME" Application 2>/dev/null | grep DesktopEntryPath \
|
||||
- | head -n 1 | cut -d ':' -f 2 | cut -d \' -f 2`
|
||||
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
|
||||
+ KTRADER=`which ktraderclient 2> /dev/null`
|
||||
+ MIMETYPE="--mimetype"
|
||||
+ SERVICETYPE="--servicetype"
|
||||
+ else
|
||||
+ KTRADER=`which ktradertest 2> /dev/null`
|
||||
+ fi
|
||||
+ if [ -n "$KTRADER" ] ; then
|
||||
+ DEBUG 1 "Running KDE trader query \"$MIME\" mimetype and \"Application\" servicetype"
|
||||
+ trader_result=`$KTRADER $MIMETYPE "$MIME" $SERVICETYPE Application 2>/dev/null \
|
||||
+ | grep DesktopEntryPath | head -n 1 | cut -d ':' -f 2 | cut -d \' -f 2`
|
||||
if [ -n "$trader_result" ] ; then
|
||||
basename "$trader_result"
|
||||
exit_success
|
||||
@@ -608,16 +650,16 @@ case $1 in
|
||||
query)
|
||||
shift
|
||||
|
||||
- if [ -z "$1" ] ; then
|
||||
+ if [ -z "$1" ] ; then
|
||||
exit_failure_syntax "query type argument missing"
|
||||
fi
|
||||
-
|
||||
+
|
||||
case $1 in
|
||||
filetype)
|
||||
action=info
|
||||
|
||||
filename="$2"
|
||||
- if [ -z "$filename" ] ; then
|
||||
+ if [ -z "$filename" ] ; then
|
||||
exit_failure_syntax "FILE argument missing"
|
||||
fi
|
||||
case $filename in
|
||||
@@ -631,7 +673,7 @@ case $1 in
|
||||
default)
|
||||
action=defapp
|
||||
mimetype="$2"
|
||||
- if [ -z "$mimetype" ] ; then
|
||||
+ if [ -z "$mimetype" ] ; then
|
||||
exit_failure_syntax "mimetype argument missing"
|
||||
fi
|
||||
case $mimetype in
|
||||
@@ -659,7 +701,7 @@ case $1 in
|
||||
action=makedefault
|
||||
shift
|
||||
|
||||
- if [ -z "$1" ] ; then
|
||||
+ if [ -z "$1" ] ; then
|
||||
exit_failure_syntax "application argument missing"
|
||||
fi
|
||||
case $1 in
|
||||
@@ -686,7 +728,7 @@ shift
|
||||
|
||||
|
||||
if [ "$action" = "makedefault" ]; then
|
||||
- if [ -z "$1" ] ; then
|
||||
+ if [ -z "$1" ] ; then
|
||||
exit_failure_syntax "mimetype argument missing"
|
||||
fi
|
||||
|
||||
@@ -698,7 +740,7 @@ if [ "$action" = "makedefault" ]; then
|
||||
esac
|
||||
mimetype="$1"
|
||||
shift
|
||||
-
|
||||
+
|
||||
make_default_kde "$filename" "$mimetype"
|
||||
make_default_generic "$filename" "$mimetype"
|
||||
done
|
||||
@@ -723,7 +765,7 @@ if [ "$action" = "info" ]; then
|
||||
info_gnome "$filename"
|
||||
;;
|
||||
|
||||
- generic)
|
||||
+ *)
|
||||
info_generic "$filename"
|
||||
;;
|
||||
esac
|
||||
@@ -763,7 +805,7 @@ while [ $# -gt 0 ] ; do
|
||||
system)
|
||||
mode="system"
|
||||
;;
|
||||
-
|
||||
+
|
||||
*)
|
||||
exit_failure_syntax "unknown mode '$1'"
|
||||
;;
|
||||
@@ -842,7 +884,7 @@ DEBUG 3 "xdg_global_dir: $xdg_global_dir
|
||||
# Find KDE3 mimelnk directory
|
||||
kde_user_dir=
|
||||
kde_global_dir=
|
||||
-kde_global_dirs=`kde-config --path mime 2> /dev/null`
|
||||
+kde_global_dirs=`kde${KDE_SESSION_VERSION}-config --path mime 2> /dev/null`
|
||||
DEBUG 3 "kde_global_dirs: $kde_global_dirs"
|
||||
first=
|
||||
for x in `echo $kde_global_dirs | sed 's/:/ /g'` ; do
|
||||
@@ -897,7 +939,7 @@ BEGIN {
|
||||
supress=0
|
||||
}
|
||||
{
|
||||
- do
|
||||
+ do
|
||||
if (supress) {
|
||||
if (match($0,/-->/)) {
|
||||
$0=substr($0,RSTART+RLENGTH)
|
||||
@@ -932,7 +974,7 @@ BEGIN {
|
||||
}
|
||||
}
|
||||
}'`
|
||||
-fi
|
||||
+fi
|
||||
|
||||
DEBUG 1 "$action mimetype in $xdg_dir"
|
||||
|
||||
@@ -948,7 +990,7 @@ case $action in
|
||||
|
||||
if [ -n "$mimetypes" ] ; then
|
||||
# No quotes around $mimetypes
|
||||
- for x in $mimetypes ; do
|
||||
+ for x in $mimetypes ; do
|
||||
DEBUG 1 "Installing $kde_dir/$x.desktop (KDE 3.x support)"
|
||||
mkdir -p `dirname $kde_dir/$x.desktop`
|
||||
awk < "$filename" '
|
||||
@@ -957,7 +999,7 @@ BEGIN {
|
||||
supress=0
|
||||
}
|
||||
{
|
||||
- do
|
||||
+ do
|
||||
if (supress) {
|
||||
if (match($0,/-->/)) {
|
||||
$0=substr($0,RSTART+RLENGTH)
|
||||
@@ -982,7 +1024,7 @@ BEGIN {
|
||||
}
|
||||
' | awk > $kde_dir/$x.desktop '
|
||||
# Extract mimetype $x from the XML file $filename
|
||||
-# Note that bash requires us to escape a single quote as '"'"'
|
||||
+# Note that bash requires us to escape a single quote as '"'"'
|
||||
BEGIN {
|
||||
the_type=ARGV[1]
|
||||
the_source=ARGV[2]
|
||||
@@ -1002,7 +1044,7 @@ BEGIN {
|
||||
print "MimeType=" the_type
|
||||
the_icon=the_type
|
||||
sub("/", "-", the_icon)
|
||||
- print "Icon=" the_icon
|
||||
+ print "Icon=" the_icon
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1014,25 +1056,25 @@ BEGIN {
|
||||
}
|
||||
|
||||
if (match($0,/^sub-class-of/)) {
|
||||
- if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
|
||||
+ if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
|
||||
print "X-KDE-IsAlso=" substr($0,RSTART+6,RLENGTH-6)
|
||||
}
|
||||
else {
|
||||
print "Error: '"'"'type'"'"' argument missing in " RS $0
|
||||
- exit 1
|
||||
+ exit 1
|
||||
}
|
||||
}
|
||||
if (match($0,/^glob/)) {
|
||||
- if (match($0,/pattern="[^"]*/) || match($0,/pattern='"'"'[^'"'"']*/)) {
|
||||
+ if (match($0,/pattern="[^"]*/) || match($0,/pattern='"'"'[^'"'"']*/)) {
|
||||
glob_patterns = glob_patterns substr($0,RSTART+9,RLENGTH-9) ";"
|
||||
}
|
||||
else {
|
||||
print "Error: '"'"'pattern'"'"' argument missing in " RS $0
|
||||
- exit 1
|
||||
+ exit 1
|
||||
}
|
||||
}
|
||||
if (match($0,/^comment/)) {
|
||||
- if (match($0,/xml:lang="[^"]*/) || match($0,/xml:lang='"'"'[^'"'"']*/)) {
|
||||
+ if (match($0,/xml:lang="[^"]*/) || match($0,/xml:lang='"'"'[^'"'"']*/)) {
|
||||
lang=substr($0,RSTART+10,RLENGTH-10)
|
||||
}
|
||||
else {
|
||||
@@ -1061,7 +1103,7 @@ END {
|
||||
if [ "$?" = "1" ] ; then
|
||||
grep -A 10 "^Error:" $kde_dir/$x.desktop >&2
|
||||
rm $kde_dir/$x.desktop
|
||||
- exit 1
|
||||
+ exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -1075,8 +1117,8 @@ END {
|
||||
done
|
||||
|
||||
# No quotes around $mimetypes
|
||||
- for x in $mimetypes ; do
|
||||
- if grep '^# Installed by xdg-mime' $kde_dir/$x.desktop &>/dev/null ; then
|
||||
+ for x in $mimetypes ; do
|
||||
+ if grep '^# Installed by xdg-mime' $kde_dir/$x.desktop >/dev/null 2>&1; then
|
||||
DEBUG 1 "Removing $kde_dir/$x.desktop (KDE 3.x support)"
|
||||
rm -f $kde_dir/$x.desktop
|
||||
fi
|
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 16 13:43:52 CEST 2009 - aj@suse.de
|
||||
|
||||
- Add some support for KDE4, taken from upstream CVS.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 7 13:13:48 CET 2008 - dmueller@suse.de
|
||||
|
||||
|
@ -20,11 +20,11 @@
|
||||
|
||||
Name: xdg-utils
|
||||
BuildRequires: make
|
||||
License: X11/MIT
|
||||
License: MIT License (or similar)
|
||||
Group: System/GUI/Other
|
||||
Summary: Utilities to uniformly interface desktop environments
|
||||
Version: 1.0.2
|
||||
Release: 81
|
||||
Release: 82
|
||||
BuildArch: noarch
|
||||
Url: http://portland.freedesktop.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -32,6 +32,7 @@ Source0: %name-%{version}.tar.bz2
|
||||
Patch0: xdg-su.diff
|
||||
Patch1: xfce-su.diff
|
||||
Patch2: CVE-2008-0386.diff
|
||||
Patch3: xdg-kde4-upstream.patch
|
||||
|
||||
%description
|
||||
The xdg-utils package is a set of simple scripts that provide basic
|
||||
@ -55,6 +56,7 @@ these utilities work properly in their environment.
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
%configure
|
||||
@ -92,30 +94,3 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man1/xdg-screensaver.1.gz
|
||||
|
||||
%changelog
|
||||
* Thu Feb 07 2008 dmueller@suse.de
|
||||
- fix command injection (#bnc355061, CVE-2008-0386)
|
||||
* Mon Oct 22 2007 stbinner@suse.de
|
||||
- update to 1.0.2:
|
||||
* SVG icons are not supported but doc still mentioned SVG
|
||||
* xdg-email can now be used without any e-mail address
|
||||
* do not use mktemp without arguments, it breaks on systems with
|
||||
certain older versions of mktemp
|
||||
* Thu Sep 20 2007 dmueller@suse.de
|
||||
- fix xdg-su outside KDE/GNOME (#309164)
|
||||
* Thu Aug 30 2007 dmueller@suse.de
|
||||
- fix xdg-su for XFCE (#304753)
|
||||
* Tue May 22 2007 dmueller@suse.de
|
||||
- add xdg-su (#275937)
|
||||
* Mon Nov 06 2006 dmueller@suse.de
|
||||
- update to 1.0.1:
|
||||
* Several shell syntax issues causing failures on Ubuntu 6.10
|
||||
* Spurious output on stdout when running xdg-desktop-menu
|
||||
* Non-ascii mailto URI handling of xdg-email on non-UTF8 locales
|
||||
under KDE
|
||||
* Fri Oct 27 2006 dmueller@suse.de
|
||||
- don't build as root
|
||||
* Wed Sep 27 2006 dmueller@suse.de
|
||||
- update to 1.0rc1:
|
||||
* for changes, see /usr/share/doc/packages/xdg-utils/ChangeLog
|
||||
* Thu Jun 22 2006 dmueller@suse.de
|
||||
- Initial package (TP1)
|
||||
|
Loading…
Reference in New Issue
Block a user