make[1]: cannot open Makefile for new custom port

Matthew Seaman matthew at FreeBSD.org
Sat Jun 23 21:45:13 UTC 2018


On 23/06/2018 19:36, Joseph Ward wrote:
> I'm attempting to use make makeplist to create the initial pkg-plist as
> there are a lot of files present, and I'm getting the following error:
> 
> # make makeplist
> ===>  License BSD4CLAUSE accepted by the user
> ===>   nebula-db-0.1 depends on file: /usr/local/sbin/pkg - found
> ===> Fetching all distfiles required by nebula-db-0.1 for building
> ===>  Extracting for nebula-db-0.1
> => SHA256 Checksum OK for nebula-db-0.1.tar.gz.
> ===>  Patching for nebula-db-0.1
> ===>  Configuring for nebula-db-0.1
> ===>  Staging for nebula-db-0.1
> ===>   Generating temporary packing list
> make[1]: cannot open Makefile.
> 
> make[1]: stopped in
> /usr/local/poudriere/ports/nebula/misc/nebula-db/work/nebula-db-0.1
> *** Error code 2
> 
> Stop.
> make: stopped in /usr/local/poudriere/ports/nebula/misc/nebula-db
> 
> 
> 
> I get this when I do "make stage" as well.
> 
> 
> I tried tracing what's going on in bsd.port.mk, but I have to admit that
> I got pretty lost.
> 
> 
> my Makefile is (using "set list" in vi in case non-printable characters
> matter):
> 
> # $FreeBSD$$
> $
> PORTNAME=^Inebula-db$
> DISTVERSION=^I0.1$
> CATEGORIES=^Imisc$
> MASTER_SITES=^Ifile:///root/jail_ports/files/$
> $
> MAINTAINER=^Ime at hilltopgroup.com$
> COMMENT=^IJail containing postgres for the nebula system$
> $
> LICENSE=^IBSD4CLAUSE$
> $
> NO_BUILD=^Iyes$
> ONLY_FOR_ARCHS=^Iamd64$
> ONLY_FOR_ARCHS_REASON=^Ipre-built jail on amd64$
> $
> NO_WRKSUBDIR=^Iyes$
> $
> .include <bsd.port.mk>$
> 
> 
> And at that.. I'm stuck.  If it would help, I can post the actual
> distfile on a server and provide the link, but it's a tar.gz file
> containing a /usr/local/jail/db directory which is just a populated jail.
> 
> Thanks in advance for any help you can provide,

You haven't specified an install target in your Makefile, so the ports
is going to try the default action of 'make install ...' in your
extracted $WRKSRC directory.  That won't work without a Makefile; hence
the error you're seeing.  Note that the 'install' target is used to copy
the files into /staging/ -- there are historical reasons why this target
is called 'install' rather than anything to do with the word staging.

There's a NO_INSTALL variable you could use, analogously to NO_BUILD, to
prevent the ports doing anything at all for that step.

However, NO_INSTALL is usually used for meta-ports that only exist for
their dependencies and that don't install any actual files, so it may
not be the right answer for you.

You will need to arrange for all your extracted files to end up in
$STAGEDIR somehow if you want 'makeplist' to work -- a typical way of
doing that is using one or more of the COPYTREE_* macros as part of the
install target. This is the way that many ports which don't do any
actual compilation work.  See www/phpsysinfo as a nice and simple example.

	Cheers,

	Matthew




-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20180623/02c006ff/attachment.sig>


More information about the freebsd-ports mailing list