PKGBUILD 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # Maintainer: Edvinas Valatka <edacval@gmail.com>
  2. # Contributor: Aaron Lindsay <aaron@aclindsay.com>
  3. pkgbase=seafile
  4. pkgname=('seafile-server' 'seafile-client-cli' 'seafile-shared')
  5. pkgver=5.0.2
  6. pkgrel=4
  7. pkgdesc="Seafile is an online file storage and collaboration tool"
  8. arch=('any')
  9. url="https://github.com/haiwen/seafile/"
  10. license=('GPL3')
  11. makedepends=('vala' 'intltool'
  12. 'python2' 'sqlite' 'fuse'
  13. 'ccnet=5.0.2' 'libevhtp-seafile=1.2.10')
  14. source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/haiwen/seafile/archive/v${pkgver}-server.tar.gz"
  15. "seafile-admin_virtualenv.patch"
  16. "seafile-server@.service"
  17. "seahub-preupgrade"
  18. "create-default-conf-dir.patch"
  19. "0001-Revert-server-put-pids-folder-out-of-seafile-data.patch"
  20. "libseafile.in.patch")
  21. sha256sums=('ce34339bdad50afb9bacb3cbf854e3c33a311dfb868b2ec32a812ca78845b43f'
  22. '876e67526fabf83bfeb5ff50f05b2f4725f3d9bf784025707b67022a1a311f20'
  23. 'ae1ed38f94304d27e4ef1ca66e15d544f99681c1e743c510c54d4a112f050421'
  24. '2a1e079cbea3543f356e6e9571f3d7d2a4b0ab75131ee417115d738ea191c4fb'
  25. '6bd632f8741b039bad961af3d6850b651e25b7e7a3018d6e2789f350ff93bb78'
  26. 'b1748e826d8e7cccdd825b99864b74dfb5795312f8878d63e9a87105f4382e29'
  27. 'a2d7f7cf0c59aba97650af62b3cefd0ceb71a1007c34d9369a88e5769c7f6076')
  28. prepare () {
  29. cd "${srcdir}/seafile-${pkgver}-server"
  30. patch -p1 -i "${srcdir}/seafile-admin_virtualenv.patch"
  31. patch -p1 -i "${srcdir}/0001-Revert-server-put-pids-folder-out-of-seafile-data.patch"
  32. patch -p1 -i "${srcdir}/create-default-conf-dir.patch"
  33. patch -p1 -i "${srcdir}/libseafile.in.patch"
  34. # Fix all script's python 2 requirement
  35. grep -s -l -r '#!/usr/bin/env python' "${srcdir}/seafile-${pkgver}-server" \
  36. | xargs sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|g'
  37. }
  38. build() {
  39. cd "$srcdir/seafile-${pkgver}-server"
  40. ./autogen.sh
  41. ./configure \
  42. --enable-client \
  43. --enable-fuse \
  44. --enable-python \
  45. --enable-server \
  46. --prefix=/usr \
  47. PYTHON=/usr/bin/python2
  48. make
  49. }
  50. package_seafile-client-cli() {
  51. depends=("seafile-shared=${pkgver}" 'libevent')
  52. pkgdesc="Seafile cli client"
  53. cd "${srcdir}/seafile-${pkgver}-server"
  54. # Install cli client
  55. install -D -m755 app/seaf-cli "${pkgdir}/usr/bin/seaf-cli"
  56. }
  57. package_seafile-shared() {
  58. depends=("ccnet=5.0.2" 'fuse')
  59. pkgdesc="Shared components of Seafile (seafile-daemon, libseafile, python bindings, manuals)"
  60. cd "${srcdir}/seafile-${pkgver}-server"
  61. make DESTDIR="${pkgdir}" install
  62. # Remove seafile binary
  63. rm -rf "${pkgdir}/usr/bin/seafile"
  64. # Remove cli client binary
  65. rm -rf "${pkgdir}/usr/bin/seaf-cli"
  66. }
  67. package_seafile-server() {
  68. depends=("seafile-shared=${pkgver}"
  69. 'python2-mako' 'python2-dateutil' 'python2-webpy' 'python2-pip'
  70. 'python2-virtualenv' 'python2-flup' 'python2-six'
  71. 'libevhtp-seafile=1.2.10' 'git')
  72. options=('!libtool' '!emptydirs')
  73. install=seafile-server.install
  74. pkgdesc="Seafile server components, without seahub"
  75. # Install library and header files
  76. cd "${srcdir}/seafile-${pkgver}-server"
  77. make DESTDIR="${pkgdir}" install
  78. # Remove files already installed by seafile-shared
  79. # to maintain compatibility
  80. rm -rf "${pkgdir}/usr/lib"
  81. rm -rf "${pkgdir}/usr/include"
  82. rm -rf "${pkgdir}/usr/share/man"
  83. rm -rf "${pkgdir}/usr/bin/seaf-{daemon,fsck,migrate}"
  84. rm -rf "${pkgdir}/usr/bin/seafile-{admin,controller,}"
  85. rm -rf "${pkgdir}/usr/bin/seafserv-{gc}"
  86. # Remove seafile-client-cli
  87. rm -rf "${pkgdir}/usr/bin/seaf-cli"
  88. # Install all scripts
  89. mkdir -p "${pkgdir}/usr/share/${pkgname}"
  90. cp -r -p "${srcdir}/seafile-${pkgver}-server/scripts" \
  91. "${pkgdir}/usr/share/$pkgname/scripts"
  92. # Remove win32-specific scripts
  93. rm -rf "${pkgdir}/usr/share/$pkgname/scripts/upgrade/win32"
  94. # Workaround for strange behaviour in the Makefile, which
  95. # installs python bindings in the package root directory,
  96. # even though they were disabled
  97. rm -rf "${pkgdir}/seaserv"
  98. rm -rf "${pkgdir}/seafile"
  99. # Install systemd service
  100. install -D -m644 "${srcdir}/seafile-server@.service" \
  101. "${pkgdir}/usr/lib/systemd/system/seafile-server@.service"
  102. # Install seahub preupgrade script
  103. install -D -m755 "${srcdir}/seahub-preupgrade" \
  104. "${pkgdir}/usr/bin/seahub-preupgrade"
  105. }