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."

Reply via email to