Use make_relative_symlink scripts to avoid %post ln commands.
Patching .bundle/config to use /usr/lib/diaspora-bundle, to avoid inter-package linking from diaspora to diaspora-bundle. This also leaves the content under vendor/bundle untouched. Uses kitchen script to create relative links within diaspora package.
This commit is contained in:
parent
1c00fc232e
commit
30b24a1079
3 changed files with 73 additions and 14 deletions
|
|
@ -2,3 +2,4 @@
|
||||||
diaspora-setup
|
diaspora-setup
|
||||||
diaspora-wsd
|
diaspora-wsd
|
||||||
diaspora.logconf
|
diaspora.logconf
|
||||||
|
make_rel_symlink.py
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ Source: %{name}-%{version}-%{git_release}.tar.gz
|
||||||
Source1: diaspora-wsd
|
Source1: diaspora-wsd
|
||||||
Source2: diaspora-setup
|
Source2: diaspora-setup
|
||||||
Source3: diaspora.logconf
|
Source3: diaspora.logconf
|
||||||
|
Source4: make_rel_symlink.py
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRoot: %{_rmpdir}/not-used-in-fedora/
|
BuildRoot: %{_rmpdir}/not-used-in-fedora/
|
||||||
|
|
||||||
|
|
@ -37,6 +38,10 @@ rm -rf master/vendor/bundle
|
||||||
%install
|
%install
|
||||||
rm -fr $RPM_BUILD_ROOT
|
rm -fr $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
sed -i \
|
||||||
|
'/BUNDLE_PATH/s|:.*|: %{_libdir}/diaspora-bundle/master/vendor/bundle|' \
|
||||||
|
master/.bundle/config
|
||||||
|
|
||||||
cp master/GNU-AGPL-3.0 master/COPYRIGHT master/README.md master/AUTHORS .
|
cp master/GNU-AGPL-3.0 master/COPYRIGHT master/README.md master/AUTHORS .
|
||||||
cp master/pkg/fedora/README.md README-Fedora.md
|
cp master/pkg/fedora/README.md README-Fedora.md
|
||||||
|
|
||||||
|
|
@ -56,10 +61,12 @@ mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads
|
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp
|
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp
|
||||||
|
|
||||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/vendor/bundle
|
%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/log/diaspora \
|
||||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/log
|
$RPM_BUILD_ROOT/%{_datadir}/diaspora/master/log
|
||||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/public/uploads
|
%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads \
|
||||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/diaspora/master/tmp
|
$RPM_BUILD_ROOT/%{_datadir}/diaspora/master/public/uploads
|
||||||
|
%{SOURCE4} $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp \
|
||||||
|
$RPM_BUILD_ROOT/%{_datadir}/diaspora/master/tmp
|
||||||
|
|
||||||
find $RPM_BUILD_ROOT/%{_datadir}/diaspora -type d \
|
find $RPM_BUILD_ROOT/%{_datadir}/diaspora -type d \
|
||||||
-fprintf dirs '%%%dir "%%p"\n'
|
-fprintf dirs '%%%dir "%%p"\n'
|
||||||
|
|
@ -71,26 +78,22 @@ sed -i -e '\|.*/master/config.ru"$|d' \
|
||||||
-e 's|%{buildroot}||' -e 's|//|/|' -e '/""/d' \
|
-e 's|%{buildroot}||' -e 's|//|/|' -e '/""/d' \
|
||||||
files
|
files
|
||||||
|
|
||||||
%post
|
|
||||||
ln -sf %{_localstatedir}/log/diaspora \
|
|
||||||
%{_datadir}/diaspora/master/log &>/dev/null || :
|
|
||||||
ln -sf %{_libdir}/diaspora-bundle/master/vendor/bundle \
|
|
||||||
.%{_datadir}/diaspora/master/vendor &>/dev/null || :
|
|
||||||
ln -sf %{_localstatedir}/lib/diaspora/uploads \
|
|
||||||
%{_datadir}/diaspora/master/public/uploads &>/dev/null || :
|
|
||||||
ln -sf %{_localstatedir}/lib/diaspora/tmp \
|
|
||||||
%{_datadir}/diaspora/master/tmp &>/dev/null || :
|
|
||||||
|
|
||||||
|
%post
|
||||||
/sbin/chkconfig --add diaspora-wsd
|
/sbin/chkconfig --add diaspora-wsd
|
||||||
|
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
if [ $1 -eq 0 ] ; then
|
if [ $1 -eq 0 ] ; then
|
||||||
service diaspora-wsd stop >/dev/null 2>&1 || :
|
service diaspora-wsd stop &>/dev/null || :
|
||||||
/sbin/chkconfig --del diaspora-wsd
|
/sbin/chkconfig --del diaspora-wsd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -fr $RPM_BUILD_ROOT
|
rm -fr $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
%files -f files
|
%files -f files
|
||||||
%defattr(-, root, root, 0755)
|
%defattr(-, root, root, 0755)
|
||||||
%doc AUTHORS README.md GNU-AGPL-3.0 COPYRIGHT README-Fedora.md
|
%doc AUTHORS README.md GNU-AGPL-3.0 COPYRIGHT README-Fedora.md
|
||||||
|
|
@ -99,6 +102,9 @@ rm -fr $RPM_BUILD_ROOT
|
||||||
%attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora
|
%attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora
|
||||||
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads
|
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads
|
||||||
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp
|
%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp
|
||||||
|
%{_datadir}/diaspora/master/tmp
|
||||||
|
%{_datadir}/diaspora/master/public/uploads
|
||||||
|
%{_datadir}/diaspora/master/log
|
||||||
%config(noreplace) %{_sysconfdir}/logrotate.d/diaspora
|
%config(noreplace) %{_sysconfdir}/logrotate.d/diaspora
|
||||||
%{_sysconfdir}/init.d/diaspora-wsd
|
%{_sysconfdir}/init.d/diaspora-wsd
|
||||||
|
|
||||||
|
|
|
||||||
52
pkg/fedora/make_rel_symlink.py
Executable file
52
pkg/fedora/make_rel_symlink.py
Executable file
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
import pdb
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
def relative_ln_s( from_, to_ ):
|
||||||
|
"""
|
||||||
|
|
||||||
|
This is just so dirty & boring: create a relative symlink, making the
|
||||||
|
to_ path relative to from_. No errorchecks. Both arguments must be
|
||||||
|
files, a destination directory doesn't work (I think). An existing
|
||||||
|
file in to_ will be removed.
|
||||||
|
|
||||||
|
"""
|
||||||
|
prefix = os.path.commonprefix( [ to_, from_ ] )
|
||||||
|
if prefix == '':
|
||||||
|
prefix = '/'
|
||||||
|
source = from_.split( prefix )[ 1 ]
|
||||||
|
dest = to_.split( prefix )[ 1 ]
|
||||||
|
level = len( dest.split( '/' ) ) - 1
|
||||||
|
path = ( '../' * level ) + source
|
||||||
|
return path
|
||||||
|
|
||||||
|
USAGE = 'Usage: make_rel_symlink [-p] <sourcefile> <destfile>'
|
||||||
|
|
||||||
|
just_print = False;
|
||||||
|
if sys.argv[1] == "-p":
|
||||||
|
just_print = True;
|
||||||
|
sys.argv = sys.argv[ 1:]
|
||||||
|
|
||||||
|
if len( sys.argv ) != 3:
|
||||||
|
print USAGE
|
||||||
|
sys.exit( 1 )
|
||||||
|
|
||||||
|
if os.path.isdir( sys.argv[2] ):
|
||||||
|
print "Removing link target dir:" + sys.argv[2]
|
||||||
|
shutil.rmtree( sys.argv[2])
|
||||||
|
|
||||||
|
link_path = relative_ln_s( sys.argv[1], sys.argv[2] )
|
||||||
|
if just_print:
|
||||||
|
print link_path
|
||||||
|
else:
|
||||||
|
os.chdir( os.path.dirname( sys.argv[2]))
|
||||||
|
target = os.path.basename( sys.argv[2])
|
||||||
|
if os.path.exists( target ):
|
||||||
|
os.unlink( target)
|
||||||
|
os.symlink( link_path, target)
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue