# Maintainer (Arch): Jonne Haß pkgbase=diaspora pkgname=('diaspora-mysql' 'diaspora-postgresql') pkgver=0.5.0.1 pkgrel=1 pkgdesc="A distributed privacy aware social network" arch=('i686' 'x86_64') url="http://diasporafoundation.org" license=('AGPL3') depends=('ruby2.1' 'ruby2.1-bundler' 'redis' 'imagemagick' 'libxslt' 'net-tools' 'gsfonts') makedepends=('nodejs' 'postgresql-libs' 'libmysqlclient') conflicts=('diaspora-git' 'diaspora-mysql-git' 'diaspora-postgresql-git') options=(!strip) backup=("etc/webapps/$pkgbase/diaspora.yml" "etc/webapps/$pkgbase/database.yml" "etc/webapps/$pkgbase/secret_token.rb") install="$pkgbase.install" source=("$pkgbase-$pkgver.tar.gz::https://github.com/$pkgbase/$pkgbase/tarball/v$pkgver" "$pkgbase.install" "$pkgbase.service" "$pkgbase.tmpfiles.d.conf" "$pkgbase.bashrc" "$pkgbase.bash_profile") # Get rid of any possible ruby version managers # From https://github.com/postmodern/chruby _reset_ruby() { [[ -z "$RUBY_ROOT" ]] && return export PATH=":$PATH:"; export PATH=${PATH//:$RUBY_ROOT\/bin:/:} [[ -n "$GEM_HOME" ]] && export PATH=${PATH//:$GEM_HOME\/bin:/:} [[ -n "$GEM_ROOT" ]] && export PATH=${PATH//:$GEM_ROOT\/bin:/:} export GEM_PATH=":$GEM_PATH:" export GEM_PATH=${GEM_PATH//:$GEM_HOME:/:} export GEM_PATH=${GEM_PATH//:$GEM_ROOT:/:} export GEM_PATH=${GEM_PATH#:}; export GEM_PATH=${GEM_PATH%:} unset GEM_ROOT GEM_HOME export PATH=${PATH#:}; export PATH=${PATH%:} unset RUBY_ROOT RUBY_ENGINE RUBY_VERSION RUBYOPT } _package() { _bundle=bundle-2.1 _ruby=ruby-2.1 _rake=rake-2.1 _db=$1 _srcdir=$srcdir/$pkgname-$pkgver _reset_ruby msg "Setup build directory" mkdir -p $_srcdir cp -Rf $srcdir/$pkgbase-$pkgbase-*/{app,config,db,public,lib,script,vendor,config.ru,Gemfile,Gemfile.lock,Procfile,Rakefile} $_srcdir cd $_srcdir msg "Bundle dependencies" echo "gem: --no-rdoc --no-ri --no-user-install" > $_srcdir/.gemrc HOME=$_srcdir DB=$_db $_bundle install \ --without development test heroku --path vendor/bundle HOME=$_srcdir DB=$_db $_bundle clean msg "Patch configuration examples" sed -i -e "s|#certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'|certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'|" \ -e "s|#rails_environment: 'production'|rails_environment: 'production'|" \ -e "s|#database: 'mysql'|database: '$_db'|" \ $_srcdir/config/diaspora.yml.example sed -i -e "s|<<: \*mysql|<<: *$_db|" \ -e "s|#<<: \*postgres||" \ $_srcdir/config/database.yml.example cp $_srcdir/config/diaspora.yml{.example,} cp $_srcdir/config/database.yml{.example,} msg "Create secret token" HOME=$_srcdir DB=$_db $_bundle exec $_rake generate:secret_token msg "Precompile assets" DB=$_db $_bundle exec $_rake assets:precompile rm $_srcdir/config/{diaspora,database}.yml msg "Copy contents to package directory" install -dm755 $pkgdir/usr/share/webapps/$pkgbase cp -Rf $_srcdir/* $pkgdir/usr/share/webapps/$pkgbase/ cp -Rf $_srcdir/.bundle $pkgdir/usr/share/webapps/$pkgbase/ install -Dm644 $_srcdir/.gemrc $pkgdir/usr/share/webapps/$pkgbase/.gemrc install -Dm640 $_srcdir/config/initializers/secret_token.rb $pkgdir/etc/webapps/$pkgbase/secret_token.rb install -Dm644 $srcdir/$pkgbase.service $pkgdir/usr/lib/systemd/system/$pkgbase.service install -Dm644 $srcdir/$pkgbase.tmpfiles.d.conf $pkgdir/usr/lib/tmpfiles.d/$pkgbase.conf install -Dm644 $srcdir/$pkgbase.bashrc $pkgdir/usr/share/webapps/$pkgbase/.bashrc install -Dm644 $srcdir/$pkgbase.bash_profile $pkgdir/usr/share/webapps/$pkgbase/.bash_profile msg "Build source.tar.gz to conform the AGPL" tar czf $pkgdir/usr/share/webapps/$pkgbase/public/source.tar.gz \ $pkgdir/usr/share/webapps/$pkgbase/{app,db,lib,script,Gemfile,Gemfile.lock,Rakefile,Procfile,config.ru} msg "Symlink ruby and bundle" install -dm755 $pkgdir/usr/share/webapps/$pkgbase/bin ln -s /usr/bin/$_ruby $pkgdir/usr/share/webapps/$pkgbase/bin/ruby ln -s /usr/bin/$_bundle $pkgdir/usr/share/webapps/$pkgbase/bin/bundle msg "Prepare configuration files" install -dm750 $pkgdir/etc/webapps/$pkgbase install -Dm640 $_srcdir/config/diaspora.yml.example $pkgdir/etc/webapps/$pkgbase/diaspora.yml install -Dm640 $_srcdir/config/database.yml.example $pkgdir/etc/webapps/$pkgbase/database.yml sed -i -e "s|%db%|$_db|" \ $pkgdir/usr/share/webapps/$pkgbase/.bashrc sed -i -e "s|%db%|$_db|" \ -e "s|mysql|mysqld|" \ -e "s|postgres|postgresql|" \ $pkgdir/usr/lib/systemd/system/$pkgbase.service msg "Create symlinks" install -dm755 $pkgdir/var/log/$pkgbase install -dm755 $pkgdir/var/lib/$pkgbase/uploads rm -Rf $pkgdir/usr/share/webapps/$pkgbase/log \ $pkgdir/usr/share/webapps/$pkgbase/tmp \ $pkgdir/usr/share/webapps/$pkgbase/public/uploads ln -s /etc/webapps/$pkgbase/diaspora.yml $pkgdir/usr/share/webapps/$pkgbase/config/diaspora.yml ln -s /etc/webapps/$pkgbase/database.yml $pkgdir/usr/share/webapps/$pkgbase/config/database.yml ln -sf /etc/webapps/$pkgbase/secret_token.rb $pkgdir/usr/share/webapps/$pkgbase/config/initializers/secret_token.rb ln -sf /var/lib/$pkgbase/uploads $pkgdir/usr/share/webapps/$pkgbase/public/uploads ln -sf /tmp/$pkgbase $pkgdir/usr/share/webapps/$pkgbase/tmp ln -sf /var/log/$pkgbase $pkgdir/usr/share/webapps/$pkgbase/log } package_diaspora-mysql() { pkgdesc="$pkgdesc (MySQL)" conflicts=(${conflicts[@]} 'diaspora-postgresql') depends=(${depends[@]} 'libmysqlclient' 'mysql') _package mysql } package_diaspora-postgresql() { pkgdesc="$pkgdesc (PostgreSQL)" conflicts=(${conflicts[@]} 'diaspora-mysql') depends=(${depends[@]} 'postgresql-libs' 'postgresql') _package postgres } sha256sums=('b5a5799f9db3a57802f19644276e0f5f7d40d9e42edbadee18ae3859c3a329a4' 'aae126c4b1bcba6265d3d925dc3845bb034defa5606385c22dfb053111b57685' 'f1770d7cfa2b3344e697ee664f5ab49e7cdeb50e93230a358a1ab5776824c81b' '8864dc640545f53f5491a8edbda21d883c9731f8f6909d6a59c71e5fed49f2ca' 'a3e17221e8cdbe5a8073f4725960f794c31208b0098177a296356af293b14596' '29cfd5116e919d8851ff70b8b82af8d4a6c8243a9d1ca555981a1a695e2d7715')