[zypp-devel] Does the package manager respect things like python(abi) = 3.1?
I'm trying to get python3-base-3.2 to trigger the removal of python3-3.1 without using "Conflicts:", python3-3.1 is one package but python-3.2 has been split into two packages python3-base which provides a minimum and python3. Obviously I can't provide python3 = %{version} so I looked at what python3-base-3.2 provided that was also provided by python3-3.1 and tried : "Obsoletes: python(abi) < %{version}" but it doesn't work. I've added a provides for "python(abi) = %{version}" but I'm pretty sure that will only give me an rpmlint warning when it's finished building. So does libzypp respect things like mime and abi? If not I suppose that python3-3.1 is going to have to provide python3-base. This puts me in a spot, I'm trying to get Packman to take python3-3.2 for blender which is making full use of py3.2's new api additions, it changes pages of code into lines and to get an update for python3-3.1 is timeous and difficult but I suppose I'll end up using "Conflicts:". Any help appreciated. Dave Plater -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Wednesday 11 May 2011 18:27:08 Dave Plater wrote:
I'm trying to get python3-base-3.2 to trigger the removal of python3-3.1 without using "Conflicts:", python3-3.1 is one package but python-3.2 has been split into two packages python3-base which provides a minimum and python3.
Obviously I can't provide python3 = %{version} so I looked at what python3-base-3.2 provided that was also provided by python3-3.1 and tried : "Obsoletes: python(abi) < %{version}" but it doesn't work.
Because 'Obsoletes:' refer to package names only. Thus something like python3-base-3.2: Obsoletes: python3 < 3.2 should work. -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres SUSE LINUX Products GmbH, Development, ma@suse.de GF:Jeff Hawn,Jennifer Guild,Felix Imendörffer, HRB16746(AG Nürnberg) 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 05/12/2011 09:59 AM, Michael Andres wrote:
On Wednesday 11 May 2011 18:27:08 Dave Plater wrote:
I'm trying to get python3-base-3.2 to trigger the removal of python3-3.1 without using "Conflicts:", python3-3.1 is one package but python-3.2 has been split into two packages python3-base which provides a minimum and python3.
Obviously I can't provide python3 = %{version} so I looked at what python3-base-3.2 provided that was also provided by python3-3.1 and tried : "Obsoletes: python(abi)< %{version}" but it doesn't work.
Because 'Obsoletes:' refer to package names only. Thus something like python3-base-3.2: Obsoletes: python3< 3.2 should work.
Is there any particular reason to use "Obsoletes: python3< 3.2" instead of "Obsoletes: python3< %{version}" ? This is what happens, it's very messy there must be a way to a smoother update? Python 3.2 is about to hit factory and probably tumbleweed. I've already had a user with no python3 installed, blender-2.57b is the main python3 user apart from a couple of minor gnome apps and requires python-3.2 to work correctly. zypper -v in blender Verbosity: 1 Non-option program arguments: 'blender' Initializing Target Loading repository data... Reading installed packages... Force resolution: No Selecting 'blender-2.57b-141.8.x86_64' from repository 'plablen' for installation. Resolving package dependencies... Force resolution: No Problem: blender-2.57b-141.8.x86_64 requires python(abi) = 3.2, but this requirement cannot be provided uninstallable providers: python3-base-3.2-13.1.i586[plablen] python3-base-3.2-13.1.x86_64[plablen] python3-base-3.2-6.1.i586[pyfact] python3-base-3.2-6.1.x86_64[pyfact] Solution 1: Following actions will be done: replacement of python3-3.1.3-3.3.x86_64 with python3-base-3.2-13.1.x86_64 install python3-devel-3.2-13.1.x86_64 (with vendor change) openSUSE --> obs://build.opensuse.org/home:plater install python3-debuginfo-3.2-13.1.x86_64 (with vendor change) openSUSE --> obs://build.opensuse.org/home:plater Solution 2: do not install blender-2.57b-141.8.x86_64 Solution 3: break blender by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/3/c] (c): 1 Applying solution 1 Resolving dependencies... Resolving package dependencies... Force resolution: No Problem: python3-2to3-3.1.3-3.3.x86_64 requires /usr/bin/python3.1, but this requirement cannot be provided Solution 1: install python3-2to3-3.2-13.1.x86_64 (with vendor change) openSUSE --> obs://build.opensuse.org/home:plater Solution 2: do not install python3-base-3.2-13.1.x86_64 Solution 3: break python3-2to3 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/3/c] (c): 1 Applying solution 1 Resolving dependencies... Resolving package dependencies... Force resolution: No The following NEW packages are going to be installed: blender 2.57b-141.8 libpython3_2mu1_0 3.2-13.1 python3-base 3.2-13.1 The following package is going to be REMOVED: python3 3.1.3-3.3 The following packages are going to be upgraded: python3-2to3 3.1.3-3.3 -> 3.2-13.1 python3-debuginfo 3.1.3-3.3 -> 3.2-13.1 python3-devel 3.1.3-3.3 -> 3.2-13.1 The following packages are going to change vendor: python3-2to3 3.1.3-3.3 -> 3.2-13.1 openSUSE -> obs://build.opensuse.org/home:plater python3-debuginfo 3.1.3-3.3 -> 3.2-13.1 openSUSE -> obs://build.opensuse.org/home:plater python3-devel 3.1.3-3.3 -> 3.2-13.1 openSUSE -> obs://build.opensuse.org/home:plater 3 packages to upgrade, 3 new, 1 to remove, 3 to change vendor. Overall download size: 18.8 MiB. After the operation, additional 29.7 MiB will be used. Continue? [y/n/?] (y): Dave P -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Wednesday 18 May 2011 12:54:11 Dave Plater wrote:
On 05/12/2011 09:59 AM, Michael Andres wrote:
Because 'Obsoletes:' refer to package names only. Thus something like python3-base-3.2: Obsoletes: python3< 3.2 should work.
Is there any particular reason to use "Obsoletes: python3< 3.2" instead of "Obsoletes: python3< %{version}" ?
IMO yes, python3-base should obsolete old (unsplited) versions of python3. After the split both packages should be treated independently. Dependencies between both should be expressed by requires/conflicts.
This is what happens, it's very messy there must be a way to a smoother update?
But the conflicts are just due to the vendor change (openSUSE-->obs://build.opensuse.org/home:plater). - In /etc/zypp/vendors.d (mkdir if it does not exist) create a file named e.g. obs_home_plater with content: ## ------------------------- snipp ----------------------- [main] vendors = suse,opensuse,obs://build.opensuse.org/home:plater ## ------------------------- snipp ----------------------- This should tell zypp that packages from obs://build.opensuse.org/home:plater are always allowed to replace packages from opensuse without treating it as a vendor change. - Less chicken-hearted you can also disable all vendor checks by setting solver.allowVendorChange = true in /etc/zypp/zypp.conf. (yes a 'zypper --allow-vendorchange' option would be handy here) -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres SUSE LINUX Products GmbH, Development, ma@suse.de GF:Jeff Hawn,Jennifer Guild,Felix Imendörffer, HRB16746(AG Nürnberg) 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 05/18/2011 01:49 PM, Michael Andres wrote:
On Wednesday 18 May 2011 12:54:11 Dave Plater wrote:
On 05/12/2011 09:59 AM, Michael Andres wrote:
Because 'Obsoletes:' refer to package names only. Thus something like python3-base-3.2: Obsoletes: python3< 3.2 should work.
Is there any particular reason to use "Obsoletes: python3< 3.2" instead of "Obsoletes: python3< %{version}" ?
IMO yes, python3-base should obsolete old (unsplited) versions of python3. After the split both packages should be treated independently. Dependencies between both should be expressed by requires/conflicts.
This is what happens, it's very messy there must be a way to a smoother update?
But the conflicts are just due to the vendor change (openSUSE-->obs://build.opensuse.org/home:plater).
- In /etc/zypp/vendors.d (mkdir if it does not exist) create a file named e.g. obs_home_plater with content: ## ------------------------- snipp ----------------------- [main] vendors = suse,opensuse,obs://build.opensuse.org/home:plater ## ------------------------- snipp -----------------------
This should tell zypp that packages from obs://build.opensuse.org/home:plater are always allowed to replace packages from opensuse without treating it as a vendor change.
- Less chicken-hearted you can also disable all vendor checks by setting solver.allowVendorChange = true in /etc/zypp/zypp.conf.
(yes a 'zypper --allow-vendorchange' option would be handy here)
Thanks for clarifying the situation the python people went with "Obsoletes: python3 < 3.2" Dave P. -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (2)
-
Dave Plater
-
Michael Andres