[ovs-dev] [PATCH] build: Allow building with autoconf 2.63

Thomas Graf tgraf at noironetworks.com
Thu Jun 26 23:50:25 UTC 2014


Reduces the dependency on autoconf from 2.64 to 2.63 to ease building
on older platforms. There is only a few macros missing and they can
be provided easily.

A handful of tests needed modification. The difference in quoting
behaviour between 2.63 and later require the m4_define() to be
manually unfolded.

Tested with autoconf 2.63 and 2.69.

Cc: Scott Mann <smann at noironetworks.com>
Cc: Don Kehn <dkehn at noironetworks.com>
Signed-off-by: Thomas Graf <tgraf at noironetworks.com>
---
 configure.ac          |  2 +-
 m4/compat.at          | 32 ++++++++++++++++++++++++++
 m4/openvswitch.m4     |  2 ++
 tests/ovsdb-row.at    | 62 +++++++++++++++++++++++++--------------------------
 tests/ovsdb-server.at |  2 +-
 tests/testsuite.at    |  2 ++
 6 files changed, 68 insertions(+), 34 deletions(-)
 create mode 100644 m4/compat.at

diff --git a/configure.ac b/configure.ac
index 9a86507..ebe4ef9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-AC_PREREQ(2.64)
+AC_PREREQ(2.63)
 AC_INIT(openvswitch, 2.3.90, bugs at openvswitch.org)
 AC_CONFIG_SRCDIR([datapath/datapath.c])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/m4/compat.at b/m4/compat.at
new file mode 100644
index 0000000..736f1ff
--- /dev/null
+++ b/m4/compat.at
@@ -0,0 +1,32 @@
+# -*- autoconf -*-
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+m4_ifndef([AT_CHECK_UNQUOTED],
+  [m4_define([AT_CHECK_UNQUOTED],
+  [_AT_CHECK([$1], [$2], AS_ESCAPE(m4_dquote(m4_expand([$3])), [""]),
+    AS_ESCAPE(m4_dquote(m4_expand([$4])),[""]), [$5], [$6])])])
+
+m4_ifndef([AT_SKIP_IF],
+  [m4_define([AT_SKIP_IF],
+    [AT_CHECK([($1) \
+    && exit 77 || exit 0], [0], [ignore], [ignore])])])
+
+m4_ifndef([AT_FAIL_IF],
+  [m4_define([AT_FAIL_IF],
+    [AT_CHECK([($1) \
+    && exit 99 || exit 0], [0], [ignore], [ignore])])])
+
+m4_ifndef([AS_VAR_COPY],
+  [m4_define([AS_VAR_COPY],
+    [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])])
diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
index fa741f6..1308d1c 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
@@ -13,6 +13,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+#
+m4_include([m4/compat.at])
 
 dnl Checks for --enable-coverage and updates CFLAGS and LDFLAGS appropriately.
 AC_DEFUN([OVS_CHECK_COVERAGE],
diff --git a/tests/ovsdb-row.at b/tests/ovsdb-row.at
index 34a102c..0b2ae77 100644
--- a/tests/ovsdb-row.at
+++ b/tests/ovsdb-row.at
@@ -1,7 +1,5 @@
 AT_BANNER([OVSDB -- rows])
 
-m4_define([RESERVED_COLUMNS], [["_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"]]])
-
 OVSDB_CHECK_POSITIVE([row with one string column],
   [[parse-rows \
     '{"columns": {"name": {"type": "string"}}}' \
@@ -9,14 +7,14 @@ OVSDB_CHECK_POSITIVE([row with one string column],
     '{"name": ""}' \
     '{"name": "longer string with spaces"}' \
     '{}']],
-  [{RESERVED_COLUMNS,"name":"value"}
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"name":"value"}
 name
-{RESERVED_COLUMNS,"name":""}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"name":""}
 name
-{RESERVED_COLUMNS,"name":"longer string with spaces"}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"name":"longer string with spaces"}
 name
-{RESERVED_COLUMNS,"name":""}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"name":""}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with one integer column],
   [[parse-rows \
@@ -25,14 +23,14 @@ OVSDB_CHECK_POSITIVE([row with one integer column],
     '{"count": -1}' \
     '{"count": 2e10}' \
     '{}']],
-  [{RESERVED_COLUMNS,"count":1}
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"count":1}
 count
-{RESERVED_COLUMNS,"count":-1}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"count":-1}
 count
-{RESERVED_COLUMNS,"count":20000000000}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"count":20000000000}
 count
-{RESERVED_COLUMNS,"count":0}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"count":0}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with one real column],
   [[parse-rows \
@@ -41,14 +39,14 @@ OVSDB_CHECK_POSITIVE([row with one real column],
     '{"cost": -2.0}' \
     '{"cost": 123000}' \
     '{}']],
-  [{RESERVED_COLUMNS,"cost":1}
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"cost":1}
 cost
-{RESERVED_COLUMNS,"cost":-2}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"cost":-2}
 cost
-{RESERVED_COLUMNS,"cost":123000}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"cost":123000}
 cost
-{RESERVED_COLUMNS,"cost":0}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"cost":0}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with one boolean column],
   [[parse-rows \
@@ -56,12 +54,12 @@ OVSDB_CHECK_POSITIVE([row with one boolean column],
     '{"feasible": true}' \
     '{"feasible": false}' \
     '{}']],
-  [{RESERVED_COLUMNS,"feasible":true}
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"feasible":true}
 feasible
-{RESERVED_COLUMNS,"feasible":false}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"feasible":false}
 feasible
