Commit Graph

475 Commits

Author SHA1 Message Date
Tom Stellard 17a3cd024b Drop annobin-plugin-clang dependency
The annobin clang plugin is not actually used anywhere, so we don't
need to have a dependency on it.

This was also creating a circular dependency that was blocking the
latest clang update.
2021-09-21 18:23:33 +00:00
Florian Weimer 2dd8d4cbdf ELN: Enable -march=x86-64-v2 for Clang as well 2021-08-30 14:45:07 +02:00
Tom Stellard 3ec329b234 Add build_ prefix to cc, cxx, and cpp macros
RPM requires macros to be at least 3 characters, so we need to
rename the cc macro anyway and using the build_ prefix is consistent
with other macros like build_cflags.
2021-08-17 21:15:06 +00:00
Tom Stellard 73aefaaac7 Add cc, cxx, and cpp macros
These macros are being added as part of this Fedora change:
https://fedoraproject.org/wiki/Changes/CompilerPolicy
2021-08-16 16:41:58 +00:00
Michel Alexandre Salim 43dfe7d6f0 Fix macros.build-constraints' %limit_build
number of CPUs will never be set to less than 1
  this now outputs build flag overrides to be used with %make_build etc.
  add documentation

Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
2021-08-15 13:39:55 -07:00
Florian Weimer bc8fa85e90 Active GCC plugin during LTO linking
See the downstream bug for details:

  https://bugzilla.redhat.com/show_bug.cgi?id=1983727
2021-08-02 12:43:26 +02:00
Michel Alexandre Salim dbb1278523 Add macros.build-constraints
Keep the misc macros in alphabetical order

Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
2021-07-24 14:58:08 -07:00
Neal Gompa e0cfcc0fc7 Make vpath builddir not include arch-specific info
A number of cases have cropped up where things like documentation
builds fail with out of tree builds because tools like Doxygen like
encoding the build path into the documentation metadata.

This causes failures in Koji and other places where noarch documentation
subpackages from archful packages fail because they fail the comparison
check due to this.
2021-07-10 09:43:26 -04:00
Miro Hrončok cfdc80c51a Require python-srpm-macros with Python related BuildRoot Policy scripts 2021-07-08 12:56:48 +02:00
Miro Hrončok 74e11b4fa8 Move Python related BuildRoot Policy scripts from redhat-rpm-config to python-srpm-macros
This allows us to maintain our own BuildRoot Policy scripts in an easier way.

This change needs to be coordinated with the addition of the files to python-srpm-macros.

redhat-rpm-config requires python-srpm-macros, so no significant change is expected for the packagers.

This also moves the Python BRPs to the end of the list which should be fine.
2021-07-08 12:56:15 +02:00
Ben Burton fdce9c67af Adapt macros and BRP scripts for %topdir with spaces
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1947416
2021-06-28 11:33:07 +02:00
Panu Matilainen def9a339d2 Drop reference to now extinct brp-python-hardlink script
The script was dropped in rpm 4.17.0 beta1, so we can't very well
try to use it on builds. For now I'm intentionally dropping just the
macro definition: in case the Python community wants to bring it
back, all they need to do is revive the script and add the macro
definition for it.
2021-06-22 15:57:21 +03:00
Stephen Coady bd8637f7c3 add Requires: rpmautospec-rpm-macros
Signed-off-by: Stephen Coady <scoady@redhat.com>
2021-06-08 11:17:40 +01:00
Charalampos Stratakis 139bc590fb Enable RPATH check after %install
Part of https://fedoraproject.org/wiki/Changes/Broken_RPATH_will_fail_rpmbuild

Resolves: rhbz#1964548
2021-05-31 17:39:22 +02:00
Arjun Shankar b6b865f3d5 Disable annobin on armv7hl
On armv7hl, enabling annobin can in some cases lead to corrupt unwind
information in generated object files:
https://bugzilla.redhat.com/show_bug.cgi?id=1951492

The root-cause of this is still unclear and until this is sorted out,
it is best to disable annobin on the architecture.
2021-05-26 21:36:44 +02:00
Nick Clifton 7581d21caa Change 'Requires: annobin' to 'Requires: annobin-plugin-gcc'. 2021-04-14 16:01:37 +00:00
David Benoit 391eca3508 add brp-llvm-compile-lto-elf 2021-04-06 21:25:50 -04:00
Lumir Balhar 27a8c7a7c2 Fix handling of files without newlines in brp-mangle-shebang
If the file we are trying to mangle a shebang in has
0 lines (as reported by `wc`) `read` command fails
to read the first line and the script fails silently.

