diff -Nru libneat-0.0.1~td192/autogen.sh libneat-0.0.1~td193/autogen.sh
--- libneat-0.0.1~td192/autogen.sh 2017-10-13 08:45:41.000000000 +0000
+++ libneat-0.0.1~td193/autogen.sh 2018-12-07 09:34:16.000000000 +0000
@@ -1,7 +1,7 @@
#!/bin/sh -e
rm -f CMakeCache.txt
-cmake -DCMAKE_INSTALL_PREFIX=/usr -DSOCKET_API=1 -DUSRSCTP_SUPPORT=1 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1 .
+cmake -DCMAKE_INSTALL_PREFIX=/usr -DSOCKET_API=1 -DUSRSCTP_SUPPORT=0 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1 .
cores=`getconf _NPROCESSORS_ONLN`
make -j${cores}
diff -Nru libneat-0.0.1~td192/build-rpm libneat-0.0.1~td193/build-rpm
--- libneat-0.0.1~td192/build-rpm 1970-01-01 00:00:00.000000000 +0000
+++ libneat-0.0.1~td193/build-rpm 2018-12-07 09:34:16.000000000 +0000
@@ -0,0 +1,94 @@
+#!/bin/bash -e
+#
+# Packaging Scripts
+# Copyright (C) 2017-2019 by Thomas Dreibholz
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Contact: dreibh@iem.uni-due.de
+
+
+# ---------------------------------------------------------------------------
+# USAGE:
+# ./make-rpm => Use current distribution and architecture
+# ./make-rpm fedora-30-x86_64 => F30, amd64
+# ./make-rpm fedora-rawhide-i386 => F30, i386
+# ...
+# ---------------------------------------------------------------------------
+
+
+DISTRIBUTIONS=`\
+( \
+while [ x$1 != "x" ] ; do \
+ echo $1
+ shift
+done \
+) | sort -u`
+if [ "${DISTRIBUTIONS}" == "" ] ; then
+ release=`cat /etc/fedora-release | sed -e "s/^\(.*\) release \([0-9]*\) (\(.*\))$/\2/g"`
+ arch=`uname -m`
+
+ DISTRIBUTIONS="fedora-${release}-${arch}"
+fi
+
+PACKAGE=`grep "^Name:" rpm/*.spec | head -n1 | sed -e "s/Name://g" -e "s/[ \t]*//g"`
+PACKAGE_VERSION=`grep "^Version:" rpm/*.spec | head -n1 | sed -e "s/Version://g" -e "s/[ \t]*//g"`
+
+echo -e "\x1b[34m###########################################\x1b[0m"
+echo -e "\x1b[34mPACKAGE: ${PACKAGE}\x1b[0m"
+echo -e "\x1b[34mPACKAGE_VERSION: ${PACKAGE_VERSION}\x1b[0m"
+echo -e "\x1b[34m###########################################\x1b[0m"
+
+
+# ====== Create source RPM ==================================================
+./make-srpm
+
+PACKAGE_SRPM=`find $HOME/rpmbuild/SRPMS/ -name "${PACKAGE}-*${PACKAGE_VERSION}*-*.src.rpm"`
+if [ ! -e "${PACKAGE_SRPM}" ] ; then
+ echo >&2 "ERROR: Cannot find SRPM ${PACKAGE}-*${PACKAGE_VERSION}*-*.src.rpm in $HOME/rpmbuild/SRPMS!"
+ exit 1
+fi
+
+
+# ====== Build binary RPMs ==================================================
+# Create binary RPMs
+for DISTRIBUTION in ${DISTRIBUTIONS} ; do
+ echo -e ""
+ echo -e "\x1b[34m`date +%FT%H:%M:%S`: ====== Creating binary RPM for ${DISTRIBUTION} ==========\x1b[0m"
+ echo -e ""
+
+ # NOTE: DISTRIBUTION may point to another directory (e.g. "rawhide" instead of "30")!
+ if [ ! -e "/etc/mock/${DISTRIBUTION}.cfg" ] ; then
+ echo >&2 "ERROR: Cannot find /etc/mock/${DISTRIBUTION}.cfg!"
+ exit 1
+ fi
+ distribution=`grep "config_opts..root.. =" /etc/mock/${DISTRIBUTION}.cfg | sed -e "s/^.* = //g" -e "s/'//g"`
+
+ # Remove old files
+ find /var/lib/mock/${DISTRIBUTION}/result -name "${PACKAGE}-*.rpm" | xargs --no-run-if-empty rm -f
+
+ # Build the binary RPM
+ # NOTE: using old chroot instead of container, to allow running it inside a container!
+ mock -r ${DISTRIBUTION} --old-chroot --init
+ mock -r ${DISTRIBUTION} --old-chroot --installdeps ${PACKAGE_SRPM}
+ mock -r ${DISTRIBUTION} --old-chroot --install openssl pesign
+ mock -r ${DISTRIBUTION} --old-chroot --no-clean --rebuild ${PACKAGE_SRPM}
+
+ # Check whether files are at the right location
+ PACKAGE_RPMS=`find /var/lib/mock/${distribution}/result -name "${PACKAGE}-*${PACKAGE_VERSION}*-*.rpm" | grep -v "${PACKAGE}-*${PACKAGE_VERSION}*-*.src.rpm" || true`
+ if [ "${PACKAGE_RPMS}" == "" ] ; then
+ echo >&2 "ERROR: Cannot find RPMs!"
+ exit 1
+ fi
+done
diff -Nru libneat-0.0.1~td192/ci/before-install libneat-0.0.1~td193/ci/before-install
--- libneat-0.0.1~td192/ci/before-install 2018-11-14 16:31:57.000000000 +0000
+++ libneat-0.0.1~td193/ci/before-install 2018-12-07 09:34:16.000000000 +0000
@@ -19,12 +19,19 @@
# Contact: dreibh@iem.uni-due.de
+CONTAINER="ubuntu-test"
+
+
# ###### Linux ##############################################################
-if [ "$TRAVIS_OS_NAME" = "linux" ] ; then
- sudo docker rm -f ubuntu-test || true
+if [ "${TRAVIS_OS_NAME}" == "linux" ] ; then
+
+ # NOTE: Using tmpfs for pbuilder and mock!
+ # The build machine therefore needs a sufficient amount of RAM!
+ sudo docker rm -f ${CONTAINER} || true
sudo docker run -d \
- --name ubuntu-test \
+ --name ${CONTAINER} \
--tmpfs /var/cache/pbuilder:rw,exec,dev,size=4g \
+ --tmpfs /var/lib/mock:rw,exec,dev,size=4g \
--cap-add=SYS_ADMIN --cap-add=NET_ADMIN \
--security-opt apparmor:unconfined \
-v $(pwd):/travis -w /travis \
@@ -32,12 +39,13 @@
sudo docker ps
# ###### Other ##############################################################
-elif [ "$TRAVIS_OS_NAME" = "osx" ] ; then
+elif [ "${TRAVIS_OS_NAME}" == "osx" ] ; then
+
brew update
- brew install ...
+ brew install $@
# ###### Error ##############################################################
else
- echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
+ echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=${TRAVIS_OS_NAME}"
exit 1
fi
diff -Nru libneat-0.0.1~td192/ci/build libneat-0.0.1~td193/ci/build
--- libneat-0.0.1~td192/ci/build 2018-11-14 16:31:57.000000000 +0000
+++ libneat-0.0.1~td193/ci/build 2018-12-07 09:34:16.000000000 +0000
@@ -20,37 +20,56 @@
# ###### Linux ##############################################################
-if [ "$TRAVIS_OS_NAME" = "linux" ] ; then
- if [ "$TOOL" = "compile" ] ; then
- sudo docker exec -t ubuntu-test bash -c "echo OPTIONS: CC=$COMPILER_C CXX=$COMPILER_CXX"
- sudo docker exec -t ubuntu-test bash -c "env CC=$COMPILER_C CXX=$COMPILER_CXX cmake ."
- sudo docker exec -t ubuntu-test bash -c "make VERBOSE=1"
-
- elif [ "$TOOL" = "pbuilder" ] ; then
- sudo docker exec -t ubuntu-test bash -c "sed -e 's/SKIP_PACKAGE_SIGNING=0/SKIP_PACKAGE_SIGNING=1/g' -i debian.conf"
- sudo docker exec -t ubuntu-test bash -c "env LANG=C.UTF-8 eatmydata ./build-deb"
-
- elif [ "$TOOL" = "mock" ] ; then
- sudo docker exec -t ubuntu-test bash -c "cat /etc/fedora-release"
- release=`sudo docker exec -t ubuntu-test bash -c "cat /etc/fedora-release | sed -e \"s/^\(.*\) release \([0-9]*\) (\(.*\))$/\2/g\""`
- release=`echo "$release" | sed -e "s/[^0-9]//g"`
- buildFor="fedora-$release-x86_64"
- echo "release=$release."
- echo "buildFor=$buildFor."
- sudo docker exec -t ubuntu-test bash -c "./make-rpm $buildFor"
+if [ "${TRAVIS_OS_NAME}" == "linux" ] ; then
+ if [ "${TOOL}" == "compile" ] ; then
+ echo "###### Compiling ... ##################################################"
+
+ if [ -e CMakeLists.txt ] ; then
+ sudo docker exec ubuntu-test env LANG=C.UTF CC=${COMPILER_C} CXX=${COMPILER_CXX} cmake . $@
+ elif [ -e configure.ac -o -e configure.in ] ; then
+ if [ -e bootstrap ] ; then
+ sudo docker exec ubuntu-test env LANG=C.UTF CC=${COMPILER_C} CXX=${COMPILER_CXX} ./bootstrap
+ sudo docker exec ubuntu-test env LANG=C.UTF CC=${COMPILER_C} CXX=${COMPILER_CXX} ./configure $@
+ elif [ -e autogen.sh ] ; then
+ sudo docker exec ubuntu-test env LANG=C.UTF CC=${COMPILER_C} CXX=${COMPILER_CXX} ./autogen.sh
+ else
+ sudo docker exec ubuntu-test env LANG=C.UTF CC=${COMPILER_C} CXX=${COMPILER_CXX} ./configure $@
+ fi
+ else
+ echo >&2 "WARNING: No build system detected. Trying to just call \"make\" ..."
+ fi
+
+ cores=`sudo docker exec ubuntu-test env LANG=C.UTF-8 getconf _NPROCESSORS_ONLN 2>/dev/null || true`
+ if [ $cores -gt 1 ] ; then
+ MAKEFLAGS="-j${cores}"
+ fi
+ sudo docker exec ubuntu-test env LANG=C.UTF-8 MAKEFLAGS=${MAKEFLAGS} make # VERBOSE=1
+
+ elif [ "${TOOL}" == "pbuilder" ] ; then
+ echo "###### Running pbuilder ... ###########################################"
+ sudo docker exec ubuntu-test env LANG=C.UTF-8 sed -e 's/SKIP_PACKAGE_SIGNING=0/SKIP_PACKAGE_SIGNING=1/g' -i debian.conf
+ sudo docker exec ubuntu-test env LANG=C.UTF-8 eatmydata ./build-deb
+
+ elif [ "${TOOL}" == "mock" ] ; then
+ echo "###### Running mock ... ###############################################"
+ release=`sudo docker exec -t ubuntu-test bash -c "LANG=C.UTF-8 ; cat /etc/fedora-release | sed -e \"s/^\(.*\) release \([0-9]*\) (\(.*\))$/\2/g\"" | sed -e "s/[^0-9]//g"`
+ arch=`sudo docker exec -t ubuntu-test env LANG=C.UTF-8 uname -m | sed -e "s/[^0-9a-zA-Z_-+]//g"`
+ sudo docker exec ubuntu-test env LANG=C.UTF-8 ./build-rpm fedora-${release}-${arch}
else
- echo >&2 "ERROR: Invalid setting of TOOL=$TOOL"
+ echo >&2 "ERROR: Invalid setting of TOOL=${TOOL}"
exit 1
fi
+
# ###### Other ##############################################################
-elif [ "$TRAVIS_OS_NAME" = "osx" ] ; then
- cmake .
+elif [ "${TRAVIS_OS_NAME}" == "osx" ] ; then
+ cmake . $@
make VERBOSE=1
+
# ###### Error ##############################################################
else
- echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
+ echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=${TRAVIS_OS_NAME}"
exit 1
fi
diff -Nru libneat-0.0.1~td192/ci/get-dependencies libneat-0.0.1~td193/ci/get-dependencies
--- libneat-0.0.1~td192/ci/get-dependencies 2018-11-14 16:31:57.000000000 +0000
+++ libneat-0.0.1~td193/ci/get-dependencies 2018-12-07 09:34:16.000000000 +0000
@@ -31,6 +31,8 @@
dep = re.compile(r'^([a-zA-Z0-9-+\.]+)[\s]*(|\|.*|\(.*)[\s]*$')
def extractDependencies(line, variant):
+ dependencies = []
+
# Remove "build-depends:", etc.:
m = re.match(r'^(.*:)(.*$)', line)
if m != None:
@@ -56,18 +58,28 @@
except:
pass
- sys.stdout.write(dependency + ' ')
+ dependencies.append(dependency)
+
+ return dependencies
# ###### Main program #######################################################
# ====== Check arguments ====================================================
-if len(sys.argv) != 2:
- sys.stderr.write('Usage: ' + sys.argv[0] + ' debian|ubuntu|fedora\n')
+if len(sys.argv) < 2:
+ sys.stderr.write('Usage: ' + sys.argv[0] + ' debian|ubuntu|fedora [-i|--install]\n')
sys.exit(1)
-variant = sys.argv[1]
+variant = sys.argv[1]
+runInstall = False
+for i in range(2, len(sys.argv)):
+ if sys.argv[i] == '-i' or sys.argv[i] == '--install':
+ runInstall = True
+ else:
+ sys.stderr.write('ERROR: Bad parameter ' + sys.argv[i] + '!')
+ sys.exit(1)
# ====== Debian/Ubuntu ======================================================
+dependencies = [ ]
if ((variant == 'debian') or (variant == 'ubuntu')):
if os.path.exists('debian/control'):
with open('debian/control', 'r') as fp:
@@ -78,15 +90,22 @@
line_lower = line.lower()
if inside:
if line.startswith((' ', "\t")):
- extractDependencies(line, variant)
+ dependencies = dependencies + extractDependencies(line, variant)
continue
elif line.startswith('#'):
continue
inside = False
if line_lower.startswith(('build-depends:', 'build-depends-indep:')):
- extractDependencies(line, variant)
+ dependencies = dependencies + extractDependencies(line, variant)
inside = True
- sys.stdout.write('\n')
+
+ for dependency in sorted(dependencies):
+ sys.stdout.write(dependency + ' ')
+ sys.stdout.write('\n')
+
+ if runInstall == True:
+ subprocess.call([ 'apt-get', 'install', '-y' ] + dependencies)
+
# ====== Fedora =============================================================
elif variant == 'fedora':
@@ -100,15 +119,21 @@
line_lower = line.lower()
if inside:
if line.startswith((' ', "\t")):
- extractDependencies(line, variant)
+ dependencies = dependencies + extractDependencies(line, variant)
continue
elif line.startswith('#'):
continue
inside = False
if line_lower.startswith('buildrequires:'):
- extractDependencies(line, variant)
+ dependencies = dependencies + extractDependencies(line, variant)
inside = True
- sys.stdout.write('\n')
+
+ for dependency in sorted(dependencies):
+ sys.stdout.write(dependency + ' ')
+ sys.stdout.write('\n')
+
+ if runInstall == True:
+ subprocess.call([ 'dnf', 'install', '-y' ] + dependencies)
# ====== Error ==============================================================
else:
diff -Nru libneat-0.0.1~td192/ci/install libneat-0.0.1~td193/ci/install
--- libneat-0.0.1~td192/ci/install 2018-11-14 16:31:57.000000000 +0000
+++ libneat-0.0.1~td193/ci/install 2018-12-07 09:34:16.000000000 +0000
@@ -19,55 +19,91 @@
# Contact: dreibh@iem.uni-due.de
-UBUNTU_MIRROR="se.archive.ubuntu.com"
+CONTAINER="ubuntu-test"
+UBUNTU_MIRROR="archive.ubuntu.com"
# ###### Linux ##############################################################
-if [ "$TRAVIS_OS_NAME" == "linux" ] ; then
+if [ "${TRAVIS_OS_NAME}" == "linux" ] ; then
# ====== Ubuntu Linux ====================================================
- if [ "$VARIANT" == "ubuntu" -o "$VARIANT" == "debian" ] ; then
+ if [ "${VARIANT}" == "ubuntu" -o "${VARIANT}" == "debian" ] ; then
+ APT_UPDATE='env LANG=C.UTF-8 apt-get update -o Acquire::GzipIndexes=false'
+ APT_INSTALL="env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef --no-install-recommends"
+ APT_UPGRADE="env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef --no-install-recommends"
+
+ # ====== Prepare container ============================================
+ echo "###### Preparing container ... ########################################"
+ # Use uncompressed package lists. Necessary to work around
+ # "apt-show-version" problems due to usage of compressed lists in
+ # Docker containers:
+ # https://askubuntu.com/questions/916199/install-apt-show-versions-inside-an-ubuntu-docker-container
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 \
+ sed -e "s#http://archive.ubuntu.com/ubuntu/#http://${UBUNTU_MIRROR}/ubuntu/#g" -i /etc/apt/sources.list
+ sudo docker exec ${CONTAINER} bash -c "find /var/lib/apt/lists/ -maxdepth 1 -type f | xargs rm -f"
+ sudo docker exec ${CONTAINER} ${APT_UPDATE}
+
echo "Installing eatmydata ..."
- sudo docker exec ubuntu-test bash -c "sed -e 's#http://archive.ubuntu.com/ubuntu/#http://${UBUNTU_MIRROR}/ubuntu/#g' -i /etc/apt/sources.list"
- sudo docker exec ubuntu-test bash -c "apt-get update"
- sudo docker exec ubuntu-test bash -c "apt-get install -y eatmydata python3"
+ echo sudo docker exec ${CONTAINER} ${APT_INSTALL} eatmydata python3 software-properties-common
+ sudo docker exec ${CONTAINER} ${APT_INSTALL} eatmydata python3 software-properties-common
+
+ distribution=`sudo docker exec ${CONTAINER} env LANG=C.UTF-8 lsb_release -cs | sed -e "s/[^0-9a-zA-Z]//g"`
+ if [ "${VARIANT}" == "debian" ] ; then
+ if [[ "$DOCKER" =~ ^(debian:)(.*)$ ]] ; then
+ distribution="${BASH_REMATCH[2]}"
+ fi
+ fi
+ echo "distribution=$distribution"
+
+ if [ "${VARIANT}" == "ubuntu" ] ; then
+ mirror="http://${UBUNTU_MIRROR}/ubuntu/"
+ else
+ mirror="http://deb.debian.org/debian"
+ fi
+ echo "mirror=$mirror"
+
+
+ # ====== Ubuntu/Debian: add repositories (dreibh:ppa, backports, updates) ===
+ echo "###### Adding dreibh:ppa, backports, updates to container ... ###############"
+ if [ "${VARIANT}" == "ubuntu" ] ; then
+ echo "Ubuntu: adding adding ppa:dreibh/ppa and ${distribution}-backports ..."
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 apt-add-repository -y ppa:dreibh/ppa
+ sudo docker exec ${CONTAINER} eatmydata ${APT_UPDATE}
+ fi
+ if [ "${VARIANT}" == "ubuntu" -o "${VARIANT}" == "debian" ] ; then
+ echo "Ubuntu/Debian: adding ${distribution}-backports ..."
+ # NOTE: backports may be unavailable -> ignore error on apt-get update!
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 apt-add-repository "deb ${mirror} ${distribution}-updates main universe"
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 apt-add-repository "deb ${mirror} ${distribution}-backports main universe"
+ sudo docker exec ${CONTAINER} eatmydata ${APT_UPDATE} || true
+ sudo docker exec ${CONTAINER} eatmydata ${APT_UPGRADE}
+ fi
+
# ====== Ubuntu/Debian: extract dependencies ==========================
+ echo "###### Obtaining build dependencies ... ###############################"
echo "Extracting dependencies ..."
- UBUNTU_DEPS=`sudo docker exec ubuntu-test bash -c "ci/get-dependencies $VARIANT"`
- echo "#### Required packages for build: #####"
- echo "${UBUNTU_DEPS}"
+ UBUNTU_DEPS=`sudo docker exec ${CONTAINER} env LANG=C.UTF-8 ci/get-dependencies ${VARIANT}`
+ echo "Dependencies: ${UBUNTU_DEPS}"
- # ====== Ubuntu/Debian: set up compiler ===============================
- if [ "$TOOL" == "compile" ] ; then
- echo "Installing compiler and dependencies ..."
- sudo docker exec ubuntu-test bash -c "eatmydata apt-get install -y joe clang ${UBUNTU_DEPS}"
- # ====== Ubuntu/Debian: set up pbuilder ===============================
- elif [ "$TOOL" == "pbuilder" ] ; then
- echo "Installing pbuilder and dependencies ..."
- sudo docker exec ubuntu-test bash -c "eatmydata apt-get install -y joe devscripts pbuilder ${UBUNTU_DEPS}"
-
- distribution=`sudo docker exec ubuntu-test bash -c "lsb_release -cs" | sed -e "s/[^0-9a-zA-Z]//g"`
- if [ "$VARIANT" == "debian" ] ; then
- if [[ "$DOCKER" =~ ^(debian:)(.*)$ ]] ; then
- distribution="${BASH_REMATCH[2]}"
- fi
- fi
- echo "distribution=$distribution"
+ # ====== Ubuntu/Debian: set up compiler ===============================
+ if [ "${TOOL}" == "compile" ] ; then
+ echo "###### Installing compile environment ... #############################"
+ sudo docker exec ${CONTAINER} eatmydata ${APT_INSTALL} build-essential joe clang ${UBUNTU_DEPS}
- if [ "$VARIANT" == "ubuntu" ] ; then
- mirror="http://${UBUNTU_MIRROR}/ubuntu/"
- else
- mirror="http://deb.debian.org/debian"
- fi
- echo "mirror=$mirror"
- # ====== PBuilder environment ======================================
- echo "Creating pbuilder environment ..."
- sudo docker exec ubuntu-test bash -c "cat >/etc/pbuilderrc </etc/pbuilderrc < ignore error on apt-get update!
- sudo docker exec ubuntu-test bash -c "eatmydata pbuilder login --save-after-login < ignore error on apt-get update!
+ sudo docker exec ${CONTAINER} bash -c "env LANG=C.UTF-8 eatmydata pbuilder login --save-after-login <&2 "ERROR: Invalid setting of TOOL=$TOOL"
+ echo >&2 "ERROR: Invalid setting of TOOL=${TOOL}"
exit 1
fi
+ echo "###### Finished setup of build environment ############################"
+
# ======Fedora Core Linux ================================================
- elif [ "$VARIANT" == "fedora" ] ; then
- FEDORA_DEPS="`ci/get-dependencies $VARIANT`"
+ elif [ "${VARIANT}" == "fedora" ] ; then
+ FEDORA_DEPS="`ci/get-dependencies ${VARIANT}`"
# ====== Fedora: set up compiler ======================================
- if [ "$TOOL" == "compile" ] ; then
- sudo docker exec ubuntu-test bash -c "dnf install -y make clang ${FEDORA_DEPS}"
+ if [ "${TOOL}" == "compile" ] ; then
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 \
+ dnf install -y make clang ${FEDORA_DEPS}
# ====== Fedora: set up pbuilder ======================================
- elif [ "$TOOL" == "mock" ] ; then
- sudo docker exec ubuntu-test bash -c "dnf install -y make findutils rpmdevtools fedora-release mock ${FEDORA_DEPS}"
+ elif [ "${TOOL}" == "mock" ] ; then
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 \
+ dnf install -y make findutils fedora-release mock rpmdevtools ${FEDORA_DEPS}
else
- echo >&2 "ERROR: Invalid setting of TOOL=$TOOL"
+ echo >&2 "ERROR: Invalid setting of TOOL=${TOOL}"
exit 1
fi
# ======Fedora Core Linux ================================================
else
- echo >&2 "ERROR: Invalid setting of VARIANT=$VARIANT"
+ echo >&2 "ERROR: Invalid setting of VARIANT=${VARIANT}"
exit 1
fi
+
# ###### Other ##############################################################
-elif [ "$TRAVIS_OS_NAME" == "osx" ] ; then
- echo "TBD"
+elif [ "${TRAVIS_OS_NAME}" == "osx" ] ; then
+ echo "Nothing to be done here."
+
# ###### Error ##############################################################
else
- echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
+ echo >&2 "ERROR: Invalid setting of TRAVIS_OS_NAME=${TRAVIS_OS_NAME}"
exit 1
fi
diff -Nru libneat-0.0.1~td192/ci/run-test libneat-0.0.1~td193/ci/run-test
--- libneat-0.0.1~td192/ci/run-test 2018-11-14 16:31:57.000000000 +0000
+++ libneat-0.0.1~td193/ci/run-test 2018-12-07 09:34:16.000000000 +0000
@@ -7,16 +7,16 @@
# export VARIANT="debian"
# export TOOL="pbuilder"
-export DOCKER="ubuntu:bionic"
+export DOCKER="ubuntu:cosmic"
export VARIANT="ubuntu"
-export TOOL="compile"
+export TOOL="pbuilder"
-# export DOCKER="fedora:29"
+# export DOCKER="fedora:30"
# export VARIANT="fedora"
# export TOOL="mock"
-SCRIPTS="before-install install build"
+SCRIPTS="before-install install build test"
# SCRIPTS="install"
for script in $SCRIPTS ; do
diff -Nru libneat-0.0.1~td192/ci/test libneat-0.0.1~td193/ci/test
--- libneat-0.0.1~td192/ci/test 1970-01-01 00:00:00.000000000 +0000
+++ libneat-0.0.1~td193/ci/test 2018-12-07 09:34:16.000000000 +0000
@@ -0,0 +1,99 @@
+#!/bin/bash -e
+#
+# Travis CI Scripts
+# Copyright (C) 2018-2019 by Thomas Dreibholz
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Contact: dreibh@iem.uni-due.de
+
+
+CONTAINER="ubuntu-test"
+
+
+# ###### Linux ##############################################################
+if [ "${TRAVIS_OS_NAME}" == "linux" ] ; then
+
+ # ====== pbuilder environment ============================================
+ if [ "$TOOL" == "pbuilder" ] ; then
+ CHANGELOG_HEADER="`head -n1 debian/changelog`"
+ PACKAGE=`echo ${CHANGELOG_HEADER} | sed -e "s/(.*//" -e "s/ //g"`
+ PACKAGE_VERSION=`echo ${CHANGELOG_HEADER} | sed -e "s/.*(//" -e "s/).*//" -e "s/ //g" -e "s/ //g" -e "s/^[0-9]://g"`
+ OUTPUT_VERSION=`echo ${PACKAGE_VERSION} | sed -e "s/\(ubuntu\|ppa\)[0-9]*$/\1/"`
+ DEBIAN_VERSION=`echo ${OUTPUT_VERSION} | sed -e "s/\(ubuntu\|ppa\)$//1"`
+
+ packages=""
+ if [ $# -eq 0 ] ; then
+ echo "Looking for *${DEBIAN_VERSION}*.deb in /var/cache/pbuilder/result ..."
+ packages="`sudo docker exec ${CONTAINER} env LANG=C.UTF-8 find /var/cache/pbuilder/result -name "*${DEBIAN_VERSION}*.deb"`"
+ fi
+ while [ $# -gt 0 ] ; do
+ echo "Looking for $1*${DEBIAN_VERSION}*.deb in /var/cache/pbuilder/result ..."
+ packages="${packages} `sudo docker exec ${CONTAINER} env LANG=C.UTF-8 find /var/cache/pbuilder/result -name "$1*${DEBIAN_VERSION}*.deb"`"
+ shift
+ done
+ packages=`echo "${packages}" | xargs -n1 | sort -u | xargs`
+ if [ "${packages}" == "" ] ; then
+ echo >&2 "ERROR: No packages have been found!"
+ exit 1
+ fi
+
+ echo "Installing ${packages} ..."
+ # NOTE: Older "apt-get" versions do not handle local files!
+ if ! sudo docker exec ${CONTAINER} env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive dpkg -i ${packages} ; then
+ echo "There may be some dependencies missing. Trying to install them ..."
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt-get install -fy -o Dpkg::Options::="--force-confold" -o Dpkg::Options::="--force-confdef" --no-install-recommends
+ echo "Retrying to install ${packages} ..."
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive dpkg -i ${packages}
+ fi
+ echo "Done!"
+
+ # ====== mock environment ================================================
+ elif [ "$TOOL" == "mock" ] ; then
+ PACKAGE=`grep "^Name:" rpm/*.spec | head -n1 | sed -e "s/Name://g" -e "s/[ \t]*//g"`
+ PACKAGE_VERSION=`grep "^Version:" rpm/*.spec | head -n1 | sed -e "s/Version://g" -e "s/[ \t]*//g"`
+
+ release=`sudo docker exec ${CONTAINER} bash -c "LANG=C.UTF-8 ; cat /etc/fedora-release | sed -e \"s/^\(.*\) release \([0-9]*\) (\(.*\))$/\2/g\"" | sed -e "s/[^0-9]//g"`
+ arch=`sudo docker exec ${CONTAINER} env LANG=C.UTF-8 uname -m | sed -e "s/[^0-9a-zA-Z_-+]//g"`
+ if ! sudo docker exec ${CONTAINER} cd /var/lib/mock/fedora-${release}-${arch}/result ; then
+ if sudo docker exec ${CONTAINER} cd /var/lib/mock/fedora-rawhide-${arch}/result ; then
+ release="rawhide"
+ else
+ echo >&2 "ERROR: No results have been found!"
+ exit 1
+ fi
+ fi
+
+ packages=""
+ if [ $# -eq 0 ] ; then
+ echo "Looking for *${PACKAGE_VERSION}*.rpm in /var/lib/mock/fedora-${release}-${arch}/result ..."
+ packages="`sudo docker exec ${CONTAINER} env LANG=C.UTF-8 find /var/lib/mock/fedora-${release}-${arch}/result -name "*${PACKAGE_VERSION}*.rpm" | grep -v "\.src\.rpm$"`"
+ fi
+ while [ $# -gt 0 ] ; do
+ echo "Looking for $1*${PACKAGE_VERSION}*.rpm in /var/lib/mock/fedora-${release}-${arch}/result ..."
+ packages="${packages} `sudo docker exec ${CONTAINER} env LANG=C.UTF-8 find /var/lib/mock/fedora-${release}-${arch}/result -name "$1*${PACKAGE_VERSION}*.rpm" | grep -v "\.src\.rpm$"`"
+ shift
+ done
+ packages=`echo "${packages}" | xargs -n1 | sort -u | xargs`
+ if [ "${packages}" == "" ] ; then
+ echo >&2 "ERROR: No packages have been found!"
+ exit 1
+ fi
+
+ echo "Installing ${packages} ..."
+ sudo docker exec ${CONTAINER} env LANG=C.UTF-8 dnf install -y --allowerasing ${packages}
+ echo "Done!"
+
+ fi
+fi
diff -Nru libneat-0.0.1~td192/CMakeLists.txt libneat-0.0.1~td193/CMakeLists.txt
--- libneat-0.0.1~td192/CMakeLists.txt 2018-11-14 16:50:45.000000000 +0000
+++ libneat-0.0.1~td193/CMakeLists.txt 2018-12-07 09:34:36.000000000 +0000
@@ -1,9 +1,9 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2)
PROJECT(libneat)
SET(BUILD_MAJOR "0")
SET(BUILD_MINOR "0")
-SET(BUILD_PATCH "1~td192")
+SET(BUILD_PATCH "1~td193")
SET(BUILD_VERSION ${BUILD_MAJOR}.${BUILD_MINOR}.${BUILD_PATCH})
@@ -11,31 +11,34 @@
# INSTALLATION_DIRECTORIES
#############################################################################
-SET(CMAKE_INSTALL_BINDIR_DOC "user executables [PREFIX/bin]")
-SET(CMAKE_INSTALL_SBINDIR_DOC "system admin executables [EPREFIX/sbin]")
-SET(CMAKE_INSTALL_DATADIR_DOC "read-only architecture-independent data [PREFIX/share]")
-SET(CMAKE_INSTALL_SYSCONFDIR_DOC "read-only single-machine data [PREFIX/etc]")
-SET(CMAKE_INSTALL_LOCALSTATEDIR_DOC "modifiable single-machine data [PREFIX/var]")
-SET(CMAKE_INSTALL_LIBDIR_DOC "object code libraries [PREFIX/lib]")
-SET(CMAKE_INSTALL_INCLUDEDIR_DOC "read-only includes [PREFIX/include]")
-SET(CMAKE_INSTALL_MANDIR_DOC "man documentation [PREFIX/share/man]")
-
-SET(CMAKE_INSTALL_BINDIR "bin"
- CACHE PATH ${CMAKE_INSTALL_BINDIR_DOC})
-SET(CMAKE_INSTALL_SBINDIR "sbin"
- CACHE PATH ${CMAKE_INSTALL_SBINDIR_DOC})
-SET(CMAKE_INSTALL_DATADIR "share"
- CACHE PATH ${CMAKE_INSTALL_DATADIR_DOC})
-SET(CMAKE_INSTALL_SYSCONFDIR "etc"
- CACHE PATH ${CMAKE_INSTALL_SYSCONFDIR_DOC})
-SET(CMAKE_INSTALL_LOCALSTATEDIR "var"
- CACHE PATH ${CMAKE_INSTALL_LOCALSTATEDIR_DOC})
-SET(CMAKE_INSTALL_LIBDIR "lib"
- CACHE PATH ${CMAKE_INSTALL_LIBDIR_DOC})
-SET(CMAKE_INSTALL_INCLUDEDIR "include"
- CACHE PATH ${CMAKE_INSTALL_INCLUDEDIR_DOC})
-SET(CMAKE_INSTALL_MANDIR "share/man"
- CACHE PATH ${CMAKE_INSTALL_MANDIR_DOC})
+# See: https://cmake.org/cmake/help/v3.0/module/GNUInstallDirs.html
+INCLUDE(GNUInstallDirs)
+
+# SET(CMAKE_INSTALL_BINDIR_DOC "user executables [PREFIX/bin]")
+# SET(CMAKE_INSTALL_SBINDIR_DOC "system admin executables [EPREFIX/sbin]")
+# SET(CMAKE_INSTALL_DATADIR_DOC "read-only architecture-independent data [PREFIX/share]")
+# SET(CMAKE_INSTALL_SYSCONFDIR_DOC "read-only single-machine data [PREFIX/etc]")
+# SET(CMAKE_INSTALL_LOCALSTATEDIR_DOC "modifiable single-machine data [PREFIX/var]")
+# SET(CMAKE_INSTALL_LIBDIR_DOC "object code libraries [PREFIX/lib]")
+# SET(CMAKE_INSTALL_INCLUDEDIR_DOC "read-only includes [PREFIX/include]")
+# SET(CMAKE_INSTALL_MANDIR_DOC "man documentation [PREFIX/share/man]")
+#
+# SET(CMAKE_INSTALL_BINDIR "bin"
+# CACHE PATH ${CMAKE_INSTALL_BINDIR_DOC})
+# SET(CMAKE_INSTALL_SBINDIR "sbin"
+# CACHE PATH ${CMAKE_INSTALL_SBINDIR_DOC})
+# SET(CMAKE_INSTALL_DATADIR "share"
+# CACHE PATH ${CMAKE_INSTALL_DATADIR_DOC})
+# SET(CMAKE_INSTALL_SYSCONFDIR "etc"
+# CACHE PATH ${CMAKE_INSTALL_SYSCONFDIR_DOC})
+# SET(CMAKE_INSTALL_LOCALSTATEDIR "var"
+# CACHE PATH ${CMAKE_INSTALL_LOCALSTATEDIR_DOC})
+# SET(CMAKE_INSTALL_LIBDIR "lib"
+# CACHE PATH ${CMAKE_INSTALL_LIBDIR_DOC})
+# SET(CMAKE_INSTALL_INCLUDEDIR "include"
+# CACHE PATH ${CMAKE_INSTALL_INCLUDEDIR_DOC})
+# SET(CMAKE_INSTALL_MANDIR "share/man"
+# CACHE PATH ${CMAKE_INSTALL_MANDIR_DOC})
#############################################################################
diff -Nru libneat-0.0.1~td192/debian/changelog libneat-0.0.1~td193/debian/changelog
--- libneat-0.0.1~td192/debian/changelog 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/changelog 2018-11-15 00:08:08.000000000 +0000
@@ -1,4 +1,4 @@
-libneat (0.0.1~td192-1ppa1~cosmic1~ppa0) cosmic; urgency=high
+libneat (0.0.1~td193-1ppa1~cosmic1~ppa0) cosmic; urgency=high
* Initial release.
diff -Nru libneat-0.0.1~td192/debian/control libneat-0.0.1~td193/debian/control
--- libneat-0.0.1~td192/debian/control 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/control 2018-11-15 00:08:08.000000000 +0000
@@ -2,7 +2,7 @@
Maintainer: NEAT Project
Section: net
Priority: optional
-Build-Depends: cmake,
+Build-Depends: cmake (>= 3.0.2) | cmake3,
debhelper (>= 9),
libfile-fcntllock-perl,
libjansson-dev,
@@ -10,9 +10,8 @@
libmnl-dev,
libsctp-dev,
libssl-dev,
- libusrsctp-dev,
libuv1-dev (>= 1.0.2)
-Standards-Version: 4.1.1
+Standards-Version: 4.2.1
Vcs-Browser: https://github.com/NEAT-project/neat
Vcs-Git: https://github.com/NEAT-project/neat.git
Homepage: https://github.com/NEAT-project/neat
diff -Nru libneat-0.0.1~td192/debian/libneat0.install libneat-0.0.1~td193/debian/libneat0.install
--- libneat-0.0.1~td192/debian/libneat0.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat0.install 2018-11-15 00:08:08.000000000 +0000
@@ -1 +1 @@
-usr/lib/libneat.so.*
+/usr/lib/*/libneat.so.*
diff -Nru libneat-0.0.1~td192/debian/libneat-dev.install libneat-0.0.1~td193/debian/libneat-dev.install
--- libneat-0.0.1~td192/debian/libneat-dev.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat-dev.install 2018-11-15 00:08:08.000000000 +0000
@@ -1,2 +1,2 @@
-usr/include/neat.h
-usr/lib/libneat*.so
+/usr/include/neat.h
+/usr/lib/*/libneat*.so
diff -Nru libneat-0.0.1~td192/debian/libneat-examples.install libneat-0.0.1~td193/debian/libneat-examples.install
--- libneat-0.0.1~td192/debian/libneat-examples.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat-examples.install 2018-11-15 00:08:08.000000000 +0000
@@ -1,10 +1,10 @@
-usr/lib/libneat/client
-usr/lib/libneat/client_dtls_echo
-usr/lib/libneat/client_http_get
-usr/lib/libneat/peer
-usr/lib/libneat/server_chargen
-usr/lib/libneat/server_daytime
-usr/lib/libneat/server_discard
-usr/lib/libneat/server_dtls_echo
-usr/lib/libneat/server_echo
-usr/lib/libneat/tneat
+/usr/lib/*/libneat/client
+/usr/lib/*/libneat/client_dtls_echo
+/usr/lib/*/libneat/client_http_get
+/usr/lib/*/libneat/peer
+/usr/lib/*/libneat/server_chargen
+/usr/lib/*/libneat/server_daytime
+/usr/lib/*/libneat/server_discard
+/usr/lib/*/libneat/server_dtls_echo
+/usr/lib/*/libneat/server_echo
+/usr/lib/*/libneat/tneat
diff -Nru libneat-0.0.1~td192/debian/libneat-socketapi0.install libneat-0.0.1~td193/debian/libneat-socketapi0.install
--- libneat-0.0.1~td192/debian/libneat-socketapi0.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat-socketapi0.install 2018-11-15 00:08:08.000000000 +0000
@@ -1 +1 @@
-usr/lib/libneat-socketapi.so.*
+/usr/lib/*/libneat-socketapi.so.*
diff -Nru libneat-0.0.1~td192/debian/libneat-socketapi-dev.install libneat-0.0.1~td193/debian/libneat-socketapi-dev.install
--- libneat-0.0.1~td192/debian/libneat-socketapi-dev.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat-socketapi-dev.install 2018-11-15 00:08:08.000000000 +0000
@@ -1 +1 @@
-usr/include/neat-socketapi.h
+/usr/include/neat-socketapi.h
diff -Nru libneat-0.0.1~td192/debian/libneat-socketapi-examples.install libneat-0.0.1~td193/debian/libneat-socketapi-examples.install
--- libneat-0.0.1~td192/debian/libneat-socketapi-examples.install 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/libneat-socketapi-examples.install 2018-11-15 00:08:08.000000000 +0000
@@ -1,4 +1,4 @@
-usr/lib/libneat/httpget
-usr/lib/libneat/httpserver1
-usr/lib/libneat/httpserver2-select
-usr/lib/libneat/httpserver2-threads
+/usr/lib/*/libneat/httpget
+/usr/lib/*/libneat/httpserver1
+/usr/lib/*/libneat/httpserver2-select
+/usr/lib/*/libneat/httpserver2-threads
diff -Nru libneat-0.0.1~td192/debian/rules libneat-0.0.1~td193/debian/rules
--- libneat-0.0.1~td192/debian/rules 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/rules 2018-11-15 00:08:08.000000000 +0000
@@ -7,12 +7,12 @@
# --with=sphinxdoc
override_dh_auto_configure:
- dh_auto_configure -- -DSOCKET_API=1 -DUSRSCTP_SUPPORT=1 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1
+ dh_auto_configure -- -DSOCKET_API=1 -DUSRSCTP_SUPPORT=0 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1
override_dh_auto_build:
# PYTHONPATH=. http_proxy='127.0.0.1:9' sphinx-build -N -bhtml docs/ docs/_build/html # HTML generator
- # !!! FIXME: python-recommonmark is not available in any recent Ubuntu distribution.
+ # !!! python-recommonmark is not available in any recent Ubuntu distribution.
# Exotic experimental package with further exotic dependencies -> Skipping documentation at the moment ...
mkdir -p docs/_build/html
diff -Nru libneat-0.0.1~td192/debian/source/format libneat-0.0.1~td193/debian/source/format
--- libneat-0.0.1~td192/debian/source/format 2018-11-14 16:54:29.000000000 +0000
+++ libneat-0.0.1~td193/debian/source/format 2018-11-15 00:08:08.000000000 +0000
@@ -1 +1 @@
-3.0 (native)
+3.0 (quilt)
diff -Nru libneat-0.0.1~td192/.gitignore libneat-0.0.1~td193/.gitignore
--- libneat-0.0.1~td192/.gitignore 1970-01-01 00:00:00.000000000 +0000
+++ libneat-0.0.1~td193/.gitignore 2016-12-22 13:29:50.000000000 +0000
@@ -0,0 +1,2 @@
+# ignore build directory
+build/
diff -Nru libneat-0.0.1~td192/make-srpm libneat-0.0.1~td193/make-srpm
--- libneat-0.0.1~td192/make-srpm 1970-01-01 00:00:00.000000000 +0000
+++ libneat-0.0.1~td193/make-srpm 2018-12-07 09:34:16.000000000 +0000
@@ -0,0 +1,132 @@
+#!/bin/bash -e
+#
+# Packaging Scripts
+# Copyright (C) 2017-2019 by Thomas Dreibholz
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Contact: dreibh@iem.uni-due.de
+
+
+# ---------------------------------------------------------------------------
+# USAGE:
+# ./make-rpm
+# ---------------------------------------------------------------------------
+
+
+# ====== Obtain package and version information =============================
+PACKAGE=`grep "^Name:" rpm/*.spec | head -n1 | sed -e "s/Name://g" -e "s/[ \t]*//g"`
+PACKAGE_VERSION=`grep "^Version:" rpm/*.spec | head -n1 | sed -e "s/Version://g" -e "s/[ \t]*//g"`
+PACKAGE_RELEASE=`grep "^Release:" rpm/*.spec | head -n1 | sed -e "s/Release://g" -e "s/[ \t]*//g"`
+
+echo -e "\x1b[34m###########################################\x1b[0m"
+echo -e "\x1b[34mPACKAGE: ${PACKAGE}\x1b[0m"
+echo -e "\x1b[34mPACKAGE_VERSION: ${PACKAGE_VERSION}\x1b[0m"
+echo -e "\x1b[34mPACKAGE_RELEASE: ${PACKAGE}_RELEASE\x1b[0m"
+echo -e "\x1b[34m###########################################\x1b[0m"
+
+# ====== Check with Debian package's version ================================
+if [ -e debian/changelog ] ; then
+ DEBIAN_CHANGELOG_HEADER="`head -n1 debian/changelog`"
+
+ # The package name, e.g. MyApplication
+ DEBIAN_PACKAGE=`echo ${DEBIAN_CHANGELOG_HEADER} | sed -e "s/(.*//" -e "s/ //g"`
+ # The package distribution, e.g. precise, raring, ...
+ DEBIAN_PACKAGE_DISTRIBUTION=`echo ${DEBIAN_CHANGELOG_HEADER} | sed -e "s/[^)]*)//" -e "s/;.*//g" -e "s/ //g"`
+ # The package's version, e.g. 1.2.3-1ubuntu1
+ DEBIAN_PACKAGE_VERSION=`echo ${DEBIAN_CHANGELOG_HEADER} | sed -e "s/.*(//" -e "s/).*//" -e "s/ //g" -e "s/ //g" -e "s/^[0-9]://g"`
+ # The package's output version, e.g. 1.2.3-1ubuntu
+ DEBIAN_OUTPUT_VERSION=`echo ${DEBIAN_PACKAGE_VERSION} | sed -e "s/\(ubuntu\|ppa\)[0-9]*$/\1/"`
+ # The package's Debian version, e.g. 1.2.3-1
+ DEBIAN_VERSION=`echo ${DEBIAN_OUTPUT_VERSION} | sed -e "s/\(ubuntu\|ppa\)$//1"`
+ # The package's upstream version, e.g. 1.2.3
+ DEBIAN_UPSTREAM_VERSION=`echo ${DEBIAN_VERSION} | sed -e "s/-[0-9]*$//"`
+
+ if [ "${PACKAGE}-${PACKAGE_VERSION}" != "${DEBIAN_PACKAGE}-${DEBIAN_UPSTREAM_VERSION}" ] ; then
+ echo >&2 "ERROR: RPM version and Debian version do not match -> ${PACKAGE}-${PACKAGE_VERSION} vs. ${DEBIAN_PACKAGE}-${DEBIAN_UPSTREAM_VERSION}!"
+ exit 1
+ fi
+ if [ ! -e ./debian.conf ] ; then
+ echo >&2 "ERROR: debian.conf does not exist -> no configuration for the new package!"
+ exit 1
+ fi
+fi
+
+if [ -e rpm.conf ] ; then
+ . ./rpm.conf
+fi
+
+
+# ====== Create upstream source package =====================================
+echo -e ""
+echo -e "\x1b[34m`date +%FT%H:%M:%S`: ====== Creating upstream package ======================================\x1b[0m"
+echo -e ""
+if [ "${UPSTREAM_PACKAGE}" = "" ] ; then
+ for UPSTREAM_PACKAGE_TYPE in xz bz2 gz ; do
+ UPSTREAM_PACKAGE="`find . -maxdepth 1 -name "${PACKAGE}-*.${UPSTREAM_PACKAGE_TYPE}" -printf '%f'`"
+ if [ -e "${UPSTREAM_PACKAGE}" ] ; then
+ break
+ fi
+ done
+ if [ ! -e "${UPSTREAM_PACKAGE}" ]; then
+ rm -f ${PACKAGE}-*.gz ${PACKAGE}"_"*.gz ${PACKAGE}-*.bz2 ${PACKAGE}"_"*.bz2
+ echo -e "\x1b[34m------ Running MAKE_DIST ... ------\x1b[0m"
+ echo "\$ $MAKE_DIST"
+ eval "$MAKE_DIST"
+
+ echo -e "\x1b[34m------ Looking for upstream package ... ------\x1b[0m"
+ for UPSTREAM_PACKAGE_TYPE in xz bz2 gz ; do
+ UPSTREAM_PACKAGE="`find . -maxdepth 1 -name "${PACKAGE}-*.${UPSTREAM_PACKAGE_TYPE}" -printf '%f'`"
+ if [ -e "${UPSTREAM_PACKAGE}" ] ; then
+ break
+ fi
+ done
+ fi
+fi
+if [ ! -e "${UPSTREAM_PACKAGE}" ] ; then
+ echo -e "\x1b[34mERROR: No upstrem package found!\x1b[0m"
+ exit 1
+fi
+echo -e ""
+echo -e "\x1b[34m==> Upstream package is ${UPSTREAM_PACKAGE} (type is ${UPSTREAM_PACKAGE_TYPE})\x1b[0m"
+echo -e ""
+
+
+# ====== Create source RPM ==================================================
+echo -e ""
+echo -e "\x1b[34m`date +%FT%H:%M:%S`: ====== Creating source RPM ============================\x1b[0m"
+echo -e ""
+
+# ------ Initialise RPM build directories -----------------------------------
+rpmdev-setuptree
+find $HOME/rpmbuild/SRPMS -name "${PACKAGE}*.rpm" | xargs --no-run-if-empty rm -f
+find $HOME/rpmbuild/RPMS -name "${PACKAGE}*.rpm" | xargs --no-run-if-empty rm -f
+# Copy upstream sources
+cp ${UPSTREAM_PACKAGE} $HOME/rpmbuild/SOURCES/
+# Patches
+if [ -e original ] ; then
+ find original -name "*" -type f | grep -v "~$" | grep -v ".spec$" | xargs -n1 -i§ cp "§" $HOME/rpmbuild/SOURCES/
+fi
+# Further patches
+find rpm -name "*" -type f | grep -v "~$" | grep -v ".spec$" | xargs -n1 -i§ cp "§" $HOME/rpmbuild/SOURCES/
+# The .spec file
+cp rpm/${PACKAGE}.spec $HOME/rpmbuild/SPECS/
+
+# ------ Create source RPM --------------------------------------------------
+rpmbuild -bs rpm/${PACKAGE}.spec
+PACKAGE_SRPM=`find $HOME/rpmbuild/SRPMS/ -name "${PACKAGE}-*${PACKAGE_VERSION}*-*.src.rpm"`
+if [ ! -e "${PACKAGE_SRPM}" ] ; then
+ echo >&2 "ERROR: Cannot find SRPM ${PACKAGE_SRPM}!"
+ exit 1
+fi
diff -Nru libneat-0.0.1~td192/rpm/libneat.spec libneat-0.0.1~td193/rpm/libneat.spec
--- libneat-0.0.1~td192/rpm/libneat.spec 2018-11-14 16:50:49.000000000 +0000
+++ libneat-0.0.1~td193/rpm/libneat.spec 2018-12-07 09:36:05.000000000 +0000
@@ -1,5 +1,5 @@
Name: libneat
-Version: 0.0.1~td192
+Version: 0.0.1~td193
Release: 1
Summary: NEAT Project
License: BSD
@@ -9,6 +9,8 @@
AutoReqProv: on
BuildRequires: cmake
+BuildRequires: gcc
+BuildRequires: gcc-c++
BuildRequires: jansson-devel
BuildRequires: ldns-devel
BuildRequires: libmnl-devel
@@ -19,16 +21,32 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+
+%prep
+%setup -q
+
+%build
+%cmake -DCMAKE_INSTALL_PREFIX=/usr -DSOCKET_API=1 -DUSRSCTP_SUPPORT=0 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1 .
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot}
+
+%files
+/usr/lib*/libneat.so*
+
+
+
%package devel
@@ -38,17 +56,22 @@
Requires: libuv-devel
%description devel
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
- This package contains the built examples for the NEAT Core API.
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+This package contains the built examples for the NEAT Core API.
+
+%files devel
+/usr/include/neat.h
+/usr/lib*/libneat-static.a
+/usr/lib*/libneat[^\-]*so
%package examples
@@ -57,17 +80,36 @@
Requires: %{name} = %{version}-%{release}
%description examples
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
- This package contains the built examples for the NEAT Core API.
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+This package contains the built examples for the NEAT Core API.
+
+%files examples
+/usr/lib*/libneat/client
+/usr/lib*/libneat/client_data
+/usr/lib*/libneat/client_http_get
+/usr/lib*/libneat/client_http_run_once
+/usr/lib*/libneat/msbench
+/usr/lib*/libneat/peer
+/usr/lib*/libneat/server_chargen
+/usr/lib*/libneat/server_daytime
+/usr/lib*/libneat/server_discard
+/usr/lib*/libneat/server_echo
+/usr/lib*/libneat/server_http
+/usr/lib*/libneat/tneat
+/usr/lib*/libneat/minimal_client
+/usr/lib*/libneat/minimal_server
+/usr/lib*/libneat/minimal_server2
+/usr/lib*/libneat/client_dtls_echo
+/usr/lib*/libneat/server_dtls_echo
%package socketapi
@@ -76,17 +118,20 @@
Requires: %{name} = %{version}-%{release}
%description socketapi
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
- This package contains the library for the NEAT Sockets API.
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+This package contains the library for the NEAT Sockets API.
+
+%files socketapi
+/usr/lib*/libneat-socketapi.so*
%package socketapi-devel
@@ -96,17 +141,22 @@
Requires: %{name}-socketapi = %{version}-%{release}
%description socketapi-devel
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
- This package contains the built examples for the NEAT Sockets API.
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+This package contains the built examples for the NEAT Sockets API.
+
+%files socketapi-devel
+/usr/include/neat-socketapi.h
+/usr/lib*/libneat-socketapi-static.a
+/usr/lib*/libneat-socketapi*.so
%package socketapi-examples
@@ -115,75 +165,24 @@
Requires: %{name}-socketapi = %{version}-%{release}
%description socketapi-examples
- The NEAT project wants to achieve a complete redesign of the way in which
- Internet applications interact with the network. Our goal is to allow network
- “services” offered to applications – such as reliability, low-delay
- communication or security – to be dynamically tailored based on application
- demands, current network conditions, hardware capabilities or local policies,
- and also to support the integration of new network functionality in an
- evolutionary fashion, without applications having to be rewritten. This
- architectural change will make the Internet truly “enhanceable”, by allowing
- applications to seamlessly and more easily take advantage of new network
- features as they evolve.
- This package contains the built examples for the NEAT Sockets API.
-
-
-%prep
-%setup -q
-
-%build
-%cmake -DCMAKE_INSTALL_PREFIX=/usr -DSOCKET_API=1 -DUSRSCTP_SUPPORT=0 -DSCTP_MULTISTREAMING=1 -DFLOW_GROUPS=1 .
-make %{?_smp_mflags}
-
-%install
-make install DESTDIR=%{buildroot}
-
-#%clean
-#rm -rf "$RPM_BUILD_ROOT"
-
-
-%files
-%defattr(-,root,root,-)
-/usr/lib/libneat.so*
-
-%files devel
-/usr/include/neat.h
-/usr/lib/libneat-static.a
-/usr/lib/libneat[^\-]*so
-
-%files examples
-/usr/lib/libneat/client
-/usr/lib/libneat/client_data
-/usr/lib/libneat/client_http_get
-/usr/lib/libneat/client_http_run_once
-/usr/lib/libneat/msbench
-/usr/lib/libneat/peer
-/usr/lib/libneat/server_chargen
-/usr/lib/libneat/server_daytime
-/usr/lib/libneat/server_discard
-/usr/lib/libneat/server_echo
-/usr/lib/libneat/server_http
-/usr/lib/libneat/tneat
-/usr/lib/libneat/minimal_client
-/usr/lib/libneat/minimal_server
-/usr/lib/libneat/minimal_server2
-/usr/lib/libneat/client_dtls_echo
-/usr/lib/libneat/server_dtls_echo
-
-%files socketapi
-%defattr(-,root,root,-)
-/usr/lib/libneat-socketapi.so*
-
-%files socketapi-devel
-/usr/include/neat-socketapi.h
-/usr/lib/libneat-socketapi-static.a
-/usr/lib/libneat-socketapi*.so
+The NEAT project wants to achieve a complete redesign of the way in which
+Internet applications interact with the network. Our goal is to allow network
+“services” offered to applications – such as reliability, low-delay
+communication or security – to be dynamically tailored based on application
+demands, current network conditions, hardware capabilities or local policies,
+and also to support the integration of new network functionality in an
+evolutionary fashion, without applications having to be rewritten. This
+architectural change will make the Internet truly “enhanceable”, by allowing
+applications to seamlessly and more easily take advantage of new network
+features as they evolve.
+This package contains the built examples for the NEAT Sockets API.
%files socketapi-examples
-/usr/lib/libneat/httpget
-/usr/lib/libneat/httpserver1
-/usr/lib/libneat/httpserver2-select
-/usr/lib/libneat/httpserver2-threads
+/usr/lib*/libneat/httpget
+/usr/lib*/libneat/httpserver1
+/usr/lib*/libneat/httpserver2-select
+/usr/lib*/libneat/httpserver2-threads
+
%changelog
* Fri Dec 02 2016 Thomas Dreibholz 0.0.1
diff -Nru libneat-0.0.1~td192/.travis.yml libneat-0.0.1~td193/.travis.yml
--- libneat-0.0.1~td192/.travis.yml 2018-11-14 16:49:24.000000000 +0000
+++ libneat-0.0.1~td193/.travis.yml 2018-12-07 09:34:16.000000000 +0000
@@ -169,22 +169,28 @@
# ###### Other ##########################################################
# ====== MacOS X ========================================================
- #- os: osx
- # osx_image: xcode9.4
- # compiler: clang
- # group: travis_latest
+ - os: osx
+ compiler: clang
before_install:
- |
- ci/before-install
-
+ if [ "${TRAVIS_OS_NAME}" != "osx" ] ; then
+ travis_wait 60 ci/before-install
+ else
+ travis_wait 60 ci/before-install libuv ldns jansson swig
+ fi
install:
- |
- ci/install
+ travis_wait 60 ci/install
script:
- |
- ci/build
+ if [ "${TRAVIS_OS_NAME}" != "osx" ] ; then
+ travis_wait 60 ci/build
+ else
+ travis_wait 60 ci/build -DOPENSSL_ROOT_DIR=/usr/local/ssl
+ fi
+ # travis_wait 60 ci/test