Go to file
Nicolas Mailhot c70110c677
forge: refactor to allow multiple calls
– permit extraction of multiple archives in a single specfile
   – %forgemeta, %forgesetup, %forgeautosetup: add a “-z <number>” switch to
     select a specific set of rpm variables
     (for example forgeurl<number> and version<number>)
   – %forgemeta, %forgesetup: add a “-a” switch to process all sets in one go
     (makes no sense in forgeautosetup, as you need so select specific patches)
   – %forgemeta: deprecate the “-u” switch, use “-z” it’s better
     (“-u” was awkward and mainly used by the %gometa macro. %gometa will now
      call the lua code directly)
 – %forgesetup: use “-v” for verbose processing, be quiet by default, drop “-q”
   (align with %forgemeta, %forgeautosetup and %autosetup)
 – %forgesetup, %forgeautosetup: only pass flags that make sense to
   %setup/%autosetup; reorder to match what works in el7
 – factor out complex or common lua code in separate lua modules, to allow:
   – code reuse in other macros without cut and pasting
   – direct lua routine invocation from other macros without going through a
     rpm macro
   – rpm syntax errors that point to a line in an actual lua file
 – %forgemeta: refactor the logic to drop as much forge-specific code as
   possible, use a single logic flow with tables of constants
 – %forgemeta: export more computed info in rpm variables, such as the
   %{_builddir} subdirectory an archive was extracted to (lifesaver when
   processing multiple archives)
 – %forgemeta: prepend secondary distprefixes with .S, to make clear they do
    not apply to the main archive
 – %forgemeta: add versionx to secondary distprefixes, if relevant
 – %forgemeta: make tar.bz2 the default archive format

Caveats:
 – forge services implement full-release downloads via tags. However the actual
   syntax of such tags is not standardised. If the macro does not guess the
   correct tag an upstream uses for a specific release, you will need to
   set the tag value explicitly.
 – GitHub lets upstreams move their projects to new URLs, keeping the old URL
   active. It all works transparently *except* the top directory inside
   generated archives always matches the new project name (even when accessed
   by compatibility URLs, and even for releases that antedate the renaming).
   Therefore, if macro processing of a GitHub archive suddenly fails, start by
   checking if upstream didn’t rename itself.

Multicall usage example (with “-a”)
 – to process a specific bloc in one of the macros use “-z <suffix>”
 – suffix 0 and no suffix are synonyms
 – therefore, calling the macros without “-a” or “-z” just works for the
   general use case when you have a single archive to process
 – caveat: forge services implement full-release

%<--
%global forgeurl0        https://gitlab.com/osslugaru/lugaru
Version:                 1.2

%global forgeurl1        https://gitlab.com/osslugaru/lugaru
%global tag1             1.1

%global forgeurl2        https://gitlab.com/osslugaru/lugaru
%global commit2          68488b0a11df90dca703c67e5592b93c6a269957

%global forgeurl3        https://gitlab.com/osslugaru/lugaru
%global branch3          v1.1

%global forgeurl4       https://github.com/google/trillian
%global version4        1.0.8

%global forgeurl5       https://github.com/kubernetes/apiextensions-apiserver
%global version5        1.9.6
%global tag5            kubernetes-%{version5}

%global forgeurl6        https://github.com/jdbranham/grafana-diagram
%global version6         1.3
%global commit6          440689793ab6da82019c5ee43b49438dfef976d5

%global forgeurl7        https://github.com/rethinkdb/rethinkdb-go
%global version7         1.4.2
%global branch7          v1

%global forgeurl8        https://code.googlesource.com/gocloud
%global version8         0.20.0

%global forgeurl9        https://code.googlesource.com/gocloud
%global tag9             v0.27.0

%global forgeurl10      https://code.googlesource.com/google-api-go-client
%global commit10        24928b980e6919be4c72647aacd53ebcbb8c4bab
%global version10       0

%global forgeurl11      https://code.googlesource.com/google-api-go-client
%global branch11        dartman

%global forgeurl12      https://bitbucket.org/nielsenb/pdfocr
%global version12       0.3.0
%global commit12        4f5750d202d33267094621630836f1215a5efa66

%global forgeurl13      https://bitbucket.org/nielsenb/pdfocr
%global version13       0.1.4
%global tag13           v0.1.4
%global commit13        c0359843a3420769940e12019ebd68891a053bd8

%global forgeurl14      https://bitbucket.org/creachadair/shell
%global commit14        3dcd505a7ca5845388111724cc2e094581e92cc6

%global forgeurl15      https://bitbucket.org/kirbyvisp/vdjpuzzle2/
%global branch15        js-edits
%global commit15        36a3850eb4a04c05e0f7e29e7d0c196f373eb672

%forgemeta -ia

Name:           testing
Release:        1%{?dist}
Summary:        A test package

URL:            %{forgeurl}
License:        Public domain

