explanation...
This makefile tries to be smart in determining the minimal list
of ports comprising the docproj meta-port, necessary to build
the FreeBSD documentation and release notes.
To get it absolutely right, it would have to generate the list
at run time, parsing the output of "make all-depends-list" for
ports/textproc/docproj, supplying the same options like in
src/release/Makefile, and trying for different platforms and
FreeBSD versions!
Besides from the complexity involved, this is just not possible
to do from here, because the ports tree may be not up-to-date or
not be available at all -- it's not required to have a checked
out ports tree to start "make release". So makefile copies
some logic from the ports system to try to come up with the
right list...
Unfortunately, it's nearly impossible nor practical to come up
with a proper and complete list from here this way. Such a
list would have to support all possible __FreeBSD_version's,
Perl versions, and so on, and their combinations -- everything
that the ports system would do.
The fix is to stop pretending be smart, and only provide
lists enough to build a docproj port on recent of 4.x, 5.x,
and 6.x systems, where this is practical.
What can break with this change is "make release -DNOPORTS" of
HEAD or RELENG_5, *without* -DNODOC, on older FreeBSD systems
like 5.1-RELEASE. The change in the docproj dependency list
between 5.1 and 5.3 is as follows:
# diff docports.501000 docports.503000
< /usr/ports/devel/p5-File-Temp
< /usr/ports/devel/p5-Test-Harness
< /usr/ports/devel/p5-Test-Simple
< /usr/ports/lang/perl5
> /usr/ports/lang/perl5.8
Since doing "make release" on these old systems is not officially
supported anyway (only one tiny tweak is necessary to make it
work), the practical damage of this change is zero.
Original problem spotted by Scott Long doing "make release
-DNOPORTS RELEASETAG=RELENG_5". That particular problem
was already fixed by the previous change to this file, while
this change is the result of some additional analyzis of the
problem.
Fix was tested by doing a "make release -DNOPORTS" of HEAD on
the 4.10-STABLE machine (with one small tweak I mentioned, to
make it possible).
version, and "make release -DNOPORTS" breaks without it.
Noticed by: scottl
Keep lang/perl5 in the list because it's the default Perl version
for 4.x, and it's still possible to "make release" of HEAD on 4.x.
allows "make release" to find all of the documentation related ports
it needs if you build a release with NOPORTS. This should be moved to
within the port Makefile so we don't have to keep it updated in two
different places.
PR: docs/51305
think this list of the bare minimal ports required should maybe be
moved to textproc/docproj/Makefile, so that when we add a new
dependency there, we can just add it to a required or optional list,
rather than add it there and forget about it here. ;)
Noticed by: jhay
Forgotten by: nik
the need to also create the entire ports tree during a `make release'.
The main motivation behind this is that handling the ports tree still
takes a huge amount of time due to the large number of directories
involved, even on modern disks.
The solution is to establish a list of dependent ports that are
minimally required. This list needs to be manually maintained in case
the doc ports toolchain changes, and has thus been broken out into a
separate file Makefile.inc.docports. (release/Makefile has gotten
overly lengthy already anyway.)
Discussed with: bmah, nik
Reviewed by: bmah