Add debian packaging
This commit is contained in:
parent
6bea261d68
commit
56713c8875
2
Makefile
2
Makefile
|
@ -4,7 +4,7 @@ mumbledj: main.go commands.go parseconfig.go strings.go service.go youtube_dl.go
|
||||||
go get github.com/karmakaze/goop
|
go get github.com/karmakaze/goop
|
||||||
rm -rf Goopfile.lock
|
rm -rf Goopfile.lock
|
||||||
goop install
|
goop install
|
||||||
goop go build
|
goop go build -o mumbledj
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f mumbledj*
|
rm -f mumbledj*
|
||||||
|
|
2
debian/.gitignore
vendored
Normal file
2
debian/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/changelog
|
||||||
|
/*.debhelper.log
|
21
debian/README.Debian
vendored
Normal file
21
debian/README.Debian
vendored
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
mumbledj
|
||||||
|
========
|
||||||
|
|
||||||
|
You must configure your YouTube and/or SoundCloud API keys by editing
|
||||||
|
/etc/mumbledj.gcfg, as described in /usr/share/doc/mumbledj/README.md.gz.
|
||||||
|
|
||||||
|
If you want to launch mumbledj with any command line arguments, the easiest
|
||||||
|
way is to create
|
||||||
|
/etc/systemd/system/mumbledj.service.d/local.conf containing the following:
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=/usr/sbin/mumbledj -server=mumble.example.com -password=secret "-channel=The Lounge" -username=mumbledj
|
||||||
|
#Environment=PATH=/var/lib/mumbledj/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
And then run `systemctl daemon-reload` before starting the mumbledj service.
|
||||||
|
See systemd.unit(5) for more information on such “drop-in” configuration files.
|
||||||
|
|
||||||
|
If you prefer to install youtube-dl from pip, rather than from the Debian
|
||||||
|
repositories, then you can run `sudo -u mumbledj pip install youtube-dl
|
||||||
|
--user`, and then uncomment the definition of PATH above.
|
14
debian/README.source
vendored
Normal file
14
debian/README.source
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Debian packing of mumbledj
|
||||||
|
==========================
|
||||||
|
|
||||||
|
To build the package, first install the packages listed in the Build-Depends
|
||||||
|
field of the `debian/control` file; then run `debian/rules clean`; finally run
|
||||||
|
`dpkg-buildpackage`. `mumbledj_${version}_${arch}.deb` will then be created in
|
||||||
|
the parent directory.
|
||||||
|
|
||||||
|
After installing the deb, see the README.Debian file for information about
|
||||||
|
configuring mumbledj's launch arguments, API keys, etc.
|
||||||
|
|
||||||
|
Note that network access is required during the package build in order to
|
||||||
|
download dependencies; if building with pbuilder, you will have to set
|
||||||
|
USENETWORK=yes to prevent pbuilder from blocking network access.
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
9
|
29
debian/control
vendored
Normal file
29
debian/control
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Source: mumbledj
|
||||||
|
Maintainer: Sam Morris <sam@robots.org.uk>
|
||||||
|
Section: sound
|
||||||
|
Priority: optional
|
||||||
|
Build-Depends:
|
||||||
|
ca-certificates,
|
||||||
|
debhelper (>= 9),
|
||||||
|
devscripts,
|
||||||
|
dh-systemd,
|
||||||
|
ffmpeg,
|
||||||
|
golang (>= 2:1.4),
|
||||||
|
git,
|
||||||
|
libopus-dev,
|
||||||
|
pkg-config,
|
||||||
|
Standards-Version: 3.9.7
|
||||||
|
Homepage: https://github.com/matthieugrieger/mumbledj/
|
||||||
|
|
||||||
|
Package: mumbledj
|
||||||
|
Architecture: any
|
||||||
|
Depends:
|
||||||
|
adduser,
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
|
Recommends:
|
||||||
|
youtube-dl,
|
||||||
|
Description: Mumble bot that plays music fetched from YouTube/SoundCloud
|
||||||
|
Note: this package is not intended for Debian upstream; it is suitable only
|
||||||
|
for end users who want to manage their mumbledj instance via the system package
|
||||||
|
manager.
|
27
debian/copyright
vendored
Normal file
27
debian/copyright
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
The Debian packaging of mumbledj was prepared by Sam Morris <sam@robots.org.uk>.
|
||||||
|
Upstream sources were prepared as described by the 'get-orig-source' target in
|
||||||
|
debian/rules. It is licensed under the same terms as mumbledj itself, below.
|
||||||
|
|
||||||
|
The following statement was taken from the LICENSE file:
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014, 2015 Matthieu Grieger
|
||||||
|
|
||||||
|
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.
|
5
debian/dirs
vendored
Normal file
5
debian/dirs
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
/etc
|
||||||
|
/usr/sbin
|
||||||
|
/var/cache/mumbledj/songs
|
||||||
|
/var/cache/mumbledj/youtube-dl
|
||||||
|
/var/lib/mumbledj
|
1
debian/docs
vendored
Normal file
1
debian/docs
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
README.md
|
1
debian/install
vendored
Normal file
1
debian/install
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
mumbledj /usr/sbin
|
2
debian/links
vendored
Normal file
2
debian/links
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/etc/mumbledj.gcfg /var/lib/mumbledj/.mumbledj/config/mumbledj.gcfg
|
||||||
|
/var/cache/mumbledj/songs /var/lib/mumbledj/.mumbledj/songs
|
1
debian/manpages
vendored
Normal file
1
debian/manpages
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
debian/mumbledj.1
|
76
debian/mumbledj.1
vendored
Normal file
76
debian/mumbledj.1
vendored
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
.TH MUMBLEDJ 1 2016-02-23
|
||||||
|
.SH NAME
|
||||||
|
mumbledj \- a Mumble bot that plays music fetched from YouTube videos and SoundCloud tracks
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.SY mumbledj
|
||||||
|
.OP \-server address
|
||||||
|
.OP \-port port
|
||||||
|
.OP \-username username
|
||||||
|
.OP \-password password
|
||||||
|
.OP \-channel channel
|
||||||
|
.OP \-cert pemCert
|
||||||
|
.OP \-key pemKey
|
||||||
|
.OP \-accesstokens accesstokens
|
||||||
|
.OP \-insecure
|
||||||
|
.SY
|
||||||
|
.SY mumbledj
|
||||||
|
.OP \-help
|
||||||
|
.YS
|
||||||
|
.SY mumbledj
|
||||||
|
.OP \-version
|
||||||
|
.YS
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.BI \-server \ address
|
||||||
|
.TQ
|
||||||
|
.BI \-port \ port
|
||||||
|
Address and port number for Mumble server; default to
|
||||||
|
.B localhost
|
||||||
|
and
|
||||||
|
.BR 64738 ,
|
||||||
|
respectively.
|
||||||
|
.TP
|
||||||
|
.B \-username
|
||||||
|
.I username
|
||||||
|
Defaults to
|
||||||
|
.B MumbleDJ
|
||||||
|
.TP
|
||||||
|
.B \-password
|
||||||
|
.I password
|
||||||
|
The password for the Mumble server. Defaults to no password.
|
||||||
|
.TP
|
||||||
|
.B \-channel
|
||||||
|
.I channel
|
||||||
|
Channel joined by the bot. Defaults to the root channel.
|
||||||
|
.TP
|
||||||
|
.B \-cert
|
||||||
|
.I pemCert
|
||||||
|
.TQ
|
||||||
|
.B \-key
|
||||||
|
.I pemKey
|
||||||
|
Paths to files containing a client certificate and key in PEM format.
|
||||||
|
If unspecified, no client certificate will be presented.
|
||||||
|
.TP
|
||||||
|
.B \-accesstokens
|
||||||
|
.I accesstokens
|
||||||
|
List of access tokens for channel authentication.
|
||||||
|
Separated by spaces--take care to use correct quoting when launching
|
||||||
|
.B mumbledj
|
||||||
|
from a shell.
|
||||||
|
.TP
|
||||||
|
.B \-insecure
|
||||||
|
Causes the bot to not check the server certificate.
|
||||||
|
Try using this if you have having connection issues.
|
||||||
|
.TP
|
||||||
|
.B \-help
|
||||||
|
Prints a summary of options and then exits.
|
||||||
|
.TP
|
||||||
|
.B \-version
|
||||||
|
Prints the version number and then exits.
|
||||||
|
.SH SEE ALSO
|
||||||
|
Full documentation can be found at
|
||||||
|
.UR https://github.com/matthieugrieger/mumbledj
|
||||||
|
.UE ,
|
||||||
|
a copy of which can be found at /usr/share/doc/mumbledj/README.md.gz.
|
||||||
|
The file README.Debian in the same directory contains notes about how to configure systemd to pass the options above when running
|
||||||
|
.BR mumbledj .
|
13
debian/mumbledj.service
vendored
Normal file
13
debian/mumbledj.service
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Documentation=man:mumbledj(1) file:/usr/share/doc/mumbledj/README.Debian file:/usr/share/doc/mumbledj/README.md.gz https://github.com/matthieugrieger/mumbledj
|
||||||
|
After=mumble-server.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=always
|
||||||
|
ExecStart=/usr/sbin/mumbledj
|
||||||
|
User=mumbledj
|
||||||
|
Environment=XDG_CACHE_HOME=/var/cache/mumbledj
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
44
debian/postinst
vendored
Normal file
44
debian/postinst
vendored
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# postinst script for mumbledj
|
||||||
|
#
|
||||||
|
# see: dh_installdeb(1)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# summary of how this script can be called:
|
||||||
|
# * <postinst> `configure' <most-recently-configured-version>
|
||||||
|
# * <old-postinst> `abort-upgrade' <new version>
|
||||||
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||||
|
# <new-version>
|
||||||
|
# * <postinst> `abort-remove'
|
||||||
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||||
|
# <failed-install-package> <version> `removing'
|
||||||
|
# <conflicting-package> <version>
|
||||||
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||||
|
# the debian-policy package
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
adduser --system --quiet --home /var/lib/mumbledj --group mumbledj
|
||||||
|
chown -R mumbledj:mumbledj /var/lib/mumbledj /var/cache/mumbledj
|
||||||
|
chgrp mumbledj /etc/mumbledj.gcfg
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# dh_installdeb will replace this with shell code automatically
|
||||||
|
# generated by other debhelper scripts.
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# vim: ts=4 sts=4 sw=4 et
|
25
debian/rules
vendored
Executable file
25
debian/rules
vendored
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
GOPATH := $(abspath $(CURDIR)/.go)
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --with systemd
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f debian/changelog
|
||||||
|
EDITOR=true VISUAL=true dch --create --package=mumbledj --newversion=$$(git describe --tags) 'Auto-generated changelog entry; do not commit'
|
||||||
|
dh clean --with systemd
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
dh_auto_clean
|
||||||
|
rm -rf '$(GOPATH)' .vendor
|
||||||
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
GOPATH='$(GOPATH)' PATH="$(GOPATH)/bin:$$PATH" make
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
:
|
||||||
|
|
||||||
|
override_dh_install:
|
||||||
|
dh_install
|
||||||
|
install -m 0640 -T config.gcfg debian/mumbledj/etc/mumbledj.gcfg
|
Reference in a new issue