Suddenly STAGE appeared

Michael Gmelin freebsd at grem.de
Fri Oct 4 16:33:15 UTC 2013


On Fri, 04 Oct 2013 11:03:29 -0500
Paul Schmehl <pschmehl_lists at tx.rr.com> wrote:

> --On October 4, 2013 4:35:57 PM +0200 Michael Gmelin
> <freebsd at grem.de> wrote:
> 
> > On Fri, 04 Oct 2013 09:22:25 -0500
> > Paul Schmehl <pschmehl_lists at 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.
> 
> # 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.
> 
> 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.
> 
> 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.
> 

I have to agree. I love the new features in the ports system, after
extreme stability (almost stagnation) for almost a decade and most of
these things make a lot of sense to me. Especially staging is a must
have feature and I'm happy we finally got that.

That said, it would be good if documentation could keep up to give
port maintainers a chance to convert their ports in a time efficient
and non-frustrating manner.

Not contributing any of this myself, I would suggest:

 1. For every change, have a conversion howto in the FreeBSD wiki
 2. Only roll out changes if they're covered in the English version of
    the Porter's Handbook

Cheers,
Michael

-- 
Michael Gmelin


More information about the freebsd-ports mailing list