diff --git a/pkg/fedora/README.fedora b/pkg/fedora/README.fedora index fc3c8b61e..fdcd00448 100644 --- a/pkg/fedora/README.fedora +++ b/pkg/fedora/README.fedora @@ -1,18 +1,55 @@ -Here is tools to package diaspora as a RPM package. +## Diaspora RPM tools -Synopsis: +Creates Fedora 13 RPM packages from diaspora git repository. -# Create dist/diaspora-0.0-1010041233_faded4231.tar.gz -% ./make_dist.sh source +#### Synopsis: -# Create dist/diaspora-bundle-0.0-1010041233_faded4231.tar.gz -% ./make_dist.sh bundle + # Create dist/diaspora-0.0-1010041233_fade4231.tar.gz + % ./make_dist.sh source -# Setup links to tarballs from RPM source directory: -% ./make_dist.sh links + # Create dist/diaspora-bundle-0.0-1010041233_fade4231.tar.gz + % ./make_dist.sh bundle -# Build rpms: -rpmbuild -ba dist/diaspora.spec -rpmbuild-ba dist/diaspora-bundle.spec + # Setup links to tarballs from RPM source directory: + % ./make_dist.sh links + + # Build rpms: + rpmbuild -ba dist/diaspora.spec + rpmbuild -ba dist/diaspora-bundle.spec + + #Install + rpm -U ~/rmpbuild/rpms/i686/diaspora-bundle-0.0-1.1010042345_4343fade43.fc13.i686 + rpm -U ~/rmpbuild/rpms/noarch/diaspora-0.0-1.1010042345_4343fade43.fc13.noarch + + #Initiate (as root) + /usr/sbin/diaspora-setup + # Fix hostname afterwards by editing pod_url in + # /usr/share/diaspora/master/config/app_config.yml + + + # Start development server: + sudo + su - diaspora + cd master + ./script/server + + # Start using apache passenger: + # See: http://github.com/diaspora/diaspora/wiki/Using-apache + +#### Notes Routines uses last available version from master branch at github. + +You need to copy all patches and secondary sources in this dir to +the rpm source directory a. k. a. $(rpm --eval %_sourcedir). + +The spec-files in dist/ are patched by ./make_dist.sh source to reference +correct versions of diaspora and diaspora-bundle. The diaspora-bundle +is only updated if Gemfile is updated, upgrading diaspora doesn't +always require a new diaspora-bundle. + +rpmlint shows many errors, most of which related to that the server +won't start if the .git directories are not included. Needs investigation. + +This has been confirmed to start up and provide basic functionality both using +the thin webserver and apache passenger. diff --git a/pkg/fedora/diaspora-setup b/pkg/fedora/diaspora-setup new file mode 100755 index 000000000..84ac0763c --- /dev/null +++ b/pkg/fedora/diaspora-setup @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Do what's needed to initiate diaspora. +# +# See http://github.com/diaspora/diaspora/issues/issue/395 + +test $UID = "0" || { + echo "You need to be root to do this, giving up" + exit 2 +} + +cd /usr/share/diaspora/master + +if rake --trace db:seed:dev; then + cat <<- EOF + Database config OK, new user tom/evanhort in place. + You might want to edit /usr/share/diaspora/master/config/app_config.yml + and change the pod_url to this host's hostname. + EOF +else + cat <<- EOF + Database config failed. You might want to remove all db files with + rm -rf /var/lib/mongodb/* and giv it a new try. + EOF +fi + + + + + + diff --git a/pkg/fedora/diaspora.logconf b/pkg/fedora/diaspora.logconf index e51c705ed..48eca3916 100644 --- a/pkg/fedora/diaspora.logconf +++ b/pkg/fedora/diaspora.logconf @@ -1,4 +1,5 @@ /var/log/diaspora/*.log { + create 755 diaspora apache weekly rotate 10 copytruncate @@ -7,6 +8,6 @@ notifempty missingok postrotate - (/sbin/service diaspora-ws status | grep running /sbin/servive diaspora-ws restart || :) >/dev/null 2>&1 + ( /sbin/service diaspora-ws condrestart ) >/dev/null 2>&1 endscript } diff --git a/pkg/fedora/diaspora.spec b/pkg/fedora/diaspora.spec index 34c221a0f..fb06da654 100644 --- a/pkg/fedora/diaspora.spec +++ b/pkg/fedora/diaspora.spec @@ -11,13 +11,11 @@ URL: http://www.joindiaspora.com/ Vendor: joindiaspora.com Source: %{name}-%{version}-%{git_release}.tar.gz Source1: diaspora-ws -BuildArch: noarch +Source2: diaspora-setup +BuildArch: noarch # See http://github.com/diaspora/diaspora/issues/issue/393 -Patch0: source-fix.patch - -# See: http://github.com/diaspora/diaspora/issues/issue/392 -Patch1: perm-fix.patch +Patch0: source-fix.patch BuildRequires: git @@ -30,32 +28,33 @@ Requires: diaspora-bundle = %{version} A privacy aware, personally controlled, do-it-all and open source social network server. -%pre -getent group diaspora >/dev/null || groupadd -r diaspora -getent passwd diaspora >/dev/null || \ - useradd -r -g diaspora \ - -md /usr/share/diaspora -s /sbin/nologin \ - -c "Diaspora daemon" diaspora -exit 0 - %prep %setup -q -n %{name}-%{version}-%{git_release} pushd master %patch0 -p1 + +# See: http://github.com/diaspora/diaspora/issues/issue/392 git apply %{_sourcedir}/perm-fix.patch popd -mkdir master/tmp || : find . -perm /u+x -type f -exec \ sed -i 's|^#!/usr/local/bin/ruby|#!/usr/bin/ruby|' {} \; > /dev/null %build rm -rf master/vendor/bundle +mkdir master/tmp || : pushd master tar cf public/source.tar --exclude='source.tar' -X .gitignore * popd -%install +%pre +getent group apache >/dev/null || groupadd -r apache +getent passwd diaspora >/dev/null || \ + useradd -r -g apache \ + -md /usr/share/diaspora -s /sbin/nologin \ + -c "Diaspora daemon" diaspora +exit 0 +%install [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/%{_datadir}/diaspora cp master/README.md . @@ -72,10 +71,12 @@ cp -ar master $RPM_BUILD_ROOT/%{_datadir}/diaspora cp master/.gitignore $RPM_BUILD_ROOT/%{_datadir}/diaspora/master %post -/bin/chown diaspora:diaspora %{_localstatedir}/log/diaspora -ln -sf %{_localstatedir}/log/diaspora \ +rm -f %{_datadir}/diaspora/master/vendor/bundle +rm -f %{_datadir}/diaspora/master/log + +ln -s %{_localstatedir}/log/diaspora \ %{_datadir}/diaspora/master/log || : -ln -sf %{_libdir}/diaspora-bundle/master/vendor/bundle \ +ln -s %{_libdir}/diaspora-bundle/master/vendor/bundle \ %{_datadir}/diaspora/master/vendor || : /sbin/chkconfig --add diaspora-ws @@ -91,8 +92,8 @@ fi %files %defattr(-, root, root, 0755) %doc README.md GNU-AGPL-3.0 -%{_datadir}/diaspora -%{_localstatedir}/log/diaspora +%attr(0555, diaspora, apache) %{_datadir}/diaspora +%attr(0755, diaspora, apache) %{_localstatedir}/log/diaspora %config(noreplace) %{_sysconfdir}/logrotate.d/diaspora %{_sysconfdir}/init.d/diaspora-ws