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.

Attachment: xd-torrent.tar.gz
Description: application/gzip

Reply via email to