====== Longterm Targets of Ports Collection ======
Also known as sneaking changes.
===== Better use of RC_SUBR infrastructure =====
Number of ports with USE_RC_SUBR: **988**
Number of ports that install rc script manually (bad use of RC_SUBR and non-RCng scripts): **103**
Number of ports that install any rc script: **1046**
find /usr/ports/ -name Makefile -exec grep ^USE_RC_SUBR '{}' '+' | wc -l
find /usr/ports/ -name pkg-plist\* -exec grep -l etc/rc.d/ '{}' '+' | wc -l
(find /usr/ports/ -name pkg-plist\* -exec grep -l etc/rc.d/ '{}' '+' | cut -d / -f 5; find /usr/ports/ -name Makefile -exec grep ^USE_RC_SUBR '{}' '+' | awk -F '/' '{print $5}') | sort -u | wc -l
===== unexec rmdir / @dirrmtry =====
Number of @unexec rmdir lines in plists: **8**
Number of @dirrmtry in plists: **0**
find /usr/ports/ -name pkg-plist\* -exec grep 'unexec.rmdir %D' '{}' '+' | wc -l
find /usr/ports/ -name pkg-plist\* -exec grep dirrmtry '{}' '+' | wc -l
===== CPAN ports that use ../../authors as SUBDIR =====
Number of ports that use MASTER_SITE_SUBDIR=../../authors: **0**
Total number of CPAN ports: **6234**
find /usr/ports/ -name Makefile -exec grep '^MASTER_SITE_SUBDIR.*\.\./.*authors' '{}' '+' | wc -l
find /usr/ports/ -name Makefile -exec grep '^MASTER_SITE.*CPAN' '{}' '+' | wc -l
===== Ports which don't use USES=dos2unix =====
See [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=87234]]
Number of ports that have ^M's in the Makefile
find /usr/ports/ -name Makefile\* -exec grep `printf '\15'` -l '{}' '+' | wc -l
**1** ports left
Number of patch-files that have ^M's in them
find /usr/ports/ -name '*patch-*' -exec grep `printf '\15'` -l '{}' '+' | wc -l
**109** ports left
nox-- added EXTRACT_BEFORE_ARGS+= -aq because of the ^Ms in projectx
===== QT/QMAKE settings =====
Number of ports which set QMAKESPEC
find /usr/ports/ -name Makefile\* -exec grep -l QMAKESPEC '{}' '+' | wc -l
**7** ports left
Number of ports which set QTDIR
find /usr/ports/ -name Makefile\* -exec grep -l QTDIR '{}' '+' | wc -l
**56** ports left
===== Remove unnecessary dependencies (Perl core modules) from {BUILD|RUN|TEST}_DEPENDS =====
I (sunpoet@) am working on this issue.
You can use **corelist (devel/p5-Module-%%CoreList%%)** to check if the specific dependency/module has been added to Perl core modules. If so, you may either
* Remove it from {BUILD|RUN|TEST}_DEPENDS if it is already in all supported Perl releases (they are 5.8.9, 5.10.1, 5.12.* and 5.14.* currently)
* Add corresponding PERL_LEVEL check (see Example 1 & 2) if it exists only in some supported Perl releases
Note that please align PERL_LEVEL checks to stable Perl releases (lang/perl5.*). If one modules has been added to Perl since 5.9.3, please use **.if ${PERL_LEVEL} < 501000** instead of **.if ${PERL_LEVEL} < 500903**. By doing so, it has higher possibility to merge multiple PERL_LEVEL checks to one check.
Example 1:
BUILD_DEPENDS= p5-parent>=0:${PORTSDIR}/devel/p5-parent
According to corelist (**parent was first released with perl v5.10.1**), the above line should be changed to
.include
.if ${PERL_LEVEL} < 501001
BUILD_DEPENDS+= p5-parent>=0:${PORTSDIR}/devel/p5-parent
.endif
.include
Example 2:
The port requires Compress::Zlib 2.030 or above.
BUILD_DEPENDS= p5-IO-Compress>=2.030:${PORTSDIR}/archivers/p5-IO-Compress
RUN_DEPENDS:= ${BUILD_DEPENDS}
Accoring to corelist, Perl bundled Compress::Zlib 2.030 since 5.13.4. The above lines should be changed to
.include
.if ${PERL_LEVEL} < 501400
BUILD_DEPENDS+= p5-IO-Compress>=2.030:${PORTSDIR}/archivers/p5-IO-Compress
RUN_DEPENDS+= p5-IO-Compress>=2.030:${PORTSDIR}/archivers/p5-IO-Compress
.endif
.include
===== References to NOPORTDOCS/NOPORTEXAMPLES =====
find /usr/ports/ -name Makefile\* -mindepth 3 -maxdepth 3 -exec egrep "NOPORTDOCS|NOPORTEXAMPLES" '{}' '+' | wc -l
**13** ports left
DOCS and EXAMPLES: convert to %%OptionsNG%%
===== Fix USE_PERL5 and USE_PERL5_BUILD pulling perl as EXTRACT_DEPENDS and PATCH_DEPENDS =====
This should be fixed as it reduced over dependencies which also speed up operation on package building cluster (around 5% performance boost has been noticed in that case)
These should be fixed as other important issues are fixed
===== Poorly written COMMENTs =====
* Remove Leading Articles From COMMENTs
cut -d'|' -f 2,4 /usr/ports/INDEX-10 | egrep "\|(A|An|The) " | wc -l
**528** ports left
* Comments with words "very" or "extremely" in them
cut -d'|' -f 2,4 /usr/ports/INDEX-10 | egrep -i "\|.* very|extremely " | wc -l
**23** ports left
===== X11 ports lacking .desktop files =====
awk -F\| '$9~/libX11/{print $2}' /usr/ports/INDEX-10 | while read port; do grep -q DESKTOP_ENTRIES $port/Makefile || grep -q share/applications $port/Makefile || grep -q share/applications $port/pkg-plist 2>/dev/null || echo $port; done | wc -l
**5381** ports left
===== Reproducible Builds =====
See [[ReproducibleBuilds/Ports]]
===== Undefined LICENSE =====
find /usr/ports -name Makefile -depth 3 -exec grep -L '^LICENSE=' {} + | wc -l
**10230** ports left
This one-liner is not ideal as it does not take into account that the license could be included in an extra ''%%Makefile%%'' (as for example it is done in mail/claws-mail: there are two makefiles: ''%%Makefile%%'' and ''%%Makefile.claws%%''; the license is specified in ''%%Makefile.claws%%'').
===== Other tasks =====
List of things need to cleanup the infrastructure.
| nuke EXTRACT_PRESERVE_OWNERSHIP | it is not needed anymore |
| move MTREE_CMD TOUCH PATCH TAR etc definition to bsd.commands.mk) | more cleanups |
| move WWW to Makefile | done |
| move all the DESKTOP_* into a USES=desktop | while here extract the shell part into a proper script |
| refactor the following targets: checksum/do-config/compress-man/create-manifest/fetch/patch info using external readable scripts | that will improve the check Q/A check we can do as well as makeing code more maintainable |
| continue moving most of bsd.*.mk into USES= | this will improve flexibility |
----
[[/CategoryPorts]] [[/CategoryTodo]]