Text files without newlines should not be executable as there
is no way for them to contain a shebang.
2021-03-22 14:33:37 +01:00
Kalev Lember 61b19ee1b2 BRP Python Bytecompile: Avoid hardcoding /usr/bin prefix for python
Avoid using the full path and instead rely on PATH being correctly set
up to find the executable.

This fixes byte compilation for python2.7 when doing flatpak module
builds where python2.7 can be in either /usr/bin or /app/bin, depending
on how it's compiled.
2021-03-10 21:30:12 +01:00
Florian Weimer d8287391e7 Use -march=x86-64-v2 only for the gcc toolchain
LLVM 12 is required for -march=x86-64-v2.
2021-01-19 20:34:39 +01:00
Florian Weimer 0ce9e05ca9 x86_64: Enable -march=x86-64-v2 for ELN, following GCC. 2021-01-19 20:10:22 +01:00
Miro Hrončok c0fba28f76 BRP Python Bytecompile: Also detect Python files in /app/lib/pythonX.Y
This is needed for flatpaks.

Alternatively, we could pass %{_prefix} as an argument to this script,
but that could make things a tad more complicated.

This solution is less general, but more pragmatic.

See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/4FBBB3C5E63VDNGUJRLLW27LPZ74SEJH/
2020-11-29 17:44:37 +01:00
Tom Stellard f97705d6fd Add back -fcf-protection flag for x86_64
This was accidentally removed in c18bafdecc.
2020-10-27 13:35:19 +00:00
Florian Weimer 5c9060a85e s390x: Tune for z14 (as in Red Hat Enterprise Linux 8) 2020-10-20 12:23:29 +02:00
Florian Weimer 6854161259 Fix another syntax issue in the macros file 2020-10-05 14:30:56 +02:00
Florian Weimer e6fe6513ee Fix syntax error in macros file 2020-10-05 14:09:46 +02:00
Florian Weimer db291b8b29 redhat-rpm-config 173-1 2020-10-05 13:43:07 +02:00
Miro Hrončok 0d621460ce Filter out LTO flags from %%extension flags macros
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1877652
2020-09-11 20:42:36 +02:00
Michel Alexandre Salim ee8888f636 Add Requires: lua-srpm-macros
Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
2020-09-02 19:03:55 -07:00
Tom Stellard c18bafdecc Enable -fstack-clash-protection for clang on x86, s390x, and ppc64le
This is supported with LLVM >= 11
2020-08-21 16:50:54 +00:00
Igor Raits 72a5199a5f
Fixup changelog
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-08-20 19:05:06 +02:00
Tom Stellard d698d04313
Add -flto to ldflags for clang toolchain
Also, add a gating CI tests to ensure that future macro changes work
with clang.
2020-08-20 19:03:54 +02:00
Neal Gompa 8a5ee87c50 Fix CC/CXX exports and allow overrides like CFLAGS and CXXFLAGS
Some packages require being able to redefine the compiler variables
set to add additional base arguments that must be used everywhere.
This change makes it possible for that to work correctly.
2020-08-20 08:45:21 -04:00
Neal Gompa 61f9eb90ba Fix bad datestamp in changelog entry 2020-08-20 08:44:00 -04:00
Troy Dawson 1e92e63ac8 Add Requires: kernel-srpm-macros
The kernel doesn't do a complete build for all arches.  And example is i686 in Fedora, where only kernel-headers is built.
kernel-srpm-macros provides %kernel_arches so that the various packages have a consistent way to check for this.
2020-08-03 09:44:46 -07:00
Jeff Law 4637e1bd55 - Use -flto=auto for GCC to speed up builds 2020-07-30 10:45:53 -06:00
Tom Stellard 06f1d527d7 Only use supported lto flags for clang toolchain 2020-07-28 02:16:26 +00:00
Lumir Balhar 5a7ab8f927 Disable Python hash seed randomization in brp-python-bytecompile
This change should help with byte-compilation reproducibility: https://bugzilla.redhat.com/show_bug.cgi?id=1686078
2020-07-23 12:37:34 +02:00
Jeff Law 5baaf4a99c Enable LTO by default 2020-07-21 21:38:41 -06:00
Lumir Balhar 5f32aac09e New opt-in possibility to fix byte-compilation reproducibility
A new script brp-fix-pyc-reproducibility creates an opt-in way of how to fix
problems with the reproducibility of byte-compiled Python files. The script
uses marshalparser [0] which currently doesn't provide solutions for all issues
but can fix at least problems with reference flags. For more info see
this Bugzilla [1].

