From 377461c0a371637270640a7b93726ea4947cf896 Mon Sep 17 00:00:00 2001 From: Michal Domonkos Date: Fri, 30 Aug 2024 16:14:45 +0200 Subject: [PATCH] Release rpm 4.20 rc1 Also add an entry about the new Python API examples (not new in rc1, just forgotten previously). --- download.md | 2 +- index.md | 7 +++++++ timeline.md | 7 +++++++ wiki/Releases/4.20.0.md | 18 ++++++++++++++---- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/download.md b/download.md index 5a8171e..af13fbb 100644 --- a/download.md +++ b/download.md @@ -15,7 +15,7 @@ title: rpm.org - Download * [RPM 4.18.0](https://ftp.osuosl.org/pub/rpm/releases/rpm-4.18.x/rpm-4.18.0.tar.bz2) ([Release notes](wiki/Releases/4.18.0.html)) ## Current test releases -* [RPM 4.20 BETA1](https://ftp.osuosl.org/pub/rpm/releases/testing/rpm-4.19.92.tar.bz2) ([Release notes](wiki/Releases/4.20.0.html)) +* [RPM 4.20 RC1](https://ftp.osuosl.org/pub/rpm/releases/testing/rpm-4.19.93.tar.bz2) ([Release notes](wiki/Releases/4.20.0.html)) ## Old releases (no longer supported) diff --git a/index.md b/index.md index 2672722..86aaf99 100644 --- a/index.md +++ b/index.md @@ -16,6 +16,13 @@ capable of ## News +#### RPM 4.20.0 RC1 released (Aug 30 2024) +* See [draft release notes](wiki/Releases/4.20.0) for details and download information +* This release is about the finishing touches for the major features and + various other fixes, mostly regarding the declarative buildsystem, + `--build-in-place` compatibility with the new build directory layout, + debuginfo generation and error reporting + #### RPM 4.20.0 BETA1 released (Jun 24 2024) * See [draft release notes](wiki/Releases/4.20.0) for details and download information * This is all about bugs, alpha regressions and spec backwards compatibility, diff --git a/timeline.md b/timeline.md index 39b4e03..349eb2d 100644 --- a/timeline.md +++ b/timeline.md @@ -2,6 +2,13 @@ layout: default title: rpm.org - Timeline --- +#### RPM 4.20.0 RC1 released (Aug 30 2024) +* See [draft release notes](wiki/Releases/4.20.0) for details and download information +* This release is about the finishing touches for the major features and + various other fixes, mostly regarding the declarative buildsystem, + `--build-in-place` compatibility with the new build directory layout, + debuginfo generation and error reporting + #### RPM 4.20.0 BETA1 released (Jun 24 2024) * See [draft release notes](wiki/Releases/4.20.0) for details and download information * This is all about bugs, alpha regressions and spec backwards compatibility, diff --git a/wiki/Releases/4.20.0.md b/wiki/Releases/4.20.0.md index 265267a..3e7c89f 100644 --- a/wiki/Releases/4.20.0.md +++ b/wiki/Releases/4.20.0.md @@ -3,13 +3,13 @@ layout: default title: rpm.org - Releases --- -# RPM 4.20.0 Beta Release Notes (DRAFT) +# RPM 4.20.0 RC1 Release Notes (DRAFT) -Last update: 2024-06-24 +Last update: 2024-08-30 ## Download -* Source: [rpm-4.19.92.tar.bz2](https://ftp.osuosl.org/pub/rpm/releases/testing/rpm-4.19.92.tar.bz2) -* SHA256SUM: 3574f88f952e0c16c87a87692ad987b785a923148237e1e75e015a9c4e7d694e +* Source: [rpm-4.19.93.tar.bz2](https://ftp.osuosl.org/pub/rpm/releases/testing/rpm-4.19.93.tar.bz2) +* SHA256SUM: c7fd137feb580378a3f801a13f4bfff29845f5d3b2addce583e506cc1c278615 ## Enhancements ### UI & Performance @@ -30,6 +30,7 @@ Last update: 2024-06-24 * The `%prep` section is now implemented as a regular build scriptlet (instead of being treated specially by the spec parser). This fixes [#1870](https://github.com/rpm-software-management/rpm/issues/1870) as well as makes the behavior consistent with the other spec sections. * Build scriptlets (such as `%build`, `%install` or `%check`) can now be [augmented](https://rpm-software-management.github.io/rpm/manual/spec.html#build-scriptlets) arbitrary number of times by appending or prepending to them with the new `-a` and `-p` options * A new `-C` option in `%autosetup` which ensures that the sources will be extracted in the root of the build directory ([#2664](https://github.com/rpm-software-management/rpm/issues/2664)) +* `--build-in-place` mode now has clearer, less ambiguous semantics. Please see the [Compatibility Notes](#compatibility-notes) below as well as the option's updated description in `rpmbuild(8)` for more details. * File trigger scripts now receive package count arguments, much like regular triggers ([#2755](https://github.com/rpm-software-management/rpm/issues/2755)) * Comments (starting with a `#`) after SPEC conditionals are now legal syntax. These were originally allowed due to a SPEC parser bug but in recent versions triggered a build warning. ([#829](https://github.com/rpm-software-management/rpm/issues/829)) * Indentation is now [allowed](https://rpm-software-management.github.io/rpm/manual/spec.html#preamble-tags) for SPEC tags ([#2927](https://github.com/rpm-software-management/rpm/issues/2927)) @@ -39,11 +40,13 @@ Last update: 2024-06-24 * Better support for reproducible builds. It's now possible to set a [timestamp handling policy](https://rpm-software-management.github.io/rpm/manual/buildprocess.html#reproducability) via the new macro `%build_mtime_policy`. Two policies are currently available; one for clamping the timestamps to `$SOURCE_DATE_EPOCH` (which deprecates and replaces the `%clamp_mtime_to_source_date_epoch` macro) and one for clamping them to the build time (this is a new feature). Set the macro to `clamp_to_source_date_epoch` or `clamp_to_buildtime` to use the respective policy. Additionally, build time is now exposed to build scriptlets via the new `$RPM_BUILD_TIME` environment variable and can also be overridden manually via the new `%_buildtime` macro. * Proper distribution-agnostic debuginfo enablement logic ([#2204](https://github.com/rpm-software-management/rpm/issues/2204)). Distributions no longer need to override the `%install` section with a macro in order to inject the `%debug_package` boilerplate themselves. Debuginfo generation is now handled automatically and properly using [Dynamic Specs](https://rpm-software-management.github.io/rpm/manual/dynamic_specs.html), and is enabled on Linux by default. * `brp-strip` no longer attempts to process Ruby, Python or Javascript files, making it more efficient and faster, especially where I/O is expensive (such as in container builds) +* A warning is now issued if the number range given to an `%autopatch` macro doesn't match any patches (use `-q` to suppress) ([#3093](https://github.com/rpm-software-management/rpm/issues/3093)) ## Bug & Regression Fixes * Regression: Packages with unsupported usage of the `%config` flag (e.g. with directories), such as those made with the [gradle plugin](https://plugins.gradle.org/plugin/com.netflix.nebula.ospackage), no longer fail to install ([#2890](https://github.com/rpm-software-management/rpm/issues/2890)) * Regression: Ensure binary and source headers are identified as such in rpmspec queries ([#2819](https://github.com/rpm-software-management/rpm/issues/2819)) * Regression: Fix dependency generators sometimes dying with `SIGPIPE` ([#2949](https://github.com/rpm-software-management/rpm/issues/2949)) +* Regression: Allow for manual debuginfo packaging again (an ancient regression) ([#3057](https://github.com/rpm-software-management/rpm/issues/3057)) * Never use current user info or file ownership during build ([#2604](https://github.com/rpm-software-management/rpm/issues/2604)) * Ignore non-scriptlet weak dependencies in ordering ([#1346](https://github.com/rpm-software-management/rpm/issues/1346)) * Ensure rpmbuild's cleanup doesn't fail due to permissions ([#2519](https://github.com/rpm-software-management/rpm/issues/2519)) @@ -61,6 +64,12 @@ Last update: 2024-06-24 * Always create `%specpartsdir` on build ([#3063](https://github.com/rpm-software-management/rpm/issues/3063)) * Multiple fixes to the archives created by `rpm2archive`. +## Development & Build System +* Include dirs are now exported in lib targets as well ([#3222](https://github.com/rpm-software-management/rpm/issues/3222)) +* An `.editorconfig` file is now provided in the repository (see `CONTRIBUTING.md` for details) +* Python API examples are now provided and installed into `${CMAKE_INSTALL_DOCDIR}` +* Lua API has a new `rpm.spawn()` function that supersedes `rpm.execute()` and provides more fine-grained control, currently for redirecting stdin, stdout and stderr to given paths ([#3192](https://github.com/rpm-software-management/rpm/issues/3192)) + ## Internal Cleanup * The internal OpenPGP parser has been removed. RPM can now also be built completely without OpenPGP support (i.e. without Sequoia) to allow for easier bootstrapping, see the INSTALL file for details. ([#2414](https://github.com/rpm-software-management/rpm/issues/2414)) * The Python bindings have been ported to the stable Python ABI ([#2345](https://github.com/rpm-software-management/rpm/issues/2345)) @@ -96,6 +105,7 @@ Last update: 2024-06-24 Note that the `%__debug_package` macro continues to be automatically set to `1` when debuginfo generation is enabled and thus can be relied upon without any changes. +* As a result of the clarified semantics of `--build-in-place`, the `%prep` stage is now skipped entirely in this mode. This may break existing specs that rely on `%prep` still applying patches or making additional tweaks to the source tree. To make such specs compatible with 4.20, these post-preparation steps should be moved to the `%conf` or `%build` sections. * The `%clamp_mtime_to_source_date_epoch` macro is now deprecated in favor of `%build_mtime_policy` set to `clamp_to_source_date_epoch`. * Non-comment text (i.e. not starting with a `#`) after SPEC conditionals is now a build error. * Lua functions posix.fork(), posix.exec(), posix.wait() and rpm.redirect2null() are deprecated. Use rpm.execute() instead.