Description: Apply perl filter to legacy tools subpackage to prevent 389 from "Providing" its perl modules.
https://pagure.io/389-ds-base/issue/49888
Reviewed by: ?
With this change I still see perl provides:
[root@server ds]# rpm -q --provides dist/rpms/389-ds-base-legacy-tools-1.4.0.13-20180806git5d7702b4b.fc28.x86_64.rpm 389-ds-base-legacy-tools = 1.4.0.13-20180806git5d7702b4b.fc28 389-ds-base-legacy-tools(x86-64) = 1.4.0.13-20180806git5d7702b4b.fc28 perl(DSCreate) perl(DSDialogs) perl(DSMigration) perl(DSUpdate) perl(DSUpdateDialogs) perl(DSUtil) perl(Dialog) perl(DialogManager) perl(DialogYesNo) perl(FileConn) perl(Inf) perl(Migration) perl(Resource) perl(Setup) perl(SetupDialogs) perl(SetupLog)
According to [1], %perl_default_filter should be invoked before the first %description section. But even if I place it at the beginning before the first %description, perl provides are filtered only from 389-ds-base, but not from 389-ds-base-legacy-tools. For some reason it doesn't work with a subpackage (a bug in rpm filters?).
%perl_default_filter
%description
Anyway, I was able to filter out all perl provides (and jemalloc, which should be filtered out too) using these macros instead of %perl_default_filter:
%global __provides_exclude_from ^%{_libdir}/%{pkgname}/perl/.*$|^%{_libdir}/%{pkgname}/lib/libjemalloc\\.so.*$ %global __requires_exclude_from ^%{_libdir}/%{pkgname}/perl/.*$
[1] https://fedoraproject.org/wiki/Perl_default_filter
Weird I ran the EXACT same test you did and it worked correctly for me.
I doubled checked and I still see the correct behaviour with my patch:
$ rpm -q --provides ./389-ds-base-legacy-tools-1.4.0.13-20180806git5d7702b4b.fc28.x86_64.rpm 389-ds-base-legacy-tools = 1.4.0.13-20180806git5d7702b4b.fc28 389-ds-base-legacy-tools(x86-64) = 1.4.0.13-20180806git5d7702b4b.fc28
It's weird, indeed. I've tried copr build [1] with your PR and it doesn't list perl provides. I don't know why results in mock or local build are different. Since it works in copr/koji, you have my ack.
[1] https://copr-be.cloud.fedoraproject.org/results/vashirov/389ds/fedora-28-x86_64/00785368-389-ds-base/
rebased onto 0d1eded79727f1baf7adba77e2b746559758ed4d
Pull-Request has been merged by mreynolds
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This pull request has been cloned to Github as issue and is available here: - https://github.com/389ds/389-ds-base/issues/2948
If you want to continue to work on the PR, please navigate to the github issue, download the patch from the attachments and file a new pull request.
Thank you for understanding. We apologize for all inconvenience.
Pull-Request has been closed by spichugi
Description: Apply perl filter to legacy tools subpackage to prevent 389
from "Providing" its perl modules.
https://pagure.io/389-ds-base/issue/49888
Reviewed by: ?