> 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?

: 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

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

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

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.

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

: @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.

: @owner _xd
: @group _xd
: @sample ${LOCALSTATEDIR}/xd/
: @sample ${LOCALSTATEDIR}/xd/metadata/
: @sample ${LOCALSTATEDIR}/xd/downloads/
: @sample ${LOCALSTATEDIR}/xd/seeding/

Reply via email to