diff --git a/.gitignore b/.gitignore index f3efa89..ddf3a40 100644 --- a/.gitignore +++ b/.gitignore @@ -1,75 +1,2 @@ -/ignition-40c0b57.tar.gz /ignition-7610725.tar.gz /ignition-dracut-d664657.tar.gz -/ignition-cc7ebe0.tar.gz -/ignition-dracut-56aa514.tar.gz -/ignition-f707912.tar.gz -/ignition-dracut-d056287.tar.gz -/ignition-dracut-8c85eb3.tar.gz -/ignition-dracut-c09ce6f.tar.gz -/ignition-dracut-4bdfb34.tar.gz -/ignition-dracut-7ee64ca.tar.gz -/ignition-dracut-decf63f.tar.gz -/ignition-dracut-7b83454.tar.gz -/ignition-b1ab0b2.tar.gz -/ignition-308d7a0.tar.gz -/ignition-dracut-fa7131b.tar.gz -/ignition-dracut-2c69925.tar.gz -/ignition-f59a653.tar.gz -/ignition-dracut-0d09097.tar.gz -/ignition-dracut-73ec3fc.tar.gz -/ignition-dracut-ec9a492.tar.gz -/ignition-906cf04.tar.gz -/ignition-dracut-85f2e65.tar.gz -/ignition-910e6c6.tar.gz -/ignition-dracut-df88988.tar.gz -/ignition-0c1da80.tar.gz -/ignition-e75cf24.tar.gz -/ignition-dracut-343b886.tar.gz -/ignition-dracut-d63f76f.tar.gz -/ignition-641ec6a.tar.gz -/ignition-dracut-3d08487.tar.gz -/ignition-dracut-8bf2cbd.tar.gz -/ignition-a8f91fa.tar.gz -/ignition-dracut-736459e.tar.gz -/ignition-dracut-14808e2.tar.gz -/ignition-2d3ff58.tar.gz -/ignition-dracut-f67d587.tar.gz -/ignition-dracut-793d0ef.tar.gz -/ignition-dracut-6136be3.tar.gz -/ignition-dracut-390779d.tar.gz -/ignition-ee616d5.tar.gz -/ignition-dracut-7ff38d9.tar.gz -/ignition-dracut-8f5d1ec.tar.gz -/ignition-dracut-bdf0a65.tar.gz -/ignition-d18bf90.tar.gz -/ignition-dracut-e75fef0.tar.gz -/ignition-5260a5b.tar.gz -/ignition-dracut-6b1d128.tar.gz -/ignition-0d6f3e5.tar.gz -/ignition-947598e.tar.gz -/ignition-5be43fd.tar.gz -/ignition-db4d30d.tar.gz -/ignition-c733d23.tar.gz -/ignition-1d56dc8.tar.gz -/ignition-2.9.0.tar.gz -/ignition-2.10.1.tar.gz -/ignition-2.11.0.tar.gz -/ignition-2.12.0.tar.gz -/ignition-2.13.0.tar.gz -/ignition-2.14.0.tar.gz -/ignition-2.15.0.tar.gz -/ignition-edge-a3a8f0a.tar.gz -/ignition-2.16.1.tar.gz -/ignition-2.16.2.tar.gz -/ignition-2.17.0.tar.gz -/ignition-2.18.0.tar.gz -/ignition-2.19.0.tar.gz -/ignition-2.20.0.tar.gz -/ignition-edge-a258749.tar.gz -/ignition-2.21.0.tar.gz -/ignition-2.22.0.tar.gz -/ignition-2.23.0.tar.gz -/ignition-2.24.0.tar.gz -/ignition-2.25.0.tar.gz -/ignition-2.25.1.tar.gz diff --git a/go-mods-to-bundled-provides.py b/go-mods-to-bundled-provides.py deleted file mode 100755 index 51dee83..0000000 --- a/go-mods-to-bundled-provides.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python3 - -''' - Tiny dumb script that generates virtual bundled `Provides` from a repo that - uses go modules and vendoring. -''' - -import sys -import re - - -def main(): - repos = get_repos_from_go_mod() - print_provides_from_modules_txt(repos) - - -def get_repos_from_go_mod(): - repos = {} - in_reqs = False - for line in open('go.mod'): - line = line.strip() - if in_reqs and line.startswith(')'): - break - if not in_reqs: - if line.startswith('require ('): - in_reqs = True - continue - req = line.split() - - repo = req[0] - tag = req[1] - - repos[repo] = go_mod_tag_to_rpm_provides_version(tag) - - return repos - - -def go_mod_tag_to_rpm_provides_version(tag): - - # go.mod tags are either exact git tags, or may be "pseudo-versions". We - # want to convert these tags to something resembling a version string that - # RPM won't fail on. For more information, see - # https://golang.org/cmd/go/#hdr-Pseudo_versions and following sections. - - # trim off any +incompatible - if tag.endswith('+incompatible'): - tag = tag[:-len('+incompatible')] - - # git tags are normally of the form v$VERSION - if tag.startswith('v'): - tag = tag[1:] - - # is this a pseudo-version? e.g. v0.0.0-20181031085051-9002847aa142 - m = re.match("(.*)-([0-9.]+)-([a-f0-9]{12})", tag) - if m: - # rpm doesn't like multiple dashes in the version, so just merge the - # timestamp and the commit checksum into the "release" field - tag = f"{m.group(1)}-{m.group(2)}.git{m.group(3)}" - - return tag - - -def print_provides_from_modules_txt(repos): - - for line in open('vendor/modules.txt'): - if line.startswith('#'): - continue - gopkg = line.strip() - repo = lookup_repo_for_pkg(repos, gopkg) - if not repo: - # must be a pkg for tests only; ignore - continue - tag = repos[repo] - print(f"Provides: bundled(golang({gopkg})) = {tag}") - - -def lookup_repo_for_pkg(repos, gopkg): - for repo in repos: - if gopkg.startswith(repo): - return repo - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/ignition.rpmlintrc b/ignition.rpmlintrc deleted file mode 100644 index 8dc3988..0000000 --- a/ignition.rpmlintrc +++ /dev/null @@ -1,12 +0,0 @@ -# Ignition sources have duplicate files because of how spec versioning is -# implemented -addFilter("ignition-debugsource.x86_64: E: files-duplicated-waste") - -# -validate-redistributable is supposed to have binaries in it, and -# doesn't really need docs since it isn't user-facing -addFilter("ignition-validate-redistributable.noarch: E: arch-independent-package-contains-binary-or-object") -addFilter("ignition-validate-redistributable.noarch: W: no-documentation") - -# This is documented as optional -# https://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#Do_I_need_to_Provide_my_old_package_names.3F -addFilter("ignition-validate-redistributable.noarch: W: obsolete-not-provided ignition-validate-nonlinux") diff --git a/ignition.spec b/ignition.spec index 91f5dda..df4832e 100644 --- a/ignition.spec +++ b/ignition.spec @@ -1,857 +1,470 @@ -# Generated by go2rpm 1.3 -%if 0%{?fedora} -%bcond_without check +# Original spec file as generated by: +# gofed repo2spec --detect github.com/coreos/ignition --commit 76107251acd117c6d3e5b4dae2b47f82f944984b --with-extra --with-build -f +# With: +# gofed@8f62d8d2dea0a87ef60cad72f72e2d7558c0cb75 +# And: +# $ git submodule status +# 33207573a1875bc828da3f863e1de439d7af8166 third_party/cmdsignature (heads/master) +# 6bff7ae54535689e2ade3d0bd3d33d903a2190b9 third_party/gofed_infra (remotes/origin/WIP-37-g6bff7ae) +# 7e414c78930a81167dc2cd4d3e9adb79eeed38a6 third_party/gofed_resources (heads/master) +# ef6ec0e387f3b125308243898435774da6128a4c third_party/gofedlib (0.1.0a1-20-gef6ec0e) + + +# If any of the following macros should be set otherwise, +# you can wrap any of them with the following conditions: +# - %%if 0%%{centos} == 7 +# - %%if 0%%{?rhel} == 7 +# - %%if 0%%{?fedora} == 23 +# Or just test for particular distribution: +# - %%if 0%%{centos} +# - %%if 0%%{?rhel} +# - %%if 0%%{?fedora} +# +# Be aware, on centos, both %%rhel and %%centos are set. If you want to test +# rhel specific macros, you can use %%if 0%%{?rhel} && 0%%{?centos} == 0 condition. +# (Don't forget to replace double percentage symbol with single one in order to apply a condition) + +# Not all devel deps exist in Fedora so you can't install the devel rpm +# so we need to build without devel for now +# Generate devel rpm +%global with_devel 0 +# Build project from bundled dependencies +%global with_bundled 1 +# Build with debug info rpm +%global with_debug 1 +# Run tests in check section +%global with_check 1 +# Generate unit-test rpm +%global with_unit_test 1 + +%if 0%{?with_debug} +%global _dwz_low_mem_die_limit 0 %else -# %%gocheck isn't currently provided on CentOS/RHEL -# https://bugzilla.redhat.com/show_bug.cgi?id=1982298 -%bcond_with check +%global debug_package %{nil} %endif -%global ignedgecommit a2587490b2a9a215ad12cf15866025efbe027552 -%global ignedgeshortcommit %(c=%{ignedgecommit}; echo ${c:0:7}) +%if ! 0%{?gobuild:1} +%define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; +%endif +# macros for ignition +%global provider github +%global provider_tld com +%global project coreos +%global repo ignition # https://github.com/coreos/ignition -%global goipath github.com/coreos/ignition -%global gomodulesmode GO111MODULE=on -Version: 2.25.1 +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} +%global commit 76107251acd117c6d3e5b4dae2b47f82f944984b +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +# define ldflags, buildflags, testflags here. The ldflags were +# taken from ./build. We will need to periodically check these +# for consistency +%global ldflags ' -X github.com/coreos/ignition/internal/version.Raw=%{version} ' +%global buildflags %nil +%global testflags %nil -%gometa +# macros for ignition-dracut +%global dracutlibdir %{_prefix}/lib/dracut +%global dracutprovider github +%global dracutprovider_tld com +%global dracutproject dustymabe +%global dracutrepo ignition-dracut +# https://github.com/dustymabe/ignition-dracut +%global dracutprovider_prefix %{dracutprovider}.%{dracutprovider_tld}/%{dracutproject}/%{dracutrepo} +%global dracutimport_path %{dracutprovider_prefix} +%global dracutcommit d664657cc2f733d8f54e9c0e69ba603babe55d92 +%global dracutshortcommit %(c=%{dracutcommit}; echo ${c:0:7}) -%global golicenses LICENSE -%global godocs README.md docs/ -%global dracutlibdir %{_prefix}/lib/dracut Name: ignition -Release: 1%{?dist} +Version: 0.26.0 +Release: 0.5.git%{shortcommit}%{?dist} Summary: First boot installer and configuration tool +License: ASL 2.0 +URL: https://%{provider_prefix} +Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz -# Upstream license specification: Apache-2.0 -License: Apache-2.0 -URL: %{gourl} -Source0: %{gosource} -Source1: https://github.com/fedora-iot/ignition-edge/archive/%{ignedgecommit}/ignition-edge-%{ignedgeshortcommit}.tar.gz - +# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required +ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}} +# If go_compiler is not set to 1, there is no virtual provide. Use golang instead. +BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} +# add non golang BuildRequires that weren't detected BuildRequires: libblkid-devel -BuildRequires: systemd-rpm-macros -ExcludeArch: %{ix86} - -# Requires for 'disks' stage -%if 0%{?fedora} -Recommends: btrfs-progs +# Main rpm package BuildRequires +%if ! 0%{?with_bundled} +# validate/main.go +BuildRequires: golang(github.com/spf13/cobra) +# Remaining dependencies not included in main packages +BuildRequires: golang(github.com/coreos/go-systemd/unit) +BuildRequires: golang(github.com/coreos/go-semver/semver) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +BuildRequires: golang(github.com/pin/tftp) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +BuildRequires: golang(github.com/coreos/go-systemd/dbus) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) +BuildRequires: golang(github.com/vincent-petithory/dataurl) +BuildRequires: golang(github.com/vmware/vmw-ovflib) +BuildRequires: golang(github.com/ajeddeloh/go-json) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3) %endif -Requires: dosfstools -Requires: gdisk -Requires: dracut -Requires: dracut-network -# Generated by `go-mods-to-bundled-provides.py | sort` +# Main package Provides (generated with parsedeps.go) +%if 0%{?with_bundled} +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/awserr)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/awsutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/client)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/client/metadata)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/corehandlers)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/endpointcreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/credentials/stscreds)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/defaults)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/ec2metadata)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/endpoints)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/request)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/session)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/aws/signer/v4)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/internal/shareddefaults)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/query)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/query/queryutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/rest)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/restxml)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3/s3iface)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/service/s3/s3manager)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/aws/aws-sdk-go/service/sts)) = %{version}-c861d27d0304a79f727e9a8a4e2ac1e74602fdc0 +Provides: bundled(golang(github.com/coreos/go-semver/semver)) = %{version}-294930c1e79c64e7dbe360054274fdad492c8cf5 +Provides: bundled(golang(github.com/coreos/go-systemd/dbus)) = %{version}-39ca1b05acc7ad1220e09f133283b8859a8b71ab +Provides: bundled(golang(github.com/coreos/go-systemd/unit)) = %{version}-39ca1b05acc7ad1220e09f133283b8859a8b71ab +Provides: bundled(golang(github.com/pin/tftp/netascii)) = %{version}-9ea92f6b1029bc1bf3072bba195c84bb9b0370e3 +Provides: bundled(golang(github.com/sigma/vmw-guestinfo/rpcvmx)) = %{version}-95dd4126d6e8b4ef1970b3f3fe2e8cdd470d2903 +Provides: bundled(golang(github.com/sigma/vmw-guestinfo/vmcheck)) = %{version}-95dd4126d6e8b4ef1970b3f3fe2e8cdd470d2903 +Provides: bundled(golang(github.com/vmware/vmw-guestinfo/bdoor)) = %{version}-25eff159a728be87e103a0b8045e08273f4dbec4 +Provides: bundled(golang(github.com/vmware/vmw-guestinfo/message)) = %{version}-25eff159a728be87e103a0b8045e08273f4dbec4 +Provides: bundled(golang(github.com/vmware/vmw-guestinfo/rpcout)) = %{version}-25eff159a728be87e103a0b8045e08273f4dbec4 +Provides: bundled(golang(go4.org/errorutil)) = %{version}-03efcb870d84809319ea509714dd6d19a1498483 +%endif -Provides: bundled(golang(cloud.google.com/go/compute/metadata)) = 0.9.0 -Provides: bundled(golang(cloud.google.com/go/storage)) = 1.58.0 -Provides: bundled(golang(cloud.google.com/go/storage/experimental)) = 1.58.0 -Provides: bundled(golang(cloud.google.com/go/storage/internal)) = 1.58.0 -Provides: bundled(golang(cloud.google.com/go/storage/internal/apiv2)) = 1.58.0 -Provides: bundled(golang(cloud.google.com/go/storage/internal/apiv2/storagepb)) = 1.58.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/arn)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/defaults)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/middleware)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/protocol/xml)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/ratelimit)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/retry)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/signer/v4)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/aws/transport/http)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/feature/ec2/imds)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/feature/s3/manager)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/auth)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/auth/smithy)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/awsutil)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/configsources)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/context)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/endpoints)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/endpoints/v2)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/middleware)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/rand)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/sdk)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/sdkio)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/strings)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/sync/singleflight)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/timeconv)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/v4a)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/checksum)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/presigned-url)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/s3shared)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/s3)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/s3/internal/arn)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints)) = 1.41.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go-v2/service/s3/types)) = 1.41.0 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/azidentity)) = 1.13.1 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/azidentity/internal)) = 1.13.1 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/appendblob)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blockblob)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/base)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/exported)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/generated)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/shared)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/pageblob)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas)) = 1.6.3 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/service)) = 1.6.3 -Provides: bundled(golang(github.com/beevik/etree)) = 1.6.0 -Provides: bundled(golang(github.com/containers/libhvee/pkg/kvp)) = 0.10.0 -Provides: bundled(golang(github.com/coreos/go-semver/semver)) = 0.3.1 -Provides: bundled(golang(github.com/coreos/go-systemd/v22/dbus)) = 22.6.0 -Provides: bundled(golang(github.com/coreos/go-systemd/v22/journal)) = 22.6.0 -Provides: bundled(golang(github.com/coreos/go-systemd/v22/unit)) = 22.6.0 -Provides: bundled(golang(github.com/coreos/vcontext/json)) = 0.0.0-20230201181013.gitd72178a18687 -Provides: bundled(golang(github.com/coreos/vcontext/path)) = 0.0.0-20230201181013.gitd72178a18687 -Provides: bundled(golang(github.com/coreos/vcontext/report)) = 0.0.0-20230201181013.gitd72178a18687 -Provides: bundled(golang(github.com/coreos/vcontext/tree)) = 0.0.0-20230201181013.gitd72178a18687 -Provides: bundled(golang(github.com/coreos/vcontext/validate)) = 0.0.0-20230201181013.gitd72178a18687 -Provides: bundled(golang(github.com/google/renameio/v2)) = 2.0.1 -Provides: bundled(golang(github.com/google/uuid)) = 1.6.0 -Provides: bundled(golang(github.com/mdlayher/vsock)) = 1.2.1 -Provides: bundled(golang(github.com/mitchellh/copystructure)) = 1.2.0 -Provides: bundled(golang(github.com/pin/tftp)) = 2.1.0 -Provides: bundled(golang(github.com/pin/tftp/netascii)) = 2.1.0 -Provides: bundled(golang(github.com/spf13/pflag)) = 1.0.10 -Provides: bundled(golang(github.com/stretchr/testify/assert)) = 1.11.1 -Provides: bundled(golang(github.com/stretchr/testify/assert/yaml)) = 1.11.1 -Provides: bundled(golang(github.com/vincent-petithory/dataurl)) = 1.0.0 -Provides: bundled(golang(github.com/vmware/vmw-guestinfo/bdoor)) = 0.0.0-20220317130741.git510905f0efa3 -Provides: bundled(golang(github.com/vmware/vmw-guestinfo/message)) = 0.0.0-20220317130741.git510905f0efa3 -Provides: bundled(golang(github.com/vmware/vmw-guestinfo/rpcout)) = 0.0.0-20220317130741.git510905f0efa3 -Provides: bundled(golang(github.com/vmware/vmw-guestinfo/rpcvmx)) = 0.0.0-20220317130741.git510905f0efa3 -Provides: bundled(golang(github.com/vmware/vmw-guestinfo/vmcheck)) = 0.0.0-20220317130741.git510905f0efa3 -Provides: bundled(golang(golang.org/x/net/bpf)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/http2)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/http2/hpack)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/http/httpguts)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/http/httpproxy)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/idna)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/internal/httpcommon)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/internal/timeseries)) = 0.48.0 -Provides: bundled(golang(golang.org/x/net/trace)) = 0.48.0 -Provides: bundled(golang(golang.org/x/oauth2)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/authhandler)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/google)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/google/externalaccount)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/google/internal/externalaccountauthorizeduser)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/google/internal/impersonate)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/google/internal/stsexchange)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/internal)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/jws)) = 0.34.0 -Provides: bundled(golang(golang.org/x/oauth2/jwt)) = 0.34.0 -Provides: bundled(golang(golang.org/x/sys/cpu)) = 0.39.0 -Provides: bundled(golang(golang.org/x/sys/unix)) = 0.39.0 -Provides: bundled(golang(golang.org/x/sys/windows)) = 0.39.0 -Provides: bundled(golang(golang.org/x/sys/windows/registry)) = 0.39.0 -Provides: bundled(golang(google.golang.org/api/googleapi)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/googleapi/transport)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/iamcredentials/v1)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/internal)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/internal/cert)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/internal/gensupport)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/internal/impersonate)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/internal/third_party/uritemplates)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/iterator)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/option)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/option/internaloption)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/storage/v1)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/transport)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/transport/grpc)) = 0.257.0 -Provides: bundled(golang(google.golang.org/api/transport/http)) = 0.257.0 -Provides: bundled(golang(gopkg.in/yaml.v3)) = 3.0.1 %description -Ignition is a utility used to manipulate systems during the initramfs. +Ignition is a utility used to manipulate systems during the initramfs. This includes partitioning disks, formatting partitions, writing files -(regular files, systemd units, etc.), and configuring users. On first -boot, Ignition reads its configuration from a source of truth (remote -URL, network metadata service, hypervisor bridge, etc.) and applies -the configuration. +(regular files, systemd units, networkd units, etc.), and configuring +users. On first boot, Ignition reads its configuration from a source +of truth (remote URL, network metadata service, hypervisor bridge, etc.) +and applies the configuration. -############## validate subpackage ############## +%{summary} -%package validate +############## devel subpackage ############## -Summary: Validation tool for Ignition configs -License: Apache-2.0 +%if 0%{?with_devel} +%package devel +Summary: %{summary} +BuildArch: noarch -%description validate -Ignition is a utility used to manipulate systems during the initramfs. -This includes partitioning disks, formatting partitions, writing files -(regular files, systemd units, etc.), and configuring users. On first -boot, Ignition reads its configuration from a source of truth (remote -URL, network metadata service, hypervisor bridge, etc.) and applies -the configuration. - -This package contains a tool for validating Ignition configurations. - -############## validate-redistributable subpackage ############## - -%if 0%{?fedora} -%package validate-redistributable - -Summary: Statically linked validation tool for Ignition configs -License: Apache-2.0 -BuildArch: noarch - -# In case someone has this subpackage installed, obsolete the old name -# Drop in Fedora 38 -Obsoletes: ignition-validate-nonlinux < 2.13.0-4 - -%description validate-redistributable -This package contains statically linked Linux, macOS, and Windows -ignition-validate binaries built through cross-compilation. Do not install it. -It is only used for building release binaries to be signed by Fedora release -engineering and uploaded to the Ignition GitHub releases page. +# devel subpackage BuildRequires +%if 0%{?with_check} && ! 0%{?with_bundled} +# These buildrequires are only for our tests (check) +BuildRequires: golang(github.com/ajeddeloh/go-json) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +BuildRequires: golang(github.com/coreos/go-semver/semver) +BuildRequires: golang(github.com/coreos/go-systemd/dbus) +BuildRequires: golang(github.com/coreos/go-systemd/unit) +BuildRequires: golang(github.com/pin/tftp) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +BuildRequires: golang(github.com/vincent-petithory/dataurl) +BuildRequires: golang(github.com/vmware/vmw-ovflib) %endif -############## ignition-edge subpackage ############## +# devel subpackage Requires. This is basically the source code from +# all of the libraries that ignition imports during build. +Requires: golang(github.com/ajeddeloh/go-json) +Requires: golang(github.com/aws/aws-sdk-go/aws) +Requires: golang(github.com/aws/aws-sdk-go/aws/awserr) +Requires: golang(github.com/aws/aws-sdk-go/aws/credentials) +Requires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +Requires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +Requires: golang(github.com/aws/aws-sdk-go/aws/session) +Requires: golang(github.com/aws/aws-sdk-go/service/s3) +Requires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +Requires: golang(github.com/coreos/go-semver/semver) +Requires: golang(github.com/coreos/go-systemd/dbus) +Requires: golang(github.com/coreos/go-systemd/unit) +Requires: golang(github.com/pin/tftp) +Requires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +Requires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +Requires: golang(github.com/vincent-petithory/dataurl) +Requires: golang(github.com/vmware/vmw-ovflib) -%package edge +# devel subpackage Provides +Provides: golang(%{import_path}/config/shared) = %{version}-%{release} +Provides: golang(%{import_path}/config/shared/errors) = %{version}-%{release} +Provides: golang(%{import_path}/config/shared/validations) = %{version}-%{release} +Provides: golang(%{import_path}/config/util) = %{version}-%{release} +Provides: golang(%{import_path}/config/v1) = %{version}-%{release} +Provides: golang(%{import_path}/config/v1/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_0) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_0/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_1) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_1/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_2) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_2/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_3_experimental) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_3_experimental/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/astjson) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/astnode) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/report) = %{version}-%{release} +Provides: golang(%{import_path}/tests) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/files) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/filesystems) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/general) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/networkd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/partitions) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/regression) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/security) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/timeouts) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/files) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/filesystems) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/general) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/networkd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/oem) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/partitions) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/passwd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/regression) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/security) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/systemd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/timeouts) = %{version}-%{release} +Provides: golang(%{import_path}/tests/register) = %{version}-%{release} +Provides: golang(%{import_path}/tests/registry) = %{version}-%{release} +Provides: golang(%{import_path}/tests/types) = %{version}-%{release} -Summary: Enablement glue for Ignition on IoT/Edge systems -License: Apache-2.0 +%description devel +%{summary} -%description edge -This package contains dracut modules, services and binaries needed to enable -Ignition on IoT/Edge systems. +This package contains library source intended for +building other packages which use import path with +%{import_path} prefix. +%endif -############## grub subpackage ############## +############## unit-test-devel subpackage ############## +%if 0%{?with_unit_test} && 0%{?with_devel} +%package unit-test-devel +Summary: Unit tests for %{name} package +%if 0%{?with_check} +#Here comes all BuildRequires: PACKAGE the unit tests +#in %%check section need for running +%endif -%package grub -Summary: Enablement glue for bootupd's grub2 config -License: Apache-2.0 +# test subpackage tests code from devel subpackage +Requires: %{name}-devel = %{version}-%{release} -# `ignition-grub` is a rename `ignition-ignition-grub` so let's obsolete `ignition-ignition-grub` -Obsoletes: ignition-ignition-grub +%if 0%{?with_check} && ! 0%{?with_bundled} +BuildRequires: golang(github.com/stretchr/testify/assert) +%endif -%description grub -This package contains the grub2 config which is compatable with bootupd. +Requires: golang(github.com/stretchr/testify/assert) + +%description unit-test-devel +%{summary} + +This package contains unit tests for project +providing packages with %{import_path} prefix. +%endif + + +############## dracut subpackage ############## +%package dracut + +Summary: Dracut modules for ignition +License: BSD +URL: https://%{dracutprovider_prefix} +Source1: https://%{dracutprovider_prefix}/archive/%{dracutcommit}/%{dracutrepo}-%{dracutshortcommit}.tar.gz +Requires: %{name} = %{version}-%{release} +Requires: dracut +Requires: dracut-network +BuildArchitectures: noarch + +%description dracut +Dracut modules for ignition to enable ignition services to run in the +initramfs on boot. + +%files dracut +%doc README.md +%license LICENSE +%{dracutlibdir}/modules.d/30ignition +%{dracutlibdir}/modules.d/99journald-conf +%{_sysconfdir}/grub.d/* +%{_prefix}/lib/systemd/system/*.service +############## end dracut subpackage ############## %prep -%if 0%{?fedora} -%goprep -k -%autopatch -p1 -%else -%forgeautosetup -p1 -%endif - -tar xvf %{SOURCE1} +# setup command reference: http://ftp.rpm.org/max-rpm/s1-rpm-inside-macros.html +# unpack source0 and apply patches +%setup -T -b 0 -q -n %{repo}-%{commit} +# unpack source1 (dracut modules) +%setup -T -D -a 1 -q -n %{repo}-%{commit} %build -export LDFLAGS="-X github.com/coreos/ignition/v2/internal/version.Raw=%{version} -X github.com/coreos/ignition/v2/internal/distro.selinuxRelabel=true " -%if 0%{?rhel} && 0%{?rhel} <= 8 -# Disable writing ssh keys fragments on RHEL/CentOS <= 8 -LDFLAGS+=' -X github.com/coreos/ignition/v2/internal/distro.writeAuthorizedKeysFragment=false ' +# Set up PWD as a proper import path for go +mkdir -p src/%{provider}.%{provider_tld}/%{project} +ln -s ../../../ src/%{import_path} + +%if ! 0%{?with_bundled} +export GOPATH=$(pwd):%{gopath} +%else +# No dependency directories so far +export GOPATH=$(pwd):%{gopath} %endif -%if 0%{?rhel} -# Need uncompressed debug symbols for debuginfo extraction -LDFLAGS+=' -compressdwarf=false ' -%endif -export GOFLAGS="-mod=vendor" + +export LDFLAGS=%{ldflags} +# Tell ignition where to find chroot binary +export LDFLAGS+=' -X github.com/coreos/ignition/internal/distro.chrootCmd=%{_sbindir}/chroot ' echo "Building ignition..." -GOEXPERIMENT=strictfipsruntime %gobuild -o ./ignition internal/main.go +%gobuild -o ./ignition %{import_path}/internal echo "Building ignition-validate..." -%gobuild -o ./ignition-validate validate/main.go +%gobuild -o ./ignition-validate %{import_path}/validate -%global gocrossbuild go build -ldflags "${LDFLAGS:-} -B 0x$(cat /dev/urandom | tr -d -c '0-9a-f' | head -c16)" -a -v -x - -%if 0%{?fedora} -echo "Building statically-linked Linux ignition-validate..." -GOEXPERIMENT= CGO_ENABLED=0 GOARCH=arm64 GOOS=linux %gocrossbuild -o ./ignition-validate-aarch64-unknown-linux-gnu-static validate/main.go -GOEXPERIMENT= CGO_ENABLED=0 GOARCH=ppc64le GOOS=linux %gocrossbuild -o ./ignition-validate-ppc64le-unknown-linux-gnu-static validate/main.go -GOEXPERIMENT= CGO_ENABLED=0 GOARCH=s390x GOOS=linux %gocrossbuild -o ./ignition-validate-s390x-unknown-linux-gnu-static validate/main.go -GOEXPERIMENT= CGO_ENABLED=0 GOARCH=amd64 GOOS=linux %gocrossbuild -o ./ignition-validate-x86_64-unknown-linux-gnu-static validate/main.go - -echo "Building macOS ignition-validate..." -GOEXPERIMENT= GOARCH=amd64 GOOS=darwin %gocrossbuild -o ./ignition-validate-x86_64-apple-darwin validate/main.go -GOEXPERIMENT= GOARCH=arm64 GOOS=darwin %gocrossbuild -o ./ignition-validate-aarch64-apple-darwin validate/main.go - -echo "Building Windows ignition-validate..." -GOEXPERIMENT= GOARCH=amd64 GOOS=windows %gocrossbuild -o ./ignition-validate-x86_64-pc-windows-gnu.exe validate/main.go -%endif %install -# dracut modules -install -d -p %{buildroot}/%{dracutlibdir}/modules.d -cp -r dracut/* %{buildroot}/%{dracutlibdir}/modules.d/ -install -m 0644 -D -t %{buildroot}/%{_unitdir} systemd/ignition-delete-config.service -install -m 0755 -d %{buildroot}/%{_libexecdir} -ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-apply -ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-rmcfg - -# grub -install -d -p %{buildroot}%{_prefix}/lib/bootupd/grub2-static/configs.d -install -p -m 0644 grub2/05_ignition.cfg %{buildroot}%{_prefix}/lib/bootupd/grub2-static/configs.d/ - -# ignition +# main package install -d -p %{buildroot}%{_bindir} +install -p -m 0755 ./ignition %{buildroot}%{_bindir} install -p -m 0755 ./ignition-validate %{buildroot}%{_bindir} +# dracut subpackage +install -d -p %{buildroot}/%{dracutlibdir}/modules.d +install -d -p %{buildroot}/%{_prefix}/lib/systemd/system +install -d -p %{buildroot}/%{_sysconfdir}/grub.d +cd %{dracutrepo}-%{dracutcommit} +rm dracut/README.txt +cp -r dracut/* %{buildroot}/%{dracutlibdir}/modules.d/ +install -m 0644 -t %{buildroot}/%{_prefix}/lib/systemd/system/ systemd/* +install -m 0755 -t %{buildroot}/%{_sysconfdir}/grub.d/ grub/* -%if 0%{?fedora} -install -d -p %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-aarch64-apple-darwin %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-aarch64-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-ppc64le-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-s390x-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-x86_64-apple-darwin %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-x86_64-pc-windows-gnu.exe %{buildroot}%{_datadir}/ignition -install -p -m 0644 ./ignition-validate-x86_64-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition +# source codes for building projects +%if 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list +# find all *.go but no *_test.go files and generate devel.file-list +for file in $(find . \( -iname "*.go" -or -iname "*.s" \) \! -iname "*_test.go" | grep -v "vendor") ; do + dirprefix=$(dirname $file) + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list + + while [ "$dirprefix" != "." ]; do + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list + dirprefix=$(dirname $dirprefix) + done +done %endif -# The ignition binary is only for dracut, and is dangerous to run from -# the command line. Install directly into the dracut module dir. -install -p -m 0755 ./ignition %{buildroot}/%{dracutlibdir}/modules.d/30ignition +# testing files for this project +%if 0%{?with_unit_test} && 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +# find all *_test.go files and generate unit-test-devel.file-list +for file in $(find . -iname "*_test.go" | grep -v "vendor") ; do + dirprefix=$(dirname $file) + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test-devel.file-list -%make_install -C ignition-edge-%{ignedgecommit} + while [ "$dirprefix" != "." ]; do + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list + dirprefix=$(dirname $dirprefix) + done +done +%endif + +%if 0%{?with_devel} +sort -u -o devel.file-list devel.file-list +%endif -%if %{with check} %check -# Exclude the blackbox tests -%gocheck -t tests +%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel} +%if ! 0%{?with_bundled} +export GOPATH=%{buildroot}/%{gopath}:%{gopath} +%else +# Since we aren't packaging up the vendor directory we need to link +# back to it somehow. Hack it up so that we can add the vendor +# directory from BUILD dir as a gopath to be searched when executing +# tests from the BUILDROOT dir. +ln -s ./ ./vendor/src # ./vendor/src -> ./vendor + +export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath} %endif +%if ! 0%{?gotest:1} +%global gotest go test +%endif + +%gotest %{import_path}/config/v1 +%gotest %{import_path}/config/v1/types +%gotest %{import_path}/config/v2_0 +%gotest %{import_path}/config/v2_0/types +%gotest %{import_path}/config/v2_1 +%gotest %{import_path}/config/v2_1/types +%gotest %{import_path}/config/v2_2 +%gotest %{import_path}/config/v2_2/types +%gotest %{import_path}/config/v2_3_experimental +%gotest %{import_path}/config/v2_3_experimental/types +%gotest %{import_path}/config/validate +%gotest %{import_path}/internal/config +%gotest %{import_path}/internal/exec/stages/files +%gotest %{import_path}/internal/exec/util +%gotest %{import_path}/internal/registry +%gotest %{import_path}/internal/util +%gotest %{import_path}/tests +%endif + +#define license tag if not already defined +%{!?_licensedir:%global license %doc} + %files -%license %{golicenses} -%doc %{godocs} -%{dracutlibdir}/modules.d/30ignition/* -%{_unitdir}/ignition-delete-config.service -%{_libexecdir}/ignition-apply -%{_libexecdir}/ignition-rmcfg +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md doc/ +%{_bindir}/%{name} +%{_bindir}/%{name}-validate -%files validate -%doc README.md -%license %{golicenses} -%{_bindir}/ignition-validate -%if 0%{?fedora} -%files validate-redistributable -%license %{golicenses} -%dir %{_datadir}/ignition -%{_datadir}/ignition/ignition-validate-aarch64-apple-darwin -%{_datadir}/ignition/ignition-validate-aarch64-unknown-linux-gnu-static -%{_datadir}/ignition/ignition-validate-ppc64le-unknown-linux-gnu-static -%{_datadir}/ignition/ignition-validate-s390x-unknown-linux-gnu-static -%{_datadir}/ignition/ignition-validate-x86_64-apple-darwin -%{_datadir}/ignition/ignition-validate-x86_64-pc-windows-gnu.exe -%{_datadir}/ignition/ignition-validate-x86_64-unknown-linux-gnu-static +%if 0%{?with_devel} +%files devel -f devel.file-list +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md +%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project} %endif -%files edge -%license %{golicenses} -%doc %{godocs} -%{dracutlibdir}/modules.d/35ignition-edge/* -%{dracutlibdir}/modules.d/10coreos-sysctl/* -%{dracutlibdir}/modules.d/99emergency-shell-setup/* -%{dracutlibdir}/modules.d/99journal-conf/* -%{_unitdir}/coreos-check-ssh-keys.service -%{_unitdir}/coreos-ignition-write-issues.service -%{_unitdir}/ignition-firstboot-complete.service -%{_libexecdir}/coreos-ignition-write-issues -%{_libexecdir}/coreos-check-ssh-keys - -%files grub -%doc README.md -%license %{golicenses} -%{_prefix}/lib/bootupd/grub2-static/configs.d/05_ignition.cfg +%if 0%{?with_unit_test} && 0%{?with_devel} +%files unit-test-devel -f unit-test-devel.file-list +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md +%endif %changelog -* Fri Dec 12 2025 Steven Presti - 2.25.0-1 -- New Release - -* Tue Oct 14 2025 Steven Presti - 2.24.0-1 -- New Release - -* Fri Oct 10 2025 Alejandro Sáez - 2.23.0-3 -- rebuild - -* Wed Oct 01 2025 Steven Presti - 2.23.0-2 -- Build Ignition with GOEXPERIMENT=strictfipsruntime -- Ignition-validate non-FIPS - -* Wed Sep 10 2025 Steven Presti - 2.23.0-1 -- New Release - -* Fri Aug 15 2025 Maxwell G - 2.22.0-5 -- Rebuild for golang-1.25.0 - -* Thu Jul 24 2025 Fedora Release Engineering - 2.22.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jul 16 2025 Tiago Bueno - 2.22.0-3 -- Fix rpminspect debug symbols failure - -* Tue Jul 15 2025 Tiago Bueno - 2.22.0-2 -- Backport fix for OracleCloud do not wrap errors from FetchToBuffer - -* Tue Jul 8 2025 Yasmin Valim - 2.22.0-1 -- New Release - -* Wed Mar 19 2025 Steven Presti - 2.21.0-2 -- Rename ignition.cfg -> 05_ignition.cfg to mirror upstream - additionally backport rename. -- Rename ignition-ignition-grub subpackage to ignition-grub -- Update grub2 config to use the correct dir for bootupd static grub configs - https://github.com/coreos/ignition/pull/2037#issuecomment-2736300056 - -* Fri Mar 14 2025 Steven Presti - 2.21.0-1 -- New Release - -* Mon Jan 27 2025 David Jachimowicz - 2.20.0-5 -- Update ignition-edge commit to include https://github.com/fedora-iot/ignition-edge/pull/3 - -* Wed Jan 22 2025 FeRD (Frank Dana) - 2.20.0-4 -- Apply upstream patch for Go 1.24 compatibility - -* Fri Jan 17 2025 Fedora Release Engineering - 2.20.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Nov 05 2024 Miguel Martín - 2.20.0-2 -- Update ignition-edge commit to include - - https://github.com/fedora-iot/ignition-edge/pull/2 - -* Wed Oct 23 2024 Steven Presti - 2.20.0-1 -- New Release - -* Thu Jul 18 2024 Fedora Release Engineering - 2.19.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Wed Jun 05 2024 Steven Presti - 2.19.0-1 -- New release - -* Mon Mar 4 2024 Yasmin de Souza - 2.18.0-1 -- New release -- Discontinue support for i686 - -* Sun Feb 11 2024 Maxwell G - 2.17.0-6 -- Rebuild for golang 1.22.0 - -* Fri Feb 09 2024 Timothée Ravier - 2.17.0-5 -- Backport fix for unexpected Azure IMDS status codes - -* Wed Jan 24 2024 Fedora Release Engineering - 2.17.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jan 20 2024 Fedora Release Engineering - 2.17.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Dec 15 2023 Steven Presti - 2.17.0-2 -- Add ignition-grub subpackage - -* Wed Nov 22 2023 Steven Presti - 2.17.0-1 -- New release - -* Thu Jul 20 2023 Fedora Release Engineering - 2.16.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jul 12 2023 Benjamin Gilbert - 2.16.2-1 -- New release - -* Mon Jul 10 2023 Benjamin Gilbert - 2.16.1-1 -- New release - -* Thu Jun 1 2023 Steven Presti - 2.15.0-4 -- Switch License tags to SPDX - -* Thu Feb 23 2023 Benjamin Gilbert - 2.15.0-3 -- Remove ignition-edge files from base package - -* Wed Feb 22 2023 Paul Whalen - 2.15.0-2 -- Enable ignition-edge in Fedora - -* Tue Feb 21 2023 Benjamin Gilbert - 2.15.0-1 -- New release -- Drop Conflicts/Obsoletes for ancient Ignition releases - -* Thu Jan 19 2023 Fedora Release Engineering - 2.14.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Aug 9 2022 Christian Glombek - 2.14.0-5 -- Enable writing ssh keys fragments on RHEL/CentOS >= 9 - -* Thu Jul 21 2022 Fedora Release Engineering - 2.14.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 27 2022 Benjamin Gilbert - 2.14.0-3 -- Add macOS aarch64 binary to -redistributable - -* Sat Jun 18 2022 Robert-André Mauchin - 2.14.0-2 -- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, - CVE-2022-29526, CVE-2022-30629 - -* Mon May 16 2022 Steven Presti - 2.14.0-1 -- New release -- Add ignition-apply symlink -- Add ignition-rmcfg symlink and ignition-delete-config.service - -* Thu Mar 17 2022 Sohan Kunkerkar - 2.13.0-5 -- Avoid kernel lockdown on VMware when running with secure boot - -* Fri Jan 28 2022 Benjamin Gilbert - 2.13.0-4 -- Rename -validate-nonlinux subpackage to -validate-redistributable -- Add static Linux binaries to -redistributable -- Fix macro invocation in comment - -* Thu Jan 20 2022 Benjamin Gilbert - 2.13.0-3 -- Fix LUKS volume reuse -- Avoid double patch application on non-Fedora - -* Thu Jan 20 2022 Fedora Release Engineering - 2.13.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Nov 30 2021 Sohan Kunkerkar - 2.13.0-1 -- New release - -* Wed Oct 13 2021 Sohan Kunkerkar - 2.12.0-3 -- Move Ignition report to /etc - -* Thu Aug 26 2021 Sohan Kunkerkar - 2.12.0-2 -- Disable file fragment writing logic for SSH authorized_keys on RHEL/CentOS -- Disable compressdwarf flag to avoid build failures on RHEL/CentOS -- Disable cross-building of Ignition-validate on RHEL/CentOS -- Conditionalize Fedora-specific configuration - -* Fri Aug 6 2021 Sohan Kunkerkar - 2.12.0-1 -- New release - -* Thu Jul 22 2021 Fedora Release Engineering - 2.11.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Jul 8 2021 Benjamin Gilbert - 2.11.0-2 -- Move ignition-firstboot-complete and ignition-setup-user services out of - package into distro glue - -* Fri Jun 25 2021 Benjamin Gilbert - 2.11.0-1 -- New release - -* Wed May 26 2021 Jonathan Lebon - 2.10.1-3 -- Backport patch for multipath on firstboot - https://github.com/coreos/ignition/pull/1208 - https://github.com/coreos/fedora-coreos-config/pull/1011 - -* Wed May 26 2021 Jonathan Lebon - 2.10.1-2 -- Redo packaging using go2rpm - -* Thu Apr 29 2021 Stephen Lowrie - 2.10.1-1 -- New release - -* Fri Feb 05 2021 Benjamin Gilbert - 2.9.0-4 -- Drop Git commit hash from Release -- Correctly enable IMDS patch -- Switch to %%autosetup -- Set ExclusiveArch from %%go_arches -- Drop mention of networkd in package description - -* Tue Jan 26 2021 Fedora Release Engineering - 2.9.0-3.git1d56dc8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Jan 12 2021 Sohan Kunkerkar - 2.9.0-2.git1d56dc8 -- Fix AWS probing by using the IMDS token URL to ensure that networking is up - -* Fri Jan 08 2021 Sohan Kunkerkar - 2.9.0-1.git1d56dc8 -- New release - -* Thu Dec 03 2020 Sohan Kunkerkar - 2.8.1-1.gitc733d23 -- New release - -* Wed Nov 25 2020 Sohan Kunkerkar - 2.8.0-1.gitdb4d30d -- New release - -* Wed Oct 14 2020 Stephen Lowrie - 2.7.0-1.git5be43fd -- New release - -* Wed Aug 12 2020 Benjamin Gilbert - 2.6.0-2.git947598e -- Fix sector size detection on s390x - -* Fri Aug 07 2020 Benjamin Gilbert - 2.6.0-1.git947598e -- New release - -* Fri Aug 07 2020 Jonathan Lebon - 2.5.0-3.git0d6f3e5 -- Backport conditional networking fix for OpenStack and CloudStack - https://github.com/coreos/ignition/pull/1057 - -* Tue Jul 28 2020 Fedora Release Engineering - 2.5.0-2.git0d6f3e5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Thu Jul 23 2020 Benjamin Gilbert - 2.5.0-1.git0d6f3e5 -- New release -- Ship support code from Ignition tarball instead of ignition-dracut - -* Thu Jul 16 2020 Benjamin Gilbert - 2.4.1-1.git5260a5b -- New release -- Bump ignition-dracut to fix warning in udev rule - -* Wed Jul 15 2020 Jonathan Lebon - 2.4.0-2.gitd18bf90 -- Backport root homedir relabeling fix - https://github.com/coreos/ignition/pull/1029 for - https://github.com/coreos/fedora-coreos-config/pull/426#issuecomment-658867731. - -* Mon Jul 13 2020 Benjamin Gilbert - 2.4.0-1.gitd18bf90 -- New release -- Bump ignition-dracut - -* Mon Jun 15 2020 Timothée Ravier - 2.3.0-3.gitee616d5 -- Update to latest ignition-dracut to fix coreos-gpt-setup unit - https://github.com/coreos/ignition-dracut/pull/191 - -* Mon Jun 01 2020 Jonathan Lebon - 2.3.0-2.gitee616d5 -- Update to latest ignition-dracut to fix error handling - https://github.com/coreos/ignition-dracut/pull/188 - -* Tue May 05 2020 Benjamin Gilbert - 2.3.0-1.gitee616d5 -- New release -- Bump ignition-dracut - -* Sun Apr 26 2020 Dusty Mabe - 2.2.1-5.git2d3ff58 -- Update to latest ignition-dracut for network fixes - https://github.com/coreos/ignition-dracut/pull/174 - -* Thu Apr 16 2020 Colin Walters - 2.2.1-4.git2d3ff58 -- Update to latest ignition-dracut for virtio dump - -* Mon Mar 30 2020 Benjamin Gilbert - 2.2.1-3.git2d3ff58 -- Bump ignition-dracut to fix umount stage network access - -* Sat Mar 28 2020 Benjamin Gilbert - 2.2.1-2.git2d3ff58 -- Fix userdata/metadata fetch on Packet - -* Tue Mar 24 2020 Benjamin Gilbert - 2.2.1-1.git2d3ff58 -- New release -- Bump ignition-dracut for initramfs network teardown - -* Sat Feb 01 2020 Benjamin Gilbert - 2.1.1-6.git40c0b57 -- Switch -validate-nonlinux to noarch; move files to /usr/share/ignition -- Improve -validate-nonlinux descriptive text - -* Fri Jan 31 2020 Jonathan Lebon - 2.1.1-5.git40c0b57 -- Bump ignition-dracut for ignition-diskful-subsequent target - https://github.com/coreos/ignition-dracut/pull/151 -- Kill grub dropin - https://github.com/coreos/ignition-dracut/pull/91 - -* Wed Jan 29 2020 Fedora Release Engineering - 2.1.1-4.git40c0b57 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Dec 20 2019 Dusty Mabe - 2.1.1-3.git40c0b57 -- Backport upstream patch to workaround problem booting on live systems - - https://github.com/coreos/fedora-coreos-tracker/issues/339 - - https://github.com/coreos/ignition/pull/907 - -* Tue Dec 17 2019 Andrew Jeddeloh - 2.1.1-2.git40c0b57 -- Add ignition-validate-nonlinux subpackage. This should not be installed. It - is only used for building binaries to sign by Fedora release engineering and - include on the Ignition project's Github releases page. - -* Fri Dec 13 2019 Andrew Jeddeloh - 2.1.1-1.git40c0b57 -- New release 2.1.1 - -* Mon Dec 09 2019 Jonathan Lebon - 2.0.1-9.gita8f91fa -- Use the master branch of ignition-dracut, not spec2x - -* Fri Dec 06 2019 Jonathan Lebon - 2.0.1-8.gita8f91fa -- Bump Ignition for that sweet SELinux labeling: - https://github.com/coreos/ignition/pull/846 - -* Thu Dec 05 2019 Jonathan Lebon - 2.0.1-7.git641ec6a -- Don't require btrfs-progs, just recommend it - https://github.com/coreos/fedora-coreos-tracker/issues/323 - -* Wed Dec 04 2019 Allen Bai - 2.0.1-6.git641ec6a -- Update dracut to latest spec2x - * firstboot-complete: tell zipl to run - -* Thu Oct 31 2019 Colin Walters - 2.0.1-5.git641ec6a -- Update dracut - -* Wed Sep 25 2019 Colin Walters - 2.0.1-4.git641ec6a -- Bump to latest in prep for rootfs redeploy work - -* Sat Sep 21 2019 Peter Robinson 2.0.1-3.gite75cf24 -- Fix up arch dependencies for new golang specs - -* Fri Aug 16 2019 Colin Walters - 2.0.1-2.gite75cf24 -- Update dracut for gpt fixes - -* Thu Jul 25 2019 Andrew Jeddeloh - 2.0.1-1.gite75cf24 -- New release 2.0.1 - -* Thu Jul 25 2019 Fedora Release Engineering - 2.0.0-2.git0c1da80 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Mon Jun 10 2019 Andrew Jeddeloh - 2.0.0-1.git0c1da80 -- New release 2.0.0 - -* Fri May 03 2019 Jonathan Lebon - 2.0.0-beta.3.git910e6c6 -- Adapt distro.selinuxRelabel flag path for v2/ move - -* Fri May 03 2019 Jonathan Lebon - 2.0.0-beta.2.git910e6c6 -- Bump ignition-dracut dropping CoreOS integration files - -* Mon Apr 29 2019 Andrew Jeddeloh - 2.0.0-beta.1.git910e6c6 -- New release 2.0.0-beta - -* Mon Apr 08 2019 Jonathan Lebon - 2.0.0-alpha.3.git906cf04 -- ignition-dracut: update to latest - * dracut/30ignition: link to RHBZ in ignition-complete - * dracut/30ignition: add OnFailure= for ExecStop= services - * dracut/30ignition: order ExecStop= units before initrd-switch-root.target - * dracut/30ignition: re-order directives in remount-sysroot - * dracut/30ignition: add missing Before= for mount unit - * dracut/30ignition: order ignition-complete.target before initrd.target - * module_setup: include cdrom rules for openstack - -* Wed Mar 27 2019 Benjamin Gilbert - 2.0.0-alpha.2.git906cf04 -- Backport fix for SELinux relabeling of systemd units -- Drop obsolete override of chroot path - -* Wed Mar 27 2019 Jonathan Lebon - 2.0.0-alpha.1.git906cf04 -- New release 2.0.0-alpha -- ignition-dracut: Go back to master branch - -* Fri Mar 22 2019 Dusty Mabe - 0.31.0-7.gitf59a653 -- ignition-dracut: Pull in latest from spec2x branch - * grub: support overriding network kcmdline args -- ignition: pull in subuid/subgid files patch from spec2x branch - * stages/files: Also relabel subuid/subgid files - -* Wed Mar 20 2019 Michael Nguyen - 0.31.0-6.gitf59a653 -- Backport patch for supporting guestinfo.ignition.config.data - -* Mon Mar 18 2019 Dusty Mabe - 0.31.0-5.gitf59a653 -- Use the spec2x branch of ignition-dracut upstream -- * Since ignition-dracut master has moved to supporting ignition - spec 3.x we are applying 2.x related fixes to the spec2x - branch in the ignition-dracut repo. - * Summary of backports: https://github.com/coreos/ignition-dracut/pull/58 - -* Mon Mar 18 2019 Benjamin Gilbert - 0.31.0-4.gitf59a653 -- Move dracut modules into main ignition package -- Move ignition binary out of the PATH -- Move ignition-validate into a subpackage -- Include ignition-dracut license file -- Drop developer docs from base package - -* Mon Mar 18 2019 Colin Walters - 0.31.0-3.gitf59a653 -- Backport patch for networking - -* Mon Mar 04 2019 Dusty Mabe - 0.31.0-2.gitf59a653 -- ignition-dracut: backport patch for finding ignition.firstboot file on UEFI systems - https://github.com/coreos/ignition-dracut/pull/52 - -* Wed Feb 20 2019 Andrew Jeddeloh - 0.31.0-1.gitf59a653 -- New release 0.31.0 - -* Fri Feb 15 2019 Dusty Mabe - 0.30.0-4.git308d7a0 -- Bump to ignition-dracut 2c69925 -- * support platform configs and user configs in /boot - ^ https://github.com/coreos/ignition-dracut/pull/43 - * Add ability to parse config.ign file on boot - ^ https://github.com/coreos/ignition-dracut/pull/42 - -* Fri Feb 01 2019 Fedora Release Engineering - 0.30.0-3.git308d7a0 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jan 28 2019 Dusty Mabe - 0.30.0-2.git308d7a0 -- Bump to ignition-dracut fa7131b -- * 7579b92 journal: add clarifying comment for context - * a6551f1 Remount /sysroot rw (#38) - * ignition-firstboot-complete.service: Remount /boot rw - -* Sat Dec 15 2018 Benjamin Gilbert - 0.30.0-1.git308d7a0 -- New release 0.30.0 - -* Fri Dec 14 2018 Michael Nguyen - 0.29.1-3.gitb1ab0b2 -- define gopath for RHEL7 - -* Tue Dec 11 2018 Dusty Mabe - 0.29.1-2.gitb1ab0b2 -- require golang >= 1.10 and specify architecture list for RHEL7 - -* Tue Dec 11 2018 Andrew Jeddeloh - 0.29.1-1.gitb1ab0b2 -- New release 0.29.1 - -* Wed Nov 21 2018 Igor Gnatenko - 0.28.0-12.gitf707912 -- Rebuild for protobuf 3.6 in rawhide (f30) - -* Tue Nov 20 2018 Jonathan Lebon - 0.28.0-11.git7b83454 -- Bump to ignition-dracut 7b83454 - -* Thu Oct 25 2018 Dusty Mabe - 0.28.0-10.gitf707912 -- Bump to ignition-dracut decf63f -- * 03d8438 30ignition: only instmods if module available - -* Thu Oct 25 2018 Dusty Mabe - 0.28.0-9.gitf707912 -- Bump to ignition-dracut 7ee64ca -- * 3ec0b39 remove ignition-remount-sysroot.service files - * 66335f2 ignition: run files stage at original CL ordering - * 0301a03 ignition-disks.service: drop Requires=network.target - * a0bc135 ignition-ask-var-mount.service: use RemainAfterExit=yes - * ecf5779 module-setup.sh: explicitly install qemu_fw_cfg - -* Mon Oct 15 2018 Dusty Mabe - 0.28.0-8.gitf707912 -- Bump to ignition-dracut 4bdfb34 -- * 6d0763a module-setup: Make mkfs.btrfs optional - -* Wed Oct 10 2018 Jonathan Lebon - 0.28.0-7.gitf707912 -- Backport patch for handling sysctl files correctly - https://github.com/coreos/coreos-assembler/pull/128 - https://github.com/openshift/machine-config-operator/pull/123 - -* Wed Sep 26 2018 Dusty Mabe - 0.28.0-6.gitf707912 -- Bump to ignition-dracut c09ce6f -- * ce9f648 30ignition: add support for ignition-disks - -* Mon Sep 24 2018 Dusty Mabe - 0.28.0-5.gitf707912 -- Remove requires for btrfs on !fedora -- Bump to ignition-dracut 8c85eb3 -- * 26f2396 journal: Don't log to console AND kmsg - -* Mon Sep 17 2018 Jonathan Lebon - 0.28.0-4.gitf707912 -- Backport patch for relabeling /var/home on FCOS - https://github.com/coreos/fedora-coreos-config/issues/2 - -* Thu Sep 06 2018 Luca Bruno - 0.28.0-3.gitf707912 -- Add requires for disks stage - -* Thu Aug 30 2018 Dusty Mabe - 0.28.0-2.gitf707912 -- Bump to ignition-dracut d056287 -- * 3f41219 dracut/ignition: remove CL-legacy udev references -- * 92ef9dd coreos-firstboot-complete: RemainAfterExit=yes - -* Thu Aug 30 2018 Andrew Jeddeloh - 0.28.0-1.gitf707912 -- New release 0.28.0 - -* Fri Aug 17 2018 Dusty Mabe - 0.27.0-3.gitcc7ebe0 -- Bump to ignition-dracut 56aa514 - -* Wed Aug 15 2018 Jonathan Lebon - 0.27.0-2.gitcc7ebe0 -- Backport patch for /root relabeling - https://github.com/coreos/ignition/pull/613 - -* Fri Aug 10 2018 Jonathan Lebon - 0.27.0-1.gitcc7ebe0 -- New release 0.27.0 - * Sat Jul 21 2018 Dusty Mabe - 0.26.0-0.6.git7610725 - Bump to ignition-dracut d664657 diff --git a/ignition.spec.orig b/ignition.spec.orig new file mode 100644 index 0000000..5b8cf97 --- /dev/null +++ b/ignition.spec.orig @@ -0,0 +1,352 @@ +# Original spec file as generated by: +# gofed repo2spec --detect github.com/coreos/ignition --commit 76107251acd117c6d3e5b4dae2b47f82f944984b --with-extra --with-build -f +# With: +# gofed@8f62d8d2dea0a87ef60cad72f72e2d7558c0cb75 +# And: +# $ git submodule status +# 33207573a1875bc828da3f863e1de439d7af8166 third_party/cmdsignature (heads/master) +# 6bff7ae54535689e2ade3d0bd3d33d903a2190b9 third_party/gofed_infra (remotes/origin/WIP-37-g6bff7ae) +# 7e414c78930a81167dc2cd4d3e9adb79eeed38a6 third_party/gofed_resources (heads/master) +# ef6ec0e387f3b125308243898435774da6128a4c third_party/gofedlib (0.1.0a1-20-gef6ec0e) + + +# If any of the following macros should be set otherwise, +# you can wrap any of them with the following conditions: +# - %%if 0%%{centos} == 7 +# - %%if 0%%{?rhel} == 7 +# - %%if 0%%{?fedora} == 23 +# Or just test for particular distribution: +# - %%if 0%%{centos} +# - %%if 0%%{?rhel} +# - %%if 0%%{?fedora} +# +# Be aware, on centos, both %%rhel and %%centos are set. If you want to test +# rhel specific macros, you can use %%if 0%%{?rhel} && 0%%{?centos} == 0 condition. +# (Don't forget to replace double percentage symbol with single one in order to apply a condition) + +# Generate devel rpm +%global with_devel 1 +# Build project from bundled dependencies +%global with_bundled 0 +# Build with debug info rpm +%global with_debug 1 +# Run tests in check section +%global with_check 1 +# Generate unit-test rpm +%global with_unit_test 1 + +%if 0%{?with_debug} +%global _dwz_low_mem_die_limit 0 +%else +%global debug_package %{nil} +%endif + +%if ! 0%{?gobuild:1} +%define gobuild(o:) go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x %{?**}; +%endif + +%global provider github +%global provider_tld com +%global project coreos +%global repo ignition +# https://github.com/coreos/ignition +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} +%global commit 76107251acd117c6d3e5b4dae2b47f82f944984b +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: golang-%{provider}-%{project}-%{repo} +Version: 0 +Release: 0.1.git%{shortcommit}%{?dist} +Summary: !!!!FILL!!!! +# Detected licences +# - Unknown at 'LICENSE' +License: !!!!FILL!!!! +URL: https://%{provider_prefix} +Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz + +# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required +ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}} +# If go_compiler is not set to 1, there is no virtual provide. Use golang instead. +BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} + +%if ! 0%{?with_bundled} +# validate/main.go +BuildRequires: golang(github.com/spf13/cobra) + +# Remaining dependencies not included in main packages +BuildRequires: golang(github.com/coreos/go-systemd/unit) +BuildRequires: golang(github.com/coreos/go-semver/semver) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +BuildRequires: golang(github.com/pin/tftp) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +BuildRequires: golang(github.com/coreos/go-systemd/dbus) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) +BuildRequires: golang(github.com/vincent-petithory/dataurl) +BuildRequires: golang(github.com/vmware/vmw-ovflib) +BuildRequires: golang(github.com/ajeddeloh/go-json) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3) +%endif + +%description +%{summary} + +%if 0%{?with_devel} +%package devel +Summary: %{summary} +BuildArch: noarch + +%if 0%{?with_check} && ! 0%{?with_bundled} +BuildRequires: golang(github.com/ajeddeloh/go-json) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/awserr) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3) +BuildRequires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +BuildRequires: golang(github.com/coreos/go-semver/semver) +BuildRequires: golang(github.com/coreos/go-systemd/dbus) +BuildRequires: golang(github.com/coreos/go-systemd/unit) +BuildRequires: golang(github.com/pin/tftp) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +BuildRequires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +BuildRequires: golang(github.com/vincent-petithory/dataurl) +BuildRequires: golang(github.com/vmware/vmw-ovflib) +%endif + +Requires: golang(github.com/ajeddeloh/go-json) +Requires: golang(github.com/aws/aws-sdk-go/aws) +Requires: golang(github.com/aws/aws-sdk-go/aws/awserr) +Requires: golang(github.com/aws/aws-sdk-go/aws/credentials) +Requires: golang(github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds) +Requires: golang(github.com/aws/aws-sdk-go/aws/ec2metadata) +Requires: golang(github.com/aws/aws-sdk-go/aws/session) +Requires: golang(github.com/aws/aws-sdk-go/service/s3) +Requires: golang(github.com/aws/aws-sdk-go/service/s3/s3manager) +Requires: golang(github.com/coreos/go-semver/semver) +Requires: golang(github.com/coreos/go-systemd/dbus) +Requires: golang(github.com/coreos/go-systemd/unit) +Requires: golang(github.com/pin/tftp) +Requires: golang(github.com/sigma/vmw-guestinfo/rpcvmx) +Requires: golang(github.com/sigma/vmw-guestinfo/vmcheck) +Requires: golang(github.com/vincent-petithory/dataurl) +Requires: golang(github.com/vmware/vmw-ovflib) + +Provides: golang(%{import_path}/config/shared) = %{version}-%{release} +Provides: golang(%{import_path}/config/shared/errors) = %{version}-%{release} +Provides: golang(%{import_path}/config/shared/validations) = %{version}-%{release} +Provides: golang(%{import_path}/config/util) = %{version}-%{release} +Provides: golang(%{import_path}/config/v1) = %{version}-%{release} +Provides: golang(%{import_path}/config/v1/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_0) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_0/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_1) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_1/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_2) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_2/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_3_experimental) = %{version}-%{release} +Provides: golang(%{import_path}/config/v2_3_experimental/types) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/astjson) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/astnode) = %{version}-%{release} +Provides: golang(%{import_path}/config/validate/report) = %{version}-%{release} +Provides: golang(%{import_path}/tests) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/files) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/filesystems) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/general) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/networkd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/partitions) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/regression) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/security) = %{version}-%{release} +Provides: golang(%{import_path}/tests/negative/timeouts) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/files) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/filesystems) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/general) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/networkd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/oem) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/partitions) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/passwd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/regression) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/security) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/systemd) = %{version}-%{release} +Provides: golang(%{import_path}/tests/positive/timeouts) = %{version}-%{release} +Provides: golang(%{import_path}/tests/register) = %{version}-%{release} +Provides: golang(%{import_path}/tests/registry) = %{version}-%{release} +Provides: golang(%{import_path}/tests/types) = %{version}-%{release} + +%description devel +%{summary} + +This package contains library source intended for +building other packages which use import path with +%{import_path} prefix. +%endif + +%if 0%{?with_unit_test} && 0%{?with_devel} +%package unit-test-devel +Summary: Unit tests for %{name} package +%if 0%{?with_check} +#Here comes all BuildRequires: PACKAGE the unit tests +#in %%check section need for running +%endif + +# test subpackage tests code from devel subpackage +Requires: %{name}-devel = %{version}-%{release} + +%if 0%{?with_check} && ! 0%{?with_bundled} +BuildRequires: golang(github.com/stretchr/testify/assert) +%endif + +Requires: golang(github.com/stretchr/testify/assert) + +%description unit-test-devel +%{summary} + +This package contains unit tests for project +providing packages with %{import_path} prefix. +%endif + +%prep +%setup -q -n %{repo}-%{commit} + +%build +mkdir -p src/%{provider}.%{provider_tld}/%{project} +ln -s ../../../ src/%{import_path} + +%if ! 0%{?with_bundled} +export GOPATH=$(pwd):%{gopath} +%else +# No dependency directories so far +export GOPATH=$(pwd):%{gopath} +%endif + +#%gobuild -o bin/internal %{import_path}/internal +#%gobuild -o bin/internal/util/tools/docs %{import_path}/internal/util/tools/docs +#%gobuild -o bin/tests/stubs/id-stub %{import_path}/tests/stubs/id-stub +#%gobuild -o bin/tests/stubs/useradd-stub %{import_path}/tests/stubs/useradd-stub +#%gobuild -o bin/tests/stubs/usermod-stub %{import_path}/tests/stubs/usermod-stub +#%gobuild -o bin/validate %{import_path}/validate + +%install +install -d -p %{buildroot}%{_bindir} +#install -p -m 0755 bin/internal %{buildroot}%{_bindir} +#install -p -m 0755 bin/internal/util/tools/docs %{buildroot}%{_bindir} +#install -p -m 0755 bin/tests/stubs/id-stub %{buildroot}%{_bindir} +#install -p -m 0755 bin/tests/stubs/useradd-stub %{buildroot}%{_bindir} +#install -p -m 0755 bin/tests/stubs/usermod-stub %{buildroot}%{_bindir} +#install -p -m 0755 bin/validate %{buildroot}%{_bindir} + +# source codes for building projects +%if 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list +# find all *.go but no *_test.go files and generate devel.file-list +for file in $(find . \( -iname "*.go" -or -iname "*.s" \) \! -iname "*_test.go" | grep -v "vendor") ; do + dirprefix=$(dirname $file) + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list + + while [ "$dirprefix" != "." ]; do + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list + dirprefix=$(dirname $dirprefix) + done +done +%endif + +# testing files for this project +%if 0%{?with_unit_test} && 0%{?with_devel} +install -d -p %{buildroot}/%{gopath}/src/%{import_path}/ +# find all *_test.go files and generate unit-test-devel.file-list +for file in $(find . -iname "*_test.go" | grep -v "vendor") ; do + dirprefix=$(dirname $file) + install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$dirprefix + cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file + echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test-devel.file-list + + while [ "$dirprefix" != "." ]; do + echo "%%dir %%{gopath}/src/%%{import_path}/$dirprefix" >> devel.file-list + dirprefix=$(dirname $dirprefix) + done +done +%endif + +%if 0%{?with_devel} +sort -u -o devel.file-list devel.file-list +%endif + +%check +%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel} +%if ! 0%{?with_bundled} +export GOPATH=%{buildroot}/%{gopath}:%{gopath} +%else +# Since we aren't packaging up the vendor directory we need to link +# back to it somehow. Hack it up so that we can add the vendor +# directory from BUILD dir as a gopath to be searched when executing +# tests from the BUILDROOT dir. +ln -s ./ ./vendor/src # ./vendor/src -> ./vendor + +export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath} +%endif + +%if ! 0%{?gotest:1} +%global gotest go test +%endif + +%gotest %{import_path}/config/v1 +%gotest %{import_path}/config/v1/types +%gotest %{import_path}/config/v2_0 +%gotest %{import_path}/config/v2_0/types +%gotest %{import_path}/config/v2_1 +%gotest %{import_path}/config/v2_1/types +%gotest %{import_path}/config/v2_2 +%gotest %{import_path}/config/v2_2/types +%gotest %{import_path}/config/v2_3_experimental +%gotest %{import_path}/config/v2_3_experimental/types +%gotest %{import_path}/config/validate +%gotest %{import_path}/internal/config +%gotest %{import_path}/internal/exec/stages/files +%gotest %{import_path}/internal/exec/util +%gotest %{import_path}/internal/registry +%gotest %{import_path}/internal/util +%gotest %{import_path}/tests +%endif + +#define license tag if not already defined +%{!?_licensedir:%global license %doc} + +%files +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md +#%{_bindir}/internal +#%{_bindir}/internal/util/tools/docs +#%{_bindir}/tests/stubs/id-stub +#%{_bindir}/tests/stubs/useradd-stub +#%{_bindir}/tests/stubs/usermod-stub +#%{_bindir}/validate + +%if 0%{?with_devel} +%files devel -f devel.file-list +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md +%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project} +%endif + +%if 0%{?with_unit_test} && 0%{?with_devel} +%files unit-test-devel -f unit-test-devel.file-list +%license LICENSE +%doc CONTRIBUTING.md code-of-conduct.md README.md +%endif + +%changelog +* Thu Jun 21 2018 vagrant - 0-0.1.git7610725 +- First package for Fedora + diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..e49b6f8 --- /dev/null +++ b/notes.txt @@ -0,0 +1,61 @@ +#grab gofed from https://github.com/gofed/gofed +#follow instructions for install + +#choose which version of the repo you want to build. For ignition it was 0.2.6 and the commit was 76107251acd117c6d3e5b4dae2b47f82f944984b + +[vagrant@vanilla-f28 ~]$ gofed repo2spec --detect github.com/coreos/ignition --commit 76107251acd117c6d3e5b4dae2b47f82f944984b --with-extra --with-build -f +Repo URL: github.com/coreos/ignition +Commit: 76107251acd117c6d3e5b4dae2b47f82f944984b +Name: golang-github-coreos-ignition + +(1/4) Checking if the package already exists in PkgDB +(2/4) Collecting data +(3/4) Generating spec file +(4/4) Discovering golang dependencies +Discovering package dependencies + Class: github.com/ajeddeloh/go-json (golang-github-ajeddeloh-go-json) PkgDB=False + Class: github.com/aws/aws-sdk-go (golang-github-aws-aws-sdk-go) PkgDB=True + Class: github.com/coreos/go-semver (golang-github-coreos-go-semver) PkgDB=True + Class: github.com/coreos/go-systemd (golang-github-coreos-go-systemd) PkgDB=True + Class: github.com/pin/tftp (golang-github-pin-tftp) PkgDB=False + Class: github.com/sigma/vmw-guestinfo (golang-github-sigma-vmw-guestinfo) PkgDB=False + Class: github.com/vincent-petithory/dataurl (golang-github-vincent-petithory-dataurl) PkgDB=False + Class: github.com/vmware/vmw-ovflib (golang-github-vmware-vmw-ovflib) PkgDB=False + +Discovering test dependencies + Class: github.com/stretchr/testify (golang-github-stretchr-testify) PkgDB=True + +Spec file golang-github-coreos-ignition.spec at /home/vagrant/golang-github-coreos-ignition + +# spec file now at /home/vagrant/golang-github-coreos-ignition/golang-github-coreos-ignition.spec + +# go through and fix things up - see diff + +# generate bundled provides by copying/using parsedeps.go to the ignition +# source folder and then running `go run parsedeps.go`. copy into spec file +# should be done by gofed at some point - https://github.com/gofed/gofed/issues/42 + +# grab source tarball +# rpmspec -P ignition.spec | grep Source0 +# pushd $HOME/rpmbuild/SOURCES/ +# curl -L -O $URL +# popd + + +# build RPM +$ rpmbuild -ba kompose.spec + +# find a srpm in `$HOME/rpmbuild/SRPMS` +# find a RPM in `$HOME/rpmbuild/RPM/arch/` +# see if the dependencies are proper + +$ rpm -qpR $HOME/rpmbuild/RPMS/x86_64/ignition-0.26.0-0.1.git7610725.fc28.x86_64.rpm + + +# setup to run koji, ref: https://fedoraproject.org/wiki/Using_the_Koji_build_system +$ fedora-packager-setup +$ kinit @FEDORAPROJECT.ORG + + +# to build it on koji run: +$ koji build --scratch rawhide /path/to/srpm/ignition-0.26.0-0.1.git7610725.fc28.src.rpm diff --git a/parsedeps.go b/parsedeps.go new file mode 100644 index 0000000..ead0537 --- /dev/null +++ b/parsedeps.go @@ -0,0 +1,47 @@ +// Helper for parsing glide.lock file and spitting out +// bundled provides statements for an rpm spec file. +package main + +import ( + "fmt" + "io/ioutil" + "log" + "path" + + yaml "gopkg.in/yaml.v2" +) + +type Import struct { + Name string + Version string + Subpackages []string +} + +type Glide struct { + Hash string + Updated string + Imports []Import + TestImports []Import +} + +func main() { + yamlFile, err := ioutil.ReadFile("glide.lock") + if err != nil { + log.Fatal(err) + } + + var glide Glide + err = yaml.Unmarshal(yamlFile, &glide) + if err != nil { + log.Fatal(err) + } + + for _, imp := range glide.Imports { + // we need format like this: + // Provides: bundled(golang(github.com/coreos/go-oidc/oauth2)) = %{version}-5cf2aa52da8c574d3aa4458f471ad6ae2240fe6b + for _, subp := range imp.Subpackages { + name := path.Join(imp.Name, subp) + fmt.Printf("Provides: bundled(golang(%s)) = %s-%s\n", name, "%{version}", imp.Version) + } + } +} diff --git a/rpminspect.yaml b/rpminspect.yaml deleted file mode 100644 index 79ee3ee..0000000 --- a/rpminspect.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -debuginfo: - ignore: - - /usr/share/ignition/ignition-validate-*-unknown-linux-gnu-static - diff --git a/sources b/sources index 848d645..17937f3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ignition-2.25.1.tar.gz) = 8ca2bd96cdff8986e09371a9357975883c655dc6c16eb481ffd2772de37515fe64060ca575b3e4ac25a626b4701c65e5f5a8707ff62f37791f65ec321f7bb3a6 -SHA512 (ignition-edge-a258749.tar.gz) = 0566807f7f4cbf9715566c8c39ba699df00f4ee5d579269c695a4af13d75a4e1f4639b54be85d0703373221d67a3ad0c532c0e075831316e3eed7a33cf316833 +SHA512 (ignition-7610725.tar.gz) = bd47f26cfc65641b63cb0846bbfd939e835fb477816effbbaff1df83a4146d4eef7d7d2f18a85e8caa386703cabcc4e54ebfd4768c590bbfc795dee6a3949519 +SHA512 (ignition-dracut-d664657.tar.gz) = 6ea895a4d85e9e1664e74d14828bf1a23bf6452e781d066ed36e1e874b55a3d39d6da36b676a99665ad1a3a205a17672a8e2904cabe2be876008eea2cb0b6518 diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 7239cf6..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,21 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - required-packages: - - ignition - - ignition-validate - tests: - - ignition-run-version: - dir: ./ - run: /usr/lib/dracut/modules.d/30ignition/ignition --version - - ignition-validate-run-version: - dir: ./ - run: /usr/bin/ignition-validate --version - - ignition-rpm-installed: - dir: ./ - run: /usr/bin/rpm -q ignition - - ignition-validate-rpm-installed: - dir: ./ - run: /usr/bin/rpm -q ignition-validate