https://labs.parabola.nu/https://labs.parabola.nu/favicon.ico?15367742552021-04-11T18:04:35ZParabola Issue TrackerPackages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161122021-04-11T18:04:35ZAnonymous
<ul></ul><p>I do not know for a Gopher server, but there is the <a href="https://www.parabola.nu/packages/?sort=&repo=Extra&q=lynx&maintainer=&flagged=" class="external">lynx</a> text browser that can be used as a Gopher client. It is in the [extra] package repository. I have not used it for Gopher myself though.</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161132021-04-11T18:21:04Zbill-auger
<ul></ul><p>rhere is also the 'snarf' client</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161272021-04-18T02:52:02Zbotplus
<ul><li><strong>File</strong> <a href="/attachments/1128">Makefile</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1128/Makefile">Makefile</a> added</li><li><strong>File</strong> <a href="/attachments/1127">PKGBUILD</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1127/PKGBUILD">PKGBUILD</a> added</li></ul><p>i've been able to build and install a gophernicus package with the attached PKGBUILD. one little thing though, Makefile line 175 uses DESTDIR in a way that i don't quite understand, after installation, i just delete the DESTDIR part in the path to the executable, in the installed service file /usr/lib/systemd/system/gophernicus@.service. i've tested systemd only, server seems running just fine.</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161842021-04-27T15:40:49Zbill-auger
<ul><li><strong>Priority</strong> changed from <i>bug</i> to <i>wish</i></li><li><strong>Subject</strong> changed from <i>gophernicus</i> to <i>add 'gophernicus' to PCR</i></li></ul><p>it would be good to have a gopher server in the repos - i dont believe that there is one now - i found two gopher servers in the AUR: 'motsognir' and 'sgopherd-git' - have you ever tried either of those?</p>
<ul>
<li>'gophernicus' is BSD-licensed, written in C</li>
<li>'motsognir' is GPL-licensed, written in C</li>
<li>'sgopherd' is MIT-licensed, written in BASH</li>
</ul>
<p>the are more important considerations also, such as the feature-set and good documentation, which i have not looked into</p>
<p>all three are relatively mature and actively maintained - are there any convincing reasons known already, why 'gophernicus' should be preferred? - or maybe we should consider the others</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161852021-04-27T21:14:45Zbill-auger
<ul><li><strong>Assignee</strong> set to <i>bill-auger</i></li><li><strong>Status</strong> changed from <i>open</i> to <i>in progress</i></li></ul><p>the licensing looks good; and after some patching, it compiles and runs as expected (tested with openrc+xinetd) - multiple service files can be configured; but i chose the 'xinetd' mechanism, because parabola already has openrc support for xinetd</p>
<p>changes to the proposed PKGBUILD:</p>
<ul>
<li>`--sbindir=/usr/bin` must be passed to ./configure, in order for the package to be installable on an arch system</li>
</ul>
<ul>
<li>changed the server root to: /srv/gopher</li>
</ul>
<p>patches added:</p>
<ul>
<li>remove-DESTDIR-from-initscripts.patch - the reference to the DESTDIR path, in the systemd init script, is a bug - the same bug is repeated in the other init scripts</li>
</ul>
<ul>
<li>fix-make-log-typo.patch - typo in the 'install-msg-xinetd' rule log - this patch does not affect the binary package, but it should be in the source-ball</li>
</ul>
<ul>
<li>xinetd-respect-custom-server-root.patch - with the combination of the `--listener=xinetd` and `--gopherroot=/srv/gopher` options, the server was broken; because '/var/gopher' is hard-coded into the xinetd service file, regardless of the config option to customize it - rather than a crude `sed` change in the PKGBUILD, i made a patch for the proper solution</li>
</ul>
<ul>
<li>preserve-existing-gophermap.patch - while fixing the previous critical bug. i stumbled upon another - this one would not affect the binary package either - the configure script checks for an existing server root directory, then triggers the 'install-root' Makefile rule to fire, which clobbers the existing 'gophermap' (the opposite of the stated intention "Don't replace an existing root")</li>
</ul>
<pre>
# Don't replace an existing root
printf "checking for existing gopher root... "
if [ -d "${GOPHERROOT}" ] || [ -f "${GOPHERROOT}/gophermap" ]; then
INSTALL_ROOT="install-root"
printf "yes"
else
printf "no"
fi
....
sed -i -e "s:@INSTALL_ROOT@:${INSTALL_ROOT}:" Makefile
</pre>
<p>which injects into the Makefile:<br /><pre>
install: src/$(BINARY) @CLEAN_SHM@ install-man @INSTALL_ROOT@ @INSTALL_OSX@ \
@INSTALL_HAIKU@ @INSTALL_SYSTEMD@ @INSTALL_XINETD@ \
@INSTALL_INETD_MANUAL@ @INSTALL_INETD_UPDATE@
....
install-root:
(INSTALL) -d -m 755 $(DESTDIR)$(ROOT)
$(INSTALL) -m 644 $(MAP).sample $(DESTDIR)$(ROOT)/gophermap
</pre></p>
<p>presumably, `INSTALL_ROOT="install-root"` should be in the `else` clause - oddly, the 'install-root' will always fire regardless, when the service files are installed, eg: 'install-xinetd' , 'install-systemd', per the analogous injection of '<code>INSTALL_SYSTEMD</code>' or '<code>INSTALL_XINETD</code>' in the same 'install:' rule above - therefore, this patch does not actually solve the problem it aims for - it could perhaps be enhanced by the upstream though, to actually avoid clobbering the existing gophermap</p>
<pre>
in ./configure:
systemd)
INSTALL_SYSTEMD="install-systemd"
xinetd)
INSTALL_XINETD="install-xinetd"
....
sed -i -e "s:@INSTALL_XINETD@:${INSTALL_XINETD}:" Makefile
sed -i -e "s:@INSTALL_SYSTEMD@:${INSTALL_SYSTEMD}:" Makefile
in Makefile:
install-xinetd: install-root
install-systemd: install-root
</pre> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161862021-04-27T21:17:46Zbill-auger
<ul></ul><p><a class="user active" href="https://labs.parabola.nu/users/9601">botplus</a> -</p>
<p>i noticed that you added yourself as the 'Maintainer:' - if this is your plan, do study the changes i made and ask for any clarifications - the next step would be to offer the patches to the upstream, and remove them from the PKGBUILD recipe at some later time, if they are accepted</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=161872021-04-27T21:43:39Zbill-auger
<ul></ul><p>there is a 'gophernicus' package in pcr-testing, if people want to test it</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=162112021-04-29T01:14:38Zbotplus
<ul></ul><p>i've only used gophernicus, on openbsd, a relatively short period of time, around one month. i've not used sgopherd and motsognir. and now that i looked them up, i wouldn't say i have<br />a preference to gophernicus over the other two. overall, they all seem to provide same functionality, and in a similar way. besides the gopher protocol is so simple that the<br />implementations simply don't differ much from each other. they all seem to provide enough documentation.</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=162122021-04-29T01:19:58Zbotplus
<ul></ul><p>bill-auger wrote:</p>
<blockquote>
<ul>
<li>`--sbindir=/usr/bin` must be passed to ./configure, in order for the package to be installable on an arch system</li>
</ul>
</blockquote>
<p>yes, i was aware of that actually, i probably passed it as argument when running configure, but forgot to add it to PKGBUILD.</p>
<p>and the rest of the patches make sense to me.</p> Packages - Packaging Request #3012: add 'gophernicus' to PCRhttps://labs.parabola.nu/issues/3012?journal_id=162132021-04-29T01:58:02Zbill-auger
<ul><li><strong>Status</strong> changed from <i>in progress</i> to <i>fixed</i></li></ul>