Bug 213 - extendable catalogue for buildreq of what should be ignored
Summary: extendable catalogue for buildreq of what should be ignored
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P5 enhancement
Assignee: placeholder@altlinux.org
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-12-08 22:05 MSK by imz
Modified: 2003-08-25 15:18 MSD (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 \"wrong\" 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 \"/etc/emacs/site-start.d/python.el\". This would cause buildreq not to take \"pyhton.el\" 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 \"wrong\" 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 \"/etc/emacs/site-start.d/python.el\". This would cause buildreq not to take \"pyhton.el\" 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.