[zypp-devel] [libzypp-14.21.0] Keep variable substitution in service repoindex.xml?
@libzypp-14.21.0 currently abvailable in obs://build.opensuse.org/zypp:Head Testing the latest changes regarding 'service handling' I created a local service for openSUSE. As it was quite inconvenient to manually edit the file, I hacked a simple form of variable substitution into libzypps repoindex parser: - (key,value) pairs are defined as atributes to the <repoindex> node - after definition %{key} occurring in any attribute value is expanded - Within a <repo> additionally %{alias} is available after definition. It's IMO not that bad, so I'm thinking about leaving this enabled. Any concerns? If you want to give it a try: - create /{SOMEWHERE}/repo/repoindex.xml (see below) - zypper as dir:///{SOMEWHERE} openSUSE - zypper ref -s After editing the repoindex.xml you need an explicit 'zypper ref -s' unless you have turned on autorefresh for the openSUSE service. Note @repo/distro_target: If defined, the option hides the repo if it is not matching the currently installed distro. Basically you could have repos for "openSUSE-12.3-x86_64" and "openSUSE-13.1-x86_64" in one service. Repos without 'distro_target' (or an empty one) are visible on all systems. Note @migrating to a 13.2: Without using the 'distro_target' it should simply be distver="13.2" disttarget="" Provided 13.2 will use the same repo structure this ('zypper ref -s') will switch all repos to 13.2. With 'distro_target' it's more complicated because before a 'zypper dup' you'd need: distver="13.2" disttarget="openSUSE-13.1-x86_64" But after the dup again: distver="13.2" disttarget="openSUSE-%{distver}-x86_64" (actually after the openSUSE-release package got updated. The new /etc/products.d/openSUSE.prod file changes the distro version) =====[/Local/Service/repo/repoindex.xml]======================================== <repoindex disturl="http://download.opensuse.org" distver="13.1" disttarget="openSUSE-%{distver}-x86_64" debugenable="false" sourceenable="false"> <repo url="%{disturl}/distribution/%{distver}/repo/oss" alias="repo-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/update/%{distver}" alias="repo-oss-update" name="%{alias} (%{distver})" enabled="true" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/distribution/%{distver}/repo/non-oss" alias="repo-non-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/update/%{distver}-non-oss" alias="repo-non-oss-update" name="%{alias} (%{distver})" enabled="true" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/debug/distribution/%{distver}/repo/oss" alias="repo-debug" name="%{alias} (%{distver})" enabled="%{debugenable}" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/debug/update/13.1" alias="repo-debug-update" name="%{alias} (%{distver})" enabled="%{debugenable}" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/debug/update/13.1-non-oss" alias="repo-debug-update-non-oss" name="%{alias} (%{distver})" enabled="%{debugenable}" autorefresh="true" distro_target="%{disttarget}"/> <repo url="%{disturl}/source/distribution/%{distver}/repo/oss" alias="repo-source" name="%{alias} (%{distver})" enabled="%{sourceenable}" autorefresh="true" distro_target="%{disttarget}"/> </repoindex> =====[/Local/Service/repo/repoindex.xml]======================================== -- 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 To contact the owner, e-mail: zypp-devel+owner@opensuse.org
Hi Michael, in general it seems useful. But allowing people to choose attribute names for variables may prevent us from adding specific attibutes to repoindex later. BTW here is my repoindex-based approach to openSUSE repos: https://github.com/mvidner/opensuse-upgrade On Wed, May 28, 2014 at 12:06:32PM +0200, Michael Andres wrote:
Note @repo/distro_target: If defined, the option hides the repo if it is not matching the currently installed distro. Basically you could have repos for "openSUSE-12.3-x86_64" and "openSUSE-13.1-x86_64" in one service. Repos without 'distro_target' (or an empty one) are visible on all systems.
So what is the format of /repoindex/repo/@distro_target in terms of /etc/os-release? Because it is easy to guess for openSUSE but hard for SLE[SD]-.*. ${NAME}-${VERSION_ID}-$(uname -i) ? -- Martin Vidner, Cloud & Systems Management Team http://en.opensuse.org/User:Mvidner Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
On Monday 02 June 2014 10:32:00 Martin Vidner wrote:
So what is the format of /repoindex/repo/@distro_target in terms of /etc/os-release? Because it is easy to guess for openSUSE but hard for SLE[SD]-.*.
${NAME}-${VERSION_ID}-$(uname -i) ?
No, it's the <product> <register> <target>openSUSE-13.1-x86_64</target> entry in /etc/products./baseproduct. -- 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 To contact the owner, e-mail: zypp-devel+owner@opensuse.org
participants (2)
-
Martin Vidner
-
Michael Andres