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:
|
||||
- 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
|
||||
|
|
|
@ -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