On Sat, Apr 11, 2020 at 5:35 AM Klemens Nanni <k...@openbsd.org> wrote: > > On Sat, Apr 11, 2020 at 09:23:44AM +0200, Thomas L. wrote: > > I'd like to build and package the server component of Mumble too. > > Since users usually either want the client or the server, I made > > audio/mumble a multi-package for this. > Thanks for beating me to it, sounds great. > > Out of curiosity, have you tried audio/umurmur as server?
umurmur lacks a lot of the features of murmur, but (last I looked, around the time I was porting umurmur) murmur has some quirks that make it unusable on big endian archs. It's been quite a few years so I don't recall the specifics (had to do with protobuf, IIRC), but if those issues can be ironed out it would be really nice to have a full featured murmur install available. =) > > > While there I also removed some references to non-installed manpages > > from the manpages that are installed. > I doubt this is worth it. > > > Tested and works on amd64. However, this changes the pkgpath of the > > Mumble client. How do I make `make update`/`pkg_add -u` aware of this? > @pkgpath should do, see pkg_create(1). > > See comments inline. > > > diff --git audio/mumble/Makefile audio/mumble/Makefile > > index 963c8976ad2..b4c0ce3824f 100644 > > --- audio/mumble/Makefile > > +++ audio/mumble/Makefile > > @@ -1,9 +1,13 @@ > > # $OpenBSD: Makefile,v 1.45 2020/04/09 18:18:06 tb Exp $ > > > > -COMMENT = low-latency voice chat client > > +COMMENT-client = low-latency voice chat client > > +COMMENT-server = low-latency voice chat server > > > > -DISTNAME = mumble-1.3.0 > > -REVISION = 5 > > +VERSION = 1.3.0 > > +DISTNAME = mumble-${VERSION} > > +PKGNAME-client = mumble-${VERSION} > > +PKGNAME-server = murmur-${VERSION} > > +REVISION-client = 6 > Now that it's a new package, I *think* REVISION can go. > > > CATEGORIES = audio > "net" could be added. > > > diff --git audio/mumble/patches/patch-man_mumble_1 > > audio/mumble/patches/patch-man_mumble_1 > > new file mode 100644 > > index 00000000000..3a49ffa1c3f > > --- /dev/null > > +++ audio/mumble/patches/patch-man_mumble_1 > > > +@@ -48,7 +48,6 @@ Deafen self > > + Undeafen self > > + .RE > > + .SH SEE ALSO > > +-.BR mumble\-overlay (1), > I don't think this is important enough; users see that a mumble-overlay > does not exist and the port builds with CONFIG+=no-overlay. There are > probably lots of ports that mention foreign/missing manuals. I'd like > to keep local patches to a minimum. > > If you want to fix this, best would probably be for upstream to add the > reference only if mumble was built with overlay suppport. Furthermore, > Configure > Settings... > Overlay is still present in the client, so > that should be gone as well and is even more confusing than a missing > manual. > > > new file mode 100644 > > index 00000000000..5160a8bbbbd > > --- /dev/null > > +++ audio/mumble/patches/patch-man_murmurd_1 > > @@ -0,0 +1,15 @@ > > +$OpenBSD$ > > + > > +Remove reference to non-installed manpage. > Same here, I'd rather omit this patch and try fixing it upstream, > although I cannot say what murmur-user-wrapper(1) is supposed to do. > > > diff --git audio/mumble/patches/patch-scripts_murmur_ini > > audio/mumble/patches/patch-scripts_murmur_ini > > new file mode 100644 > > index 00000000000..c2cdfc91ba5 > > --- /dev/null > > +++ audio/mumble/patches/patch-scripts_murmur_ini > > @@ -0,0 +1,90 @@ > > +$OpenBSD$ > > + > > +Remove unavailable options and set default database and log locations. > > + > > +Index: scripts/murmur.ini > > +--- scripts/murmur.ini.orig > > ++++ scripts/murmur.ini > > +@@ -13,7 +13,7 @@ > > + > > + ; Path to database. If blank, will search for > > + ; murmur.sqlite in default locations or create it if not found. > > +-database= > > ++database=/var/murmur/murmur.sqlite > Use LOCALSTATEDIR, see bsd.port.mk(5). > > > +@@ -57,38 +57,6 @@ database= > > + ; murmurd processes connected to the same D-Bus daemon. > > + ;dbusservice=net.sourceforge.mumble.murmur > > + > > +-; If you want to use ZeroC Ice to communicate with Murmur, you need > > +-; to specify the endpoint to use. Since there is no authentication > > +-; with ICE, you should only use it if you trust all the users who have > > +-; shell access to your machine. > > +-; Please see the ICE documentation on how to specify endpoints. > > +-ice="tcp -h 127.0.0.1 -p 6502" > Does it accept "localhost"? If so, it would honor "family" in > resolv.conf(5) or listen on both families even. > > > +-; Ice primarily uses local sockets. This means anyone who has a > > +-; user account on your machine can connect to the Ice services. > > +-; You can set a plaintext "secret" on the Ice connection, and > > +-; any script attempting to access must then have this secret > > +-; (as context with name "secret"). > > +-; Access is split in read (look only) and write (modify) > > +-; operations. Write access always includes read access, > > +-; unless read is explicitly denied (see note below). > > +-; > > +-; Note that if this is uncommented and with empty content, > > +-; access will be denied. > > +- > > +-;icesecretread= > > +-icesecretwrite= > Instead of removing the entire block, why not (un)commenting relevant > parts only and adding a simple comment if necessary? This keeps our > patch smaller and does not lose information. > > > +-; If you want to expose Murmur's experimental gRPC API, you > > +-; need to specify an address to bind on. > > +-; Note: not all builds of Murmur support gRPC. If gRPC is not > > +-; available, Murmur will warn you in its log output. > > +-;grpc="127.0.0.1:50051" > > +-; Specifying both a certificate and key file below will cause gRPC to use > > +-; secured, TLS connections. > > +-;grpccert="" > > +-;grpckey="" > Same here. > > > +@@ -102,7 +70,7 @@ icesecretwrite= > > + ; logs to the file 'murmur.log'. If you leave this field blank > > + ; on Unix-like systems, Murmur will force itself into foreground > > + ; mode which logs to the console. > > +-;logfile=murmur.log > > ++logfile=/var/murmur/murmur.log > Use LOCALSTATEDIR. > > > +@@ -203,13 +171,6 @@ allowping=true > > + ;registerUrl=http://www.mumble.info/ > > + ;registerHostname= > > + > > +-; If this option is enabled, the server will announce its presence via the > > +-; bonjour service discovery protocol. To change the name announced by > > bonjour > > +-; adjust the registerName variable. > > +-; See http://developer.apple.com/networking/bonjour/index.html for more > > information > > +-; about bonjour. > > +-;bonjour=True > Default is disabled, why not just leave it as is? Best to keep it > simple here. > > > +@@ -267,11 +228,3 @@ allowping=true > > + ; overrides the automatic benchmark and forces a specific number of > > iterations. > > + ; (Note that you should only change this value if you know what you are > > doing) > > + ;kdfIterations=-1 > > +- > > +-; You can configure any of the configuration options for Ice here. We > > recommend > > +-; leave the defaults as they are. > > +-; Please note that this section has to be last in the configuration file. > > +-; > > +-[Ice] > > +-Ice.Warn.UnknownProperties=1 > > +-Ice.MessageSizeMax=65536 > > > diff --git audio/mumble/pkg/PLIST-server audio/mumble/pkg/PLIST-server > > new file mode 100644 > > index 00000000000..c0f489f13eb > > --- /dev/null > > +++ audio/mumble/pkg/PLIST-server > > @@ -0,0 +1,15 @@ > > +@comment $OpenBSD: PLIST,v$ > > +@newgroup _murmurd:854 > > +@newuser _murmurd:854:_murmurd:daemon:murmurd > > user:/nonexistent:/sbin/nologin > > +@rcscript ${RCDIR}/murmurd > > +@man man/man1/murmurd.1 > > +@bin sbin/murmurd > > +share/examples/murmur/ > > +share/examples/murmur/murmur.ini > > +@mode 640 > > +@group _murmurd > > +@sample ${SYSCONFDIR}/murmur.ini > > +@mode > > +@owner _murmurd > > +@sample /var/murmur/ > > +@extraunexec rm -rf /var/murmur/* > Use LOCALSTATEDIR. > > > diff --git audio/mumble/pkg/murmurd.rc audio/mumble/pkg/murmurd.rc > > new file mode 100644 > > index 00000000000..d49051002e8 > > --- /dev/null > > +++ audio/mumble/pkg/murmurd.rc > > @@ -0,0 +1,16 @@ > > +#!/bin/ksh > > +# > > +# $OpenBSD: murmurd.rc,v$ > > + > > +daemon="${TRUEPREFIX}/sbin/murmurd" > > +daemon_flags="-ini /etc/murmur.ini" > Use SYSCONFDIR (as already done in PLIST). > > > +daemon_user="_murmurd" > > + > > +. /etc/rc.d/rc.subr > > + > > +# only reloads TLS settings > > +rc_reload() { > > + pkill -USR1 -T "${daemon_rtable}" -xf "${pexp}" > > +} > > + > > +rc_cmd $1 > > diff --git infrastructure/db/user.list infrastructure/db/user.list > > index 49a1301289c..40081188496 100644 > > --- infrastructure/db/user.list > > +++ infrastructure/db/user.list > > @@ -362,3 +362,4 @@ id user group port > > 851 _whatsapp _whatsapp net/mautrix-whatsapp > > 852 _inetsim _inetsim net/inetsim > > 853 _sniproxy _sniproxy net/sniproxy > > +854 _murmurd _murmurd audio/mumble,-server > audio/umurmur uses _umurmur (without trailing d) and although the > majority of ports users does so, I'd explicitly use _murmurd (incl. > trailing d) so the two users are more easily distinguishable. > -- "In the real world, Scully would almost always be right and Mulder would almost always be wrong." -Carpetsmoker "the biggest proof of intelligent life out there is... they've not contacted us." -EvilBagel "The doctors in a mental institution were thinking of releasing a certain schizophrenic patient. They decided to give him a test under a lie detector. One of the questions they asked him was, "Are you Napoleon?" He replied, "No." The machine showed that he was lying."