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

2018-06-23 Thread Joseph Ward
This was the problem, thank you! 

I added the following lines and it worked.

do-install:
    @cd ${WRKSRC}/ && ${COPYTREE_SHARE} . ${STAGEDIR}/


On 06/23/2018 17:45, Matthew Seaman wrote:
> 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=^i...@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 $
>>
>>
>> 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
>
>
>
>

___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


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

2018-06-23 Thread Matthew Seaman
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=^i...@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 $
> 
> 
> 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






signature.asc
Description: OpenPGP digital signature


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

2018-06-23 Thread Chris H

On Sat, 23 Jun 2018 14:36:05 -0400 "Joseph Ward"  
said


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.


Greetings Joseph,
I'm not sure if I follow you exactly. But if I understand you correctly;
you're looking to create a pkg-plist file via make makeplist, and your
port doesn't actually build anything (contains installation files?).
You need a minimum of
Makefile
distindo
pkg-descr
in your port directory.
for a minimum Makefile for what I understand your port to do. The
following should work:
# $FreeBSD$

PORTNAME=
PORTVERSION=
CATEGORIES=
MASTER_SITES=

MAINTAINER=
COMMENT=

LICENSE=
LICENSE_FILE=   (if necessary)

USES=   tar:txz
NO_BUILD=   yes

.include 

note the key here is NO_BUILD
you mention your distfile uses tar(1) and xz(1). The above example
assumes the extension name is .txz ; adjust as needed. You will
(of couse) need to fill all the empty fields as needed, as well as
add || subtract them, as needed.

Hope this helps.

--Chris


___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


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

2018-06-23 Thread Joseph Ward
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=^i...@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 $
>>
>> 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
___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


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

2018-06-23 Thread Waitman Gobble



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=^i...@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 $

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

___
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"