#49889 Ticket 49888 - Use perl filter in rpm specfile
Closed by spichugi. Opened by mreynolds.
mreynolds/389-ds-base perlfilter  into  master

Download 49889.patch

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?).

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

Metadata