From c18da212d2b571b2ab9b45e5f77b21fbf1b5a241 Mon Sep 17 00:00:00 2001 From: Jakub Heger Date: Oct 07 2020 13:27:58 +0000 Subject: Add internal spec and build script --- diff --git a/beakerlib-libraries-internal.spec b/beakerlib-libraries-internal.spec new file mode 100755 index 0000000..897f579 --- /dev/null +++ b/beakerlib-libraries-internal.spec @@ -0,0 +1,45 @@ +%define name beakerlib-libraries +%define version VERSION +%define release RELEASE + +# libraries installation path +%define libraries_path /usr/share/beakerlib-libraries + +Name: %{name} +Version: %{version} +Release: %{release} +Summary: Beakerlib libraries + +Group: Development/Libraries +License: GPLv2 +URL: https://pagure.io/beakerlib-libraries/ +Source0: beakerlib-libraries.tar.gz + +BuildArch: noarch + +BuildRoot: %{_tmppath}/beaker-libraries-buildroot + +AutoReq: no +Requires: beakerlib + +%description +Beakerlib Libraries are used by beakerlib tests to encapsulate common complex tasks such as configuring and starting a particular daemon in a single function. + +%prep +%setup -n beakerlib-libraries + +%build + +%install +find . -maxdepth 2 -mindepth 2 '(' -path './bin/*' -o -path './.git*' ')' -prune -o -type d \ + -exec sh -c 'install -v -d $RPM_BUILD_ROOT%libraries_path/$(dirname "{}")/Library' ';' \ + -exec sh -c 'cp -v -a "{}" $RPM_BUILD_ROOT%libraries_path/$(dirname "{}")/Library' ';' +install -d "$RPM_BUILD_ROOT/%_bindir" +install -m755 "bin/get-test-deps" "$RPM_BUILD_ROOT/%_bindir" + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%libraries_path +%_bindir/get-test-deps diff --git a/build_via_internal_copr b/build_via_internal_copr new file mode 100755 index 0000000..bd0aa74 --- /dev/null +++ b/build_via_internal_copr @@ -0,0 +1,67 @@ +#!/bin/bash + +COPR="bgoncalv/beakerlib-libraries" +COPR_URL="https://copr.devel.redhat.com" +COPR_CONFIG=${COPR_CONFIG:-"$HOME/.config/copr-devel"} + +usage() { + cat << EOF +Usage: $0 + +Build beakerlib libraries via '${COPR_URL}' +in repository '${COPR}'. +EOF + exit 0 +} + +info() { + echo "::: $@" +} + +exit_error() { + echo "error: $@" + exit 1 +} + +[ "$1" = "-h" -o "$1" == "--help" ] && usage + +spec="beakerlib-libraries-internal.spec" + +read ver rel <<< $(git describe --tags | sed 's/\([^-]*\)-\(.*\)/\1 \2/') || exit_error \ + "could not get version/release from 'git describe --tags'" +[ -z "$rel" ] && rel=1 +rel=$(echo $rel | tr '-' '.') + +# sanity +[ -z "$ver" ] && exit_error "could not get version from 'git describe --tags'" +rpm -q rpm-build &>/dev/null || exit_error "rpmbuild not installed" +rpm -q copr-cli &>/dev/null || exit_error "copr-cli not installed" +copr list &>/dev/null || exit_error "copr-cli not configured" + +# create folders required for building +mkdir -p $HOME/rpmbuild/SOURCES +mkdir -p $HOME/rpmbuild/SPECS +mkdir -p $HOME/rpmbuild/BUILD + +spec_broot="$HOME/rpmbuild/SPECS/$(basename $spec)" + +info "copying spec file '$spec' to '$HOME/rpmbuild/SPECS'" +cp $spec $HOME/rpmbuild/SPECS + +info "setting version and release to ${ver}-$rel" +sed -i "s/VERSION/$ver/" $spec_broot +sed -i "s/RELEASE/$rel/" $spec_broot + +info "creating source tarball to '$HOME/rpmbuild/SOURCES'" +git archive master -v --prefix "beakerlib-libraries/" -o "$HOME/rpmbuild/SOURCES/beakerlib-libraries.tar.gz" + +info "creating src.rpm via 'rpmbuild -bs'" +SRCRPM=$(rpmbuild -bs $spec_broot | tee /dev/tty | awk '{print $2}') + +[ -f "$SRCRPM" ] || exit_error "could not build src.rpm" + +info "trying to rebuild '$(basename $SRCRPM)' via 'rpmbuild --rebuild' (sanity check)" +rpmbuild --rebuild $SRCRPM --quiet || exit_error "could not rebuild src.rpm" + +info "submitting to copr (waiting can be safely interrupted)" +copr --config "$COPR_CONFIG" build "$COPR" $SRCRPM