[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