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

Joseph Ward jbwlists at hilltopgroup.com
Sat Jun 23 20:16:33 UTC 2018


On 06/23/2018 15:08, Waitman Gobble wrote:
>
> On 2018-06-23 11:36, Joseph Ward wrote:
>
>> Hi all,
>>
>> I'm attempting to make my first port which is attempting to literally
>> unpack a tgz into the correct location.  I'm wanting a port, as I want
>> this to be versioned and upgradable on all my systems via pkg (as well
>> as to handle dependencies, etc).
>>
>> 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,
>>
>> Joseph
>
>
>
>
> I haven't tried such a port, but maybe you can make a dummy Makefile.
> (?) an idea.
>
> You would make your port, switch over to the work directory within the
> port, and create an empty Makefile.orig
>
> then create a Makefile that is basically like
>
> all: donothing
>
> donothing:
>     @echo 'I am here now basically doing nothing'
>
> then create the patchfile, i think it's make makepatch. back in the
> top level of your port path. This will cause it to create the bogus
> Makefile out of nothing.
>
>
>
>
> Also, there are probably a few ports in the tree that only install
> files, does not run make, if you can track those down it would show a
> working example.
>
>
>
> ---
> Waitman Gobble
>


Thank you for getting back to me!  I'm not quite following though; I
need another Makefile within the work directory?  I didn't see anything
like that in the porter's handbook; did I miss or misunderstand a section? 

I actually do have just such a port that I've been using as an example,
net/self-service-password.  It doesn't build anything (though unlike
mine it does have several dependencies which do build), and when I type
"make stage" for it, once the dependencies are present, there is no
Makefile, or any other file in the work directory that even has make in
the filename (find .|grep -i make). 

Thanks,

Joseph


More information about the freebsd-ports mailing list