Comparing your local version with the on-line versions
Before upgrading a Tumbleweed system, it makes sense to check which is your local and which is the on-line version. This is actually a tad more complicated than it sounds.
There are three versions involved:
- the local release version on your system
- the on-line release version from for instance
aarch64
used on https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/ file*-primary.xml.gz
and http://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/aarch64/ in filesopenSUSE-release-*-1.1.aarch64.rpm
- the on-line build version used on https://openqa.opensuse.org/ and needs to be bound to the corresponding architecture in the https://download.opensuse.org tree
There is a mismatch between the last two as a side effect of decoupling the arm port a bit from the high checkin frequency of openSUSE:Factory
; ARM simply has not enough power to build the snapshot in the same time Intel and PowerPC can do.
[WayBack] Dominique a.k.a. DimStar (Dim*) – A passionate openSUSE user thinks the last two are mismatched is a side effect off [WayBack] osc service remoterun operates on outdated sources (product builder) · Issue #4768 · openSUSE/open-build-service · GitHub.
He also tech-reviewed this post.
Your local release version
There are various ways to get your local version:
The easiest is to inspect the file /etc/os-release
, for instance 20180208
in the file content:
NAME="openSUSE Tumbleweed" # VERSION="20180208 " ID=opensuse ID_LIKE="suse" VERSION_ID="20180208" PRETTY_NAME="openSUSE Tumbleweed" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:tumbleweed:20180208" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/"
You can also perform rpm --query --provides openSUSE-release | grep "product(openSUSE)"
which for the same install returned this product(openSUSE) = 20180208-0
.
Finally, you can use zypper
to query the installed product which also includes the version:
$ zypper search --installed-only --type product --details Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository ---+----------+---------+------------+---------+------------------ i+ | openSUSE | product | 20180228-0 | aarch64 | (System Packages)
The on-line release version
I will explain this for the aarch64
architecture, but the mechanism holds for all architectures, it is just that the directory names vary.
Architectures and base directories you can use this mechanism with:
- https://download.opensuse.org/tumbleweed/repo/oss/repodata/ for
i586
,i686
andx86_64
- https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/ for
aarch64
- https://download.opensuse.org/ports/armv6hl/tumbleweed/repo/oss/suse/repodata/ for
armv6hl
- https://download.opensuse.org/ports/armv7hl/tumbleweed/repo/oss/suse/repodata/ for
armv7hl
- https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss/repodata/ for
ppc
,ppc64
andppc64le
- https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss/suse/repodata/ for
s390x
Each architecture contains the version number in two kinds of places:
- The content of the repository meta data in a file named
*-primary.xml.gz
referenced fromrepomd.xml
in therepodata
subdirectory - The filename of a package named
?P=openSUSE-release-2*
Back to the aarch64
architecture:
-
Getting the version through
repomd.xml
is whatzypper
does based on a slight adoption of https://en.opensuse.org/openSUSE:Standards_Rpm_Metadata#Repository_layout resulting in release version20180324
:-
Inspect https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/repomd.xml for the name of
*-primary.xml.gz
(in this case https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/repodata/d701c298b21d0b995c9560f9cfcc84685cb916deacc4f4c4a613a9b9d8f5aa57-primary.xml.gz -
Download that
.gz
file and uncompress it -
Inspect the
*-primary.xml
from it, look inside themetatadata
root element for apackage
having aname
element with valueopenSUSE-release
: thatpackage
element now has aversion
element having aver
attribute containing the release version text.Example file content:
<?xml version="1.0" encoding="UTF-8"?> <metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="35006"> <!-- ... --> <package type="rpm"> <name>openSUSE-release</name> <arch>aarch64</arch> <version epoch="0" ver="20180324" rel="1.1"/> <!-- ... --> </package> <!-- ... --> </metadata>
-
-
Getting the version through the name of the
openSUSE-release-2*
package:- Search for a matching filename at https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/aarch64/?P=openSUSE-release-2*
- The list contains
openSUSE-release-20180324-1.1.aarch64.rpm
indicating release version20180324
The on-line build version
I will explain this for the aarch64
architecture, but the mechanism holds for all architectures that build on openQA, it is just that the directory names vary and not all architectures are running on openQA.
Architectures and base directories you can use this mechanism with:
- https://download.opensuse.org/tumbleweed/repo/oss/media.1/ for
i586
,i686
andx86_64
(let’s call this platform Intel)- https://download.opensuse.org/tumbleweed/repo/oss/media.1/media
- https://download.opensuse.org/tumbleweed/repo/oss/media.1/products
- https://openqa.opensuse.org/group_overview/1 openSUSE Tumbleweed (covering
x86_64
and somei586
) - https://openqa.opensuse.org/group_overview/32 openSUSE Tumbleweed Kernel (covering
x86_64
)
- https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/media.1/ for
aarch64
(let’s call this platform ARM) - https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss/media.1/ for
ppc
,ppc64
andppc64le
(let’s call this platform PowerPC)- https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss/media.1/media
- https://download.opensuse.org/ports/ppc/tumbleweed/repo/oss/media.1/products
- https://openqa.opensuse.org/group_overview/4 openSUSE Tumbleweed PowerPC (covering both
ppc64
andppc64le
)
- https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss/media.1/ for
s390x
(let’s call this platform System Z)
Architectures not on openQA:
armv6hl
armv7hl
Each platform contains the version number in two kinds of places:
- The content of the repository meta data in the file named
media.1/media
andmedia.1/products
- Names used in the openQA links
Back to the aarch64
architecture on the ARM platform:
-
https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/media.1/media
openSUSE - openSUSE-20180322-aarch64-Build46.1-Media openSUSE-20180322-aarch64-Build46.1 1
-
https://download.opensuse.org/ports/aarch64/tumbleweed/repo/oss/media.1/products
/ openSUSE 20180322-0
-
https://openqa.opensuse.org/group_overview/3 openSUSE Tumbleweed AArch64
... Build20180322 (10 days ago) testing ...
- The above text points to Overall Summary of openSUSE Tumbleweed AArch64 build 20180322
–jeroen