Skip to content

Commit

Permalink
Release rpm 4.20 rc1
Browse files Browse the repository at this point in the history
Also add an entry about the new Python API examples (not new in rc1,
just forgotten previously).
  • Loading branch information
dmnks committed Aug 30, 2024
1 parent 0b78d5f commit 377461c
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 5 deletions.
2 changes: 1 addition & 1 deletion download.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
7 changes: 7 additions & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
7 changes: 7 additions & 0 deletions timeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
18 changes: 14 additions & 4 deletions wiki/Releases/4.20.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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))
Expand All @@ -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))
Expand All @@ -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))
Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 377461c

Please sign in to comment.