Hi, What's the correct way to catch file conflicts between packages? I've tried adding the entries in filelist.xml using repodata_add_dirstr, but the solver isn't looking at them. Is my only option to add those files to solvable->provides? Thanks, Matt -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
* Matt Barringer <mbarringer@suse.de> [Nov 17. 2008 18:15]:
Hi,
What's the correct way to catch file conflicts between packages? I've tried adding the entries in filelist.xml using repodata_add_dirstr, but the solver isn't looking at them.
filelist.xml is ignored due to its size. And in 99.9% of all cases its data is not used anyways ;-)
Is my only option to add those files to solvable->provides?
Afaik, yes. Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Would it be possible to examine the package before installation, to check for the files it contains against the RPM db or the filesystem ? I imagine this does not fit with the architecture at all... but it is the only way I can think of w/o the filelist. Best -F Klaus Kaempf wrote:
* Matt Barringer <mbarringer@suse.de> [Nov 17. 2008 18:15]:
Hi,
What's the correct way to catch file conflicts between packages? I've tried adding the entries in filelist.xml using repodata_add_dirstr, but the solver isn't looking at them.
filelist.xml is ignored due to its size. And in 99.9% of all cases its data is not used anyways ;-)
Is my only option to add those files to solvable->provides?
Afaik, yes.
Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- _________________________________________ -- "'Problem' is a bleak word for challenge" - Richard Fish (Federico L. Lucifredi) - flucifredi@novell.com -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
* Federico Lucifredi <flucifredi@novell.com> [Nov 17. 2008 19:44]:
Would it be possible to examine the package before installation, to check for the files it contains against the RPM db or the filesystem ?
Technically, yes. But it would required parsing the RPM header of every downloaded package, iterating through its filelist and searching each entry in the rpmdb. And this would not catch conflicts againts packages of the same transaction. Its probably not worth the effort. Arbitrary file conflicts are very, very seldomly needed. Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
Klaus Kaempf wrote:
* Federico Lucifredi <flucifredi@novell.com> [Nov 17. 2008 19:44]:
Would it be possible to examine the package before installation, to check for the files it contains against the RPM db or the filesystem ?
Technically, yes. But it would required parsing the RPM header of every downloaded package, iterating through its filelist and searching each entry in the rpmdb. And this would not catch conflicts againts packages of the same transaction.
Yah, looks like a lot of overhead.
Its probably not worth the effort. Arbitrary file conflicts are very, very seldomly needed.
They are not in our own packages :-) Third parties... the horrors there should not be discounted. Probably the solution is that if someday we move away from force-nodeps towards transactions, file conflicts would be then caught at runtime by rpm. Best -F
Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- _________________________________________ -- "'Problem' is a bleak word for challenge" - Richard Fish (Federico L. Lucifredi) - flucifredi@novell.com -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Tue, Nov 18, 2008 at 02:10:00PM -0500, Federico Lucifredi wrote:
Probably the solution is that if someday we move away from force-nodeps towards transactions, file conflicts would be then caught at runtime by rpm.
Please don't mix up transaction implementation with file conflict checking. Thanks, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Wednesday 19 November 2008 11:05:56 Michael Schroeder wrote:
On Tue, Nov 18, 2008 at 02:10:00PM -0500, Federico Lucifredi wrote:
Probably the solution is that if someday we move away from force-nodeps towards transactions, file conflicts would be then caught at runtime by rpm.
Please don't mix up transaction implementation with file conflict checking.
I think I'll introduce a zconfig option telling wheter to use force or let file conflicts abort the transaction, like any other error does. That way everybody is able to tell whether he considers this to be an error or not. -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres YaST Development ma@novell.com SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0 +------------------------------------------------------------------+ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Wed, Nov 19, 2008 at 11:39:06AM +0100, Michael Andres wrote:
I think I'll introduce a zconfig option telling wheter to use force or let file conflicts abort the transaction, like any other error does. That way everybody is able to tell whether he considers this to be an error or not.
As long as there is a big disclaimer that we will close all bugs about a broken/messed up system afterwards... Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Wed, Nov 19, 2008 at 11:39:06AM +0100, Michael Andres wrote:
I think I'll introduce a zconfig option telling wheter to use force or let file conflicts abort the transaction, like any other error does. That way everybody is able to tell whether he considers this to be an error or not.
Wait, that can't work. File conflicts commonly happen in transaction steps. You need to look at the complete transaction when checking for conflicts. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Mon, Nov 17, 2008 at 06:12:35PM +0100, Matt Barringer wrote:
What's the correct way to catch file conflicts between packages? I've tried adding the entries in filelist.xml using repodata_add_dirstr, but the solver isn't looking at them.
Uh, filelist.xml can't help you with file content conflicts, as it doesn't contain the file md5 checksum. Or are you talking about explicit "Conflicts: /some/file" dependencies? Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Mon, 17 Nov 2008, Michael Schroeder wrote:
Uh, filelist.xml can't help you with file content conflicts, as it doesn't contain the file md5 checksum. Or are you talking about explicit "Conflicts: /some/file" dependencies?
Right now I'm not concerned with file content conflicts, I'm just trying to get the solver to error out when two packages provide the same filename. Adding the names to the provides doesn't do it. -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
* Matt Barringer <mbarringer@suse.de> [Nov 17. 2008 20:14]:
On Mon, 17 Nov 2008, Michael Schroeder wrote:
Uh, filelist.xml can't help you with file content conflicts, as it doesn't contain the file md5 checksum. Or are you talking about explicit "Conflicts: /some/file" dependencies?
Right now I'm not concerned with file content conflicts, I'm just trying to get the solver to error out when two packages provide the same filename. Adding the names to the provides doesn't do it.
Whats your use case ? Are these SUSE (resp. buildservice) packages ? Maybe there are other means to accomplish what you need besides file conflicts. Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Tue, 18 Nov 2008, Klaus Kaempf wrote:
Whats your use case ? Are these SUSE (resp. buildservice) packages ? Maybe there are other means to accomplish what you need besides file conflicts.
We're seeing a lot of file conflicts on SUSE Studio from packages within the build service repositories, both conflicts between packages in multiple repositories and conflicts between packages within a single repository, that we're not catching during the dependency resolve stage. For example, a conflict between 'vbam' and 'VisualBoyAdvance' out of the emulators repo: file /etc/VisualBoyAdvance.cfg conflicts between attempted installs of vbam-580svn-1.1 and VisualBoyAdvance-1.7.2-4.3 Ideally we could catch that before actually trying the RPM install. I understand that zypper and yast force the installation, which is why those two packages install side-by-side with them, but we're not keen on taking that approach. -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
On Mon, Nov 17, 2008 at 08:11:05PM +0100, Matt Barringer wrote:
On Mon, 17 Nov 2008, Michael Schroeder wrote:
Uh, filelist.xml can't help you with file content conflicts, as it doesn't contain the file md5 checksum. Or are you talking about explicit "Conflicts: /some/file" dependencies?
Right now I'm not concerned with file content conflicts, I'm just trying to get the solver to error out when two packages provide the same filename. Adding the names to the provides doesn't do it.
True, because it's not an error if two packages share the same file (as long as the content is the same). Fedora uses this fact a lot for their multilib implementation. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Tue, 18 Nov 2008, Michael Schroeder wrote:
True, because it's not an error if two packages share the same file (as long as the content is the same). Fedora uses this fact a lot for their multilib implementation.
So there's no way with libsatsolver to consider it an error condition, even if it's legal behaviour? -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
participants (5)
-
Federico Lucifredi
-
Klaus Kaempf
-
Matt Barringer
-
Michael Andres
-
Michael Schroeder