If you want to use this new feature, you need to define
`%py_reproducible_pyc_path` to specify a path you want to fix `.pyc`
files in (recursively) and build-require /usr/bin/marshalparser.

if you forget to build-require the parser. The error message is:
```
+ /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0
Bytecompiling .py files below /builddir/build/BUILDROOT/tldr-0.5-2.fc33.x86_64/usr/lib/python3.9 using /usr/bin/python3.9
+ /usr/lib/rpm/redhat/brp-fix-pyc-reproducibility /builddir/build/BUILDROOT/tldr-0.5-2.fc33.x86_64
ERROR: If %py_reproducible_pyc_path is defined, you have to also BuildRequire: /usr/bin/marshalparser !
error: Bad exit status from /var/tmp/rpm-tmp.UUJr4v (%install)
```

A build fails if the parser is not able to parse any of the `.pyc` files.

And finally, if a build is properly configured it produces fixed `.pyc` files.

Currently, `.pyc` files in the tldr package contain a lot of unused reference flags:
```
$ dnf install -y tldr
$ marshalparser --unused /usr/lib/python3.9/site-packages/__pycache__/tldr.cpython-39.pyc
… long output …
190 - Flag_ref(byte=9610, type='TYPE_SHORT_ASCII_INTERNED', content=b'init', usages=0)
191 - Flag_ref(byte=9633, type='TYPE_SHORT_ASCII_INTERNED', content=b'source', usages=0)
192 - Flag_ref(byte=9651, type='TYPE_SHORT_ASCII_INTERNED', content=b'argv', usages=0)
193 - Flag_ref(byte=9657, type='TYPE_SHORT_ASCII_INTERNED', content=b'print_help', usages=0)
194 - Flag_ref(byte=9669, type='TYPE_SHORT_ASCII_INTERNED', content=b'stderr', usages=0)
195 - Flag_ref(byte=9682, type='TYPE_SHORT_ASCII_INTERNED', content=b'parse_args', usages=0)
196 - Flag_ref(byte=9737, type='TYPE_SHORT_ASCII_INTERNED', content=b'encode', usages=0)
197 - Flag_ref(byte=9782, type='TYPE_SHORT_ASCII_INTERNED', content=b'parser', usages=0)
198 - Flag_ref(byte=9790, type='TYPE_SHORT_ASCII_INTERNED', content=b'options', usages=0)
199 - Flag_ref(byte=9799, type='TYPE_SHORT_ASCII_INTERNED', content=b'rest', usages=0)
200 - Flag_ref(byte=9821, type='TYPE_SHORT_ASCII_INTERNED', content=b'result', usages=0)
202 - Flag_ref(byte=10022, type='TYPE_SHORT_ASCII_INTERNED', content=b'__main__', usages=0)
203 - Flag_ref(byte=10102, type='TYPE_SHORT_ASCII_INTERNED', content=b'argparse', usages=0)
204 - Flag_ref(byte=10433, type='TYPE_SHORT_ASCII_INTERNED', content=b'__name__', usages=0)
205 - Flag_ref(byte=10463, type='TYPE_SHORT_ASCII_INTERNED', content=b'<module>', usages=0)
```

This new feature fixes them:

```
$ marshalparser --unused /usr/lib/python3.9/site-packages/__pycache__/tldr.cpython-39.pyc
<empty output>
```

