Add Debian package
Although it is way too soon to install the application on any server, i use build.opensuse.org as a kind of CI/CD server: it runs the migration and executes the test suite on each commit. For that, i need to build *some* package, and Debian suits be better because it has all the Go packages i use; i would have to create the RPM for many libraries if i were to use openSUSE, for instance. According to the de facto project layout for Go[0], these files should go into a `build/package` folder, but since i already broke the rules with Sqitch’s folders, i do not see why i have to go against Debian’s conventions of placing them into a `debian` subfolder of the root. I have spit the package into the binary and the Sqitch migration files because it is possible to want the PostgreSQL into a separate server, and there is little point of having Sqitch and all its dependencies installed on the front-end server where the Go program runs. The demo package is probably harder to justify, as it is just a single file, however i will not run out of packages, will i? Lintian detects htmx@1.9.3.min.js as a “source-less” file, which is practically true as nobody is ever going to edit a minified source. I did not want to include the source in the distribution package, that’s why i included it in the “missing sources” file, even thought this is a native debian package and, thus, can not have missing sources. git-buildpackage creates a lot of extra files that have to be removed to build it again, otherwise the process detects the new files in the directory and refuses to build the tarball. I was getting tired of doing it manually and added a Makefile rule. Closes #20
This commit is contained in:
parent
64d38f515f
commit
5c4ade15bc
21
Makefile
21
Makefile
|
@ -23,4 +23,23 @@ test-deploy:
|
||||||
sqitch deploy --db-name $(PGDATABASE)
|
sqitch deploy --db-name $(PGDATABASE)
|
||||||
pg_prove test/*
|
pg_prove test/*
|
||||||
|
|
||||||
.PHONY: locales test-db
|
clean:
|
||||||
|
$(RM) $(MO_FILES)
|
||||||
|
$(RM) $(POT_FILE)
|
||||||
|
$(RM) debian/debhelper-build-stamp
|
||||||
|
$(RM) debian/camper-demo.substvars
|
||||||
|
$(RM) debian/camper-sqitch.substvars
|
||||||
|
$(RM) debian/camper.postrm.debhelper
|
||||||
|
$(RM) debian/camper.substvars
|
||||||
|
$(RM) debian/files
|
||||||
|
$(RM) debian/golang-tandem-camper-dev.substvars
|
||||||
|
$(RM) -r _build/
|
||||||
|
$(RM) -r debian/.debhelper/
|
||||||
|
$(RM) -r debian/camper/
|
||||||
|
$(RM) -r debian/golang-tandem-camper-dev/
|
||||||
|
$(RM) -r debian/tmp/
|
||||||
|
$(RM) -r debian/camper-demo/
|
||||||
|
$(RM) -r debian/camper-sqitch/
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: locales test-db clean
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
demo.sql usr/share/camper
|
|
@ -0,0 +1,5 @@
|
||||||
|
deploy usr/share/camper/sqitch
|
||||||
|
revert usr/share/camper/sqitch
|
||||||
|
verify usr/share/camper/sqitch
|
||||||
|
sqitch.conf usr/share/camper/sqitch
|
||||||
|
sqitch.plan usr/share/camper/sqitch
|
|
@ -0,0 +1,3 @@
|
||||||
|
usr/bin/camper usr/bin
|
||||||
|
locale usr/share/camper
|
||||||
|
web usr/share/camper
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
# Create numerus user and group
|
||||||
|
if ! getent group numerus >/dev/null; then
|
||||||
|
addgroup --system --quiet numerus
|
||||||
|
fi
|
||||||
|
if ! getent passwd numerus >/dev/null; then
|
||||||
|
adduser --quiet \
|
||||||
|
--system \
|
||||||
|
--disabled-login \
|
||||||
|
--no-create-home \
|
||||||
|
--shell /bin/bash \
|
||||||
|
--ingroup numerus \
|
||||||
|
--home /usr/share/numerus \
|
||||||
|
--gecos "Numerus Daemon" \
|
||||||
|
numerus
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure log directory has correct permissions set
|
||||||
|
dpkg-statoverride --list "/var/log/numerus" >/dev/null || \
|
||||||
|
dpkg-statoverride --add --force --quiet --update numerus adm 0750 /var/log/numerus
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,16 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Numerus application server
|
||||||
|
Requires=postgresql.service
|
||||||
|
After=postgresql.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=camper
|
||||||
|
Group=camper
|
||||||
|
WorkingDirectory=/usr/share/camper
|
||||||
|
EnvironmentFile=-/etc/default/camper
|
||||||
|
ExecStart=/usr/bin/camper
|
||||||
|
Restart=always
|
||||||
|
StandardOutput=append:/var/log/camper/access.log
|
||||||
|
StandardError=append:/var/log/camper/error.log
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
camper (0.0~git00000000000000.0000000-1) bookworm; urgency=medium
|
||||||
|
|
||||||
|
* Initial release
|
||||||
|
|
||||||
|
-- jordi fita mas <jordi@tandem.blog> Thu, 27 Jul 2023 18:53:28 +0200
|
|
@ -0,0 +1,67 @@
|
||||||
|
Source: camper
|
||||||
|
Section: web
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: jordi fita mas <jordi@tandem.blog>
|
||||||
|
Build-Depends:
|
||||||
|
debhelper-compat (= 13),
|
||||||
|
dh-golang,
|
||||||
|
gettext,
|
||||||
|
golang-any,
|
||||||
|
golang-github-jackc-pgx-v4-dev,
|
||||||
|
golang-github-leonelquinteros-gotext-dev,
|
||||||
|
golang-golang-x-text-dev,
|
||||||
|
postgresql-all (>= 217~),
|
||||||
|
sqitch,
|
||||||
|
pgtap
|
||||||
|
Standards-Version: 4.6.0
|
||||||
|
XS-Go-Import-Path: dev.tandem.ws/tandem/camper
|
||||||
|
Vcs-Browser: https://dev.tandem.ws/tandem/camper
|
||||||
|
Vcs-Git: https://dev.tandem.ws/tandem/camper.git
|
||||||
|
Homepage: https://dev.tandem.ws/tandem/camper
|
||||||
|
Rules-Requires-Root: no
|
||||||
|
|
||||||
|
Package: golang-tandem-camper-dev
|
||||||
|
Architecture: all
|
||||||
|
Pre-Depends: ${misc:Pre-Depends}
|
||||||
|
Depends:
|
||||||
|
${misc:Depends},
|
||||||
|
golang-github-jackc-pgx-v4-dev,
|
||||||
|
golang-github-leonelquinteros-gotext-dev,
|
||||||
|
golang-golang-x-text-dev
|
||||||
|
Description: Simple campground reservation management application
|
||||||
|
A simple web application to manage reservations to campgrounds, intended for
|
||||||
|
small companies in Spain.
|
||||||
|
.
|
||||||
|
This is the dev package.
|
||||||
|
|
||||||
|
Package: camper
|
||||||
|
Architecture: any
|
||||||
|
Depends:
|
||||||
|
${shlibs:Depends},
|
||||||
|
${misc:Depends},
|
||||||
|
adduser
|
||||||
|
Built-Using: ${misc:Built-Using}
|
||||||
|
Description: Simple campground reservation management application
|
||||||
|
A simple web application to manage reservations to campgrounds, intended for
|
||||||
|
small companies in Spain.
|
||||||
|
|
||||||
|
Package: camper-sqitch
|
||||||
|
Architecture: all
|
||||||
|
Depends:
|
||||||
|
${misc:Depends},
|
||||||
|
sqitch
|
||||||
|
Description: Simple campground reservation management application
|
||||||
|
A simple web application to manage reservations to campgrounds, intended for
|
||||||
|
small companies in Spain.
|
||||||
|
.
|
||||||
|
This is the Sqitch migration package.
|
||||||
|
|
||||||
|
Package: camper-demo
|
||||||
|
Architecture: all
|
||||||
|
Depends:
|
||||||
|
${misc:Depends}
|
||||||
|
Description: Simple campground reservation management application
|
||||||
|
A simple web application to manage reservations to campgrounds, intended for
|
||||||
|
small companies in Spain.
|
||||||
|
.
|
||||||
|
This is the demo package.
|
|
@ -0,0 +1,55 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Source: https://dev.tandem.ws/tandem/camper
|
||||||
|
Upstream-Name: camper
|
||||||
|
Upstream-Contact: jordi@tandem.blog
|
||||||
|
|
||||||
|
Files:
|
||||||
|
*
|
||||||
|
Copyright:
|
||||||
|
2023 jordi fita mas
|
||||||
|
License: AGPL-3.0-only
|
||||||
|
|
||||||
|
Files:
|
||||||
|
web/static/htmx@1.9.3.min.js
|
||||||
|
Copyright:
|
||||||
|
2020 Big Sky Software
|
||||||
|
License: BSD-2-Clause
|
||||||
|
|
||||||
|
License: AGPL-3.0-only
|
||||||
|
Camper is free software: you can redistribute it and/or modify it under the
|
||||||
|
terms of the GNU Affero General Public License as published by the Free
|
||||||
|
Software Foundation, version 3.
|
||||||
|
.
|
||||||
|
Camper is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Affero General Public License along
|
||||||
|
with CAmper. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of the GNU Affero General Public License
|
||||||
|
can be found in `/usr/share/common-licenses/AGPL-3'.
|
||||||
|
|
||||||
|
License: BSD-2-clause
|
||||||
|
All rights reserved.
|
||||||
|
.
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
.
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
.
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1 @@
|
||||||
|
usr/share/gocode/src usr/share/gocode
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --builddirectory=_build --buildsystem=golang --with=golang
|
||||||
|
|
||||||
|
execute_before_dh_auto_build:
|
||||||
|
make
|
||||||
|
|
||||||
|
execute_after_dh_auto_test:
|
||||||
|
pg_virtualenv -v 15 make test-deploy
|
|
@ -0,0 +1 @@
|
||||||
|
1.0
|
Loading…
Reference in New Issue