Description of problem: The dt has an unneeded dependency of tcsh because of example scripts. Version-Release number of selected component (if applicable): dt-18.32-1.fc22.x86_64 How reproducible: Reproducible every time. Steps to Reproduce: 1. Run rpm -q --requires dt 2. Run find /usr/share/dt | /usr/lib/rpm/find-requires Actual results: For 1. /bin/csh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) librt.so.1()(64bit) librt.so.1(GLIBC_2.2.5)(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rtld(GNU_HASH) For 2. /bin/csh Expected results: No /bin/csh line in either step. Additional info: Poking around it looks like files like /usr/share/dt/dt[atfrwcs] are what are triggering the automatic dependency. Could the output of the automatic dep find be adjusted to filter out /bin/csh ?
Let's see if I can find a way how to bend the .spec file to not to add such dependency.
I been thinking about this too. I'm taking a look at https://fedoraproject.org/wiki/PackagingDrafts/FilteringAutomaticDependencies and will post somehting if you don't get there first :-)
How about this: --- SPECS/dt.spec.old 2014-09-24 16:21:31.000000000 +0000 +++ SPECS/dt.spec 2015-08-03 18:08:44.150253653 +0000 @@ -34,6 +34,7 @@ Available documentation is located in %{_defaultdocdir}/%{name}. Sample scripts and config data are installed in %{_datadir}/%{name}. +%global __requires_exclude_from ^%{_datadir}/%{name}/.*$ %prep %setup -q -n dt.v%{version} %patch0 -p1 (From http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator )
dt-18.32-3.fc22 has been submitted as an update for Fedora 22. https://admin.fedoraproject.org/updates/dt-18.32-3.fc22
Hi Sitsofe, I applied your patch. Thanks!
Hi Ondrej! After you applied this patch I started revisiting this issue. First up I got the recommended location of __requires_exclude_from wrong. Apparently it should go "before %description, but after any other definitions" (https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Location_of_macro_invocation ). Next I took a look at how git coped with this. Over in Bug #492490#c2 they talk about how they ship a lot of contributor scripts but strip off their execute permission so RPM doesn't search those files for dependencies. If only someone had mentioned that this might be another plan on the packaging wiki pages... Finally I've now come to realise there's a lot more in the Scripts directory than the dt? scripts shipped (butterfly.ksh and DiskTests.ksh look useful) - does it make sense to ship more? If so should they be moved to /usr/share/doc/dt ? Doing a quick locate /usr/share/\*.*sh | sort shows some packages (git, socat, bash) shove example scripts in /usr/share/doc whereas other (git-core, vlc) put them in /usr/share/<package>/ .
dt-18.32-3.fc22 has been pushed to the Fedora 22 testing repository. If problems still persist, please make note of it in this bug report.\nIf you want to test the update, you can install it with \n su -c 'yum --enablerepo=updates-testing update dt'. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/dt-18.32-3.fc22
Could this be pushed to the main repository - I posted anonymous on bodhi...
Hi Sitsofe, so I somehow messed with my notifications setting and didn't receive the message about it being eligible for stable. I'll look into it:( Also I'll revisit the patch for other Fedoras 23+ but will push it in f22 in current version.
dt-18.32-3.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.
Thanks Ondrej!