Hi! The scripts in bin/ claim to be /bin/sh compatible, but use bashisms.
In particular, run, test, and testserver use the test(1) '==' comparison operator which is only supported by bash, not even by GNU coreutils. Use '=' instead. bin/caldavd has if [ "${py_version/./}" -lt "24" ]; then return 1; fi; which gives bin/caldavd: 50: Syntax error: Bad substitution on NetBSD. I don't know what the portable version of this is, so I've just used bash for that script. bin/_build.sh uses 'type -P' which NetBSD's /bin/sh doesn't support either; and the whitespace in 'Cyrus SASL' causes whitespace quoting issues for me sometime during the build of cyrus-sasl. The diff I'm using to get to 'bin/run -n' is attached. (It's still not working, but the current problem is in twistd.) Cheers, Thomas
Index: bin/_build.sh =================================================================== --- bin/_build.sh (revision 14210) +++ bin/_build.sh (working copy) @@ -512,7 +512,7 @@ local p="${n}-${v}"; c_dependency -m "a7f4e5e559a0e37b3ffc438c9456e425" \ - "Cyrus SASL" "${p}" \ + "Cyrus_SASL" "${p}" \ "ftp://ftp.cyrusimap.org/cyrus-sasl/${p}.tar.gz" \ --disable-macos-framework; fi; @@ -519,7 +519,7 @@ ruler; - if type -P memcached > /dev/null; then + if type memcached > /dev/null; then using_system "memcached"; else local v="2.0.21-stable"; @@ -541,7 +541,7 @@ ruler; - if type -P postgres > /dev/null; then + if type postgres > /dev/null; then using_system "Postgres"; else local v="9.3.1"; @@ -548,7 +548,7 @@ local n="postgresql"; local p="${n}-${v}"; - if type -P dtrace > /dev/null; then + if type dtrace > /dev/null; then local enable_dtrace="--enable-dtrace"; else local enable_dtrace=""; Index: bin/run =================================================================== --- bin/run (revision 14210) +++ bin/run (working copy) @@ -80,7 +80,7 @@ echo " -P Select the twistd plugin name [${plugin_name}]"; echo " -R Twisted Reactor plugin to execute [${reactor}]"; - if [ "${1-}" == "-" ]; then + if [ "${1-}" = "-" ]; then return 0; fi; exit 64; @@ -184,7 +184,7 @@ mkdir "${wd}/data"; fi; - if [ "$(uname -s)" == "Darwin" ] && [ "$(uname -r | cut -d . -f 1)" -ge 9 ]; then + if [ "$(uname -s)" = "Darwin" ] && [ "$(uname -r | cut -d . -f 1)" -ge 9 ]; then caldavd_wrapper_command="launchctl bsexec /"; else caldavd_wrapper_command=""; Index: bin/test =================================================================== --- bin/test (revision 14210) +++ bin/test (working copy) @@ -46,7 +46,7 @@ numjobs=""; reactor=""; -if [ "$(uname -s)" == "Darwin" ]; then +if [ "$(uname -s)" = "Darwin" ]; then reactor="--reactor=kqueue"; fi; @@ -65,7 +65,7 @@ echo " -u Run until the tests fail."; echo " -c Generate coverage reports."; - if [ "${1-}" == "-" ]; then return 0; fi; + if [ "${1-}" = "-" ]; then return 0; fi; exit 64; } Index: bin/testserver =================================================================== --- bin/testserver (revision 14210) +++ bin/testserver (working copy) @@ -57,7 +57,7 @@ echo " -z Use SSL."; echo " -D Turn on CalDAVTester debugging"; - if [ "${1-}" == "-" ]; then return 0; fi; + if [ "${1-}" = "-" ]; then return 0; fi; exit 64; } @@ -79,7 +79,7 @@ shift $((${OPTIND} - 1)); -if [ $# == 0 ]; then +if [ $# = 0 ]; then set - "--all"; fi;
_______________________________________________ calendarserver-dev mailing list calendarserver-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/calendarserver-dev