├── .gitignore ├── README.md ├── etcd └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── etcd.install │ ├── etcd.service │ └── rules ├── flask └── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules ├── geoip-database-all └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── install │ └── rules ├── golang └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── golang.install │ ├── golang.links │ └── rules ├── kiwiirc └── debian │ ├── changelog │ ├── compat │ ├── config.js │ ├── control │ ├── kiwiirc.examples │ ├── kiwiirc.install │ ├── kiwiirc.service │ └── rules ├── memcached-basic └── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules ├── memcached-intermediate └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── memcached.service │ └── rules ├── memcached └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── memcached.docs │ ├── memcached.install │ ├── memcached.manpages │ ├── memcached.service │ └── rules ├── nodejs └── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules ├── puppetboard └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── puppetboard.service │ ├── puppetboard.triggers │ └── rules ├── riemann └── debian │ ├── changelog │ ├── compat │ ├── control │ ├── riemann.install │ ├── riemann.service │ └── rules └── sentry └── debian ├── changelog ├── compat ├── control ├── links ├── requirements.txt ├── rules ├── sentry.postinst ├── sentry.sentry-cron.service ├── sentry.sentry-web.service ├── sentry.sentry-worker.service └── sentry.triggers /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore generated files 2 | /*.deb 3 | /*.dsc 4 | /*.changes 5 | /*.build 6 | /*.buildinfo 7 | /*.tar.gz 8 | 9 | # Only care about debian/ directory 10 | /*/* 11 | !/*/debian 12 | 13 | # Ignore files generated during build 14 | /*/debian/files 15 | /*/debian/*.substvars 16 | /*/debian/*.log 17 | /*/debian/*.debhelper 18 | /*/debian/*-stamp 19 | /*/debian/*/ 20 | 21 | 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pragmatic Debian packaging 2 | 3 | Those are examples on how to build Debian packages using Debian tools 4 | while being quite loose on the policy. Those packages are not fit for 5 | the official Debian archive but may be OK for other usages. The 6 | packaging practices presented here are compatible with Debian 9 7 | (Stretch) and more recent, and Ubuntu Bionic and more recent. If you 8 | wish to support older distributions, switch to the `2016` tag. 9 | 10 | See the following articles for some background: 11 | [Pragmatic Debian packaging](https://vincent.bernat.im/en/blog/2019-pragmatic-debian-packaging). 12 | 13 | All those packages can be built with: 14 | 15 | dpkg-buildpackage -us -uc -b 16 | 17 | Only binary packages can be safely built from those sources. Do not 18 | attempt to build source packages as they are likely to be flawed. 19 | 20 | If you don't wish to satisfy the build dependencies, you can build with: 21 | 22 | dpkg-buildpackage -us -uc -b -d 23 | 24 | You can build them with `git-pbuilder` as well: 25 | 26 | GIT_PBUILDER_OPTIONS=--use-network=yes DIST=bionic git-pbuilder -us -uc -b 27 | 28 | Most packages will download the source code from Internet (without any 29 | check). This is more convenient for simple examples, but the `debian/` 30 | directory could have been just integrated into the original source 31 | tree to skip this test. 32 | 33 | It is better to build the package on the target distribution. Some of 34 | the generated packages may be installed on another distribution, but 35 | there is no guarantee. 36 | 37 | Note that those packages are received no real operational tests and 38 | should not be used on production system. Their only purpose is to 39 | illustrate how to build Debian packages. 40 | 41 | ## Dependencies 42 | 43 | Ensure you have those packages installed: 44 | 45 | - `build-essential` 46 | - `debhelper` 47 | 48 | You may also want the specified build dependencies. 49 | 50 | ## systemd support 51 | 52 | When applicable, the examples come with systemd support. Support for 53 | other inits are not illustrated here (have a look at the `2016` tag if 54 | you want to support non-systemd init systems). 55 | 56 | ## Packages 57 | 58 | ### geoip-database-all 59 | 60 | This package is built from the most recent Maxmind GeoIP databases. It 61 | is intended to be built monthly and should replace `geoip-database`, 62 | `geoip-database-extra` and `geoip-database-contrib` packages. 63 | 64 | ### nodejs 65 | 66 | This is a all-in-one package for [nodejs](https://nodejs.org/en/). It 67 | will download the version specified in `debian/rules` and build a 68 | package from that. This package contains an embedded copy OpenSSL, 69 | libuv, zlib and I suppose many other dependencies. 70 | 71 | ### memcached 72 | 73 | This is an all-in-one package for 74 | [memcached](http://www.memcached.org/). It will download the version 75 | specified in `debian/rules` and build a package from that. Being 76 | based on autoconf, debhelper knows how to handle this kind of 77 | program. It will run `./configure` with the appropriate options, 78 | `make`, `make check` and `make install`. 79 | 80 | We add an upstart script and a systemd unit definition. This package 81 | won't work with systems using neither systemd nor upstart. 82 | 83 | ### memcached-basic 84 | 85 | This is a more basic version of the previous package. Notably, it's 86 | easier to explain as an introduction to "pragmatic" packaging. 87 | 88 | ### memcached-intermediate 89 | 90 | This is an intermediate version between `memcached-basic` and 91 | `memcached`. 92 | 93 | ### golang 94 | 95 | This package is just a conversion of the precompiled 96 | tarball. Compiling Go from source is too deemed to complex (unless you 97 | already have Go). The tarball is extracted in /usr/lib and a symbolic 98 | link is done from `/usr/local/go` to `/usr/lib/go`. Debian packages are 99 | not expected to install anything in `/usr/local`. 100 | 101 | ### flask 102 | 103 | This is the popular Flask microframework as a Python module. This 104 | example rely on dh_python, an helper tool to help packaging Python 105 | modules. We just download and extract the tarball, override the 106 | package version and let this helper do its work. The resulting package 107 | is almost correct in respect to the Debian policy. 108 | 109 | ### etcd 110 | 111 | This package ships etcd, a key-value store written in Go. It ships a 112 | systemd service unit. It doesn't come with a `/etc/default/etcd` that 113 | would have been handy to have for more customizations. It will make 114 | the daemon run as `etcd`, relying on systemd to create it. 115 | 116 | ### riemann 117 | 118 | This package ships riemann. The build dependencies are incomplete 119 | since it is unlikely you'll find lein already packaged. We could fetch 120 | and execute it in `debian/rules`, but we assume that something else is 121 | doing that for us. It comes with an upstart and systemd job. It will 122 | run as `_riemann`. The package makes use of an uberjar to bundle all 123 | dependencies. 124 | 125 | ### puppetboard 126 | 127 | This package makes use of `dh-virtualenv`, a nifty helper to ship a 128 | whole virtualenv. Dependencies are therefore frozen and the package is 129 | independant of other Python modules on the system (but relies 130 | nonetheless on system Python). As usual, shipped with a user and some 131 | upstart job/systemd unit. 132 | 133 | ### sentry 134 | 135 | This package also uses `dh-virtualenv` but with a variation. It relies 136 | on `pip` to download `sentry` through a provided `requirements.txt` 137 | (where the version should be set with pip-tools for example). It also 138 | ensure everything is built from source with the exception of 139 | `symbolic` which is too "hard" to compile (it needs `rust` and 140 | `cargo`). It also uses several systemd unit files. As a dynamic user 141 | cannot be shared accross systemd unit files, we have to create the 142 | user in postinst. 143 | 144 | ### kiwiirc 145 | 146 | This is an IRC web client written in Node.JS. There is currently no 147 | equivalent to `dh-virtualenv` for NodeJS but it's enough to do 148 | yourself. Shipped with a systemd unit featuring a dynamic user. 149 | -------------------------------------------------------------------------------- /etcd/debian/changelog: -------------------------------------------------------------------------------- 1 | etcd (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 19:56:15 +0200 6 | 7 | -------------------------------------------------------------------------------- /etcd/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /etcd/debian/control: -------------------------------------------------------------------------------- 1 | Source: etcd 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | wget, ca-certificates, 5 | golang, git 6 | 7 | Package: etcd 8 | Architecture: any 9 | Depends: ${misc:Depends}, ${shlibs:Depends} 10 | Description: highly-available key value store 11 | -------------------------------------------------------------------------------- /etcd/debian/etcd.install: -------------------------------------------------------------------------------- 1 | bin/etcd usr/bin 2 | bin/etcdctl usr/bin 3 | -------------------------------------------------------------------------------- /etcd/debian/etcd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=etcd key-value store 3 | Documentation=https://github.com/etcd-io/etcd 4 | 5 | [Service] 6 | User=_etcd 7 | DynamicUser=yes 8 | Type=notify 9 | Environment=ETCD_DATA_DIR=/var/lib/etcd 10 | Environment=ETCD_NAME=%m 11 | ExecStart=/usr/bin/etcd 12 | Restart=always 13 | RestartSec=10s 14 | LimitNOFILE=40000 15 | StateDirectory=etcd 16 | 17 | [Install] 18 | WantedBy=multi-user.target 19 | -------------------------------------------------------------------------------- /etcd/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 3.3.13 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = v$(VERSION).tar.gz 7 | URL = https://github.com/etcd-io/etcd/archive/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | export GOCACHE=/tmp 13 | override_dh_update_autotools_config: 14 | # Download and extract the tarball 15 | wget -N --progress=dot:mega $(URL) 16 | tar --strip-components=1 -xf $(TARBALL) 17 | 18 | override_dh_gencontrol: 19 | dh_gencontrol -- -v$(PACKAGEVERSION) 20 | -------------------------------------------------------------------------------- /flask/debian/changelog: -------------------------------------------------------------------------------- 1 | flask (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 17:15:27 +0200 6 | 7 | -------------------------------------------------------------------------------- /flask/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /flask/debian/control: -------------------------------------------------------------------------------- 1 | Source: flask 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), dh-python, 4 | python-all, python3-all, 5 | python-setuptools, python3-setuptools, 6 | wget, ca-certificates 7 | 8 | Package: python-flask 9 | Architecture: all 10 | Depends: ${python:Depends}, ${misc:Depends} 11 | Description: micro web framework based on Werkzeug, Jinja2 and good intentions 12 | 13 | Package: python3-flask 14 | Architecture: all 15 | Depends: ${python3:Depends}, ${misc:Depends} 16 | Description: micro web framework based on Werkzeug, Jinja2 and good intentions 17 | -------------------------------------------------------------------------------- /flask/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | export PYBUILD_DESTDIR_python2=debian/python-flask/ 4 | export PYBUILD_DESTDIR_python3=debian/python3-flask/ 5 | 6 | VERSION = 1.0.3 7 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 8 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 9 | TARBALL = Flask-$(VERSION).tar.gz 10 | URL = https://pypi.python.org/packages/source/F/Flask/$(TARBALL) 11 | 12 | %: 13 | dh $@ --with python2,python3 --buildsystem pybuild 14 | 15 | override_dh_update_autotools_config: 16 | # Download and extract the tarball 17 | wget -N --progress=dot:mega $(URL) 18 | tar --strip-components=1 -xf $(TARBALL) 19 | 20 | override_dh_auto_test: 21 | # Do not run tests 22 | 23 | override_dh_gencontrol: 24 | dh_gencontrol -- -v$(PACKAGEVERSION) 25 | -------------------------------------------------------------------------------- /geoip-database-all/debian/changelog: -------------------------------------------------------------------------------- 1 | geoip-database-all (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry 4 | 5 | -- Vincent Bernat Tue, 19 Apr 2016 22:27:05 +0200 6 | -------------------------------------------------------------------------------- /geoip-database-all/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /geoip-database-all/debian/control: -------------------------------------------------------------------------------- 1 | Source: geoip-database-all 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | wget 5 | 6 | Package: geoip-database-all 7 | Architecture: all 8 | Depends: ${misc:Depends} 9 | Conflicts: geoip-database, geoip-database-extra, geoip-database-contrib 10 | Replaces: geoip-database, geoip-database-extra, geoip-database-contrib 11 | Provides: geoip-database, geoip-database-extra, geoip-database-contrib 12 | Description: IP lookup command line tools that use the GeoIP library (all databases) 13 | -------------------------------------------------------------------------------- /geoip-database-all/debian/install: -------------------------------------------------------------------------------- 1 | *.mmdb usr/share/GeoIP 2 | -------------------------------------------------------------------------------- /geoip-database-all/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 0.$(shell date +%Y%m%d) 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | 7 | %: 8 | dh $@ 9 | 10 | override_dh_update_autotools_config: 11 | # http://dev.maxmind.com/geoip/geoip2/geolite2/ 12 | wget -N --progress=dot:mega "http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz" 13 | wget -N --progress=dot:mega "http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz" 14 | # Uncompress 15 | for db in *.gz; do gunzip -f $$db ; done 16 | 17 | override_dh_gencontrol: 18 | dh_gencontrol -- -v0.$(shell date +%Y%m%d)~$(DISTRIBUTION)$(VERSION) 19 | -------------------------------------------------------------------------------- /golang/debian/changelog: -------------------------------------------------------------------------------- 1 | golang (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 15:06:48 +0200 6 | 7 | -------------------------------------------------------------------------------- /golang/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /golang/debian/control: -------------------------------------------------------------------------------- 1 | Source: golang 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | wget, ca-certificates 5 | 6 | Package: golang 7 | Architecture: any 8 | Depends: ${shlibs:Depends}, ${misc:Depends} 9 | Description: Go programming language compiler 10 | The Go programming language is an open source project to make 11 | programmers more productive. Go is expressive, concise, clean, and 12 | efficient. Its concurrency mechanisms make it easy to write programs 13 | that get the most out of multicore and networked machines, while its 14 | novel type system enables flexible and modular program construction. 15 | Go compiles quickly to machine code yet has the convenience of 16 | garbage collection and the power of run-time reflection. It's a 17 | fast, statically typed, compiled language that feels like a 18 | dynamically typed, interpreted language. 19 | -------------------------------------------------------------------------------- /golang/debian/golang.install: -------------------------------------------------------------------------------- 1 | go usr/lib 2 | -------------------------------------------------------------------------------- /golang/debian/golang.links: -------------------------------------------------------------------------------- 1 | usr/local/go/bin/go usr/bin/go 2 | usr/local/go/bin/godoc usr/bin/godoc 3 | usr/local/go/bin/gofmt usr/bin/gofmt 4 | -------------------------------------------------------------------------------- /golang/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH | sed "s/^i//") 4 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 5 | VERSION = 1.12.5 6 | PACKAGEVERSION = 2:$(VERSION)-0~$(DISTRIBUTION)0 7 | TARBALL = go$(VERSION).linux-$(ARCH).tar.gz 8 | URL = https://storage.googleapis.com/golang/$(TARBALL) 9 | 10 | %: 11 | dh $@ 12 | 13 | override_dh_update_autotools_config: 14 | wget -N --progress=dot:mega $(URL) 15 | tar xf $(TARBALL) 16 | 17 | override_dh_gencontrol: 18 | dh_gencontrol -- -v$(PACKAGEVERSION) 19 | 20 | # Some helpers cannot handle Go binaries 21 | override_dh_strip: 22 | override_dh_strip_nondeterminism: 23 | override_dh_shlibdeps: 24 | -------------------------------------------------------------------------------- /kiwiirc/debian/changelog: -------------------------------------------------------------------------------- 1 | kiwiirc (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 21:15:46 +0200 6 | 7 | -------------------------------------------------------------------------------- /kiwiirc/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /kiwiirc/debian/config.js: -------------------------------------------------------------------------------- 1 | var conf = require('/usr/share/doc/kiwiirc/examples/config.example.js').production; 2 | 3 | conf.servers = []; 4 | conf.servers.push({ 5 | port: 7778, 6 | address: "0.0.0.0" 7 | }); 8 | 9 | conf.public_http = "/usr/lib/kiwiirc/client"; 10 | 11 | module.exports.production = conf; 12 | -------------------------------------------------------------------------------- /kiwiirc/debian/control: -------------------------------------------------------------------------------- 1 | Source: kiwiirc 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | nodejs, npm, 5 | wget, ca-certificates 6 | 7 | Package: kiwiirc 8 | Architecture: any 9 | Depends: ${shlibs:Depends}, ${misc:Depends} 10 | Description: IRC web client 11 | -------------------------------------------------------------------------------- /kiwiirc/debian/kiwiirc.examples: -------------------------------------------------------------------------------- 1 | config.example.js 2 | -------------------------------------------------------------------------------- /kiwiirc/debian/kiwiirc.install: -------------------------------------------------------------------------------- 1 | kiwi usr/lib/kiwiirc 2 | node_modules usr/lib/kiwiirc 3 | client usr/lib/kiwiirc 4 | server usr/lib/kiwiirc 5 | server_modules usr/lib/kiwiirc 6 | package.json usr/lib/kiwiirc 7 | 8 | debian/config.js /etc/kiwiirc 9 | -------------------------------------------------------------------------------- /kiwiirc/debian/kiwiirc.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=KiwiIRC 3 | After=network.target 4 | 5 | [Service] 6 | User=_kiwiirc 7 | DynamicUser=true 8 | ConditionPathExists=/etc/kiwiirc/config.js 9 | ExecStart=/usr/lib/kiwiirc/kiwi -f start -c /etc/kiwiirc/config.js 10 | Restart=on-failure 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /kiwiirc/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 0.9.4 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = v$(VERSION).tar.gz 7 | URL = https://github.com/prawnsalad/KiwiIRC/archive/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_update_autotools_config: 13 | # Grab and unpack wanted version 14 | wget -N --progress=dot:mega $(URL) 15 | tar --strip-components=1 -xf $(TARBALL) 16 | 17 | override_dh_auto_build: 18 | HOME=$(PWD) npm install 19 | cp config.example.js config.js 20 | ./kiwi build 21 | 22 | override_dh_gencontrol: 23 | dh_gencontrol -- -v$(PACKAGEVERSION) 24 | -------------------------------------------------------------------------------- /memcached-basic/debian/changelog: -------------------------------------------------------------------------------- 1 | memcached (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 14:32:02 +0200 6 | -------------------------------------------------------------------------------- /memcached-basic/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /memcached-basic/debian/control: -------------------------------------------------------------------------------- 1 | Source: memcached 2 | Maintainer: Vincent Bernat 3 | 4 | Package: memcached 5 | Architecture: any 6 | Description: high-performance memory object caching system 7 | -------------------------------------------------------------------------------- /memcached-basic/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 1.6.6 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = memcached-$(VERSION).tar.gz 7 | URL = http://www.memcached.org/files/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_auto_clean: 13 | override_dh_auto_test: 14 | override_dh_auto_build: 15 | override_dh_auto_install: 16 | wget -N --progress=dot:mega $(URL) 17 | tar --strip-components=1 -xf $(TARBALL) 18 | ./configure --prefix=/usr 19 | make 20 | make install DESTDIR=debian/memcached 21 | 22 | override_dh_gencontrol: 23 | dh_gencontrol -- -v$(PACKAGEVERSION) 24 | -------------------------------------------------------------------------------- /memcached-intermediate/debian/changelog: -------------------------------------------------------------------------------- 1 | ../../memcached/debian/changelog -------------------------------------------------------------------------------- /memcached-intermediate/debian/compat: -------------------------------------------------------------------------------- 1 | ../../memcached/debian/compat -------------------------------------------------------------------------------- /memcached-intermediate/debian/control: -------------------------------------------------------------------------------- 1 | ../../memcached/debian/control -------------------------------------------------------------------------------- /memcached-intermediate/debian/memcached.service: -------------------------------------------------------------------------------- 1 | ../../memcached/debian/memcached.service -------------------------------------------------------------------------------- /memcached-intermediate/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 1.6.6 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = memcached-$(VERSION).tar.gz 7 | URL = http://www.memcached.org/files/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_auto_clean: 13 | override_dh_auto_test: 14 | override_dh_auto_build: 15 | override_dh_auto_install: 16 | wget -N --progress=dot:mega $(URL) 17 | tar --strip-components=1 -xf $(TARBALL) 18 | ./configure --prefix=/usr 19 | make 20 | make install DESTDIR=debian/memcached 21 | 22 | override_dh_gencontrol: 23 | dh_gencontrol -- -v$(PACKAGEVERSION) 24 | -------------------------------------------------------------------------------- /memcached/debian/changelog: -------------------------------------------------------------------------------- 1 | memcached (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 14:32:02 +0200 6 | -------------------------------------------------------------------------------- /memcached/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /memcached/debian/control: -------------------------------------------------------------------------------- 1 | Source: memcached 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | wget, ca-certificates, 5 | libevent-dev 6 | 7 | Package: memcached 8 | Architecture: any 9 | Depends: ${misc:Depends}, ${shlibs:Depends}, adduser 10 | Description: high-performance memory object caching system 11 | -------------------------------------------------------------------------------- /memcached/debian/memcached.docs: -------------------------------------------------------------------------------- 1 | doc/*.txt 2 | -------------------------------------------------------------------------------- /memcached/debian/memcached.install: -------------------------------------------------------------------------------- 1 | scripts/memcached-tool usr/bin 2 | -------------------------------------------------------------------------------- /memcached/debian/memcached.manpages: -------------------------------------------------------------------------------- 1 | doc/memcached.1 2 | scripts/memcached-tool.1 3 | -------------------------------------------------------------------------------- /memcached/debian/memcached.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=memcached daemon 3 | After=network.target 4 | 5 | [Service] 6 | User=_memcached 7 | DynamicUser=yes 8 | Type=forking 9 | Environment=PORT=11211 10 | Environment=MAXCONN=1024 11 | Environment=CACHESIZE=64 12 | Environment=OPTIONS= 13 | ExecStart=/usr/bin/memcached -d -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS 14 | Restart=on-failure 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /memcached/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 1.6.6 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = memcached-$(VERSION).tar.gz 7 | URL = http://www.memcached.org/files/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_update_autotools_config: 13 | wget -N --progress=dot:mega $(URL) 14 | tar --strip-components=1 -xf $(TARBALL) 15 | 16 | override_dh_auto_test: 17 | # Don't run the whitespace test 18 | rm t/whitespace.t 19 | dh_auto_test 20 | 21 | override_dh_gencontrol: 22 | dh_gencontrol -- -v$(PACKAGEVERSION) 23 | -------------------------------------------------------------------------------- /nodejs/debian/changelog: -------------------------------------------------------------------------------- 1 | nodejs (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 12:29:45 +0200 6 | -------------------------------------------------------------------------------- /nodejs/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /nodejs/debian/control: -------------------------------------------------------------------------------- 1 | Source: nodejs 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | wget, ca-certificates 5 | 6 | Package: nodejs 7 | Architecture: any 8 | Depends: ${misc:Depends}, ${shlibs:Depends} 9 | Description: evented I/O for V8 javascript 10 | -------------------------------------------------------------------------------- /nodejs/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | VERSION = 10.15.3 4 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = node-v$(VERSION).tar.gz 7 | URL = https://nodejs.org/dist/v$(VERSION)/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_update_autotools_config: 13 | # Grab and unpack wanted version of nodejs 14 | wget --progress=dot:mega -N $(URL) 15 | tar --strip-components=1 -xf $(TARBALL) 16 | 17 | override_dh_auto_configure: 18 | ./configure --prefix=/usr 19 | 20 | override_dh_gencontrol: 21 | dh_gencontrol -- -v$(PACKAGEVERSION) 22 | -------------------------------------------------------------------------------- /puppetboard/debian/changelog: -------------------------------------------------------------------------------- 1 | puppetboard (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 21:15:46 +0200 6 | 7 | -------------------------------------------------------------------------------- /puppetboard/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /puppetboard/debian/control: -------------------------------------------------------------------------------- 1 | Source: puppetboard 2 | Maintainer: Vincent Bernat 3 | Build-Depends: debhelper (>= 11), 4 | dh-virtualenv, 5 | dh-python, 6 | python3, python3-setuptools, 7 | wget 8 | 9 | Package: puppetboard 10 | Architecture: all 11 | Pre-Depends: dpkg (>= 1.16.1), python3, ${misc:Pre-Depends} 12 | Depends: ${python3:Depends}, ${misc:Depends} 13 | Description: web frontend for PuppetDB 14 | -------------------------------------------------------------------------------- /puppetboard/debian/puppetboard.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=puppetboard 3 | After=network.target 4 | 5 | [Service] 6 | User=_puppetboard 7 | DynamicUser=true 8 | ConditionPathExists=/etc/puppetboard/config.py 9 | Environment=PUPPETBOARD_SETTINGS=/etc/puppetboard/config.py 10 | ExecStart=/opt/venvs/puppetboard/bin/gunicorn -b 127.0.0.1:9090 puppetboard.app:app 11 | Restart=on-failure 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /puppetboard/debian/puppetboard.triggers: -------------------------------------------------------------------------------- 1 | interest-noawait /usr/bin/python2.7 2 | interest dh-virtualenv-interpreter-update 3 | -------------------------------------------------------------------------------- /puppetboard/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 0.3.0 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = v$(VERSION).tar.gz 7 | URL = https://github.com/voxpupuli/puppetboard/archive/$(TARBALL) 8 | 9 | %: 10 | dh $@ --buildsystem=pybuild --with python-virtualenv 11 | 12 | override_dh_clean: 13 | dh_clean 14 | # Grab and unpack wanted version 15 | wget -N --progress=dot:mega $(URL) 16 | tar --strip-components=1 -xf $(TARBALL) 17 | 18 | override_dh_virtualenv: 19 | dh_virtualenv --preinstall=gunicorn --python python3 20 | 21 | override_dh_gencontrol: 22 | dh_gencontrol -- -v$(PACKAGEVERSION) 23 | -------------------------------------------------------------------------------- /riemann/debian/changelog: -------------------------------------------------------------------------------- 1 | riemann (0.0-0) UNRELEASED; urgency=medium 2 | 3 | * Fake entry. 4 | 5 | -- Vincent Bernat Sat, 16 Apr 2016 20:25:01 +0200 6 | 7 | -------------------------------------------------------------------------------- /riemann/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /riemann/debian/control: -------------------------------------------------------------------------------- 1 | Source: riemann 2 | Maintainer: Vincent Bernat 3 | # Some build dependencies are missing on purpose, see README.md 4 | Build-Depends: debhelper (>= 11), 5 | wget, ca-certificates 6 | 7 | Package: riemann 8 | Architecture: any 9 | Depends: ${misc:Depends}, ${shlibs:Depends}, 10 | default-jre-headless (>= 1:1.7) | java6-runtime-headless | java7-runtime-headless | java8-runtime-headless 11 | Description: network event stream processor 12 | -------------------------------------------------------------------------------- /riemann/debian/riemann.install: -------------------------------------------------------------------------------- 1 | target/riemann-*-standalone.jar usr/share/java 2 | -------------------------------------------------------------------------------- /riemann/debian/riemann.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=riemann server 3 | After=network.target 4 | 5 | [Service] 6 | User=_riemann 7 | DynamicUser=true 8 | ConditionPathExists=/usr/share/java/riemann.jar 9 | ConditionPathExists=/etc/riemann/riemann.config 10 | Environment=JAVA=/usr/bin/java 11 | Environment=JAVA_OPTS= 12 | Environment=EXTRA_CLASSPATH= 13 | ExecStart=$JAVA $JAVA_OPTS -cp /usr/share/java/riemann.jar:$EXTRA_CLASSPATH riemann.bin start /etc/riemann/riemann.config 14 | Restart=on-failure 15 | LogsDirectory=riemann 16 | StateDirectory=riemann 17 | RuntimeDirectory=riemann 18 | 19 | [Install] 20 | WantedBy=multi-user.target 21 | -------------------------------------------------------------------------------- /riemann/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 4 | VERSION = 0.3.2 5 | PACKAGEVERSION = $(VERSION)-0~$(DISTRIBUTION)0 6 | TARBALL = $(VERSION).tar.gz 7 | URL = https://github.com/riemann/riemann/archive/$(TARBALL) 8 | 9 | %: 10 | dh $@ 11 | 12 | override_dh_update_autotools_config: 13 | # Grab and unpack wanted version 14 | wget -N --progress=dot:mega $(URL) 15 | tar --strip-components=1 -xf $(TARBALL) 16 | 17 | override_dh_auto_build: 18 | lein uberjar 19 | 20 | override_dh_link: 21 | dh_link usr/share/java/riemann-$(VERSION)-standalone.jar usr/share/java/riemann.jar 22 | 23 | override_dh_gencontrol: 24 | dh_gencontrol -- -v$(PACKAGEVERSION) 25 | 26 | # Slow with Java stuff. For custom packages, there is not much 27 | # interest in using it. 28 | override_dh_strip_nondeterminism: 29 | -------------------------------------------------------------------------------- /sentry/debian/changelog: -------------------------------------------------------------------------------- 1 | sentry (0.0) unstable; urgency=medium 2 | 3 | * Initial release. 4 | 5 | -- Vincent Bernat Thu, 15 Jun 2017 13:13:19 +0200 6 | -------------------------------------------------------------------------------- /sentry/debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /sentry/debian/control: -------------------------------------------------------------------------------- 1 | Source: sentry 2 | Section: python 3 | Priority: extra 4 | Maintainer: Exoscale 5 | Build-Depends: debhelper (>= 11), 6 | dh-virtualenv (>= 0.8), 7 | python2.7, 8 | python2.7-dev, 9 | libxslt1-dev, 10 | libxml2-dev, 11 | libffi-dev, 12 | libpq-dev, 13 | libssl-dev, 14 | libtiff5-dev, 15 | libjpeg8-dev, 16 | zlib1g-dev, 17 | libfreetype6-dev, 18 | liblcms2-dev, 19 | libwebp-dev, 20 | libharfbuzz-dev, 21 | libfribidi-dev, 22 | tcl8.6-dev, 23 | tk8.6-dev, 24 | python-tk 25 | Standards-Version: 3.9.5 26 | 27 | Package: sentry 28 | Architecture: any 29 | Pre-Depends: dpkg (>= 1.16.1), 30 | ${misc:Pre-Depends} 31 | Depends: ${python:Depends}, 32 | ${shlibs:Depends}, 33 | ${misc:Depends}, 34 | adduser 35 | Description: realtime logging and aggregation server 36 | -------------------------------------------------------------------------------- /sentry/debian/links: -------------------------------------------------------------------------------- 1 | usr/share/python/sentry/bin/sentry usr/bin/sentry 2 | -------------------------------------------------------------------------------- /sentry/debian/requirements.txt: -------------------------------------------------------------------------------- 1 | sentry[postgres] 2 | dj-database-url 3 | dj-redis-url 4 | django-redis-cache 5 | -------------------------------------------------------------------------------- /sentry/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | export LANG=C.UTF-8 3 | export LC_ALL=C.UTF-8 4 | 5 | DISTRIBUTION = $(shell sed -n "s/^VERSION_CODENAME=//p" /etc/os-release) 6 | VERSION = $(shell debian/sentry/usr/share/python/sentry/bin/python -c 'import pkg_resources; print(str(pkg_resources.get_distribution("sentry")).split()[1])') 7 | DEBVERSION = $(VERSION)-0~$(DISTRIBUTION)0 8 | 9 | %: 10 | dh $@ --with python-virtualenv 11 | 12 | override_dh_gencontrol: 13 | dh_gencontrol -- -v$(DEBVERSION) 14 | 15 | override_dh_virtualenv: 16 | # With this command, we: 17 | # - download everything from the provided requirements.txt 18 | # - don't use wheels, except for "symbolic" 19 | dh_virtualenv \ 20 | --extra-pip-arg="--no-binary=:all:" \ 21 | --extra-pip-arg="--only-binary=symbolic" \ 22 | --preinstall=wheel \ 23 | --requirements="debian/requirements.txt" --skip-install 24 | 25 | override_dh_shlibdeps: 26 | dh_shlibdeps -X/firefox/x86/ 27 | 28 | override_dh_installsystemd: 29 | dh_installsystemd --name=sentry-web 30 | dh_installsystemd --name=sentry-worker 31 | dh_installsystemd --name=sentry-cron 32 | -------------------------------------------------------------------------------- /sentry/debian/sentry.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | case "$1" in 6 | configure) 7 | adduser --system --disabled-password --disabled-login --home /var/empty \ 8 | --no-create-home --quiet --force-badname --group _sentry 9 | ;; 10 | esac 11 | 12 | #DEBHELPER# 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /sentry/debian/sentry.sentry-cron.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Sentry Beat Service 3 | ConditionPathExists=/etc/sentry/sentry.conf.py 4 | After=network.target 5 | 6 | [Service] 7 | Type=simple 8 | User=_sentry 9 | Environment=SENTRY_CONF=/etc/sentry 10 | ExecStart=/usr/bin/sentry run cron 11 | Restart=on-failure 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /sentry/debian/sentry.sentry-web.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Sentry Main Service 3 | ConditionPathExists=/etc/sentry/sentry.conf.py 4 | After=network.target 5 | Requires=sentry-worker.service 6 | Requires=sentry-cron.service 7 | 8 | [Service] 9 | Type=simple 10 | User=_sentry 11 | Environment=SENTRY_CONF=/etc/sentry 12 | ExecStart=/usr/bin/sentry run web 13 | Restart=on-failure 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /sentry/debian/sentry.sentry-worker.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Sentry Background Worker 3 | ConditionPathExists=/etc/sentry/sentry.conf.py 4 | After=network.target 5 | 6 | [Service] 7 | Type=simple 8 | User=_sentry 9 | Environment=SENTRY_CONF=/etc/sentry 10 | ExecStart=/usr/bin/sentry run worker 11 | Restart=on-failure 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /sentry/debian/sentry.triggers: -------------------------------------------------------------------------------- 1 | interest-noawait /usr/bin/python2.7 2 | interest dh-virtualenv-interpreter-update 3 | --------------------------------------------------------------------------------