How to detect Leap and his version?

RPM macros for SLE12 and openSUSE:Leap
  SLE12:GA SLE12:SP1 SLE12:SP2 Leap 42.1 Leap 42.2 Tumbleweed
suse_version 1315 1315 1315 1315 1315 1330
sle_version 120000 120100 120200 120100 120200 undefined
is_opensuse undefined undefined undefined 1 1 1

 

In der spec am Anfang folgendes einfügen:

# Is Leap and what version?
%if 0%{?suse_version} == 1315 && 0%{?is_opensuse}
%define is_leap 1
%if 0%{?sle_version} == 120100
%define is_leap_42_1 1
%define is_leap_42_2 0
%endif
%if 0%{?sle_version} == 120200
%define is_leap_42_2 1
%define is_leap_42_1 0
%endif
%else
%define is_leap_42_1 0
%define is_leap_42_2 0
%endif

Dann kann in der Abfrage z.B. folgendes benutzt werden:

%if 0%{?is_leap_42_2}
%patch1 -p1
%else
%if 0%{?is_leap_42_1}
%patch0 -p1
%endif
%endif

oder

%if 0%{?suse_version} > 1320 || 0%{?is_leap_42_2}
# Factory, Leap_42.2
%patch1 -p1
%else
%if 0%{?suse_version} >= 1310 || 0%{?is_leap_42_1}
# 13.1, 13.2, Leap_42.1, Tumbleweed
%patch0 -p1
%endif
%endif