rpms/xscreensaver/devel update-xscreensaver-hacks, NONE, 1.1 xscreensaver.spec, 1.43, 1.44
Mamoru Tasaka (mtasaka)
fedora-extras-commits at redhat.com
Sun Sep 2 15:24:46 UTC 2007
- Previous message (by thread): rpms/gstreamer-plugins-good/devel gstreamer-0.10.6-id3demux-segment.patch, NONE, 1.1 gstreamer-plugins-good.spec, 1.44, 1.45
- Next message (by thread): rpms/audit/devel .cvsignore, 1.81, 1.82 audit.spec, 1.144, 1.145 sources, 1.101, 1.102 audit-1.6-audispd.patch, 1.1, NONE s-c-audit-0.4.3.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mtasaka
Update of /cvs/extras/rpms/xscreensaver/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30252
Modified Files:
xscreensaver.spec
Added Files:
update-xscreensaver-hacks
Log Message:
* Sun Sep 2 2007 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 1:5.03-2
- Try to make XScreenSaver.ad modular
--- NEW FILE update-xscreensaver-hacks ---
#!/bin/bash
_SYSCONFDIR=${sysconfdir:-/etc}
_PREFIX=${prefix:-/usr}
_DATADIR=${datadir:-${_PREFIX}/share}
ADDIR=${ADDIR:-${install_prefix}${_SYSCONFDIR}/xscreensaver}
CONFDIR=${CONFDIR:-${install_prefix}${_DATADIR}/xscreensaver/hacks.conf.d}
ADFILE=${ADFILE:-$ADDIR/XScreenSaver.ad}
fix_hackconf ()
{
if [ ! -s $1 ] ; then
echo "$1 is empty" &>2
echo ""
return 1
fi
tmpconf=`mktemp /tmp/hackconf.XXXXXXXX`
tmpconf_1=`mktemp /tmp/hackconf.XXXXXXXX`
tmpconf_2=`mktemp /tmp/hackconf.XXXXXXXX`
tmpconf_3=`mktemp /tmp/hackconf.XXXXXXXX`
sed -n -e '$p' $1 > $tmpconf_1
sed -e '$d' $1 > $tmpconf_2
for file in $tmpconf_1 $tmpconf_2 ; do
if ( [ -s $file ] && grep -q '\\n\(\|\\\)[^\\].*$' $file ) ; then
rm -f $tmpconf $tmpconf_1 $tmpconf_2 $tmpconf_3
echo ""
echo "ignoring $1" >&2
return 1
fi
done
if ! grep -q '\\n[^\\]*$' $tmpconf_1 ; then
sed -i -e 's|\(^.*$\)|\1\\n\\|' $tmpconf_1
fi
sed -i -e 's|\\n$|\\n\\|' $tmpconf_1
while [ -s $tmpconf_2 ] ; do
sed -n -e '1p' $tmpconf_2 > $tmpconf_3
sed -i -e '1d' $tmpconf_2
if grep -q '\\..*$' $tmpconf_3 ; then
rm -f $tmpconf $tmpconf_1 $tmpconf_2 $tmpconf_3
echo ""
echo "ignoring $1" >&2
return 1
fi
if ! grep -q '\\$' $tmpconf_3 ; then
sed -i -e 's|\(^.*$\)|\1\\|' $tmpconf_3
fi
cat $tmpconf_3 >> $tmpconf
done
cat $tmpconf_1 >> $tmpconf
rm -f $tmpconf_1 $tmpconf_2 $tmpconf_3
echo $tmpconf
return 0
}
for suffix in header tail ; do
if [ ! -r $ADDIR/XScreenSaver.ad.$suffix ] ; then
echo "$ADDIR/XScreenSaver.ad.$suffix missing"
exit 1
fi
done
tmpfile=`mktemp /tmp/XScreenSaver.ad.XXXXXXXX`
cat $ADDIR/XScreenSaver.ad.header > $tmpfile
for hackconf in $CONFDIR/*.conf ; do
hackconf_fixed=`fix_hackconf $hackconf`
if [ -n "$hackconf_fixed" ] ; then
cat $hackconf >> $tmpfile
rm -f $hackconf_fixed
fi
done
sed -i -e '$s|\\n\\$|\\n|' $tmpfile
cat $ADDIR/XScreenSaver.ad.tail >> $tmpfile
install -c -p -m 644 $tmpfile $ADFILE
rm -f $tmpfile
Index: xscreensaver.spec
===================================================================
RCS file: /cvs/extras/rpms/xscreensaver/devel/xscreensaver.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- xscreensaver.spec 28 Aug 2007 19:18:51 -0000 1.43
+++ xscreensaver.spec 2 Sep 2007 15:24:14 -0000 1.44
@@ -2,7 +2,7 @@
%define version 5.03
%define beta_ver %{nil}
-%define fedora_rel 1
+%define fedora_rel 2
%define extrarel %{nil}
@@ -16,6 +16,7 @@
%define autoconf_ver 2.53
%define update_po 1
+%define modular_conf 1
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -28,6 +29,7 @@
Group: Amusements/Graphics
URL: http://www.jwz.org/xscreensaver/
Source0: http://www.jwz.org/xscreensaver/xscreensaver-%{version}%{?beta_ver}.tar.gz
+Source10: update-xscreensaver-hacks
Patch1: xscreensaver-5.00b5-sanitize-hacks.patch
Patch21: xscreensaver-5.03-webcollage-default-nonet.patch
Patch40: xscreensaver-5.02-pidnumber-write_long.patch
@@ -272,6 +274,64 @@
make %{?_smp_mflags}
+%if %{modular_conf}
+# Make XScreenSavar.ad modular
+CONFD=xscreensaver
+rm -rf $CONFD
+mkdir $CONFD
+
+# preserve the original adfile
+cp -p driver/XScreenSaver.ad $CONFD
+
+# First split XScreenSaver.ad into 3 parts
+cat driver/XScreenSaver.ad | \
+ sed -n -e '1,/\*programs/p' > $CONFD/XScreenSaver.ad.header
+cat driver/XScreenSaver.ad | sed -e '1,/\*programs/d' | \
+ sed -n -e '1,/\\n$/p' > $CONFD/XScreenSaver.ad.hacks
+cat driver/XScreenSaver.ad | sed -e '1,/\\n$/d' > $CONFD/XScreenSaver.ad.tail
+
+# Seperate XScreenSaver.ad.hacks into each hacks
+cd $CONFD
+mkdir hacks.conf.d ; cp -p XScreenSaver.ad.hacks hacks.conf.d/ ; cd hacks.conf.d
+
+while [ -s XScreenSaver.ad.hacks ] ; do
+# cut hacks file by \n
+ sed -n -e '1,1p' XScreenSaver.ad.hacks > .tmp
+ if grep -q '\\n[\\]*$' .tmp ; then
+ sed -i -e '1d' XScreenSaver.ad.hacks
+ else
+ sed -n -e '1,/\\n[\\]*$/p' XScreenSaver.ad.hacks > .tmp
+ sed -i -e '1,/\\n[\\]*$/d' XScreenSaver.ad.hacks
+ fi
+
+# name modular hack conf
+ set +x
+ cp -p .tmp .tmp.2
+ modname='\'
+ while ( echo $modname | grep -q '\\' ) ; do
+ sed -n -e '1,1p' .tmp.2 | sed -e \
+ 's|^[-]*[ \t][ \t]*\([a-zA-Z][a-zA-Z-]*:[ \t][ \t]*\)*\("[^"][^"]*"[ \t][ \t]*\)*||' | \
+ sed -e 's|[ \t].*$||' > .mod.name
+ modname=`cat .mod.name`
+ sed -i -e '1,1d' .tmp.2
+ done
+ N=1
+ Filen=$modname.conf
+ while [ -f $Filen ] ; do
+ N=$((N+1))
+ Filen=$modname-$N.conf
+ done
+ sed -e 's|\\n$|\\n\\|' .tmp > $Filen
+ echo " created: $Filen"
+
+# clean up
+ rm -f .tmp* .mod.name
+
+done
+set -x
+cd ../..
+%endif
+
%install
archdir=`./config.guess`
cd $archdir
@@ -323,6 +383,57 @@
( cd hacks/glx ; list_files install ) > $dd/gl-extras.files
( cd driver ; list_files install ) > $dd/base.files
+%if %{modular_conf}
+# install update script
+install -cpm 755 %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}
+echo "%{_bindir}/update-xscreensaver-hacks" >> $dd/base.files
+
+# make hack conf modular
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xscreensaver
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/xscreensaver/hacks.conf.d
+cp -p xscreensaver/XScreenSaver.ad* \
+ $RPM_BUILD_ROOT%{_sysconfdir}/xscreensaver
+cp -p xscreensaver/hacks.conf.d/*.conf \
+ $RPM_BUILD_ROOT%{_datadir}/xscreensaver/hacks.conf.d/
+
+for adfile in xscreensaver/XScreenSaver.ad.* ; do
+ filen=`basename $adfile`
+ echo "%%config(noreplace) %{_sysconfdir}/xscreensaver/$filen" >> $dd/base.files
+done
+echo -n "%%verify(not size md5 mtime) " >> $dd/base.files
+echo "%%config(noreplace) %{_sysconfdir}/xscreensaver/XScreenSaver.ad" >> \
+ $dd/base.files
+
+# check symlink
+rm -f $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults/XScreenSaver
+
+pushd $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults
+pushd ../../../..
+if [ ! $(pwd) == $RPM_BUILD_ROOT ] ; then
+ echo "Possibly symlink broken"
+ exit 1
+fi
+popd
+popd
+
+ln -sf ../../../..%{_sysconfdir}/xscreensaver/XScreenSaver.ad \
+ $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults/XScreenSaver
+
+set +x
+for conf in xscreensaver/hacks.conf.d/*.conf ; do
+ modname=`basename $conf | sed -e 's|.conf||' | sed -e 's|-.*||'`
+ if grep -q -i $modname $dd/extras.files ; then
+ hackfile=$dd/extras.files
+ else
+ hackfile=$dd/gl-extras.files
+ fi
+ echo "%{_datadir}/xscreensaver/hacks.conf.d/`basename $conf`" >> $hackfile
+ echo -n " Added: %{_datadir}/xscreensaver/hacks.conf.d/`basename $conf`"
+ echo " >> `basename $hackfile`"
+done
+set -x
+%endif
+
# add documents
pushd $dd &> /dev/null
for f in README* ; do
@@ -332,7 +443,7 @@
# add directory
pushd $RPM_BUILD_ROOT
-for dir in `find .%{_prefix} -type d | grep xscreensaver` ; do
+for dir in `find . -type d | grep xscreensaver` ; do
echo "%%dir ${dir#.}" >> $dd/base.files
done
popd
@@ -414,6 +525,16 @@
%clean
rm -rf ${RPM_BUILD_ROOT}
+%if %{modular_conf}
+%post extras
+%{_bindir}/update-xscreensaver-hacks
+exit 0
+
+%post gl-extras
+%{_bindir}/update-xscreensaver-hacks
+exit 0
+%endif
+
%files
%defattr(-,root,root,-)
@@ -433,6 +554,9 @@
%defattr(-,root,root,-)
%changelog
+* Sun Sep 2 2007 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 1:5.03-2
+- Try to make XScreenSaver.ad modular
+
* Wed Aug 29 2007 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 1:5.03-1
- Update to 5.03
- Previous message (by thread): rpms/gstreamer-plugins-good/devel gstreamer-0.10.6-id3demux-segment.patch, NONE, 1.1 gstreamer-plugins-good.spec, 1.44, 1.45
- Next message (by thread): rpms/audit/devel .cvsignore, 1.81, 1.82 audit.spec, 1.144, 1.145 sources, 1.101, 1.102 audit-1.6-audispd.patch, 1.1, NONE s-c-audit-0.4.3.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list