From owner-freebsd-ports@freebsd.org Mon Mar 6 16:05:08 2017 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A641CFBA45 for ; Mon, 6 Mar 2017 16:05:08 +0000 (UTC) (envelope-from freebsd@grem.de) Received: from mail.grem.de (outcast.grem.de [213.239.217.27]) by mx1.freebsd.org (Postfix) with SMTP id AE7121F06 for ; Mon, 6 Mar 2017 16:05:06 +0000 (UTC) (envelope-from freebsd@grem.de) Received: (qmail 26618 invoked by uid 89); 6 Mar 2017 16:05:06 -0000 Received: from unknown (HELO bsd64.grem.de) (mg@grem.de@194.97.158.70) by mail.grem.de with ESMTPA; 6 Mar 2017 16:05:06 -0000 Date: Mon, 6 Mar 2017 17:05:05 +0100 From: Michael Gmelin To: Andrea Venturoli Cc: freebsd-ports@freebsd.org Subject: Re: Writing a port that simply installs a bunch of files Message-ID: <20170306170505.7e043310@bsd64.grem.de> In-Reply-To: <20170306165104.51c4f071@bsd64.grem.de> References: <66d50818-f00e-9033-4c93-f159c38d04ba@netfence.it> <32660472-60AF-47C0-861C-023BAFC39C3D@grem.de> <5e3354dc-b597-7622-dbae-07d4119d1b7a@netfence.it> <20170306165104.51c4f071@bsd64.grem.de> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd10.2) X-Face: $wrgCtfdVw_H9WAY?S&9+/F"!41z'L$uo*WzT8miX?kZ~W~Lr5W7v?j0Sde\mwB&/ypo^}> +a'4xMc^^KroE~+v^&^#[B">soBo1y6(TW6#UZiC]o>C6`ej+i Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWJBwe5BQDl LASZU0/LTEWEfHbyj0Txi32+sKrp1Mv944X8/fm1rS+cAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAAB3RJTUUH3wESCxwC7OBhbgAAACFpVFh0Q29tbWVudAAAAAAAQ3Jl YXRlZCB3aXRoIFRoZSBHSU1QbbCXAAAAAghJREFUOMu11DFvEzEUAGCfEhBVFzuq AKkLd0O6VrIQsLXVSZXoWE5N1K3DobBBA9fQpRWc8OkWouaIjedWKiyREOKs+3PY fvalCNjgLVHeF7/3bMtBzV8C/VsQ8tecEgCcDgrzjekwKZ7TwsJZd/ywEKwwP+ZM 8P3drTsAwWn2mpWuDDuYiK1bFs6De0KUUFw0tWxm+D4AIhuuvZqtyWYeO7jQ4Aea 7jUqI+ixhQoHex4WshEvSXdood7stlv4oSuFOC4tqGcr0NjEqXgV4mMJO38nld4+ xKNxRDon7khyKVqY7YR4d+Cg0OMrkWXZOM7YDkEfKiilCn1qYv4mighZiynuHHOA Wq9QJq+BIES7lMFUtcikMnkDGHUoncA+uHgrP0ctIEqfwLHzeSo+eUA66AqzwN6n 2ZHJhw6Qh/PoyC/QENyEyC/AyNjq74Bs+3UH0xYwzDUC4B97HgLocg1QLYgDDO1v f3UX9Y307Ew4AHh67YAFFsxEpkXwpXY3eIgMhAAE3R19L919nNnuD2wlPcDE3UeT L2ytEICQib9BXgS2fU8PrD82ToYO1OEmMSnYTjSqSv9wdC0tPYC+rQRQD9ESnldF CyqfmiYW+tlALt8gH2xrMdC/youbjzPXEun+/ReXsMCDyve3dZc09fn2Oas8oXGc Jj6/fOeK5UmSMPmf/jL+GD8BEj0k/Fn6IO4AAAAASUVORK5CYII= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Mar 2017 16:05:08 -0000 On Mon, 6 Mar 2017 16:51:04 +0100 Michael Gmelin wrote: > On Mon, 6 Mar 2017 16:02:05 +0100 > Andrea Venturoli wrote: > > > On 03/06/17 12:50, Michael Gmelin wrote: > > > > > Yes, that's possible, see sysutils/bhyve-rc[0] for an example how > > > to do it. > > > > Thanks for your answer: an example is really welcome. > > > > However, I might be dumb, but that does not fully cover what I was > > looking for. > > > > I see sysutils/bhyve-rc uses USE_RC_SUBR in order to install its > > only file, but that's specific to rc.d scripts. > > Suppose I want a mean to install generic files, should I use > > SUB_FILES? > > > > The first problem I encounter, then, is with subdirectories. > > Suppose I want to install /usr/local/a/b/c.txt, I would use > > "SUB_FILES=a/b/c.txt" and provide files/a/b/c.txt.in. > > However, I'll get: > > > cannot create /usr/ports/misc/xxx/work/a/b/c.txt: No such file or > > > directory > > > > I've also tried "SUB_FILES=${WRKSRC}/a/b/c.txt", but then make will > > say: > > > ** > > > Missing /usr/ports/misc/xxx/files//usr/ports/misc/xxx/work/xxx-y/a/b/c.txt.in > > > for xxx-y. > > > > > > Am I missing something obvious? > > > > What about something like this (your files are in files/input.tgz)? > > # $FreeBSD: # > > PORTNAME= testport > PORTVERSION= 1.0 > CATEGORIES= sysutils > MASTER_SITES= # none > DISTFILES= # none > EXTRACT_ONLY= # none > > MAINTAINER= you@example.org > COMMENT= Blablabla > > NO_WRKSUBDIR= yes > NO_BUILD= yes > NO_INSTALL= yes > > post-install: > @${TAR} -xf ${FILESDIR}/input.tgz -C ${STAGEDIR} > @${FIND} ${STAGEDIR} -type f | ${SED} "s|${STAGEDIR}||" >> > ${TMPPLIST} > > .include > > > > Slightly cleaner version below, obviously you could use different tools to get the files into ${STAGEDIR}. # $FreeBSD: # PORTNAME= testport PORTVERSION= 1.0 CATEGORIES= sysutils MASTER_SITES= # none DISTFILES= # none EXTRACT_ONLY= # none MAINTAINER= you@example.org COMMENT= Blablabla NO_WRKSUBDIR= yes NO_BUILD= yes NO_INSTALL= yes post-install: @${TAR} -xf ${FILESDIR}/input.tgz -C ${STAGEDIR} @${FIND} ${STAGEDIR} -type f | \ ${SED} "s|^${STAGEDIR}||" >> ${TMPPLIST} .include -- Michael Gmelin