-{RESERVED_COLUMNS,"feasible":false}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"feasible":false}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with one uuid column],
   [[parse-rows \
@@ -69,26 +67,26 @@ OVSDB_CHECK_POSITIVE([row with one uuid column],
     '{"ref": ["uuid", "f707423d-bf5b-48b5-b6c0-797c900ba4b6"]}' \
     '{"ref": ["uuid", "33583cc5-d2f4-43de-b1ca-8aac14071b51"]}' \
     '{}']],
-  [{RESERVED_COLUMNS,"ref":[["uuid","f707423d-bf5b-48b5-b6c0-797c900ba4b6"]]}
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"ref":["uuid","f707423d-bf5b-48b5-b6c0-797c900ba4b6"]}
 ref
-{RESERVED_COLUMNS,"ref":[["uuid","33583cc5-d2f4-43de-b1ca-8aac14071b51"]]}
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"ref":["uuid","33583cc5-d2f4-43de-b1ca-8aac14071b51"]}
 ref
-{RESERVED_COLUMNS,"ref":[["uuid","00000000-0000-0000-0000-000000000000"]]}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"ref":["uuid","00000000-0000-0000-0000-000000000000"]}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with set of 1 to 2 elements],
   [[parse-rows \
     '{"columns": {"myset": {"type": {"key": "integer", "min": 1, "max": 2}}}}' \
     '{}']],
-  [{RESERVED_COLUMNS,["myset":0]}
-<none>])
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"myset":0}
+<none>]])
 
 OVSDB_CHECK_POSITIVE([row with map of 1 to 2 elements],
   [[parse-rows \
     '{"columns": {"mymap": {"type": {"key": "integer", "value": "uuid", "min": 1, "max": 2}}}}' \
     '{}']],
-  [{RESERVED_COLUMNS,["mymap":["map",[[0,["uuid","00000000-0000-0000-0000-000000000000"]]]]]}
-<none>], [])
+  [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"mymap":["map",[[0,["uuid","00000000-0000-0000-0000-000000000000"]]]]}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row with several columns],
   [[parse-rows \
@@ -107,10 +105,10 @@ OVSDB_CHECK_POSITIVE([row with several columns],
       "datapath_id": "000ae4256bb0",
       "hwaddr": "00:0a:e4:25:6b:b0"}' \
     '{}']],
- [{RESERVED_COLUMNS,["controller":["set",[]],"datapath_id":"000ae4256bb0","hwaddr":"00:0a:e4:25:6b:b0","listeners":["set",[]],"mirrors":["set",[]],"name":"br0","netflows":["set",[]],"snoops":["set",[]],"vswitch":["uuid","1a5c7280-0d4c-4e34-9ec7-c772339f7774"]]}
+ [[{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"controller":["set",[]],"datapath_id":"000ae4256bb0","hwaddr":"00:0a:e4:25:6b:b0","listeners":["set",[]],"mirrors":["set",[]],"name":"br0","netflows":["set",[]],"snoops":["set",[]],"vswitch":["uuid","1a5c7280-0d4c-4e34-9ec7-c772339f7774"]}
 datapath_id, hwaddr, name, vswitch
-{RESERVED_COLUMNS,["controller":["set",[]],"datapath_id":["set",[]],"hwaddr":"","listeners":["set",[]],"mirrors":["set",[]],"name":"","netflows":["set",[]],"snoops":["set",[]],"vswitch":["uuid","00000000-0000-0000-0000-000000000000"]]}
-<none>], [])
+{"_uuid":["uuid","00000000-0000-0000-0000-000000000000"],"_version":["uuid","00000000-0000-0000-0000-000000000000"],"controller":["set",[]],"datapath_id":["set",[]],"hwaddr":"","listeners":["set",[]],"mirrors":["set",[]],"name":"","netflows":["set",[]],"snoops":["set",[]],"vswitch":["uuid","00000000-0000-0000-0000-000000000000"]}
+<none>]], [])
 
 OVSDB_CHECK_POSITIVE([row hashing (scalars)],
   [[compare-rows \
diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
index 08c56ca..89b2bc2 100644
--- a/tests/ovsdb-server.at
+++ b/tests/ovsdb-server.at
@@ -526,7 +526,7 @@ AT_CHECK(
 cat stdout >> output
 AT_CHECK_UNQUOTED(
   [cat output], [0],
-  [[[{"rows":[{"private_key":"$PKIDIR/testpki-privkey2.pem"}]}]
+  [[@<:@{"rows":@<:@{"private_key":"$PKIDIR/testpki-privkey2.pem"}@:>@}@:>@
 ]], [ignore], [test ! -e pid || kill `cat pid`])
 OVSDB_SERVER_SHUTDOWN
 AT_CLEANUP
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 012733c..74e5c6d 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -18,6 +18,8 @@ AT_TESTED([ovs-vswitchd])
 AT_TESTED([ovs-vsctl])
 AT_TESTED([perl])
 
+m4_include([m4/compat.at])
+
 m4_divert_push([PREPARE_TESTS])
 [
 ovs_wait () {
-- 
1.9.3




More information about the dev mailing list