Bug 213 - extendable catalogue for buildreq of what should be ignored
: extendable catalogue for buildreq of what should be ignored
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/rpm-utils)
: unstable
: all Linux
: P5 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2001-12-08 22:05 by
Modified: 2003-08-25 15:18 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2001-12-08 22:05:47
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 From 2001-12-10 18:05:56 -------
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 From 2001-12-10 18:05:56 -------
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 From 2001-12-10 19:20:38 -------
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 From 2001-12-10 19:20:38 -------
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 From 2002-03-18 22:16:41 -------
/etc/buildreqs/files/ignore.d
implemented in
rpm-utils-0.3.0-alt1
------- Comment #6 From 2002-03-18 22:16:41 -------
/etc/buildreqs/files/ignore.d
implemented in
rpm-utils-0.3.0-alt1
------- Comment #7 From 2002-09-28 21:32:45 -------
The ignore.d solution seems to be ok; if not, reopen.
------- Comment #8 From 2002-09-28 21:32:45 -------
The ignore.d solution seems to be ok; if not, reopen.