Summary: | extendable catalogue for buildreq of what should be ignored | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | imz <vanyaz> |
Component: | rpm-utils | Assignee: | 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
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? 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? 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. 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. /etc/buildreqs/files/ignore.d implemented in rpm-utils-0.3.0-alt1 /etc/buildreqs/files/ignore.d implemented in rpm-utils-0.3.0-alt1 The ignore.d solution seems to be ok; if not, reopen. The ignore.d solution seems to be ok; if not, reopen. |