Merge branch '11-debian-packaging' into 'master'
add debian package files Closes #11 See merge request BeryJu.org/passbook!7
This commit is contained in:
		| @ -68,54 +68,30 @@ package-helm: | ||||
|   only: | ||||
|     - tags | ||||
|     - /^version/.*$/ | ||||
| # package-3.5: | ||||
| #   before_script: | ||||
| #     - apt update | ||||
| #     - apt install -y build-essential debhelper devscripts equivs python3 python3-pip | ||||
| #     - cp debian/control-3.5 debian/control | ||||
| #     - mk-build-deps debian/control | ||||
| #     - apt install ./*build-deps*deb -f -y | ||||
| #     - "python3 -m pip install -U virtualenv" | ||||
| #     - "virtualenv env" | ||||
| #     - "source env/bin/activate" | ||||
| #     - "pip3 install -U -r requirements.txt -r requirements-dev.txt" | ||||
| #   image: debian | ||||
| #   script: | ||||
| #     - debuild -us -uc | ||||
| #     - cp ../passbook*.deb . | ||||
| #     - python manage.py nexus_upload | ||||
| #   artifacts: | ||||
| #     paths: | ||||
| #     - passbook-python3.5*deb | ||||
| #     expire_in: 2 days | ||||
| #   stage: build | ||||
| #   only: | ||||
| #   - tags | ||||
| #   - /^debian/.*$/ | ||||
| # package-3.6: | ||||
| #   before_script: | ||||
| #     - apt update | ||||
| #     - apt install -y build-essential debhelper devscripts equivs python3 python3-pip | ||||
| #     - cp debian/control-3.6 debian/control | ||||
| #     - mk-build-deps debian/control | ||||
| #     - apt install ./*build-deps*deb -f -y | ||||
| #     - "python3 -m pip install -U virtualenv" | ||||
| #     - "virtualenv env" | ||||
| #     - "source env/bin/activate" | ||||
| #     - "pip3 install -U -r requirements.txt -r requirements-dev.txt" | ||||
| #   image: debian:buster | ||||
| #   script: | ||||
| #     - debuild -us -uc | ||||
| #     - cp ../passbook*.deb . | ||||
| #     - python manage.py nexus_upload | ||||
| #   artifacts: | ||||
| #     paths: | ||||
| #     - passbook-python3.6*deb | ||||
| #     expire_in: 2 days | ||||
| #   stage: build | ||||
| #   only: | ||||
| #     - tags | ||||
| #     - /^debian/.*$r | ||||
| package-debian: | ||||
|   before_script: | ||||
|     - apt update | ||||
|     - apt install -y --no-install-recommends build-essential debhelper devscripts equivs python3 python3-dev python3-pip libsasl2-dev libldap2-dev | ||||
|     - mk-build-deps debian/control | ||||
|     - apt install ./*build-deps*deb -f -y | ||||
|     - python3 -m pip install -U virtualenv pip | ||||
|     - python3 -m venv env | ||||
|     - source env/bin/activate | ||||
|     - pip install -U -r requirements-dev.txt | ||||
|     - pip install --no-binary psycopg2 psycopg2 | ||||
|   image: ubuntu:18.04 | ||||
|   script: | ||||
|     - debuild -us -uc | ||||
|     - cp ../passbook*.deb . | ||||
|     - ./manage.py nexus_upload --method post --url $NEXUS_URL --auth $NEXUS_AUTH --repo apt passbook*deb | ||||
|   artifacts: | ||||
|     paths: | ||||
|     - passbook*deb | ||||
|     expire_in: 2 days | ||||
|   stage: build | ||||
|   only: | ||||
|   - tags | ||||
|   - /^version/.*$/ | ||||
|  | ||||
| # docs: | ||||
| #   stage: docs | ||||
|  | ||||
							
								
								
									
										5
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| passbook (0.1.3) stable; urgency=medium | ||||
|  | ||||
|   * initial debian package release | ||||
|  | ||||
|  -- Jens Langhammer <jens.langhammer@beryju.org>  Wed, 06 Mar 2019 18:22:41 +0000 | ||||
							
								
								
									
										1
									
								
								debian/compat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								debian/compat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| 10 | ||||
							
								
								
									
										20
									
								
								debian/config
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								debian/config
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| #!/bin/sh | ||||
| # config maintainer script for passbook | ||||
| set -e | ||||
|  | ||||
| # source debconf stuff | ||||
| . /usr/share/debconf/confmodule | ||||
|  | ||||
| dbc_first_version=1.0.0 | ||||
| dbc_dbuser=passbook | ||||
| dbc_dbname=passbook | ||||
|  | ||||
| # source dbconfig-common shell library, and call the hook function | ||||
| if [ -f /usr/share/dbconfig-common/dpkg/config.pgsql ]; then | ||||
|     . /usr/share/dbconfig-common/dpkg/config.pgsql | ||||
|     dbc_go passbook "$@" | ||||
| fi | ||||
|  | ||||
| #DEBHELPER# | ||||
|  | ||||
| exit 0 | ||||
							
								
								
									
										14
									
								
								debian/control
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								debian/control
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| Source: passbook | ||||
| Section: admin | ||||
| Priority: optional | ||||
| Maintainer: BeryJu.org <support@beryju.org> | ||||
| Uploaders: Jens Langhammer <jens@beryju.org>, BeryJu.org <support@beryju.org> | ||||
| Build-Depends: debhelper (>= 10), dh-systemd (>= 1.5), dh-exec, wget, dh-exec, python3 (>= 3.5) | python3.6 | python3.7 | ||||
| Standards-Version: 3.9.6 | ||||
|  | ||||
| Package: passbook | ||||
| Architecture: all | ||||
| Recommends: mysql-server, redis-server | ||||
| Pre-Depends: adduser, libldap2-dev, libsasl2-dev | ||||
| Depends: python3 (>= 3.5) | python3.6 | python3.7, python3-pip, dbconfig-pgsql | dbconfig-no-thanks, ${misc:Depends} | ||||
| Description: Authentication Provider/Proxy supporting protocols like SAML, OAuth, LDAP and more. | ||||
							
								
								
									
										22
									
								
								debian/copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								debian/copyright
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) 2019 BeryJu.org | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
|  | ||||
							
								
								
									
										4
									
								
								debian/dirs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								debian/dirs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| etc/passbook/ | ||||
| etc/passbook/config.d/ | ||||
| var/log/passbook/ | ||||
| usr/share/passbook/ | ||||
							
								
								
									
										44
									
								
								debian/etc/passbook/config.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								debian/etc/passbook/config.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| debug: false | ||||
| http: | ||||
|     host: 0.0.0.0 | ||||
|     port: 8000 | ||||
| secret_key_file: /etc/passbook/secret_key | ||||
| log: | ||||
|     level: | ||||
|         console: INFO | ||||
|         file: DEBUG | ||||
|     file: /var/log/passbook/passbook.log | ||||
| # Error reporting, disabled by default | ||||
| # error_report_enabled: true | ||||
|  | ||||
| # Set this to the server's external address. | ||||
| # This is used to generate external URLs | ||||
| external_url: http://image.example.com | ||||
|  | ||||
| # This dictates how the Path is generated | ||||
| # can be either of: | ||||
| # - view_sha512_short | ||||
| # - view_md5 | ||||
| # - view_sha256 | ||||
| # - view_sha512 | ||||
| default_return_view: view_sha256 | ||||
|  | ||||
| # Set this to true if you only want to use external authentication | ||||
| external_auth_only: false | ||||
|  | ||||
| # If this is true, images are automatically claimed if the windows user exists | ||||
| # in django | ||||
| auto_claim_enabled: true | ||||
|  | ||||
| # LDAP Authentication | ||||
| # ldap: | ||||
| #     enabled: false | ||||
| #     server: | ||||
| #         uri: 'ldap://dc1.example.com' | ||||
| #         tls: false | ||||
| #     bind: | ||||
| #         dn: '' | ||||
| #         password: '' | ||||
| #     search_base: '' | ||||
| #     filter: '(sAMAccountName=%(user)s)' | ||||
| #     require_group: '' | ||||
							
								
								
									
										2
									
								
								debian/files
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								debian/files
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| passbook-dbgsym_0.1.3_amd64.ddeb debug optional | ||||
| passbook_0.1.3_amd64.deb admin optional | ||||
							
								
								
									
										2
									
								
								debian/gbp.conf
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								debian/gbp.conf
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| [buildpackage] | ||||
| export-dir=../build-area | ||||
							
								
								
									
										8
									
								
								debian/install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								debian/install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| passbook		/usr/share/passbook/ | ||||
| static			/usr/share/passbook/ | ||||
| manage.py		/usr/share/passbook/ | ||||
| passbook.sh		/usr/share/passbook/ | ||||
| vendor			/usr/share/passbook/ | ||||
|  | ||||
| debian/etc/passbook								/etc/ | ||||
| debian/templates/database.yml					/usr/share/passbook/ | ||||
							
								
								
									
										0
									
								
								debian/links
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								debian/links
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										14
									
								
								debian/passbook-worker.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								debian/passbook-worker.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| [Unit] | ||||
| Description=passbook - Authentication Provider/Proxy (Background worker) | ||||
| After=network.target | ||||
| Requires=network.target | ||||
|  | ||||
| [Service] | ||||
| User=passbook | ||||
| Group=passbook | ||||
| WorkingDirectory=/usr/share/passbook | ||||
| Type=simple | ||||
| ExecStart=/usr/share/passbook/passbook.sh worker | ||||
|  | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
							
								
								
									
										6
									
								
								debian/passbook.postrm.debhelper
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								debian/passbook.postrm.debhelper
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| # Automatically added by dh_installdebconf/11.1.6ubuntu2 | ||||
| if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then | ||||
| 	. /usr/share/debconf/confmodule | ||||
| 	db_purge | ||||
| fi | ||||
| # End automatically added section | ||||
							
								
								
									
										14
									
								
								debian/passbook.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								debian/passbook.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| [Unit] | ||||
| Description=passbook - Authentication Provider/Proxy | ||||
| After=network.target | ||||
| Requires=network.target | ||||
|  | ||||
| [Service] | ||||
| User=passbook | ||||
| Group=passbook | ||||
| WorkingDirectory=/usr/share/passbook | ||||
| Type=simple | ||||
| ExecStart=/usr/share/passbook/passbook.sh web | ||||
|  | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
							
								
								
									
										3
									
								
								debian/passbook.substvars
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								debian/passbook.substvars
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| misc:Depends=debconf (>= 0.5) | debconf-2.0 | ||||
| shlibs:Depends=libc6 (>= 2.4), passbook | ||||
| misc:Pre-Depends= | ||||
							
								
								
									
										36
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @ -0,0 +1,36 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
|  | ||||
| . /usr/share/debconf/confmodule | ||||
| . /usr/share/dbconfig-common/dpkg/postinst.pgsql | ||||
|  | ||||
| # you can set the default database encoding to something else | ||||
| dbc_pgsql_createdb_encoding="UTF8" | ||||
| dbc_generate_include=template:/etc/passbook/config.d/database.yml | ||||
| dbc_generate_include_args="-o template_infile=/usr/share/passbook/database.yml" | ||||
| dbc_go passbook "$@" | ||||
|  | ||||
| if [ -z "`getent group passbook`" ]; then | ||||
| 	addgroup --quiet --system passbook | ||||
| fi | ||||
| if [ -z "`getent passwd passbook`" ]; then | ||||
| 	echo " * Creating user and group passbook..." | ||||
| 	adduser --quiet --system --home /usr/share/passbook --shell /bin/false --ingroup passbook --disabled-password --disabled-login --gecos "passbook User" passbook  >> /var/log/passbook/passbook.log 2>&1 | ||||
| fi | ||||
| echo " * Updating binary packages (psycopg2)" | ||||
| python3 -m pip install --target=/usr/share/passbook/vendor/ --no-cache-dir --upgrade --force-reinstall psycopg2 >> /var/log/passbook/passbook.log 2>&1 | ||||
| if [ ! -f '/etc/passbook/secret_key' ]; then | ||||
| 	echo " * Generating Secret Key" | ||||
| 	python3 -c 'import random; result = "".join([random.choice("abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)") for i in range(50)]); print(result)' > /etc/passbook/secret_key 2> /dev/null | ||||
| fi | ||||
| chown -R passbook: /usr/share/passbook/ | ||||
| chown -R passbook: /etc/passbook/ | ||||
| chown -R passbook: /var/log/passbook/ | ||||
| chmod 440 /etc/passbook/secret_key | ||||
| echo " * Running Database Migration" | ||||
| /usr/share/passbook/passbook.sh migrate | ||||
| echo " * A superuser can be created with this command '/usr/share/passbook/passbook.sh createsuperuser'" | ||||
| echo " * You should probably also adjust your settings in '/etc/passbook/config.yml'" | ||||
|  | ||||
| #DEBHELPER# | ||||
							
								
								
									
										24
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| if [ -f /usr/share/debconf/confmodule ]; then | ||||
|     . /usr/share/debconf/confmodule | ||||
| fi | ||||
| if [ -f /usr/share/dbconfig-common/dpkg/postrm.pgsql ]; then | ||||
|     . /usr/share/dbconfig-common/dpkg/postrm.pgsql | ||||
|     dbc_go passbook "$@" | ||||
| fi | ||||
|  | ||||
|  | ||||
| if [ "$1" = "purge" ]; then | ||||
|     if which ucf >/dev/null 2>&1; then | ||||
|         ucf --purge /etc/passbook/config.d/database.yml | ||||
|         ucfr --purge passbook /etc/passbook/config.d/database.yml | ||||
|     fi | ||||
|     rm -rf /etc/passbook/ | ||||
|     rm -rf /usr/share/passbook/ | ||||
| fi | ||||
|  | ||||
| #DEBHELPER# | ||||
|  | ||||
							
								
								
									
										10
									
								
								debian/prerm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								debian/prerm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| . /usr/share/debconf/confmodule | ||||
| . /usr/share/dbconfig-common/dpkg/prerm.pgsql | ||||
| dbc_go passbook "$@" | ||||
|  | ||||
| #DEBHELPER# | ||||
|  | ||||
							
								
								
									
										26
									
								
								debian/rules
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								debian/rules
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/usr/bin/make -f | ||||
|  | ||||
| # Uncomment this to turn on verbose mode. | ||||
| # export DH_VERBOSE=1 | ||||
|  | ||||
| %: | ||||
| 	dh $@ --with=systemd | ||||
|  | ||||
| build-arch: | ||||
| 	python3 -m pip install --target=vendor/ -r requirements.txt | ||||
|  | ||||
| override_dh_strip: | ||||
| 	dh_strip --exclude=psycopg2 | ||||
|  | ||||
| override_dh_shlibdeps: | ||||
| 	dh_shlibdeps --exclude=psycopg2 | ||||
|  | ||||
| override_dh_installinit: | ||||
| 	dh_installinit --name=passbook | ||||
| 	dh_installinit --name=passbook-worker | ||||
| 	dh_systemd_enable --name=passbook | ||||
| 	dh_systemd_enable --name=passbook-worker | ||||
| 	dh_systemd_start | ||||
|  | ||||
| # override_dh_usrlocal to do nothing | ||||
| override_dh_usrlocal: | ||||
							
								
								
									
										1
									
								
								debian/source/format
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								debian/source/format
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| 3.0 (native) | ||||
							
								
								
									
										8
									
								
								debian/templates/database.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								debian/templates/database.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| databases: | ||||
|   default: | ||||
|     engine: django.db.backends.postgresql | ||||
|     name: _DBC_DBNAME_ | ||||
|     user: _DBC_DBUSER_ | ||||
|     password: _DBC_DBPASS_ | ||||
|     host: _DBC_DBSERVER_ | ||||
|     port: _DBC_DBPORT_ | ||||
							
								
								
									
										7
									
								
								passbook.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								passbook.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,7 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Check if this file is a symlink, if so, read real base dir | ||||
| BASE_DIR=$(dirname $(readlink -f ${BASH_SOURCE[0]})) | ||||
|  | ||||
| cd $BASE_DIR | ||||
| PYTHONPATH="${BASE_DIR}/vendor/" python3 manage.py $@ | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer