diff --git a/pkg/fedora/README.md b/pkg/fedora/README.md index 2dade7700..f58f6206d 100644 --- a/pkg/fedora/README.md +++ b/pkg/fedora/README.md @@ -68,15 +68,6 @@ directory, copy-paste previous version nr. It will be updated. This has been confirmed to start up and provide basic functionality both using the thin webserver and apache passenger, and on 32/64 bit systems. -#### Bugs - -As of now, diaspora fails if it not owns all file under /usr/share/diaspora. -I guess this means diaspora writes some stuff somewhere. In the long run, -this should be located and symlinked to /var,leaving the rest of the files -owned by root. FTM, all files in /usr/share/diaspore are owned by -diaspora - - #### Implementation 'make-dist.sh source' script checks out latest version of diaspora into the @@ -89,17 +80,18 @@ patches, the content of diaspora-bundle. Here is also support for running the diaspora websocket service as a system service through /sbin/service and some install scripts. -Diaspora files are stored in /usr/share/diaspora, and owned by diaspora. The +Diaspora files are stored in /usr/share/diaspora, and owned by root. The bundle, containing some C extensions, is architecture-dependent and lives in /usr/lib[64]/diaspora. Log files are in /var/log/diaspora. Symlinks in -/usr/share diaspora makes log and bundle available as expected by diaspora app. -This is more or less as mandated by LSB and Fedora packaging rules. - - find /usr/share/diaspora/ -type l -exec ls -l {} \; | awk '{print $9, $10, $11}' - /usr/share/diaspora/master/public/uploads -> /var/lib/diaspora/uploads - /usr/share/diaspora/master/log -> /var/log/diaspora - /usr/share/diaspora/master/vendor/bundle -> /usr/lib/diaspora-bundle/master/vendor/bundle +/usr/share diaspora makes log, bundle and tmp dir available as expected by +diaspora app. This is more or less as mandated by LSB and Fedora packaging rules. + find . -type l -exec ls -l {} \; | awk '{print $9, $10, $11}' + ./public/uploads -> /var/lib/diaspora/uploads + ./log -> /var/log/diaspora + ./tmp -> /var/lib/diaspora/tmp + ./vendor/bundle -> /usr/lib/diaspora-bundle/master/vendor/bundle + #### Discussion diff --git a/pkg/fedora/diaspora.spec b/pkg/fedora/diaspora.spec index 533f170d3..bb45bac67 100644 --- a/pkg/fedora/diaspora.spec +++ b/pkg/fedora/diaspora.spec @@ -53,6 +53,7 @@ cp -ar master $RPM_BUILD_ROOT/%{_datadir}/diaspora cp -ar master/.gitignore master/.bundle $RPM_BUILD_ROOT/%{_datadir}/diaspora/master cp diaspora-setup $RPM_BUILD_ROOT/%{_datadir}/diaspora mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/uploads +mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/diaspora/tmp find $RPM_BUILD_ROOT/%{_datadir}/diaspora -type d -fprintf dirs '%%%dir "%%p"\n' find -L $RPM_BUILD_ROOT/%{_datadir}/diaspora -type f -fprintf files '"%%p"\n' @@ -67,6 +68,7 @@ sed -i -e '\|.*/master/config.ru"$|d' \ rm -f %{_datadir}/diaspora/master/vendor/bundle rm -f %{_datadir}/diaspora/master/log rm -f %{_datadir}/diaspora/master/public/uploads +rm -rf %{_datadir}/diaspora/master/tmp ln -s %{_localstatedir}/log/diaspora \ %{_datadir}/diaspora/master/log || : @@ -74,6 +76,8 @@ ln -s %{_libdir}/diaspora-bundle/master/vendor/bundle \ %{_datadir}/diaspora/master/vendor || : ln -s %{_localstatedir}/lib/diaspora/uploads \ %{_datadir}/diaspora/master/public/uploads || : +ln -s %{_localstatedir}/lib/diaspora/tmp \ + %{_datadir}/diaspora/master/tmp || : /sbin/chkconfig --add diaspora-ws || : %preun @@ -86,12 +90,13 @@ fi [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT %files -f files -%defattr(-, diaspora, diaspora, 0755) +%defattr(-, root, root, 0755) %doc README.md GNU-AGPL-3.0 %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config.ru %attr(-, diaspora, diaspora) %{_datadir}/diaspora/master/config/environment.rb %attr(-, diaspora, diaspora) %{_localstatedir}/log/diaspora %attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/uploads +%attr(-, diaspora, diaspora) %{_localstatedir}/lib/diaspora/tmp %config(noreplace) %{_sysconfdir}/logrotate.d/diaspora %{_sysconfdir}/init.d/diaspora-ws diff --git a/pkg/fedora/make-dist.sh b/pkg/fedora/make-dist.sh index d8407ab9d..19e52feb8 100755 --- a/pkg/fedora/make-dist.sh +++ b/pkg/fedora/make-dist.sh @@ -22,9 +22,9 @@ function git_id file="" dir=$file_or_dir else - file=$(basename $file_or_dir) + file=$(basename $file_or_dir) dir=$(dirname $file_or_dir) - fi + fi export LANG=C ( @@ -59,14 +59,14 @@ function fix_alphatag() else { gsub( "1[.].*", "") - printf( "%s%s-1.%s%s\n", + printf( "%s%s-1.%s%s\n", $0, version, release,dist) done = 1 } next } { print }' \ - < $1 > $1.tmp && mv -f $1.tmp $1 + < $1 > $1.tmp && mv -f $1.tmp $1 } function fix_bundle_deps @@ -81,7 +81,7 @@ function fix_bundle_deps next } { print}' \ - < $1 > $1.tmp && mv -f $1.tmp $1 + < $1 > $1.tmp && mv -f $1.tmp $1 } function patch() @@ -90,7 +90,7 @@ function patch() { sed -e "/^%define/s|HEAD|$2|" \ -e '/^Version:/s|.*|Version: '$1'|' \ - dist/diaspora.spec + dist/diaspora.spec fix_alphatag dist/diaspora.spec $1 $2 bundle_id=$(git_id dist/diaspora/Gemfile) dist_tag=$(rpm --eval %dist) @@ -98,7 +98,7 @@ function patch() sed -e "/^%define/s|HEAD|$bundle_id|" \ -e '/^Version:/s|.*|Version: '$1'|' \ < diaspora-bundle.spec > dist/diaspora-bundle.spec - + cp dist/diaspora.spec dist/diaspora/diaspora.spec } @@ -106,12 +106,12 @@ function checkout() # Checkout last version of diaspora unless it's already there. # Usage: checkout [commit id, defaults to HEAD] # Returns: commit for current branch's HEAD. -{ +{ mkdir dist >/dev/null 2>&1 || : ( - cd dist + cd dist test -d diaspora || { - git clone --quiet $GIT_REPO; + git clone --quiet $GIT_REPO; ( cd diaspora; git remote add upstream \ @@ -121,11 +121,11 @@ function checkout() done ) } - cd diaspora; - git fetch --quiet upstream + cd diaspora; + git fetch --quiet upstream git merge --quiet upstream/master git checkout --quiet ${1:-'HEAD'} - git_id -n + git_id -n ) } @@ -136,10 +136,10 @@ function make_dist { commit=$(checkout ${1:-'HEAD'}) echo "Creating source tarball for $commit" - patch $VERSION $commit + patch $VERSION $commit RELEASE_DIR="diaspora-$VERSION-$commit" - rm -rf dist/${RELEASE_DIR} + rm -rf dist/${RELEASE_DIR} mkdir dist/${RELEASE_DIR} cp diaspora-ws diaspora-setup diaspora.logconf dist/${RELEASE_DIR} cd dist @@ -173,7 +173,7 @@ function make_bundle() test -e "dist/$bundle_name.tar.gz" || { echo "Creating bundle $bundle_name" cd dist - rm -rf $bundle_name + rm -rf $bundle_name mkdir -p $bundle_name/bundle pushd diaspora > /dev/null bundle install --deployment \ @@ -186,7 +186,7 @@ function make_bundle() tar czf $bundle_name.tar.gz $bundle_name cd .. } - echo + echo echo "Bundle: dist/$bundle_name.tar.gz" } @@ -201,7 +201,7 @@ function make_links() echo "Linking sources to $dest" src_commit="${1:-$( checkout)}" - + src="dist/diaspora-$VERSION-$src_commit.tar.gz" ln -sf $PWD/$src $dest @@ -227,7 +227,7 @@ function usage() dist Build a diaspora application tarball. bundle Build a bundler(1) bundle for diaspora. links Symlink bundle and source tarballs to rpm source dir. - + All results are stored in dist/ EOF } @@ -246,10 +246,10 @@ test "$1" = "-c" && { commit="$2" shift; shift } - - + + case $1 in - + "bundle") make_bundle $commit ;; @@ -262,11 +262,11 @@ case $1 in "fix_gemfile") fix_gemfile ;; - + *) usage exit 1 ;; esac - - + +