check-orphans updates and renamed check-plist
Bryan Drewery
bdrewery at FreeBSD.org
Sat Apr 19 06:54:07 UTC 2014
On 4/19/2014 1:51 AM, Bryan Drewery wrote:
> Please take note of all of this carefully. "check-orphans" should be far
> less false-positive prone now (false-positive in the sense of files that
> are already in plist or owned by a dependency). Please let me know of
> any that come up. I.e., PORTDOCS/PORTEXAMPLES issues are fixed. Lots more.
>
> Poudriere will be updated in the next week to utilize all of this
> instead of its own logic.
>
> I will also be working with Tinderbox/crees to get it hooked into all of
> this as well as r351446 which creates 1 central whitelist for leftovers.
And this also means I now fully support removing all the .if
${PORT_OPTIONS:M****} conditional installs. This update handles all
OPTIONS properly, as long as the files they are installing are in the
plist with their %%OPTION%%.
>
> On 4/19/2014 1:44 AM, Bryan Drewery wrote:
>> Author: bdrewery
>> Date: Sat Apr 19 06:44:56 2014
>> New Revision: 351587
>> URL: http://svnweb.freebsd.org/changeset/ports/351587
>> QAT: https://qat.redports.org/buildarchive/r351587/
>>
>> Log:
>> - Rename check-orphans to check-plist. Keep the old for backwards-compat.
>> - Bug fixes:
>> makeplist/check-plist:
>> - Fix showing directories owned by RUN_DEPENDS/LIB_DEPENDS [1]
>> - Use proper "rmdir PATH" syntax, not "rmdir >/dev/null... PATH" which
>> pkg will not recognize.
>> - Never consider base /etc/mtree/BSD.usr.dist or LOCLABASE
>> Templates/BSD.local.dist as needing @dirrm handling.
>> check-plist:
>> - Fix showing PORTDOCS/PORTEXAMPLES files when the OPTIONS are not set.
>> makeplist will still suggest them.
>> - Fix showing files installed through unselected OPTIONS as orphans,
>> by considering "@comment file" to be ignored. [2]
>> - Fix @sample, @fc, @fcfontsdir, @fontsdir support
>> - Fix return status when orphans are found to be non-zero
>> - Add note when PREFIX=!LOCALBASE
>> - Be more clear when orphans/no orphans are found.
>> - Add a whitelist mechanism for globally approved ignores.
>> - Add *.bak/*.orig to orphan whitelist for now.
>> - Fix false-positive with dirs installed to /, such as with
>> archivers/dpkg creating /var/db/dpkg
>> - Fix false-positive with @dirrm ending in /, such as with
>> ports-mgmt/poudriere with a @dirrmtry share/zsh/
>> - There are likely still some false-positives. I fixed as many as I could
>> find. Please let me know of others.
>> * One in particular that is not easily fixable is installing a file into
>> a directory owned by another port where that other port is not a run-time
>> dependency. So the leaf port may create all of the parent dirs and never
>> clean them up. Cleaning them up is not proper unless no other package is
>> depending on them. This will be addressed by pkg(8) once pkg_install is
>> EOL, or sooner.
>> - Consider @dirrm of directories owned by run-time dependencies, or
>> /etc/mtree/* or Templates/BSD.local.dist (at LOCALBASE) as fatal errors.
>> These should not be removed in the plist. @comment lines are not
>> considered for this; they will not ignore an error.
>> ===> Checking for directories owned by dependencies or MTREEs
>> Error: Owned by dependency: @dirrmtry share/locale/af/LC_MESSAGES
>> Error: Owned by dependency: @dirrmtry share/locale/af
>> Error: Owned by dependency: @dirrmtry %%PERL5_MAN3%%
>> - Detect files in plist that do not exist in the stagedir. Pkgng already did
>> this, but now we have it unified with this check. @comment lines are
>> not considered for this; they will not ignore an error.
>> ===> Checking for items in pkg-plist which are not in STAGEDIR
>> Error: Missing: foo
>> Error: Missing: @dirrmtry bar
>> - Change orphaned output due to several new errors introduced:
>> ===> Checking for items in STAGEDIR missing from pkg-plist
>> Error: Orphaned: foo
>> - Send errors to stderr
>> check_leftovers.sh:
>> - Prefer longer values for PLIST_SUB.
>> bsd.options.mk:
>> - Fix NOPORTDOCS/WITHOUT_NLS/NOPORTEXAMPLES not unsetting their respective
>> OPTIONS.
>> - Mark NOPORTDOCS/NOPORTEXAMPLES deprecated and hook them into the
>> OPTIONS_WARNING to tell users the new format.
>> - check-stagedir.sh refactoring:
>> - Switch to using new PLIST_SUB_SED
>> - Use ! instead of , in sed(1) regex to allow files/dirs with ','
>> - Rework PORTEXAMPLES/PORTDOCS handling so it acts on PLIST_SUB_SED'd
>> value and not absolutes. Also simplify the regex for these a bit to
>> allow reuse.
>> - No longer need DOCSDIRS/EXAMPLESDIR in env
>> - Wrap long lines
>> - Unset some vars in env when they are done being used to free space for
>> larger sed vars
>> - Cleanup redundant sed regexes
>> - Add a Scripts/plist_sub_sed_sort.sh to prefer longer values when substituting
>> over shorter values.
>>
>> - To make check-plist ignore a file *as an orphan* do one of the following:
>> 1. Install it
>> 2. post-install: ${RM} ${STAGEDIR}file
>> 3. Put the file behind an OPTION with a PLIST_SUB: %%OPTION%%file
>> 4. Add to plist as a @comment [2]:
>> @comment file
>> @comment @dirrmtry dir
>>
>> Reviewed by: mat (much earlier version)
>> Discussed with: mat, antoine, bapt, swills (various bits)
>> With hat: portmgr
>> PR: ports/185561 [1]
>> Reported By: Alexander Yerenkow <yerenkow at gmail.com> [1]
>> Tested with: pkg and pkg_install
>> Reported by: many (false-positives)
>>
>> [2] This is a partial solution, we may still need a plist.ignore too. It
>> doesn't make much sense to add files in main pkg-plist we don't care about,
>> but maybe it does since you'll see and reconsider them being ignored
>> someday. @comment is used as all the OPTION PLIST_SUB deactivations use
>> @comment instead of something like @ignore.
>>
>> Added:
>> head/Mk/Scripts/plist_sub_sed_sort.sh (contents, props changed)
>> Modified:
>> head/CHANGES
>> head/Mk/Scripts/check-stagedir.sh
>> head/Mk/Scripts/check_leftovers.sh
>> head/Mk/bsd.options.mk
>> head/Mk/bsd.stage.mk
>>
>> Modified: head/CHANGES
>> ==============================================================================
>> --- head/CHANGES Sat Apr 19 06:43:21 2014 (r351586)
>> +++ head/CHANGES Sat Apr 19 06:44:56 2014 (r351587)
>> @@ -10,6 +10,22 @@ in the release notes and/or placed into
>>
>> All ports committers are allowed to commit to this file.
>>
>> +20140419:
>> +AUTHOR: bdrewery at FreeBSD.org
>> +
>> + check-orphans has been renamed to check-plist. It now checks:
>> + A. Files in STAGEDIR that are missing from plist.
>> + To make check-plist ignore a file *as an orphan* do one of the
>> + following:
>> + 1. Install it
>> + 2. post-install: ${RM} ${STAGEDIR}file
>> + 3. Put the file behind an OPTION with a PLIST_SUB: %%OPTION%%file
>> + 4. Add to plist as a @comment
>> + @comment file
>> + @comment @dirrmtry dir
>> + B. Files in plist missing from STAGEDIR
>> + C. Files in plist which are owned by dependencies/MTREEs
>> +
>
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 553 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-ports-head/attachments/20140419/65559fd5/attachment.sig>
More information about the svn-ports-head
mailing list