- condor
allow_failure: false # required to make when: manual action blocking
script:
- - scripts/make-distrofiles.sh
+ - scripts/make-obs.sh
- echo y | scripts/build-in-obs.sh $OBS_REPO
obs:release:
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
-
+#
+# Push packaging files to OBS
+#
# Example usage:
-# 1. place tarball to be released in git root dir
-# 2. scripts/make-distrofiles.sh
-# 3. scripts/build-in-obs.sh knot-resolver-latest
+# 1. ./scripts/make-obs.sh
+# 2. ./scripts/build-in-obs.sh knot-resolver-latest
set -o errexit -o nounset -o xtrace
+pkgdir='pkg/obs'
+
project=home:CZ-NIC:$1
package=knot-resolver
osc co "${project}" "${package}"
pushd "${project}/${package}"
osc del * ||:
-cp -L ../../*.orig.tar.xz ../../*.debian.tar.xz ../../*.dsc ./
-cp -rL ../../distro/rpm/* ./
-cp -rL ../../distro/arch/* ./
+cp -r ../../${pkgdir}/* ./
osc addremove
osc ci -n
popd
+++ /dev/null
-#!/bin/bash
-# SPDX-License-Identifier: GPL-3.0-or-later
-set -o errexit -o nounset -o xtrace
-
-cd "$(dirname ${0})/.."
-pkgdir="build_dist/meson-dist"
-
-package=knot-resolver
-
-
-pushd ${pkgdir}
-version=$(ls ${package}*.tar.xz | sed "s/${package}-\(.*\).tar.xz/\1/")
-popd
-
-# Check version for invalid characters
-if [[ $(echo "${version}" | grep '^[[:alnum:].]$') -ne 0 ]]; then
- echo "Invalid version number: may contain only alphanumeric characters and dots"
- exit 1
-fi
-
-# Fill in VERSION field in distribution specific files
-files="distro/rpm/${package}.spec distro/deb/changelog distro/arch/PKGBUILD"
-for file in ${files}; do
- sed -i "s/__VERSION__/${version}/g" "${file}"
-done
-
-# Rename archive to debian format
-pkgname="${package}-${version}"
-debname="${package}_${version}.orig"
-cp "${pkgdir}/${pkgname}.tar.xz" "${debname}.tar.xz"
-
-# Prepare clean debian-specific directory
-tar -xf "${debname}.tar.xz"
-pushd "${pkgname}" > /dev/null
-cp -arL ../distro/deb debian
-
-# Create debian archive and dsc
-dpkg-source -b .
-popd > /dev/null
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# create OpenSUSE Build System (OBS) source package
+#
+# this needs to be run on a system with:
+#
+# * apkg
+# * dpkg-buildpackage
+#
+# usage:
+# ./scripts/make-obs.sh [path.to.archive.xz] [1]
+#
+# supply archives as optional arguments to build from,
+# otherwise archive will be built from sources by apkg
+# second argument is optional release number (defaults to 1)
+#
+# output at pkg/obs/ (removed on each run)
+set -o errexit -o nounset
+
+pushd "$(dirname ${0})/.."
+
+OUTDIR="pkg/obs"
+APKG_OPTS="-O $OUTDIR"
+
+if [ -z $@ ]; then
+ echo "building OBS srcpkg from project files"
+else
+ AR=$1
+ echo "building OBS srcpkg from specified archive(s)"
+ APKG_OPTS="-a $AR $APKG_OPTS"
+
+ RELEASE=${2:-}
+ if [ ! -z "$RELEASE" ]; then
+ echo "custom release: $RELEASE"
+ APKG_OPTS="-r $RELEASE $APKG_OPTS"
+ fi
+fi
+
+set -o xtrace
+
+: removing existing output files at output dir: $OUTDIR
+rm -rf "$OUTDIR"
+: making debian source package from archive
+apkg srcpkg $APKG_OPTS -d debian
+: removing extra debian source package files
+rm -f $OUTDIR/*_source.*
+: rendering RPM template
+apkg srcpkg $APKG_OPTS -d fedora --render-template
+: fixing RPM .spec to use debian source archive
+sed -i 's/^\(Source0:\s\+\).*/\1knot-resolver_%{version}.orig.tar.xz/' $OUTDIR/*.spec
+: rendering PKGBUILD template
+apkg srcpkg $APKG_OPTS -d arch --render-template
+: fixing PKGBUILD to use debian source archive
+sed -i 's/^source=.*/source=("knot-resolver_${pkgver}.orig.tar.xz")/' $OUTDIR/PKGBUILD
+popd >/dev/null
+
+echo "OBS srcpkg ready at: $OUTDIR"
+