Hello community, here is the log from the commit of package xscreensaver for openSUSE:Factory checked in at 2015-10-19 22:47:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xscreensaver (Old) and /work/SRC/openSUSE:Factory/.xscreensaver.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xscreensaver" Changes: -------- --- /work/SRC/openSUSE:Factory/xscreensaver/xscreensaver.changes 2015-09-17 09:17:30.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xscreensaver.new/xscreensaver.changes 2015-10-19 22:47:36.000000000 +0200 @@ -1,0 +2,9 @@ +Mon Oct 12 22:32:16 UTC 2015 - sor.ale...@meowr.ru + +- Generate screensavers .desktop files for mate-screensaver with + xscreensaver-desktops-generate.sh. +- Add MATE into a NotShowIn list. +- Make xscreensaver-data-extra recommend xscreensaver-data. +- Spec cleanup. + +------------------------------------------------------------------- New: ---- xscreensaver-desktops-generate.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xscreensaver.spec ++++++ --- /var/tmp/diff_new_pack.82eHOe/_old 2015-10-19 22:47:37.000000000 +0200 +++ /var/tmp/diff_new_pack.82eHOe/_new 2015-10-19 22:47:37.000000000 +0200 @@ -22,12 +22,14 @@ Summary: A screen saver and locker for the X Window System License: BSD-3-Clause and GPL-2.0+ Group: Amusements/Toys/Screensavers -Url: http://www.jwz.org/xscreensaver/ -Source: http://www.jwz.org/xscreensaver/%{name}-%{version}.tar.gz +Url: https://jwz.org/xscreensaver +Source: https://jwz.org/xscreensaver/%{name}-%{version}.tar.gz Source1: xscreensaver.pamd Source2: xscreensaver-data.list Source3: xscreensaver-data-extra.list -# do not show some rpmlint warnings +# +Source4: xscreensaver-desktops-generate.sh +# Do not show some rpmlint warnings. Source99: xscreensaver-rpmlintrc # Patch5: xscreensaver-background.patch @@ -36,17 +38,15 @@ Patch24: xscreensaver-slideshow-dri-detect.patch Patch29: xscreensaver-ignore-no-pwent-password.patch Patch32: xscreensaver-fireworkx-man.patch -# PATCH-FIX-OPENSUSE xscreensaver-webcollage-dictpath.patch seife+...@b1-systems.com -- add /var/lib/dict/words to search path for word dictionaries +# PATCH-FIX-OPENSUSE xscreensaver-webcollage-dictpath.patch seife+...@b1-systems.com -- Add /var/lib/dict/words to search path for word dictionaries. Patch42: xscreensaver-webcollage-dictpath.patch -# PATCH-FEATURE-OPENSUSE xscreensaver-disable-upgrade-nagging.patch bnc#890595 g...@opensuse.org -- Disable nagging messages about upgrading to a newer version +# PATCH-FEATURE-OPENSUSE xscreensaver-disable-upgrade-nagging.patch boo#890595 g...@opensuse.org -- Disable nagging messages about upgrading to a newer version. Patch43: xscreensaver-disable-upgrade-nagging-message.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: Mesa-devel BuildRequires: automake BuildRequires: bc BuildRequires: gdmflexiserver BuildRequires: intltool -BuildRequires: libglade2-devel BuildRequires: libgle-devel BuildRequires: libgnome-devel BuildRequires: libjpeg-devel @@ -55,39 +55,40 @@ BuildRequires: update-desktop-files BuildRequires: xorg-x11-devel BuildRequires: pkgconfig(glu) +BuildRequires: pkgconfig(libglade-2.0) # Requires: %{name}-data Requires: desktop-data Requires: pam-modules # +Suggests: %{name}-data-extra +# Provides: xscreensaver-gnome = %{version} Provides: xscrns = %{version} Obsoletes: xscreensaver-gnome < %{version} Obsoletes: xscrns < %{version} -# -Suggests: %{name}-data-extra %description -The xscreensaver program waits until the keyboard and mouse have been -idle for a period of time, and then runs a graphics demo chosen at -random. It turns off as soon as there is any mouse or keyboard -activity. It can also lock the screen immediately, after a longer idle -period, or on demand. - -The xscreensaver package consists of two parts: the screensaver and the -"driver" or "daemon", which detects idleness and does locking, and the -many graphics demos that are launched by xscreensaver. +The xscreensaver program waits until the keyboard and mouse have +been idle for a period of time, and then runs a graphics demo +chosen at random. It turns off as soon as there is any mouse or +keyboard activity. It can also lock the screen immediately, after a +longer idle period, or on demand. + +The xscreensaver package consists of two parts: the screensaver and +the "driver" or "daemon", which detects idleness and does locking, +and the many graphics demos that are launched by xscreensaver. Any X program that can draw on the root window can be used with -xscreensaver, regardless of how that program is written, what language -it is written in, or what libraries it uses. The xscreensaver daemon -takes care of detecting when the user is idle, locking, and checking -passwords and all the other book-keeping. All the other programs need -to do is draw. - -The benefit that xscreensaver has over the combination of the xlock and -xautolock programs is the ease with which new graphic hacks can be -installed. You do not need to recompile (or even re-run) the +xscreensaver, regardless of how that program is written, what +language it is written in, or what libraries it uses. The +xscreensaver daemon takes care of detecting when the user is idle, +locking, and checking passwords and all the other book-keeping. All +the other programs need to do is draw. + +The benefit that xscreensaver has over the combination of the xlock +and xautolock programs is the ease with which new graphic hacks can +be installed. You do not need to recompile (or even re-run) the xscreensaver program to add a new display mode, you just change a config file. @@ -96,24 +97,25 @@ Group: Amusements/Toys/Screensavers %description data -The xscreensaver program waits until the keyboard and mouse have been -idle for a period of time, and then runs a graphics demo chosen at -random. It turns off as soon as there is any mouse or keyboard -activity. It can also lock the screen immediately, after a longer idle -period, or on demand. +The xscreensaver program waits until the keyboard and mouse have +been idle for a period of time, and then runs a graphics demo +chosen at random. It turns off as soon as there is any mouse or +keyboard activity. It can also lock the screen immediately, after a +longer idle period, or on demand. This packages contains a selection of graphics demos. %package data-extra Summary: Selection of screensavers from xscreensaver Group: Amusements/Toys/Screensavers +Recommends: %{name}-data %description data-extra -The xscreensaver program waits until the keyboard and mouse have been -idle for a period of time, and then runs a graphics demo chosen at -random. It turns off as soon as there is any mouse or keyboard -activity. It can also lock the screen immediately, after a longer idle -period, or on demand. +The xscreensaver program waits until the keyboard and mouse have +been idle for a period of time, and then runs a graphics demo +chosen at random. It turns off as soon as there is any mouse or +keyboard activity. It can also lock the screen immediately, after a +longer idle period, or on demand. This packages contains additional graphics demos. @@ -128,85 +130,91 @@ %patch32 %patch42 %patch43 -# KDE and GNOME have its own screensavers: -echo 'NotShowIn=KDE;GNOME;' >>driver/screensaver-properties.desktop.in +# KDE, GNOME and MATE have there own screensavers: +echo 'NotShowIn=KDE;GNOME;MATE;' >> driver/screensaver-properties.desktop.in +cp -f %{SOURCE4} xscreensaver-desktops-generate +chmod a+x xscreensaver-desktops-generate %build # Fix man pages header: find hacks -name '*.man' -print0 | xargs -0 sed -ie 's/TH XScreenSaver 1/TH XScreenSaver 6/' -# modify hack list to fit our needs: +# Modify hack list to fit our needs: sed -re ' s/^([[:space:]]*(rorschach|greynetic|noseguy|deco|moire|spiral|laser|sierpinski|flag|sphere|mountain|triangle|worm|xlyap|cynosure|bsod|t3d|wander"Wander|critical|phosphor|blaster|nerverot|"SpeedMine"|poluominoes|fluidballs|barcode|bubbles))/-\1/; s/^-([[:space:]]*(juggle))/\1/; s/^@GL_KLUDGE@([[:space:]]*GL:[[:space:]]*(sproingies|"Molecule \(lumpy\)"|circuit|atunnel|glmatrix|stairs|pulsar|starwars|"GLText|boxed|"GLForestFire"|sballs|cubenetic|queens|endgame))/-\1/; s/^-([[:space:]]*GL:[[:space:]]*(fireflies))/\1/; /.*vidwhacker -stdin -stdout/D; - ' driver/XScreenSaver.ad.in > driver/XScreenSaver.ad.in.tmp && mv driver/XScreenSaver.ad.in.tmp driver/XScreenSaver.ad.in + ' driver/XScreenSaver.ad.in > driver/XScreenSaver.ad.in.tmp && mv -f driver/XScreenSaver.ad.in.tmp driver/XScreenSaver.ad.in intltoolize --copy --force -sed -i "s:@install_sh@:../install-sh -c:" po/Makefile.in.in +sed -i "s|@install_sh@|../install-sh -c|" po/Makefile.in.in chmod +x install-sh -autoreconf -f -i +autoreconf -fi # Disable direct PAM use and shadow (both needs suid). -%configure\ - --with-hackdir=%{_libdir}/xscreensaver\ - --with-x-app-defaults=%{_datadir}/X11/app-defaults\ - --with-configdir=%{_sysconfdir}/xscreensaver\ - --without-kerberos\ - --with-passwd-helper=/sbin/unix2_chkpwd\ - --with-gl\ - --with-gle\ - --with-pixbuf\ - --with-xpm\ - --with-jpeg\ - --with-xshm-ext\ - --with-xdbe-ext\ - --without-pam\ - --without-shadow\ - --with-login-manager=%{_bindir}/gdmflexiserver\ - --with-image-directory=%{_datadir}/wallpapers\ - --enable-locking\ +%configure \ + --with-hackdir=%{_libdir}/xscreensaver \ + --with-x-app-defaults=%{_datadir}/X11/app-defaults \ + --with-configdir=%{_sysconfdir}/xscreensaver \ + --without-kerberos \ + --with-passwd-helper=/sbin/unix2_chkpwd \ + --with-gl \ + --with-gle \ + --with-pixbuf \ + --with-xpm \ + --with-jpeg \ + --with-xshm-ext \ + --with-xdbe-ext \ + --without-pam \ + --without-shadow \ + --with-login-manager=%{_bindir}/gdmflexiserver \ + --with-image-directory=%{_datadir}/wallpapers \ + --enable-locking \ --with-login-manager -make %{?jobs:-j%jobs} all +make %{?_smp_mflags} all %install -rm hacks/config/vidwhacker.xml -mkdir -p $RPM_BUILD_ROOT/tmp/bin -make install_prefix=$RPM_BUILD_ROOT \ +rm -f hacks/config/vidwhacker.xml +mkdir -p %{buildroot}/tmp/bin/ +make install_prefix=%{buildroot} \ KDEDIR=/tmp \ - DESTDIR=$RPM_BUILD_ROOT \ + DESTDIR=%{buildroot} \ datadir=%{_datadir} \ install -rm -r $RPM_BUILD_ROOT/tmp +rm -r %{buildroot}/tmp/ # -# remove obsolete suid bit -chmod 755 $RPM_BUILD_ROOT%{_bindir}/xscreensaver +# Remove obsolete SUID bit. +chmod 0755 %{buildroot}%{_bindir}/xscreensaver # -# pam config -install -d -m 755 $RPM_BUILD_ROOT/etc/pam.d -install -m 644 %{S:1} $RPM_BUILD_ROOT/etc/pam.d/xscreensaver +# PAM config. +install -Dm 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/xscreensaver # -# language files +# Language files. %find_lang %{name} # -# desktop files +# Desktop files. %suse_update_desktop_file -G "Screensaver properties" xscreensaver-properties DesktopSettings # -# list files for screensavers in data and data-extra subpackages +# Generate .desktop files for mate-screensaver usage. +mkdir -p %{buildroot}%{_datadir}/applications/screensavers/ +./xscreensaver-desktops-generate %{buildroot}%{_sysconfdir}/xscreensaver/ %{buildroot}%{_datadir}/applications/screensavers/ +# Remove duplicate of a file from mate-screensaver. +rm -f %{buildroot}%{_datadir}/applications/screensavers/popsquares.desktop +# +# List files for screensavers in data and data-extra subpackages. rm -f %{name}-data.lst %{name}-data-extra.lst -for hack in `grep -v '#' %{SOURCE2}`; do - test -f %{buildroot}%{_mandir}/man6/$hack.6* && echo "%doc %{_mandir}/man6/$hack.6*" >> %{name}-data.lst - test -f %{buildroot}%{_sysconfdir}/xscreensaver/$hack.xml && echo "%config %{_sysconfdir}/xscreensaver/$hack.xml" >> %{name}-data.lst +for hack in $(grep -v '#' %{SOURCE2}); do + [ -f %{buildroot}%{_mandir}/man6/$hack.6* ] && echo "%doc %{_mandir}/man6/$hack.6*" >> %{name}-data.lst + [ -f %{buildroot}%{_sysconfdir}/xscreensaver/$hack.xml ] && echo "%config %{_sysconfdir}/xscreensaver/$hack.xml" >> %{name}-data.lst + [ -f %{buildroot}%{_datadir}/applications/screensavers/$hack.desktop ] && echo "%{_datadir}/applications/screensavers/$hack.desktop" >> %{name}-data.lst echo "%{_libdir}/xscreensaver/$hack" >> %{name}-data.lst done -for hack in `grep -v '#' %{SOURCE3}`; do - test -f %{buildroot}%{_mandir}/man6/$hack.6* && echo "%doc %{_mandir}/man6/$hack.6*" >> %{name}-data-extra.lst - test -f %{buildroot}%{_sysconfdir}/xscreensaver/$hack.xml && echo "%config %{_sysconfdir}/xscreensaver/$hack.xml" >> %{name}-data-extra.lst +for hack in $(grep -v '#' %{SOURCE3}); do + [ -f %{buildroot}%{_mandir}/man6/$hack.6* ] && echo "%doc %{_mandir}/man6/$hack.6*" >> %{name}-data-extra.lst + [ -f %{buildroot}%{_sysconfdir}/xscreensaver/$hack.xml ] && echo "%config %{_sysconfdir}/xscreensaver/$hack.xml" >> %{name}-data-extra.lst + [ -f %{buildroot}%{_datadir}/applications/screensavers/$hack.desktop ] && echo "%{_datadir}/applications/screensavers/$hack.desktop" >> %{name}-data-extra.lst echo "%{_libdir}/xscreensaver/$hack" >> %{name}-data-extra.lst done -%clean -rm -rf $RPM_BUILD_ROOT - %files -f %{name}.lang %defattr(-,root,root) %doc README @@ -218,33 +226,35 @@ %{_datadir}/pixmaps/xscreensaver.xpm %dir %{_datadir}/xscreensaver/ %{_datadir}/xscreensaver/glade/ -%doc %{_mandir}/man1/xscreensaver.* -%doc %{_mandir}/man1/xscreensaver-command.* -%doc %{_mandir}/man1/xscreensaver-demo.* -%doc %{_mandir}/man6/xscreensaver-gl-helper.* -%dir %{_datadir}/X11/app-defaults +%{_mandir}/man1/xscreensaver.* +%{_mandir}/man1/xscreensaver-command.* +%{_mandir}/man1/xscreensaver-demo.* +%{_mandir}/man6/xscreensaver-gl-helper.* +%dir %{_datadir}/X11/app-defaults/ %{_datadir}/X11/app-defaults/XScreenSaver %config %{_sysconfdir}/pam.d/xscreensaver -%dir %{_sysconfdir}/xscreensaver +%dir %{_sysconfdir}/xscreensaver/ %{_sysconfdir}/xscreensaver/README %files data -f %{name}-data.lst %defattr(-,root,root) -%dir %{_libdir}/xscreensaver -%dir %{_sysconfdir}/xscreensaver +%dir %{_libdir}/xscreensaver/ +%dir %{_sysconfdir}/xscreensaver/ +%dir %{_datadir}/applications/screensavers/ %files data-extra -f %{name}-data-extra.lst %defattr(-,root,root) -%dir %{_libdir}/xscreensaver -%dir %{_sysconfdir}/xscreensaver -# screensavers using those utilities are in this package +%dir %{_libdir}/xscreensaver/ +%dir %{_sysconfdir}/xscreensaver/ +%dir %{_datadir}/applications/screensavers/ +# Screensavers using those utilities are in this package. %{_bindir}/xscreensaver-getimage %{_bindir}/xscreensaver-getimage-file %{_bindir}/xscreensaver-getimage-video %{_bindir}/xscreensaver-text -%doc %{_mandir}/man1/xscreensaver-getimage.* -%doc %{_mandir}/man1/xscreensaver-getimage-file.* -%doc %{_mandir}/man1/xscreensaver-getimage-video.* -%doc %{_mandir}/man1/xscreensaver-text.* +%{_mandir}/man1/xscreensaver-getimage.* +%{_mandir}/man1/xscreensaver-getimage-file.* +%{_mandir}/man1/xscreensaver-getimage-video.* +%{_mandir}/man1/xscreensaver-text.* %changelog ++++++ xscreensaver-desktops-generate.sh ++++++ #!/bin/bash # Provided an xml files as arguments, generates a desktop file. # 2008-2012 Tormod Volden # 2015 Sorokin Alexei # Poor man's xml parser "can i haz xml purrser". get_xml_option () { file="$1" tag="$2" option="$3" < "$file" sed -n '/\<'$tag' /s@.* '$option'="\([^"]*\)".*@\1@p' } get_xml_entity () { file="$1" tag="$2" < "$file" sed -e ':a; /<'$tag'/N;s/\n/ /; ta' | sed -ne 's/.*<'$tag'> *\(.*\)<\/'$tag'>.*/\1/p' } extract_entries () { export XML="$1" export XMLNAME="$(get_xml_option "$XML" 'screensaver' 'name')" export XMLARG="$(get_xml_option "$XML" 'command' 'arg' | sed -e ':a; N; s/\n/ /; ta')" export XMLEXE="$XMLNAME $XMLARG" export XMLLABEL="$(get_xml_option "$XML" 'screensaver' '_label')" export XMLGL="$(get_xml_option "$XML" 'screensaver' 'gl')" # Delete trailing spaces and years. export XMLDES="$(get_xml_entity "$XML" '_description' | sed -e 's/ */ /g; s/[;,.] [0-9;,. ]*$/./')" # Only get first part of first paragraph. export SHORTDES="$(echo "$XMLDES" | sed -e 's/[.:!(].*/./')" } OPTIND=1 while getopts "hv" opt; do case "$opt" in h) echo -e "Usage:\n $(basename $0) [-hvV] XML-DIR DESKTOPS-DIR" exit 0 ;; v) echo "$(basename $0) 0.1" ;; esac done shift $((OPTIND-1)) if [[ "$1" == "--" ]]; then shift 1 fi if [[ -z "$1" ]]; then echo "$(basename $0): xscreensaver hack XML files directory is not specified." >&2 exit 1 fi if [ -z "$1" ] || [ ! -d "$1" ] || [ ! -r "$1" ]; then echo "$(basename $0): \`$1' is not a readable directory." >&2 exit 1 elif [ -z "$2" ] || [ ! -d "$2" ]; then echo "$(basename $0): \`$2' is not a directory." >&2 exit 1 fi ls "$1" | grep '\.xml$' | while read file; do extract_entries "$1/$file" cat > "$2/$(basename "$1/$file" .xml).desktop" <<- EOF [Desktop Entry] Name=$XMLLABEL Comment=$XMLDES Exec=$XMLEXE TryExec=$XMLNAME StartupNotify=false Terminal=false Type=Application Categories=Screensaver; OnlyShowIn=MATE; EOF done ++++++ xscreensaver-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.82eHOe/_old 2015-10-19 22:47:37.000000000 +0200 +++ /var/tmp/diff_new_pack.82eHOe/_new 2015-10-19 22:47:37.000000000 +0200 @@ -1 +1,2 @@ +addFilter('desktopfile-without-binary') addFilter('binary-or-shlib-calls-gethostbyname')