# Pass --with tests to rpmbuild to build composer-cli-tests %bcond_with tests # Pass --without signed to skip gpg signed tar.gz (DO NOT DO THAT IN PRODUCTION) %bcond_without signed %global goipath github.com/osbuild/weldr-client Name: weldr-client Version: 35.2 Release: 2%{?dist} # Upstream license specification: Apache-2.0 License: ASL 2.0 Summary: Command line utility to control osbuild-composer Url: %{gourl} Source0: https://github.com/osbuild/weldr-client/releases/download/v%{version}/%{name}-%{version}.tar.gz %if %{with signed} Source1: https://github.com/osbuild/weldr-client/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc Source2: https://keys.openpgp.org/vks/v1/by-fingerprint/117E8C168EFE3A7F#/gpg-117E8C168EFE3A7F.key %endif Patch0001: 0001-tests-Fix-integration-tests.patch Obsoletes: composer-cli < 35.0 Provides: composer-cli = %{version}-%{release} %gometa BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} %if 0%{?fedora} BuildRequires: golang(github.com/BurntSushi/toml) BuildRequires: golang(github.com/spf13/cobra) # Required for tests and %check BuildRequires: golang(github.com/stretchr/testify/assert) BuildRequires: golang(github.com/stretchr/testify/require) %endif BuildRequires: git-core BuildRequires: make BuildRequires: gnupg2 %description Command line utility to control osbuild-composer %prep %if %{with signed} %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif %if 0%{?rhel} %forgeautosetup -p1 %else %goprep %endif %build %if 0%{?rhel} GO_BUILD_PATH=$PWD/_build install -m 0755 -vd $(dirname $GO_BUILD_PATH/src/%{goipath}) ln -fs $PWD $GO_BUILD_PATH/src/%{goipath} cd $GO_BUILD_PATH/src/%{goipath} install -m 0755 -vd _bin export PATH=$PWD/_bin${PATH:+:$PATH} export GOPATH=$GO_BUILD_PATH:%{gopath} export GOFLAGS=-mod=vendor %else export GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}" export GO111MODULE=off %endif export LDFLAGS="-X github.com/osbuild/weldr-client/cmd/composer-cli/root.Version=%{version} " make GOBUILDFLAGS="%{gobuildflags}" build ## TODO ##make man %if %{with tests} || 0%{?rhel} # Build test binaries with `go test -c`, so that they can take advantage of # golang's testing package. The golang rpm macros don't support building them # directly. Thus, do it manually, taking care to also include a build id. # # On Fedora, also turn off go modules and set the path to the one into which # the golang-* packages install source code. %if 0%{?fedora} export GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}" export GO111MODULE=off %endif export LDFLAGS="-X github.com/osbuild/weldr-client/cmd/composer-cli/root.Version=%{version} " export BUILDTAGS="integration" make GOBUILDFLAGS="%{gobuildflags}" integration %endif %install make DESTDIR=%{buildroot} install %if %{with tests} || 0%{?rhel} make DESTDIR=%{buildroot} install-tests %endif %check %if 0%{?fedora} export GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}" export GO111MODULE=off %endif export LDFLAGS="-X github.com/osbuild/weldr-client/cmd/composer-cli/root.Version=%{version} " make GOBUILDFLAGS="%{gotestflags}" test %files %license LICENSE %doc examples HACKING.md README.md %{_bindir}/composer-cli %dir %{_sysconfdir}/bash_completion.d %{_sysconfdir}/bash_completion.d/composer-cli %{_mandir}/man1/composer-cli* %if %{with tests} || 0%{?rhel} %package tests Summary: Integration tests for composer-cli %description tests Integration tests to be run on a pristine-dedicated system to test the composer-cli package. %files tests %license LICENSE %{_libexecdir}/tests/composer-cli/ %endif %changelog * Wed Aug 25 2021 Brian C. Lane - 35.2-2 - gating: Add gating tests Resolves: rhbz#1996788 - gating: Workaround to install latest packages - Fix integration tests * Mon Aug 23 2021 Brian C. Lane - 35.2-1 - New release: 35.2 (bcl) Resolves: rhbz#1996762 - weldr: Use assert.Contains instead of IsStringInSlice (bcl) - Add missing projects depsolve command (bcl) - Add support for projects info --distro=DISTRO-NAME (bcl) - Add support for projects list --distro=DISTRO-NAME (bcl) - Add support for modules info --distro=DISTRO-NAME (bcl) - weldr: Add distros to testState (bcl) - Add support for modules list --distro=DISTRO-NAME (bcl) - weldr: Add AppendQuery helper function (bcl) - Add support for compose types --distro=DISTRO-NAME (bcl) - composer-cli: Add distros list command (bcl) - weldr: Add ListDistros function and tests (bcl) - Makefile: Add scratch-srpm and scratch-rpm targets (bcl) - Print filename for compose results (bcl) - ExcuteTests - return the correct error variables in case of errors (atodorov) - The rpm package should obsolete composer-cli from lorax (bcl) - tests: Enable CodeCov.io (atodorov) - actions: Install lint using GOPATH (bcl) * Tue Aug 10 2021 Mohan Boddu - 35.1-4 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688 * Tue Jun 22 2021 Mohan Boddu - 35.1-3 - Rebuilt for RHEL 9 BETA for openssl 3.0 Related: rhbz#1971065 * Thu Apr 22 2021 Brian C. Lane - 35.1-2 - Obsolete composer-cli < 35.0 instead of 34.0 Patch until next upstream release * Mon Apr 12 2021 Brian C. Lane - 35.1-1 - New release: 35.1 (bcl) - spec: Change release back to 1 (bcl) - spec: Move testify BuildRequires into fedora block (bcl) - vendor: Add vendored dependencies for RHEL (bcl) - tools: Add prepare-source.sh vendoring helper script (bcl) - Makefile: skip vendor directory for check target (bcl) - spec: Bump release to 2 (bcl) - spec: Fix BuildRequires for tests (bcl) - Makefile: Remove executable from bash completion (bcl) - Makefile: Only use GOBUILDFLAGS (bcl) - spec: Bump release to 2 (bcl) - spec: Add doc files (bcl) - spec: Add gpg signature verification (bcl) - spec: Use git-core instead of git (bcl) - spec: Set License to Apache 2.0 (bcl) - spec: Update Source urls with new project location (bcl)