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:
commit
ef0a2bfbe8
|
@ -68,54 +68,30 @@ package-helm:
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
- /^version/.*$/
|
- /^version/.*$/
|
||||||
# package-3.5:
|
package-debian:
|
||||||
# before_script:
|
before_script:
|
||||||
# - apt update
|
- apt update
|
||||||
# - apt install -y build-essential debhelper devscripts equivs python3 python3-pip
|
- apt install -y --no-install-recommends build-essential debhelper devscripts equivs python3 python3-dev python3-pip libsasl2-dev libldap2-dev
|
||||||
# - cp debian/control-3.5 debian/control
|
- mk-build-deps debian/control
|
||||||
# - mk-build-deps debian/control
|
- apt install ./*build-deps*deb -f -y
|
||||||
# - apt install ./*build-deps*deb -f -y
|
- python3 -m pip install -U virtualenv pip
|
||||||
# - "python3 -m pip install -U virtualenv"
|
- python3 -m venv env
|
||||||
# - "virtualenv env"
|
- source env/bin/activate
|
||||||
# - "source env/bin/activate"
|
- pip install -U -r requirements-dev.txt
|
||||||
# - "pip3 install -U -r requirements.txt -r requirements-dev.txt"
|
- pip install --no-binary psycopg2 psycopg2
|
||||||
# image: debian
|
image: ubuntu:18.04
|
||||||
# script:
|
script:
|
||||||
# - debuild -us -uc
|
- debuild -us -uc
|
||||||
# - cp ../passbook*.deb .
|
- cp ../passbook*.deb .
|
||||||
# - python manage.py nexus_upload
|
- ./manage.py nexus_upload --method post --url $NEXUS_URL --auth $NEXUS_AUTH --repo apt passbook*deb
|
||||||
# artifacts:
|
artifacts:
|
||||||
# paths:
|
paths:
|
||||||
# - passbook-python3.5*deb
|
- passbook*deb
|
||||||
# expire_in: 2 days
|
expire_in: 2 days
|
||||||
# stage: build
|
stage: build
|
||||||
# only:
|
only:
|
||||||
# - tags
|
- tags
|
||||||
# - /^debian/.*$/
|
- /^version/.*$/
|
||||||
# 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
|
|
||||||
|
|
||||||
# docs:
|
# docs:
|
||||||
# stage: docs
|
# stage: docs
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1 @@
|
||||||
|
10
|
|
@ -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
|
|
@ -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.
|
|
@ -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.
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
etc/passbook/
|
||||||
|
etc/passbook/config.d/
|
||||||
|
var/log/passbook/
|
||||||
|
usr/share/passbook/
|
|
@ -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: ''
|
|
@ -0,0 +1,2 @@
|
||||||
|
passbook-dbgsym_0.1.3_amd64.ddeb debug optional
|
||||||
|
passbook_0.1.3_amd64.deb admin optional
|
|
@ -0,0 +1,2 @@
|
||||||
|
[buildpackage]
|
||||||
|
export-dir=../build-area
|
|
@ -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,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
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
||||||
|
misc:Depends=debconf (>= 0.5) | debconf-2.0
|
||||||
|
shlibs:Depends=libc6 (>= 2.4), passbook
|
||||||
|
misc:Pre-Depends=
|
|
@ -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#
|
|
@ -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#
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
. /usr/share/dbconfig-common/dpkg/prerm.pgsql
|
||||||
|
dbc_go passbook "$@"
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
|
@ -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:
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (native)
|
|
@ -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_
|
|
@ -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