[xorg-x11-server] Change the ABI magic for snapshots
Adam Jackson
ajax at fedoraproject.org
Wed Nov 9 14:52:49 UTC 2011
commit 243e82a3bb328cbd97729a3c830231ed1c7a0ceb
Author: Adam Jackson <ajax at redhat.com>
Date: Wed Nov 9 09:52:46 2011 -0500
Change the ABI magic for snapshots
xorg-x11-server.spec | 43 ++++++++++++++++++++++++++++++++-----
xserver-sdk-abi-requires.git | 14 ++++++++++++
xserver-sdk-abi-requires.release | 19 ++++++++++++++++
3 files changed, 70 insertions(+), 6 deletions(-)
---
diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec
index c2e21a6..207dda5 100644
--- a/xorg-x11-server.spec
+++ b/xorg-x11-server.spec
@@ -13,8 +13,13 @@
#
# Fix rhpxl to no longer need vesamodes/extramodes
-# ABI versions. Have to keep these manually in sync with the source
-# because rpm is a terrible language. HTFU.
+#define gitdate 20110818
+
+%if !0%{?gitdate}
+
+# Released ABI versions. Have to keep these manually in sync with the
+# source because rpm is a terrible language.
+
%define ansic_major 0
%define ansic_minor 4
%define videodrv_major 11
@@ -24,8 +29,24 @@
%define extension_major 6
%define extension_minor 0
+%else
+
+# For git snapshots, use date for major and a serial number for minor
+
+%define minor_serial 0
+
+%define ansic_major %{gitdate}
+%define ansic_minor %{minor_serial}
+%define videodrv_major %{gitdate}
+%define videodrv_minor %{minor_serial}
+%define xinput_major %{gitdate}
+%define xinput_minor %{minor_serial}
+%define extension_major %{gitdate}
+%define extension_minor %{minor_serial}
+
+%endif
+
%define pkgname xorg-server
-#define gitdate 20110818
Summary: X.Org X11 X server
Name: xorg-x11-server
@@ -55,7 +76,8 @@ Source10: xserver.pamd
Source20: http://svn.exactcode.de/t2/trunk/package/xorg/xorg-server/xvfb-run.sh
# for requires generation in drivers
-Source30: xserver-sdk-abi-requires
+Source30: xserver-sdk-abi-requires.release
+Source31: xserver-sdk-abi-requires.git
# OpenGL compositing manager feature/optimization patches.
# FIXME: who calls this?
@@ -302,7 +324,7 @@ git commit -a -q -m "%{version} baseline."
# Apply all the patches.
git am -p1 %{patches}
-%if %{with_hw_servers}
+%if %{with_hw_servers} && !0%{?gitdate}
# check the ABI in the source against what we expect.
getmajor() {
grep -i ^#define.ABI.$1_VERSION hw/xfree86/common/xf86Module.h |
@@ -382,7 +404,13 @@ install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/X11/xorg.conf.d
mkdir -p $RPM_BUILD_ROOT%{_bindir}
-install -m 755 %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}
+
+%if 0%{?gitdate}
+sed -e s/@MAJOR@/%{gitdate}/g -e s/@MINOR/%{minor_serial}/g %{SOURCE31} > \
+ $RPM_BUILD_ROOT%{_bindir}/xserver-sdk-abi-requires
+%else
+install -m 755 %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}/xserver-sdk-abi-requires
+%endif
%endif
@@ -552,6 +580,9 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
+* Wed Nov 09 2011 Adam Jackson <ajax at redhat.com>
+- Change the ABI magic for snapshots
+
* Mon Oct 24 2011 Peter Hutterer <peter.hutterer at redhat.com> 1.11.1-2
- Block signals when removing all input devices #737031
diff --git a/xserver-sdk-abi-requires.git b/xserver-sdk-abi-requires.git
new file mode 100755
index 0000000..c033061
--- /dev/null
+++ b/xserver-sdk-abi-requires.git
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# The X server provides capabilities of the form:
+#
+# Provides: xserver-abi(ansic-0) = 4
+#
+# for an ABI version of 0.4. The major number is encoded into the name so
+# that major number changes force upgrades. If we didn't, then
+#
+# Requires: xserver-abi(ansic) >= 0.4
+#
+# would also match 1.0, which is wrong since major numbers mean an ABI break.
+
+echo "xserver-abi($1- at MAJOR@) >= @MINOR@"
diff --git a/xserver-sdk-abi-requires.release b/xserver-sdk-abi-requires.release
new file mode 100755
index 0000000..30d77bf
--- /dev/null
+++ b/xserver-sdk-abi-requires.release
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# The X server provides capabilities of the form:
+#
+# Provides: xserver-abi(ansic-0) = 4
+#
+# for an ABI version of 0.4. The major number is encoded into the name so
+# that major number changes force upgrades. If we didn't, then
+#
+# Requires: xserver-abi(ansic) >= 0.4
+#
+# would also match 1.0, which is wrong since major numbers mean an ABI break.
+
+ver=$(pkg-config --variable abi_$1 xorg-server)
+
+major=$(echo $ver | cut -f 1 -d .)
+minor=$(echo $ver | cut -f 2 -d .)
+
+echo "xserver-abi($1-$major) >= $minor"
More information about the scm-commits
mailing list