SHA256
1
0
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:
OBS User autobuild 2009-08-21 14:52:38 +00:00 committed by Git OBS Bridge
parent 3636f76c6f
commit dac0db4603
3 changed files with 397 additions and 29 deletions

388
xdg-kde4-upstream.patch Normal file
View 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

View File

@ -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

View File

@ -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)