man-pages-4.05-1.noarch conflicts with lirc-0.9.3a-1.x86_64

Jeff Johnson n3npq at mac.com
Tue May 10 16:05:29 CEST 2016


On May 10, 2016, at 6:30 AM, Elan Ruusamäe wrote:

> On 10.05.2016 09:12, Jeffrey Johnson wrote:
>>> Fixed in lirc-0.9.3a-2 / man-pages-4.05-2.
>>> >
>> Is file conflict detection an RPM misfeature?
> no. it's packaging mistake (two packages installing same file path)
> 

Of course it is a packaging mistake: I have fixed dozens of file conflcts
from duplicate man pages

The question was about detecting and failing an rpm upgrade
when there is duplicate content. EVen when content is identical,
there is a timestamp in some compression formats (yes there is an
option to remove the timestamp), and/or the buildtime on the file can/will differ.

There are alternative automated resolutions other than human intervention
to rebuild the package that might be attempted.

>> It would not be impossibly hard to resolve a file conflict automatically,
>> perhaps with an alternatives-like symlink farm analogue mechanism
>> to permit multiple copies to coexist.
> there's no alternatives, two packages should not provide same file.
> 

Alternatives (fundamentally) is just a symlink to a unique file path. RPM
could easily install the file on a unique path and install a symlink, and
even add the configuration so that alternatives(8) (literally) could be
used to resolve the file conflict on the machine being installed.

All of the above has to do with automating (at least temporarily) the
install instead of just failing.

> lirc one was the outdated one, according to commits made.
> 

There are other relatively simple automations:
	1) FIFO - first version is installed, all other file versions are skipped.
	2) LIFO - last version clobbers all other file versions.
	3) largest - the bigger file is installed
	4) newest - the newest modify time is installed
	5) masked - a file conflict automated resolution is read from configuration.
The majority of manual file conflict resolutions are one of the above.

There's also a means to detect file conflicts at buildtime and fail the build,
not the install later, if rpmbuild attempts to maintain a collection of all current
headers in a database, and checks for file conflicts at the end of successful builds.

73 de Jeff
> -- 
> glen
> 
> _______________________________________________
> pld-devel-en mailing list
> pld-devel-en at lists.pld-linux.org
> http://lists.pld-linux.org/mailman/listinfo/pld-devel-en



More information about the pld-devel-en mailing list