Thank you for taking the time to check out my port.
3. Configuration files are placed in the files directory because, by >> default, the program generates them and the data directories in the same location as the executable. To integrate the software into the system and prevent this behavior, I created these configuration files, which are simply the program's default configuration with modified paths for the configuration files and data storage.are these not files which the program is meant to update itself after learning about trackers etc from the network?
Yes, I think it is better to let the program generate the configuration files in the home directory of the user running the daemon.
: BUILD_DEPENDS = devel/git that only seems used in the Makefile in the distro, whuch you aren't using. (also even in that case it's only used if .git exists, which it doesn't). : USE_GMAKE = Yes unused in your port, you are using go.port.mk pieces to do the build and ignoring upstream's Makefile : SEPARATE_BUILD= Yes already set by go.port.mk
Removed
: do-install:
: ${INSTALL_PROGRAM} ${MODGO_WORKSPACE}/bin/XD ${PREFIX}/bin
: ${INSTALL_DATA_DIR} ${SYSCONFDIR}/xd
if that actually works for you, you're buulding ports as root.
do not do that.
I didn't know it was so important to build ports with doas or sudo as a normal user. As I said before, the documentation is not clear on this.
$ make fake
===> Faking installation for xd-torrent-0.4.6
/pobj/xd-torrent-0.4.6/bin/install -c -m 755 /pobj/xd-torrent-0.4.6/go/bin/XD
/pobj/xd-torrent-0.4.6/fake-amd64/usr/local/bin
/pobj/xd-torrent-0.4.6/bin/install -d -m 755 /etc/xd
install: /etc/xd: Permission denied
*** Error 1 in . (Makefile:23 'do-install')
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:3141
'/pobj/xd-torrent-0.4.6/fake-amd64/.fake_done': @cd /usr/ports/mystuff/net/x...)
*** Error 2 in /usr/ports/mystuff/net/xd-torrent
(/usr/ports/infrastructure/mk/bsd.port.mk:2704 'fake': @lock=xd-torrent-0.4.6;
export _LOC...)
: ${INSTALL_DATA} ${FILESDIR}/*.ini ${SYSCONFDIR}/xd/
same - plus if you are building as root, that would install files into
/etc on the build machine, a port should not write outside of either
WRKDIR or /tmp at all during build.
What would be the right way to do it?
that should be installed into a dir like ${PREFIX}/share/examples/xd-torrent
for @sample to copy from
: ${INSTALL_DATA_DIR} ${LOCALSTATEDIR}/xd
: ${INSTALL_DATA_DIR} ${LOCALSTATEDIR}/xd/metadata
: ${INSTALL_DATA_DIR} ${LOCALSTATEDIR}/xd/downloads
: ${INSTALL_DATA_DIR} ${LOCALSTATEDIR}/xd/seeding
same, this is writing to /var on the build machine during build.
you don't need these at all, just create the dirs at package install
time via @sample.
So all new directories have to be created using the PLIST file? I have seen ports that do this directly from the Makefile, in which cases should the Makefile be used and in which cases PLIST?
: post-install:
: ln -s XD ${PREFIX}/bin/XD-CLI
: chmod 755 -s XD ${PREFIX}/bin/XD-CLI
that chmod is a no-op, drop it.
Removed
: @newgroup _xd:900
: @newuser _xd:900:900::xd-torrent account:${LOCALSTATEDIR}/xd:/sbin/nologin
: @rcscript ${RCDIR}/xd
: @bin bin/XD
: bin/XD-CLI
: @sample ${SYSCONFDIR}/xd/
: @sample ${SYSCONFDIR}/xd/torrents.ini
: @sample ${SYSCONFDIR}/xd/trackers.ini
read about @sample in pkg_create(8) to see what's wrong here.
I've read several times the section that talks about how the @sample option works in the packing-list (PLIST) and I can't see what's wrong here. Could you tell me? On the other hand, there is no man page called "pkg_create" in section 8, only in section 1.
: @owner _xd
: @group _xd
: @sample ${LOCALSTATEDIR}/xd/
: @sample ${LOCALSTATEDIR}/xd/metadata/
: @sample ${LOCALSTATEDIR}/xd/downloads/
: @sample ${LOCALSTATEDIR}/xd/seeding/
I have attached to this email a new version of this port with the corrections made above. I have tested it on OpenBSD 7.6-beta and it works without problems.
xd-torrent.tar.gz
Description: application/gzip