Source0:        %{forgesource0}
Source1:        %{forgesource1}
Source2:        %{forgesource2}
Source3:        %{forgesource3}
Source4:        %{forgesource4}
Source5:        %{forgesource5}
Source6:        %{forgesource6}
Source7:        %{forgesource7}
Source8:        %{forgesource8}
Source9:        %{forgesource9}
Source10:       %{forgesource10}
Source11:       %{forgesource11}
Source12:       %{forgesource12}
Source13:       %{forgesource13}
Source14:       %{forgesource14}
Source15:       %{forgesource15}

%description
A test package

%prep
%forgesetup -a

%build
exit 1

%install

%files
%doc
%<--

Merges: https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/35
2018-10-20 12:26:43 +02:00
.gitignore Add .gitignore file. 2016-10-03 17:03:08 -05:00
brp-implant-ident-static add brp-implant-ident-static, which requires mktemp 2003-01-20 20:06:50 +00:00
brp-java-repack-jars Trim trailing whitespace 2014-04-27 11:58:46 +03:00
brp-ldconfig chmod +x brp-ldconfig 2018-02-07 18:06:01 +01:00
brp-mangle-shebangs Make ambiguous python shebangs error 2018-09-10 18:26:02 +02:00
buildflags.md buildflags.md: fix typo 2018-07-11 13:43:53 +00:00
common.lua forge: refactor to allow multiple calls 2018-10-20 12:26:43 +02:00
config.guess Update config.guess, config.sub to the latest versions from upstream. 2016-10-13 16:28:32 +01:00
config.sub Update config.guess, config.sub to the latest versions from upstream. 2016-10-13 16:28:32 +01:00
dist.sh fix dist.sh --fc (#223651) 2007-06-19 14:24:12 -04:00
find-provides The attached patch kills a bogus comment in redhat-rpm-config 2014-09-16 09:31:34 +03:00
find-provides.ksyms Fix kernel ABI related scripts 2018-06-04 08:44:43 +02:00
find-requires - Drop most of the script-based dependency generation bits 2014-04-10 15:20:54 +03:00
find-requires.ksyms Fix kernel ABI related scripts 2018-06-04 08:44:43 +02:00
firmware.prov Flatten the directory structure in preparation to merge 2014-04-02 10:42:10 +03:00
forge.lua forge: refactor to allow multiple calls 2018-10-20 12:26:43 +02:00
kmod.attr - Move kmod and libsymlink dependency generators here from rpm 2014-04-15 10:08:30 +03:00
kmod.prov Fix kmod.prov to deal with compressed modules (#1096349) 2014-05-12 15:05:02 -04:00
kmodtool Trim trailing whitespace 2014-04-27 11:58:46 +03:00
libsymlink.attr Use %__libsymlink_path instead of %__libsymlink_exclude_path in libsymlink.attr 2015-07-15 10:39:19 +02:00
macros Enable --as-needed by default 2018-08-15 07:00:14 +02:00
macros.dwz - require dwz, enable dwarf compression for debuginfo packages (#833311) 2014-01-25 00:11:43 +02:00
macros.fedora-misc-srpm Add %_swidtagdir for directory for SWID tag files describing the installation. 2018-10-11 14:26:10 +02:00
macros.forge forge: refactor to allow multiple calls 2018-10-20 12:26:43 +02:00
macros.kmp Make %kernel_module_package actually honor %kmodtool_generate_buildreqs 2017-07-18 14:42:07 +02:00
macros.ldc-srpm Add aarch64 to ldc arches 2018-08-20 22:33:04 +02:00
macros.ldconfig ldconfig: make %ldconfig_post/%ldconfig_postun parameterized 2018-02-25 07:11:46 +01:00
macros.mono-srpm Enable aarch64 for mono arches 2016-10-12 12:44:52 +01:00
macros.nodejs-srpm Add s390x build target for Node.js packages (#1391999) 2016-11-07 15:30:35 +02:00
macros.valgrind-srpm Add valgrind_arches macro for BuildRequires of valgrind (#1334599) 2016-11-07 15:50:01 +02:00
macros.vpath Add macros.vpath from FPC ticket 655 2016-12-15 13:05:41 -06:00
modalias.prov Trim trailing whitespace 2014-04-27 11:58:46 +03:00
redhat-annobin-cc1 Enable binary annotations in compiler flags 2017-11-22 12:41:44 +01:00
redhat-hardened-cc1 Fix cc1 specs mishandling of incremental linking 2015-07-08 13:49:53 -04:00
redhat-hardened-ld Remove -z now from GCC specs file, now on command line (#1548397) 2018-02-24 21:37:06 +01:00
redhat-rpm-config.spec forge: refactor to allow multiple calls 2018-10-20 12:26:43 +02:00
rpmlint.cf Add %_configure_disable_silent_rules 2016-10-03 12:55:00 -05:00
rpmrc Build flags: Require SSE2 on i686 (#1592212) 2018-06-18 11:48:31 +02:00
rpmsort Update upstream redhat-rpm-config release. 2006-10-12 03:33:42 +00:00
sources - Remember to update lookaside-source status (there aren't any) 2014-04-02 13:21:15 +03:00
STAGE2-redhat-rpm-config Adding STAGE2 bootstrap recipe 2015-11-04 16:43:28 +01:00
symset-table patch from jcm to adjust kmod handling 2007-06-19 15:18:25 +00:00