You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.9 KiB

seafile-server: Update to 7.1.2, revamp package * Package scripts that are shipped by upstream in their binary download * Includes setup scripts (setup-seafile.sh to use SQLite, setup-seafile-mysql.{sh,py} to use MySQL) and control scripts (seafile.sh, seahub.sh) * Does not include seafile-admin, which is not shipped in upstream's binary download. Combined with the fact that it hasn't been updated to Python 3 suggests the script has been abandoned. * Replace previous init scripts with a simplified script * Previous init scripts (seafile.init, seahub.init) were modified from older versions of seafile.sh and seahub.sh, but they haven't kept up with changes to upstream's scripts * New init script (seafile-server.init) start/stops both Seafile and Seahub (there is no need to control them separately) by calling upstream's control scripts * Replace previous package config file with new config file * Options in previous config file (seafile.conf) were mainly for using Seahub in FastCGI mode. FastCGI was deprecated in Django 1.7 and removed in 1.9; upstream's control script will only start Seahub using Gunicorn. (Options for Gunicorn including port number can be changed by editing /etc/seafile/conf/gunicorn.conf.py.) * New config file (seafile-server.config) has one option that controls where the Seafile/Seahub data directories are stored * Patch scripts/binaries to use standard, system-wide directory locations * Script files (wrappers for binaries) in /usr/bin * Binaries (not meant to be run directly by the user) in /usr/libexec * Config files in /etc/seafile * Pid/socket files in /var/run/seafile * Logs in /var/log/seafile * Include a new script to create the first admin account * With upstream's original scripts, the user is required to interactively create the first admin account when Seahub is started for the first time * The user will now use the new script (create-seafile-admin.sh) to create the first admin account after setup (using setup-seafile.sh or setup-seafile-mysql.sh) and before starting Seafile/Seahub * seahub.sh is patched to only check if there is at least one admin account and exit with an error if there is no admin account * Remove build config options and add seafile-server-fuse package * The console option controls whether the console window is shown when Seafile server is run on Windows. It has no use on Linux. * The fuse option controls whether seaf-fuse is built. (seaf-fuse is a FUSE implementation that allows the Seafile database/file system to be mounted to a local directory.) seaf-fuse is now always built and is available in a separate package (seafile-server-fuse). * Add myself as a maintainer Signed-off-by: Jeffery To <jeffery.to@gmail.com>
4 years ago
  1. --- a/scripts/check_init_admin.py
  2. +++ b/scripts/check_init_admin.py
  3. @@ -310,7 +310,7 @@ def create_admin(email, passwd):
  4. def ask_admin_email():
  5. print()
  6. print('----------------------------------------')
  7. - print('It\'s the first time you start the seafile server. Now let\'s create the admin account')
  8. + print('Let\'s create the admin account')
  9. print('----------------------------------------')
  10. def validate(email):
  11. # whitespace is not allowed
  12. @@ -350,8 +350,15 @@ def ask_admin_password():
  13. rpc = RPC()
  14. -def main():
  15. +def main(argv):
  16. + if len(argv) > 1 and argv[1] == 'has-admin':
  17. + sys.exit(1 if need_create_admin() else 0)
  18. +
  19. if not need_create_admin():
  20. + print('')
  21. + print('A seafile admin account already exists.')
  22. + print('Log into seahub to add additional accounts.')
  23. + print('If you cannot log in, run reset-seafile-admin to add a new admin account.')
  24. return
  25. password_file = os.path.join(os.environ['SEAFILE_CENTRAL_CONF_DIR'], 'admin.txt')
  26. @@ -369,7 +376,7 @@ def main():
  27. if __name__ == '__main__':
  28. try:
  29. - main()
  30. + main(sys.argv)
  31. except KeyboardInterrupt:
  32. print('\n\n\n')
  33. print(Utils.highlight('Aborted.'))
  34. @@ -379,3 +386,4 @@ if __name__ == '__main__':
  35. print()
  36. print(Utils.highlight('Error happened during creating seafile admin.'))
  37. print()
  38. + sys.exit(1)
  39. --- a/scripts/seahub.sh
  40. +++ b/scripts/seahub.sh
  41. @@ -250,7 +250,10 @@ function stop_seahub () {
  42. function check_init_admin() {
  43. check_init_admin_script=${INSTALLPATH}/check_init_admin.py
  44. - if ! $PYTHON $check_init_admin_script; then
  45. + if ! $PYTHON $check_init_admin_script has-admin; then
  46. + echo "Error: there is no seafile admin account."
  47. + echo "Have you run create-seafile-admin before this?"
  48. + echo ""
  49. exit 1
  50. fi
  51. }