Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Oct 2013 19:43:35 +0200
From:      olli hauer <ohauer@gmx.de>
To:        freebsd-ports@freebsd.org
Subject:   Re: Suddenly STAGE appeared
Message-ID:  <524EFE47.2070304@gmx.de>
In-Reply-To: <5F769FBBEC07BCDA69ECA2EC@localhost>
References:  <47D7F8B7DB949AB75F5FDE87@localhost> <20131004163557.1354d083@bsd64.grem.de> <5F769FBBEC07BCDA69ECA2EC@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-10-04 18:03, Paul Schmehl wrote:
> --On October 4, 2013 4:35:57 PM +0200 Michael Gmelin <freebsd@grem.de> wrote:
> 
>> On Fri, 04 Oct 2013 09:22:25 -0500
>> Paul Schmehl <pschmehl_lists@tx.rr.com> wrote:
>>
>>> Or did I miss the announcement?
>>>
>>> Is there a doc that explains STAGE and how to convert a port to the
>>> new system?  Why STAGE was created?  What it's purpose is?
>>>
>>> This is all very new to me, and I have 23 ports to worry about.
>>>
>>
>>
>> See
>> http://lists.freebsd.org/pipermail/freebsd-ports-announce/2013-October/00
>> 0067.html
>>
>> and the discussion here
>> http://lists.freebsd.org/pipermail/freebsd-ports/2013-October/086346.html
> 
> Now it make sense.  I have a port that is failing to build on 10.0 because of CLANG.  I don't have a 10.0 install, and it builds fine with GCC.  So I updated the port to use USE_GCC= yes, and I was asked to convert the port to use STAGE.  Left me scratching my head, because this was all before the announcement.
> 
> And I'm having problems building the port now - and wondering if I should just abandon my ports because the new system is confusing to me.  All this transitional stuff is a lot to grasp when you've been building ports successfully for a while and suddenly nothing works.
> 
> For example, make makeplist doesn't actually make a pkg-plist file on my system.

The command `make makeplist' creates no absolute pkg-plist, but can be used to get a quick summary for pkg-plist
redirect the output to a file and compare it with your pkg-plist


> # make makeplist
> bin/sancp
> etc/rc.d/sancp
> etc/sancp.conf.dist
> 
> But no pkg-plist file is created.
> 
> WTH???
> 
> DOCS no longer build properly, and I have no clue why?
> 
> # make install
> ===>  Building package for sancp-1.6.1_5
> Creating package /usr/ports/security/sancp-update/sancp/work/sancp-1.6.1_5.tbz
> Registering depends:.
> Creating bzip'd tar ball in '/usr/ports/security/sancp-update/sancp/work/sancp-1.6.1_5.tbz'
> tar: share/doc/sancp/CHANGES: Cannot stat: No such file or directory
> tar: share/doc/sancp/INSTALL: Cannot stat: No such file or directory
> tar: share/doc/sancp/ISSUES: Cannot stat: No such file or directory
> tar: share/doc/sancp/README: Cannot stat: No such file or directory
> tar: share/doc/sancp/SETUP: Cannot stat: No such file or directory
> tar: share/doc/sancp/fields.LIST: Cannot stat: No such file or directory
> tar: Error exit delayed from previous errors.
> pkg_create: make_dist: tar command failed with code 256
> *** [do-package] Error code 1
> 
> Stop in /usr/ports/security/sancp-update/sancp.
> 
> The Makefile has this:
> PORTDOCS=    CHANGES INSTALL ISSUES \
>         README SETUP fields.LIST
> 
> The docs are actually in ${WRKSRC}/doc, so I tried adding doc/ and ${WRKSRC}/doc, but neither worked.  I tried adding %%PORTDOCS%%/docname to pkg-plist, but that failed as well.  So now I'm at a complete loss to know how to get the DOCS to work.

Not requred, your DOCS are already listed in PORTDOCS and PORTDOCS is used in Makefile to install the DOCS.
Install the docs this way '${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/docs/|} ${STAGEDIR}${DOCSDIR}'

> If you're going to make changes to the ports system and expect us non-programmers to successfully grasp how all the changes get implemented, it would be very helpful to have a HOWTO page the explains the changes required in understandable detail.  The current page - <https://wiki.freebsd.org/ports/StageDir>; - is rather cryptic and open to interpretation.


> How do I list PORTDOCS so the build nows where to find them?  Previously we used .if !${NOPORTDOCS} and told INSTALL to descend into the doc directory to fetch the docs.  Then we changed to .if ${OPTIONS:MDOCS} and did the same.  Now I"m told I don't need that section at all, but obviously, without out, the build can't figure out where the docs are so it fails.

No longer required, for a simple check add NOPORTDOCS=yes to your makefile, fire a make package and look with 'tar tf $package'.

> All of this should be anticipated and documented BEFORE these changes are rolled out and we're required to implement them or you can expect lots of frustration and people dropping ports.
> 
> I get that you're trying to do things in a better, more robust way, but communication is key, and that communication has to be detailed and understandable so us dummies can implement it.
> 


If created and tested a patch for you.
http://people.freebsd.org/~ohauer/diffs/stage/stage_sancp.diff

give the pach a go and add your clang fixes

-- 
olli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?524EFE47.2070304>