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