[0] https://github.com/fedora-python/marshalparser
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1686078
2020-07-21 11:42:54 +00:00
Lumir Balhar 8a4f0edb9a Use compileall from stdlib for Python >= 3.9
All enhancements from compileall2 are merged in Python 3.9.
2020-06-16 13:54:43 +02:00
Lumir Balhar ecf9fd3bdb No more automagic Python bytecompilation (phase 3) 2020-06-15 16:20:05 +02:00
Igor Raits 2c5594c9af
Fix broken %configure
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-06-04 03:14:15 +02:00
Igor Raits 828c69effe
Fixes for new_package macro
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-06-03 21:39:18 +02:00
Igor Raits 91333a9c7c Merge #91 `Fix PR 83` 2020-06-03 19:37:14 +00:00
Igor Raits 7562b38ec5
Add support for selecting a clang as a toolchain
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-06-03 21:30:21 +02:00
Nicolas Mailhot a468b36e29 rpm will happily evaluate macros in changelogs — remove those 2020-05-31 16:08:58 +02:00
Jeff Law 891c721814 Latest version of sed fixes for broken/compromised configure macros 2020-05-30 13:21:08 -06:00
Jason Tibbitts 7324b32455 Add %new_package macro and associated lua framework. 2020-05-30 02:19:05 -05:00
Igor Raits 2a236590f5
forge: add gitea driver
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-05-23 16:53:03 +02:00
Panu Matilainen cecab66c5d Optimize kernel module provides by using a parametric generator
This cuts the kernel provide generation time from ~33s to 2.5s on my laptop.
Tighten the path matching rule a bit while at it - it doesn't matter that
much with parametric generator but there's no point looking at entries
we don't generate dependencies on.
2020-04-09 14:36:16 +03:00
Jason Tibbitts 1b85ce0ce8 Keep the macro deps in alphabetical order. 2020-02-21 11:54:53 -06:00
Jason Tibbitts 3a4ec69bee Add dependency on fonts-srpm-macros.
The font guidelines overhaul was approved by FPC, so bring the macros
into the buildroot.  https://pagure.io/packaging-committee/issue/935
2020-02-20 16:56:42 -06:00
Jeff Law 9dd5528cf9 - Use eu-elfclassify to only run strip on ELF relocatables
and archive libraries.
2020-02-20 13:40:19 -07:00
Igor Raits edd94328ae
Fixup parallel algorithm for brp-strip-lto
Same as in RPM upstream.

Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-02-14 14:26:36 +01:00
Igor Raits b92766d4d9
Fix year in changelog
Signed-off-by: Igor Raits <ignatenkobrain@fedoraproject.org>
2020-02-14 14:20:25 +01:00
Jeff Law 20749d9857
Strip LTO sections/symbols from installed .o/.a files 2020-02-14 13:39:34 +01:00
Jeff Law 3e759e70ac Allow conditionally adding -fcommon to CFLAGS by defining %_legacy_common_support
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
2020-01-23 14:25:11 +01:00
Florian Weimer fff3459086 Reenable annobin after GCC 10 integration (#1792892)
This reverts commit c18924507d
("Temporarily disable annobin for GCC 10 (#1792892)").
2020-01-20 13:52:38 +01:00
Florian Weimer c18924507d Temporarily disable annobin for GCC 10 (#1792892) 2020-01-20 11:42:04 +01:00
Denys Vlasenko 40a9e696d6 Bump version
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2019-12-05 13:56:00 +01:00
Igor Gnatenko 2721f1c528
Bump version
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-12-03 15:48:35 +01:00
Denys Vlasenko ddce306578
Bump version
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2019-12-03 13:01:10 +01:00
Lumir Balhar 6335a7ff4a Fix brp-python-bytecompile with the new features from compileall2
Resolves: rhbz#1595265

The problem this change is intended to solve is with how `real_libdir`
is calculated. Let's assume we want to recursively byte-compile all
`*.py` files in
`/builddir/build/BUILDROOT/python-scales-1.0.9-250.fc32.x86_64/usr/lib/python3.8`.
Then, `real_libdir` is this path without `$RPM_BUILD_ROOT` with
the filename at the end which displays in the error message like this:

```
Bytecompiling .py files below /builddir/build/BUILDROOT/python-scales-1.0.9-250.fc32.x86_64/usr/lib/python3.8 using /usr/bin/python3.8
*** Error compiling '/builddir/build/BUILDROOT/python-scales-1.0.9-250.fc32.x86_64/usr/lib/python3.8/site-packages/greplin/bar.py'...
  File "/usr/lib/python3.8/bar.py", line 1
    import sin from math
               ^
SyntaxError: invalid syntax
```

`/usr/lib/python3.8/bar.py` is obviously wrong.

One of the new features of the `compileall2` module (which will
be available in stdlib in Python 3.9) is that the path byte-compiled to
`*.pyc` files is calculated for each file. This means that by using
`-s` and `-p` we can strip `$RPM_BUILD_ROOT` and prepend `/` for each
file individually which will fix the problem.

```
Bytecompiling .py files below /builddir/build/BUILDROOT/python-scales-1.0.9-250.fc32.x86_64/usr/lib/python3.8 using /usr/bin/python3.8
*** Error compiling '/builddir/build/BUILDROOT/python-scales-1.0.9-250.fc32.x86_64/usr/lib/python3.8/site-packages/greplin/bar.py'...
  File "/usr/lib/python3.8/site-packages/greplin/bar.py", line 1
    import sin from math
               ^
SyntaxError: invalid syntax
```

This change has an effect only for Python >= 3.4.
2019-12-02 16:39:32 +01:00
Miro Hrončok 4d93255fb3 Fix the simple API of %gpgverify 2019-11-01 08:04:12 +01:00
Jason Tibbitts 2c88f0ec58 Bump release and add changelog entry. 2019-08-22 10:46:36 -05:00
Richard W.M. Jones 0b30be56e5 Bump version and rebuild. 2019-07-25 10:13:28 +01:00
Igor Gnatenko 4a1d1dd78f
Fixup python-srpm-macros version
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-07-20 18:47:27 +02:00
Lumir Balhar 5437dfca81 Use compileall2 Python module for byte-compilation in brp-python-bytecompile 2019-07-20 08:08:26 +02:00
Miro Hrončok 53617406d9 Move brp-python-bytecompile from rpm, so we can easily adapt it 2019-07-20 08:07:57 +02:00
Nicolas Mailhot faef29eb93 bump release 2019-07-08 23:32:20 +02:00
Nicolas Mailhot b8797dcd02 listfiles: make it robust against all kinds of “interesting” input
– restore protection against empty input
 – handle non-empty inputs, with whitespace, quotes, linebreaks, etc
2019-07-08 23:30:42 +02:00
Nicolas Mailhot 1f7310110e wordwrap: make list indenting smarter, to produce something with enough structure that it can be converted into AppStream metadata 2019-07-08 23:24:08 +02:00
Robert-André Mauchin 1e9cb0e970 Revert "listfiles: fix expansion of listfiles_exclude/listfiles_include"
This reverts commit 9deb0680eb.

Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
2019-07-08 17:13:20 +02:00
Nicolas Mailhot 9deb0680eb listfiles: fix expansion of listfiles_exclude/listfiles_include 2019-07-08 01:14:41 +02:00
Florian Festi 6b139317d5 Add changelog entry for previous change 2019-07-01 17:12:12 +02:00
Daniel Mach 38d0d92d5c Switch binary payload compression to Zstandard level 19
Fedora Change: https://fedoraproject.org/w/index.php?title=Changes/Switch_RPMs_to_zstd_compression
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1720729
Fesco ticket: https://pagure.io/fesco/issue/2144
Rel-eng ticket: https://pagure.io/releng/issue/8395
2019-07-01 16:41:12 +02:00
Vít Ondruch 86aae600e6 Enable RPM to set SOURCE_DATE_EPOCH environment variable.
If %source_date_epoch_from_changelog is true, RPM can set the SOURCE_DATE_EPOCH
environment variable to the timestamp of the topmost changelog entry. The
SOURCE_DATE_EPOCH can be in turn used by various projects to override otherwise
dynamically generated timestamps.

E.g. this might help to have stable timestamps in generated
documentation etc.
2019-06-27 08:41:44 +02:00
Igor Gnatenko 6708d7876e
Bump release
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-25 08:14:09 +02:00
Jitka Plesnikova c68c6bd353 Remove perl macro refugees 2019-06-12 12:54:26 +02:00
Panu Matilainen bab65715b2 Provide temporary shelter for rpm 4.15 perl macro refugees
Rpm 4.15 removes various language-specific macros. Python side is
already covered by the versioned python macros but this is not the
case with Perl, macros. Add them here temporarily to avoid breaking
the world, but these really belong to perl-macros or such.
2019-06-10 14:12:21 +03:00
Igor Gnatenko 5878df46c0
Bump release
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-04 08:25:50 +02:00
Björn Persson 3da0ad5da8 Added gpgverify. 2019-05-30 19:54:13 +02:00
Panu Matilainen 20a0e63249 Drop redundant _smp_mflag re-definition, use the one from rpm instead
Once upon a time these did differ (for various bad reasons) but the
version in rpm has been identical to ours for many years, lets shed
some old baggage.
2019-01-15 12:02:22 +02:00
Florian Weimer e80fa1344a Build flags: Add support for extension builders (#1543394) 2018-12-20 11:34:27 +01:00
Panu Matilainen 98ffd5040d Silence the annoying warning from ldconfig brp-script (#1540971) 2018-12-17 16:16:25 +02:00
Nicolas Mailhot 5335ee546b common: add a writevars helper 2018-12-04 17:25:02 +01:00
Miro Hrončok a212174975 Make automagic Python bytecompilation optional
https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2
2018-11-15 12:13:14 +01:00
Jason Tibbitts b725d1e38a Bump version/update changelog. 2018-11-08 08:34:28 -06:00
Igor Gnatenko 65fc49d917
bump version
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-10-22 11:09:13 +02:00
Igor Gnatenko 39fa88418c
bump version
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-10-20 12:32:45 +02:00
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
Jan Pazdziora e3e0ba6ab7 Add %_swidtagdir for directory for SWID tag files describing the installation.
Signed-off-by: Jan Pazdziora <jpazdziora@redhat.com>
2018-10-11 14:26:10 +02:00
Miro Hrončok b852a706ad Make ambiguous python shebangs error
See https://fedoraproject.org/wiki/Changes/Make_ambiguous_python_shebangs_error
2018-09-10 18:26:02 +02:00
Kalev Lember 9278251531 Add aarch64 to ldc arches 2018-08-20 22:33:04 +02:00
Igor Gnatenko 357550f7ba
Enable --as-needed by default
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-08-15 07:00:14 +02:00
Miro Hrončok 973e5c7052 Mangle /bin shebangs to /usr/bin ones (#1581757) 2018-07-19 12:34:53 +02:00
Igor Gnatenko 85e473f982
Add option to add -Wl,--as-needed into LDFLAGS
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-07-10 16:41:33 +02:00
Kalev Lember 9a15f27f34 Disable non-functional ppc64 support for ldc packages
Sadly, ldc ppc64 support has detoriated so much that it no longer works
with any current llvm version. I'll keep an eye on things and re-enable
it once it's fixed, but right now it's just broken and upstream is
suggesting to disable the support for now.

https://github.com/ldc-developers/ldc/issues/2356
2018-07-09 12:24:57 +02:00
Panu Matilainen a62764b8e8 - Fix kernel ABI related strings (Peter Oros, #26)
- Automatically trim changelog to two years (Zbigniew Jędrzejewski-Szmek, #22)
- Cosmetics cleanups (Zbigniew Jędrzejewski-Szmek, #22)
2018-06-26 13:44:59 +03:00
Panu Matilainen aa24434396 Merge #22 `Automatically trim changelog entries after 2 years` 2018-06-26 10:40:16 +00:00
Florian Weimer a5c98437e2 Build flags: Require SSE2 on i686 (#1592212) 2018-06-18 11:48:31 +02:00
Miro Hrončok c7d6417a3b Add a possibility to opt-out form automagic Python bytecompilation
That is, outside of Python specific directories.

More at https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation
2018-05-28 14:26:20 +02:00
Peter Jones f7e8f73ead brp-mangle-shebangs: make it possible to use generated exclusion lists
This patch adds two additional rpm macros, __brp_mangle_shebangs_exclude_file
and __brp_mangle_shebangs_exclude_from_file, to specify files from which
to read the extended regexps used for excluding shebangs and target
files.

Additionally, this adds documentation in the macros file and
--help/--usage/-?/-h to brp-mangle-shebangs, so that it's possible to
actually discover what the intended behavior is without reading the
script itself.

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-05-02 14:38:46 -04:00
Florian Weimer f25f1b7627 Reflect -fasynchronous-unwind-tables GCC default on POWER (#1550914) 2018-05-02 11:55:12 +02:00
Florian Weimer 6b620c91fb Use plain -fcf-protection compiler flag, without -mcet (#1570823) 2018-05-02 11:39:39 +02:00
Peter Jones 60cf200c3c Add Requires: efi-srpm-macros for %{efi}
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-05-01 16:00:40 -04:00
Jason Tibbitts fdbb98bd99 Add %_metainfodir macro.
An intervening commit added a fix to %forgeautosetup, but the specfile
was not updated.  I indicated the fix in the %changelog.
2018-04-20 12:05:38 -05:00
Zbigniew Jędrzejewski-Szmek f843bf828a Drop Group tag and period from Summary 2018-03-11 14:52:54 +01:00
Jason Tibbitts b771d1efaf Update forge macros. 2018-03-05 10:22:04 -06:00
Florian Weimer 8deb29e50a Make -fasynchronous-unwind-tables explicit on aarch64 (#1536431)
This reflects the default built into GCC.
2018-02-28 14:49:24 +01:00
Florian Weimer d5133f9acc Use -funwind-tables on POWER
Ideally, the GCC defaults should change as well, but let's put this into
redhat-rpm-config, too, similarly to -fasynchronous-unwind-tables.
2018-02-28 10:45:12 +01:00
Igor Gnatenko 71d7440127
ldconfig: make %ldconfig_post/%ldconfig_postun parameterized
If %ldconfig is not defined, then "%ldconfig_post/%ldconfig_postun foo"
will expand to " foo" which is breaking packages.

Also now it is possible to move %end into post/postun.

Reported-by: Terje Røsten <terjeros@phys.ntnu.no>
References: https://bugzilla.redhat.com/show_bug.cgi?id=1548331
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-25 07:11:46 +01:00
Florian Weimer a4ec7ec768 Update release and changelog 2018-02-24 21:38:00 +01:00
Florian Weimer 910c8585f3 Update release and changelog 2018-02-24 17:40:55 +01:00
Miro Hrončok 8f59b756ca Don't mangle shebangs with whitespace only changes (#1546993) 2018-02-22 11:12:28 +01:00
Igor Gnatenko 987e94f6ea
Move %end to %ldconfig_scriptlets
If people choose to use %ldconfig_post/%ldconfig_postun, let them to
deal with %end.

Reported-by: Harald Reindl <h.reindl@thelounge.net>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1547838
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-22 07:58:50 +01:00
Igor Gnatenko 17746cb929
macros.ldconfig: %end section immediately
Some people tend to use comments in spec files which adds them into the
scriptlet and we don't want this.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-17 13:51:42 +01:00
Miro Hrončok fb05a239d2
Allow to opt-out from shebang mangling for specific paths/shebangs
Introduces __brp_mangle_shebangs_exclude_from and __brp_mangle_shebangs_exclude

 * the first allows to explude specific paths from the mangling
 * the second allows to exlude specific shebangs

Both are used with `grep -E`. Similar escaping rules as in [1] apply.

[1] https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
2018-02-15 08:47:54 +01:00
Igor Gnatenko 51f1c66748
brp-mangle-shebangs: Simplify/Fix check for shebang starting with "/"
Reported-by: Jun Aruga <jaruga@redhat.com>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1541057
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-08 10:38:45 +01:00
Igor Gnatenko 8444cee8f3
bump release
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-07 18:24:10 +01:00
Florian Weimer fa08f0e5a1 Add RPM macros for compiler/linker flags 2018-02-04 18:00:40 +01:00
Igor Gnatenko 222670e2e7
Use newly available /usr/bin/grep
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-03 18:29:37 +01:00
Peter Robinson 07dea7d44f Use generic tuning for ARMv7 2018-01-31 09:34:18 +00:00
Jason Tibbitts 9ac5353554 Fix bad dependency on grep. 2018-01-30 20:23:24 -06:00
Miro Hrončok 00b0603754 Explicitly require stuff for brp-mangle-shebangs
Except what is in coreutils (already required)
2018-01-30 22:08:52 +01:00
Miro Hrončok 257a3a95c7 Add brp-mangle-shebangs 2018-01-30 13:31:25 +01:00
Igor Gnatenko 1591a6fbf8
Add macros.ldconfig
With https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
we try to remove ldconfig scriptlets, but it would make every package
look horrible with all those conditionals. So let's just wrap ldconfig
scriptlets into macro so it doesn't look that horrible and error-prone.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-30 08:23:10 +01:00
Igor Gnatenko 7a29d55964
typo: fix day of week
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-29 17:30:29 +01:00
Igor Gnatenko 12ace9bdb9 Create DSO symlinks automatically
If there are unpackaged symlinks, build will fail with unpackaged files.
People can %undefine __brp_ldconfig if they need to and they should make
sure that they call ldconfig themselves.

Right now, script doesn't guide packagers what to do, but it's not
prerequisite.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-29 16:41:52 +01:00
Florian Weimer 8d6c6d0761 Build flags: Disable -z defs again (#1535422) 2018-01-29 15:18:11 +01:00
Florian Weimer 1b296f01fc Build flags: Enable CET on i686, x86_64 (#1538725) 2018-01-29 15:18:11 +01:00
Florian Weimer 6e5a75d61e Build flags: Switch to generic tuning on i686 (#1538693)
This matches what the gcc package already does by default.
2018-01-25 16:22:54 +01:00
Florian Weimer 078af19261 Link with -z defs by default (#1535422) 2018-01-22 16:01:54 +01:00
Florian Weimer 75a53b7ea3 Make armhfp flags consistent with GCC defaults 2018-01-22 15:41:54 +01:00
Florian Weimer e43ce312b7 Make use of -fasynchronous-unwind-tables more explicit (#1536431) 2018-01-22 15:17:14 +01:00
Florian Weimer faa1ad44f7 Remove --param=ssp-buffer-size=4 from build flags
-fstack-protector-strong does not use frame size heuristics for
deciding which functions to instrument, so changing the parameter has
no effect.
2018-01-22 14:30:12 +01:00
Florian Weimer 0d162176e9 Document build flags 2018-01-22 14:28:15 +01:00
Panu Matilainen 3bf139f646 Document how to disable hardened and annotated build (#1211296) 2018-01-19 12:21:06 +02:00
Panu Matilainen a747e7fb51 Fix the inevitable embarrassing typo in 77, doh 2018-01-17 12:57:53 +02:00
Panu Matilainen c4646d791d Macroize build root policies for consistent disable/override ability
Add a separate macro for each brp we have, using standard naming
convention and conditionalize the usage in %__os_install_post.
Voilà, we have a standard way to disable (and also override) any brp
scripts from specs that need it and a common scheme for new brps
to follow.

Note that this is not supposed to change the existing behavior and
default build root policy invocations at all, any change in those
would be a thinko/typo/copy-paste error in this commit.
2018-01-17 12:29:44 +02:00
Florian Weimer 42f29f31df Add -fstack-clash-protection for supported architectures (#1515865)
Avoid it on architectures which have only generic GCC support (such as
armv7hl).
2018-01-17 10:14:56 +01:00
Florian Weimer 6c35c254c2 Add _GLIBCXX_ASSERTIONS to CFLAGS/CXXFLAGS (#1515858) 2018-01-17 10:14:18 +01:00
Igor Gnatenko 7ab7ab048c Remove Requires: cmake-rpm-macros
It doesn't belong to redhat-rpm-config which is about *srpm* buildtime..

This reverts commit ea5600c887.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-15 23:28:09 +01:00
Jason Tibbitts 7c4cd33085 Add macros.forge.
Add macros to simplify the packaging of forge-hosted projects.
* https://bugzilla.redhat.com/show_bug.cgi?id=1523779
* https://fedoraproject.org/wiki/Forge-hosted_projects_packaging_automation
2018-01-11 17:49:08 -06:00
Sergey Avseyev ebb7ec32a4 Add Requires: nim-srpm-macros for %nim_arches 2018-01-03 12:43:14 +02:00
Igor Gnatenko bbf2e891aa Require annobin only if gcc is installed
Since b5ea4b290b we started to require gcc
(because annobin requires gcc). Since annobin does work only with gcc,
we don't have to install it if user doesn't have it.

Reported-by: Dominick Grift <dac.override@gmail.com>
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-02 12:56:19 +01:00
Björn Esser ea5600c887
Add Requires: cmake-rpm-macros for CMake auto-{provides,requires} (#1498894) 2017-12-21 16:12:02 +01:00
Panu Matilainen b9d5eecd65 Update URL to current location at src.fedoraproject.org 2017-12-08 14:32:21 +02:00
Nick Clifton b5ea4b290b Enable binary annotations in compiler flags 2017-11-22 12:41:44 +01:00