diff options
| author | Cassio de Campos <cassiopc@gmail.com> | 2018-08-24 19:23:11 +0000 |
|---|---|---|
| committer | Cassio de Campos <cassiopc@gmail.com> | 2018-08-24 19:23:11 +0000 |
| commit | 27256ca804e34366f2413222be4e675fe63a4af9 (patch) | |
| tree | ab6adbbd100e3d58c6af646fea0d026129ebfb04 /debian | |
| parent | c8994053b1ff9ccf47b532be6567c0f7f33f5f3c (diff) | |
| parent | 9f05ae47d104864162f264fe6415d73797e039bd (diff) | |
| download | boca-27256ca804e34366f2413222be4e675fe63a4af9.tar.gz boca-27256ca804e34366f2413222be4e675fe63a4af9.zip | |
Merge branch 'devel' into develc
Diffstat (limited to 'debian')
| -rw-r--r-- | debian/boca-autojudge.postinst | 5 | ||||
| -rw-r--r-- | debian/boca-common.conffiles (renamed from debian/boca.conffiles) | 0 | ||||
| -rw-r--r-- | debian/boca-common.postinst | 50 | ||||
| -rw-r--r-- | debian/boca-common.templates | 10 | ||||
| -rw-r--r-- | debian/boca-db.postinst | 75 | ||||
| -rw-r--r-- | debian/boca-db.templates | 11 | ||||
| -rw-r--r-- | debian/boca-web.postinst | 24 | ||||
| -rw-r--r-- | debian/boca.postinst | 11 | ||||
| -rw-r--r-- | debian/compat | 2 | ||||
| -rw-r--r-- | debian/control | 56 | ||||
| -rw-r--r-- | debian/postinst | 6 | ||||
| -rwxr-xr-x | debian/rules | 10 |
12 files changed, 234 insertions, 26 deletions
diff --git a/debian/boca-autojudge.postinst b/debian/boca-autojudge.postinst new file mode 100644 index 0000000..37b144c --- /dev/null +++ b/debian/boca-autojudge.postinst @@ -0,0 +1,5 @@ +#!/bin/bash + +chmod 4555 /usr/bin/safeexec + +exit 0 diff --git a/debian/boca.conffiles b/debian/boca-common.conffiles index b004c7a..b004c7a 100644 --- a/debian/boca.conffiles +++ b/debian/boca-common.conffiles diff --git a/debian/boca-common.postinst b/debian/boca-common.postinst new file mode 100644 index 0000000..d28de8a --- /dev/null +++ b/debian/boca-common.postinst @@ -0,0 +1,50 @@ +#!/bin/bash + +set -e + +. /usr/share/debconf/confmodule + +priority=high + +case "$1" in + configure|reconfigure) + if [[ -e "/etc/boca.conf" ]]; then + . /etc/boca.conf + if [[ "$bdserver" != "" ]]; then + echo "If you want to reset DB configuration, please unset \"bdserver\" in /etc/boca.conf" + exit 0 + fi + fi + db_input high boca-common/dbhost || true + db_go || true + + db_get boca-common/dbhost || true + DBHOST="$RET" + + if [[ "x$DBHOST" == "x" ]]; then + DBHOST=localhost + fi + + db_input high boca-common/dbpassword || true + db_go || true + + db_get boca-common/dbpassword || true + PASSWORD="$RET" + + if [[ "x$PASSWORD" == "x" ]]; then + printf "Generating password with makepasswd" + PASSWORD="$(makepasswd --chars 20)" + echo . + fi + export PASSWD="$PASSWORD" + boca-config-dbhost $DBHOST + unset PASSWD + ;; + *) + ;; +esac + +chmod 600 /var/www/boca/src/private/conf.php +chown www-data.www-data /var/www/boca/src/private/conf.php + +exit 0 diff --git a/debian/boca-common.templates b/debian/boca-common.templates new file mode 100644 index 0000000..e993675 --- /dev/null +++ b/debian/boca-common.templates @@ -0,0 +1,10 @@ +Template: boca-common/dbhost +Type: string +Default: localhost +Description: Please provide a host within BOCA database: + +Template: boca-common/dbpassword +Type: password +Description: Please provide a password for BOCA database: + Please, do not forget this password. You will need it to provide it while + configuring boca-web and boca-autojudge. diff --git a/debian/boca-db.postinst b/debian/boca-db.postinst new file mode 100644 index 0000000..c4215df --- /dev/null +++ b/debian/boca-db.postinst @@ -0,0 +1,75 @@ +#!/bin/bash + +set -e + +. /usr/share/debconf/confmodule + +priority=high + +case "$1" in + configure|reconfigure) + + if [[ -e "/etc/boca.conf" ]]; then + . /etc/boca.conf + if [[ "$bdcreated" != "" ]]; then + echo "If you want to reset DB configuration, please unset \"bdcreated\" in /etc/boca.conf" + exit 0 + fi + fi + + #Assume DBHOST will be localhost, since this is the package that + #provides postgresql + #XXX future work make it work as a backup DB server + DBHOST=localhost + + db_get boca-common/dbpassword || true + PASSWORD="$RET" + + #If we don't have a password from boca-common 2 things could be + #happened + #1) dpkg cleaned the password already + #2) The user did not provide a password + #So we will ask for a password + if [[ "x$PASSWORD" == "x" ]]; then + db_input critical boca-db/dbpassword || true + db_go || true + db_get boca-db/dbpassword || true + PASSWORD="$RET" + db_reset boca-db/dbpassword + else + db_reset boca-common/dbpassword + fi + + if [[ "x$PASSWORD" == "x" ]]; then + printf "Generating password with makepasswd" + PASSWORD="$(makepasswd --chars 20)" + echo . + echo "Your DB password is '$PASSWORD' take care of it." + fi + export PASSWD="$PASSWORD" + boca-config-dbhost $DBHOST + unset PASSWD + postgresuser=postgres + su - $postgresuser -c "echo drop user bocauser | psql -d template1 >/dev/null 2>/dev/null" + su - $postgresuser -c "echo create user bocauser createdb password \'$PASSWORD\'| psql -d template1" + su - $postgresuser -c "echo alter user bocauser createdb password \'$PASSWORD\'| psql -d template1" + + db_input critical boca-db/createdb || true + db_go || true + + db_get boca-db/createdb || true + + if [[ "$RET" == "Yes" ]]; then + echo YES |php /var/www/boca/src/private/createdb.php + echo "bdcreated=y" >> /etc/boca.conf + fi + db_reset boca-db/createdb + + ;; + *) + ;; +esac + +service postgresql restart || true + +exit 0 diff --git a/debian/boca-db.templates b/debian/boca-db.templates new file mode 100644 index 0000000..895098d --- /dev/null +++ b/debian/boca-db.templates @@ -0,0 +1,11 @@ +Template: boca-db/dbpassword +Type: password +Description: Please provide a password for BOCA database: + Please, do not forget this password. You will need it to provide it while + configuring boca-web and boca-autojudge. + +Template: boca-db/createdb +Type: select +Choices: Yes, No +Description: Should a new DB be created for BOCA? + Warning: This operation will erase any existing previously created BOCA DB diff --git a/debian/boca-web.postinst b/debian/boca-web.postinst new file mode 100644 index 0000000..52071f4 --- /dev/null +++ b/debian/boca-web.postinst @@ -0,0 +1,24 @@ +#!/bin/bash + +. /usr/share/debconf/confmodule + +chown -R www-data.www-data /var/www/boca +chmod -R go-rwx /var/www/boca/src/private + +a2ensite default-ssl +a2enmod ssl +a2enmod socache_shmcb +a2enmod proxy_fcgi + +# Make sure embedded apache php module is not loaded +a2dismod php7.2 || true + +#enable php fpm instead +a2enconf php7.2-fpm + +service apache2 restart || true + +#remember to reset possible stored password from debconf +db_reset boca-common/dbpassword || true + +exit 0 diff --git a/debian/boca.postinst b/debian/boca.postinst deleted file mode 100644 index 18ce749..0000000 --- a/debian/boca.postinst +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -chown -R www-data.www-data /var/www/boca -chmod -R go-rwx /var/www/boca/src/private -chmod 4555 /usr/bin/safeexec - -a2ensite default-ssl -a2enmod ssl -a2enmod socache_shmcb - -service apache2 restart || true diff --git a/debian/compat b/debian/compat index 7f8f011..f599e28 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -7 +10 diff --git a/debian/control b/debian/control index 2095b2e..2b45da3 100644 --- a/debian/control +++ b/debian/control @@ -2,20 +2,63 @@ Source: boca Section: misc Priority: optional Maintainer: BOCA Development Team <bocasystem@gmail.com> +Uploaders: Cassio Polpo de Campos <cassiopc@gmail.com>, Bruno Cesar Ribas <brunoribas@gmail.com> Build-Depends: debhelper, build-essential -Package: maratona-boca +Package: boca Architecture: all -Depends: boca -Description: Virtual package that depends on BOCA +Depends: boca-common, boca-web, boca-db, boca-autojudge +Provides: maratona-boca +Description: BOCA is a software created to control a contest with the ACM ICPC rules. + BOCA is a software created to control a contest with the ACM International + Collegiate Programming Contest rules. It has been developed in PHP and the + interaction between judges and the system is done through a web browser. + . + This package install all boca related packages to run everything in one + single machine. -Package: boca +Package: boca-db +Architecture: all +Pre-depends: postgresql +Depends: boca-common +Description: BOCA - database + BOCA is a software created to control a contest with the ACM International + Collegiate Programming Contest rules. It has been developed in PHP and the + interaction between judges and the system is done through a web browser. + . + This package provides a full database to run a contest on. + +Package: boca-web +Architecture: all +Depends: boca-common, apache2, php-fpm, php +Description: BOCA - WEB files + BOCA is a software created to control a contest with the ACM International + Collegiate Programming Contest rules. It has been developed in PHP and the + interaction between judges and the system is done through a web browser. + . + This package provides only web contents. + +Package: boca-common +Architecture: all +Pre-Depends: debconf, makepasswd, coreutils, sharutils +Depends: php-zip, wget, php-cli, php-pgsql, php-gd, postgresql-client, php-xml, openssl, libany-uri-escape-perl +Description: BOCA - Common files + BOCA is a software created to control a contest with the ACM International + Collegiate Programming Contest rules. It has been developed in PHP and the + interaction between judges and the system is done through a web browser. + . + This package contains shared files with all BOCA packages. + +Package: boca-autojudge Architecture: amd64 -Depends: php-zip, debootstrap, schroot, quotatool, makepasswd, apache2, libapache2-mod-php, sharutils, wget, coreutils, php, php-cli, php-pgsql, php-gd, postgresql, postgresql-client, libany-uri-escape-perl, php-xml, openssl -Description: BOCA is a software created to control a contest with the ACM ICPC rules. +Depends: boca-common, debootstrap, schroot, quotatool, makepasswd +Description: BOCA - AutoJudge BOCA is a software created to control a contest with the ACM International Collegiate Programming Contest rules. It has been developed in PHP and the interaction between judges and the system is done through a web browser. + . + This package contains files to generate and run the autojudge system for + BOCA. Package: boca-submission-tools Architecture: amd64 @@ -23,3 +66,4 @@ Depends: sharutils, wget, coreutils, libany-uri-escape-perl, openssl, openssh-se Description: BOCA submission tools. This package provides tools to submit codes to a running boca server without using the web interface. + diff --git a/debian/postinst b/debian/postinst deleted file mode 100644 index 65e238f..0000000 --- a/debian/postinst +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -chown -R www-data.www-data /var/www/boca -chmod 4555 /usr/bin/safeexec - -service apache2 restart || true diff --git a/debian/rules b/debian/rules index 6c52a63..3453dd0 100755 --- a/debian/rules +++ b/debian/rules @@ -3,8 +3,14 @@ override_dh_auto_install: mkdir -p debian/boca-submission-tools make -j1 install-submission-tools DESTDIR=debian/boca-submission-tools - mkdir -p debian/boca - make -j1 install DESTDIR=debian/boca + mkdir -p debian/boca-web + make -j1 install-bocaapache DESTDIR=debian/boca-web + mkdir -p debian/boca-autojudge + make -j1 install-bocaautojudge DESTDIR=debian/boca-autojudge + mkdir -p debian/boca-db + make -j1 install-bocadb DESTDIR=debian/boca-db + mkdir -p debian/boca-common + make -j1 install-bocacommon DESTDIR=debian/boca-common %: dh $@ |