Bug 213

Summary: extendable catalogue for buildreq of what should be ignored
Product: Sisyphus Reporter: imz <vanyaz>
Component: rpm-utilsAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact:
Severity: enhancement    
Priority: P5 CC: at, glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description imz 2001-12-08 22:05:47 MSK
Other packages should be able to extend the rules that define which files are essential for detecting dependencies.

For example, emacs-common package could install an additional rule saying that /etc/emacs/site-start.d/* must be ignored. Or python could install a single rule saying that /etc/emacs/site-start.d/python.el must be ignored.

This would make this tool more flexible, and the maintainer of buildreq would not require to add each and other unessential file to the list.

---

---
This applies to rpm-utils-0.2.3-alt1.
Comment 1 Dmitry V. Levin 2001-12-10 18:05:56 MSK
There is a file already used for this purposes:
/etc/buildreqs/files/ignore

Or maybe you mean user-defined file, for example, ~/.buildreqs/files/ignore?

In the last case, should it just override system ignore file?
Comment 2 Dmitry V. Levin 2001-12-10 18:05:56 MSK
There is a file already used for this purposes:
/etc/buildreqs/files/ignore

Or maybe you mean user-defined file, for example, ~/.buildreqs/files/ignore?

In the last case, should it just override system ignore file?
Comment 3 imz 2001-12-10 19:20:38 MSK
I mean /etc/buildreqs/files/ignore.d/  ;-)

(Anyway, probably now before Master release it\'s not the right time for talking about this and impelementing it; so the long comment can be postponed.)

So that every package that is responsible for some structures in the filesystem that generate \&quot;wrong\&quot; dependencies installs a file into this directory; this file contains an additional rule (pattern) describing the files to ignore.

For example, emacs-common could install /etc/buildreqs/files/ignore.d/emacs, where it is written to ignore /etc/emacs/site-start.d/*. (Because the packager of emacs-common knows how it uses these scripts, he knows that they are not essential, but the maintainer of buildreq may have no idea about them.)

Or, a more detailed variant is possible when each package installs a list of its own files which must be ignored, which must not generate a dependency on this package. In the example with Emacs, python would install the file /etc/buildreqs/files/ignore.d/python that contains \&quot;/etc/emacs/site-start.d/python.el\&quot;. This would cause buildreq not to take \&quot;pyhton.el\&quot; into account when generating dependency list.


The last (detailed) scheme would require a rather large amount of data to be processed by buildreq, and probably it would be better to implement it with a real (not plain text) database, or even integrate it with RPM so that a packager can write something like this in the spec file (python.spec):

%files
%ignore_for_buildreq %config(noreplace) /etc/emacs/site-start.d/python.el
.....

and then when pyhton package is installed, the corresponding information is installed into the database for buildreq of ignored files.

Comment 4 imz 2001-12-10 19:20:38 MSK
I mean /etc/buildreqs/files/ignore.d/  ;-)

(Anyway, probably now before Master release it\'s not the right time for talking about this and impelementing it; so the long comment can be postponed.)

So that every package that is responsible for some structures in the filesystem that generate \&quot;wrong\&quot; dependencies installs a file into this directory; this file contains an additional rule (pattern) describing the files to ignore.

For example, emacs-common could install /etc/buildreqs/files/ignore.d/emacs, where it is written to ignore /etc/emacs/site-start.d/*. (Because the packager of emacs-common knows how it uses these scripts, he knows that they are not essential, but the maintainer of buildreq may have no idea about them.)

Or, a more detailed variant is possible when each package installs a list of its own files which must be ignored, which must not generate a dependency on this package. In the example with Emacs, python would install the file /etc/buildreqs/files/ignore.d/python that contains \&quot;/etc/emacs/site-start.d/python.el\&quot;. This would cause buildreq not to take \&quot;pyhton.el\&quot; into account when generating dependency list.


The last (detailed) scheme would require a rather large amount of data to be processed by buildreq, and probably it would be better to implement it with a real (not plain text) database, or even integrate it with RPM so that a packager can write something like this in the spec file (python.spec):

%files
%ignore_for_buildreq %config(noreplace) /etc/emacs/site-start.d/python.el
.....

and then when pyhton package is installed, the corresponding information is installed into the database for buildreq of ignored files.

Comment 5 Dmitry V. Levin 2002-03-18 22:16:41 MSK
/etc/buildreqs/files/ignore.d
implemented in
rpm-utils-0.3.0-alt1
Comment 6 Dmitry V. Levin 2002-03-18 22:16:41 MSK
/etc/buildreqs/files/ignore.d
implemented in
rpm-utils-0.3.0-alt1
Comment 7 Dmitry V. Levin 2002-09-28 21:32:45 MSD
The ignore.d solution seems to be ok; if not, reopen.
Comment 8 Dmitry V. Levin 2002-09-28 21:32:45 MSD
The ignore.d solution seems to be ok; if not, reopen.