X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=xscreensaver.spec;h=6d7a6cb1fe6b6781b4b02986cf1e178701a48548;hb=a94197e76a5dea5cb60542840809d6c20d0abbf3;hp=fd75dbe02199977a82aec41f5584694685644704;hpb=585e1a6717d1dd9b90fbb53acaaae82106354d33;p=xscreensaver diff --git a/xscreensaver.spec b/xscreensaver.spec index fd75dbe0..6d7a6cb1 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 3.32 +%define version 4.01 %define release 1 %define serial 1 %define x11_prefix /usr/X11R6 @@ -7,7 +7,8 @@ %define kde_prefix /usr %define gnome_datadir %{gnome_prefix}/share -%define gnome_ccdir %{gnome_datadir}/control-center/Desktop +%define gnome_ccdir_1 %{gnome_datadir}/control-center/Desktop +%define gnome_ccdir_2 %{gnome_datadir}/control-center/capplets %define gnome_paneldir %{gnome_datadir}/gnome/apps/Settings/Desktop %define gnome_icondir %{gnome_datadir}/pixmaps @@ -29,11 +30,15 @@ Vendor: Jamie Zawinski Source: %{name}-%{version}.tar.gz Buildroot: %{_tmppath}/%{name}-%{version}-root +# This package really should be made to depend on +# control-center >= 1.4.0.2 -OR- control-center >= 1.5.12 +# but there's no way to express that. + %description A modular screen saver and locker for the X Window System. Highly customizable: allows the use of any program that can draw on the root window as a display mode. -More than 120 display modes are included in this package. +More than 140 display modes are included in this package. %{?USE_GL:See also the xscreensaver-gl package, which} %{?USE_GL:includes optional OpenGL display modes.} @@ -75,8 +80,7 @@ RPMOPTS="" CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=%{x11_prefix} \ - --enable-subdir=../lib/xscreensaver \ - --without-setuid-hacks \ + --with-setuid-hacks \ $RPMOPTS make @@ -88,7 +92,8 @@ make # directory instead (/usr/bin/). # mkdir -p $RPM_BUILD_ROOT%{gnome_prefix}/bin -mkdir -p $RPM_BUILD_ROOT%{gnome_ccdir} +mkdir -p $RPM_BUILD_ROOT%{gnome_ccdir_1} +mkdir -p $RPM_BUILD_ROOT%{gnome_ccdir_2} mkdir -p $RPM_BUILD_ROOT%{gnome_paneldir} # Likewise for KDE: the .kss file goes in the KDE bin directory (/usr/bin/). @@ -122,9 +127,10 @@ list_files() { } ( cd hacks ; list_files install ; \ - cd ../driver; list_files install-program ) \ + cd ../driver; list_files install-program install-scripts ) \ > $RPM_BUILD_DIR/xscreensaver-%{version}/exes-non-gl ( cd hacks/glx ; list_files install ) \ + | grep -v man1/xscreensaver-gl-helper \ > $RPM_BUILD_DIR/xscreensaver-%{version}/exes-gl @@ -144,89 +150,14 @@ install -m 4755 driver/xscreensaver $RPM_BUILD_ROOT%{x11_prefix}/bin # chmod -R a+r,u+w,og-w $RPM_BUILD_ROOT - -# This is a tricky part... -# -# xscreensaver installs several files that are also installed by the -# "control-center" RPM. The versions from xscreensaver are better, -# and so should override control-center. But, the way RPM works, -# if the xscreensaver RPM contained those files, the end user would -# have to "--force" to make the xscreensaver RPM install. That's -# not something people are used to doing, so that's Bad. -# -# So instead, we rename the files so that they don't conflict with -# the control center. Then we have a "%post" script that creates -# symbolic links to our files. - -CCDIR=$RPM_BUILD_ROOT%{gnome_ccdir} -PADIR=$RPM_BUILD_ROOT%{gnome_paneldir} -CADIR=$RPM_BUILD_ROOT%{gnome_prefix}/bin -DESKF=screensaver-properties.desktop -CAPLT=screensaver-properties-capplet - -if [ -f $CCDIR/$DESKF ]; then - mv $CCDIR/$DESKF $CCDIR/x$DESKF - mv $PADIR/$DESKF $PADIR/x$DESKF - mv $CADIR/$CAPLT $CADIR/x$CAPLT -fi - %post # This part runs on the end user's system, when the RPM is installed. -# (See comment above, at end of "%install" section.) - -verbose=0 - -overwrite_links() { - dir="$1" - oname="$2" - nname="$3" - - # only do this if the file we're making a link *to* exists - # (i.e., was present in this rpm.) - # - if [ -f "$dir/$nname" ]; then - - # backup or delete the old version, if any. - # - existed=0 - if [ -f "$dir/$oname" ]; then - existed=1 - if [ -f "$dir/$oname.rpmsave" ]; then - rm -f "$dir/$oname" - if [ $verbose -gt 1 ]; then - echo "$dir/$oname.rpmsave already exists" >&2 - fi - else - mv "$dir/$oname" "$dir/$oname.rpmsave" - if [ $verbose -gt 1 ]; then - echo "saved $dir/$oname as $oname.rpmsave" >&2 - fi - fi - fi - - # install a relative symlink to the new name. - # - ln -s "$nname" "$dir/$oname" - if [ $verbose -ge 1 ]; then - if [ $existed = 1 ] ; then - echo "replaced $dir/$oname" >&2 - else - echo "created $dir/$oname" >&2 - fi - fi - fi -} - -CCDIR=%{gnome_ccdir} -PADIR=%{gnome_paneldir} -CADIR=%{gnome_prefix}/bin -DESKF=screensaver-properties.desktop -CAPLT=screensaver-properties-capplet - -overwrite_links $CCDIR $DESKF x$DESKF -overwrite_links $PADIR $DESKF x$DESKF -overwrite_links $CADIR $CAPLT x$CAPLT +pids=`pidof xscreensaver` +if [ -n "$pids" ]; then + echo "sending SIGHUP to running xscreensaver ($pids)..." >&2 + kill -HUP $pids +fi %clean if [ -d $RPM_BUILD_ROOT ]; then rm -r $RPM_BUILD_ROOT ; fi @@ -246,7 +177,8 @@ if [ -d $RPM_BUILD_ROOT-gl ]; then rm -r $RPM_BUILD_ROOT-gl ; fi %config(missingok) %{kde_prefix}/bin/*.kss %config(missingok) %{gnome_prefix}/bin/*-capplet -%config(missingok) %{gnome_ccdir}/*.desktop +%config(missingok) %{gnome_ccdir_1}/*.desktop +%config(missingok) %{gnome_ccdir_2}/*.desktop %config(missingok) %{gnome_paneldir}/*.desktop %config(missingok) %{gnome_icondir}/*