Skip to content

Commit

Permalink
Merge branch 'erlang-27'
Browse files Browse the repository at this point in the history
Conflicts:
	Makefile
	erlang.spec
  • Loading branch information
michaelklishin committed Dec 6, 2024
2 parents dfc9c81 + 3b57a9c commit bb17340
Show file tree
Hide file tree
Showing 10 changed files with 122 additions and 73 deletions.
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
target-branch: "main"
21 changes: 21 additions & 0 deletions .github/workflows/trigger-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Trigger build

on:
push:
workflow_dispatch:

jobs:
trigger-build:
runs-on: ubuntu-22.04
steps:
- name: Extract Erlang major version
run: |
major=$(echo "${{ github.ref_name }}" | cut -d "-" -f 2)
echo $major
echo "erlang_major=$major" >> $GITHUB_ENV
- name: Trigger build
uses: peter-evans/repository-dispatch@v2
with:
repository: rabbitmq/erlang-packages
token: ${{ secrets.CI_GITHUB_TOKEN }}
event-type: rpm_erlang_${{ env.erlang_major }}
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright VMware, Inc. or its affiliantes, 2012-2022. All Rights Reserved.
# Copyright Broadcom, Inc. or its affiliantes, 2012-2024. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -14,7 +14,7 @@

FINAL_OUTPUT_DIR=FINAL_RPMS

OTP_RELEASE=26.2
OTP_RELEASE=27.1.3

# Where official Erlang distribution files come from...
OTP_SRC_TGZ_FILE=OTP-$(OTP_RELEASE).tar.gz
Expand Down
83 changes: 38 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,27 @@ aarch64 hosts. See the **Building from Source** section below.

## Supported RPM-based Distributions

[Binary builds](https://github.com/rabbitmq/erlang-rpm/releases) of this package target **modern RPM-based distributions**:
[Binary builds](https://github.com/rabbitmq/erlang-rpm/releases) of this package **target modern RPM-based distributions**:

* RHEL 8.4 or later
* CentOS Stream 8
* RHEL 8.8 and later (the versions [covered by full support](https://access.redhat.com/support/policy/updates/errata))
* CentOS Stream 9
* Rocky Linux 8.5 or later
* Fedora 34 or later
* Fedora 39 or later
* Rocky Linux 8.10 and 9.4 (the [most recent maintained](https://wiki.rockylinux.org/rocky/version/) 8.x and 9.x series)
* Alma Linux 8.10 and 9.4 (the [most recent maintained](https://wiki.almalinux.org/release-notes/) 8.x and 9.x series)
* Amazon Linux 2023
* VMware PhotonOS 5
* Oracle Linux 9
* Alma Linux 9

## CentOS 7 and derivatives
## CentOS 8 has Reached End-of-Life

CentOS Stream 8 has [reached end of life](https://endoflife.date/centos-stream) in May 2024. The CentOS 8 versions
of these packages are produced on Rocky Linux 8.10+ from July 2024 and onwards.

## CentOS 7 has Reached End-of-Life

[Team RabbitMQ stopped supporting CentOS 7](https://blog.rabbitmq.com/posts/2022/04/centos-7-support-discontinued/) in May 2022.

Erlang [26.1](https://github.com/rabbitmq/erlang-rpm/releases/tag/v26.1) and [25.3.2.3](https://github.com/rabbitmq/erlang-rpm/releases/tag/v25.3.2.3)
Erlang [26.2.5.4](https://github.com/rabbitmq/erlang-rpm/releases/tag/v26.2.5.4) and [25.3.2.9](https://github.com/rabbitmq/erlang-rpm/releases/tag/v25.3.2.9)
include one-off CentOS 7 packages statically linked against OpenSSL 1.1.x.

Regular CentOS 7 and Amazon Linux 2 builds were produced up to [Erlang 23.3.4.18](https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.3.4.18).
Expand All @@ -42,27 +47,14 @@ and [a modern Erlang PPA for Ubuntu](https://rabbitmq.com/install-debian.html#ap

## Provided Erlang/OTP Versions

The package targets Erlang/OTP `26.x` and `25.x`. Both x86-64 and aarch64 versions can be
build in containers.

First RabbitMQ release series with Erlang 26 support is [`3.12`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.12.0).
The package targets Erlang/OTP `26.x`. Both x86-64 and aarch64 versions can be
built in containers.

### RabbitMQ Version Compatibility

See [Supported Erlang Versions](https://www.rabbitmq.com/which-erlang.html) in RabbitMQ documentation
for an up-to-date compatibility matrix.

#### Erlang 26

First RabbitMQ release series with Erlang 26 support is [`3.12`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.12.0).

#### Erlang 25

Erlang 25 is supported by RabbitMQ [starting with `3.10.0`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.10.0).

Erlang 25 depends on OpenSSL 1.1, which is **not available on CentOS 7**. Therefore Erlang 25 packages
are **only produced for modern Fedora, Rocky Linux, CentOS Stream, and Amazon Linux 2023**.


## Implicit OpenSSL/libcrypto Dependency

Expand Down Expand Up @@ -99,14 +91,14 @@ rpm --import 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495B
This package is [distributed as a single RPM](https://github.com/rabbitmq/erlang-rpm/releases), which makes it convenient to
download and install using `dnf install -y /path/to/erlang.rpm`.

Erlang 25 x86-64 and aarch64 releases can be provisioned on RHEL 9, CentOS Stream 9, Amazon Linux 2023,
Erlang 26 x86-64 and aarch64 releases can be provisioned on RHEL 9, CentOS Stream 9, Amazon Linux 2023,
and modern Fedora using a [direct download](https://github.com/rabbitmq/erlang-rpm/releases):

``` shell
# This is just an example that uses an aarch64 package for Amazon Linux 2023
cd /tmp/
curl -sfL -O https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2.5/erlang-25.3.2.5-1.amzn2023.aarch64.rpm
sudo dnf install -y ./erlang-25.3.2.5-1.amzn2023.aarch64.rpm
curl -sfL -O https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.3/erlang-26.2.5.3-1.amzn2023.aarch64.rpm
sudo dnf install -y ./erlang-26.2.5.3-1.amzn2023.aarch64.rpm
```

## Latest Erlang Version from a Cloudsmith Mirror
Expand All @@ -133,10 +125,10 @@ using a dnf (yum) repository (a Cloudsmith mirror):

[modern-erlang]
name=modern-erlang-el8
# uses a Cloudsmith mirror @ yum.novemberain.com in addition to its Cloudsmith upstream.
# uses a Cloudsmith mirror @ yum.rabbitmq.com in addition to its Cloudsmith upstream.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quota
baseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
https://yum2.novemberain.com/erlang/el/8/$basearch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
https://yum2.rabbitmq.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand All @@ -150,10 +142,10 @@ type=rpm-md

[modern-erlang-noarch]
name=modern-erlang-el8-noarch
# uses a Cloudsmith mirror @ yum.novemberain.com.
# uses a Cloudsmith mirror @ yum.rabbitmq.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/noarch
https://yum2.novemberain.com/erlang/el/8/noarch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
https://yum2.rabbitmq.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand All @@ -168,10 +160,10 @@ type=rpm-md

[modern-erlang-source]
name=modern-erlang-el8-source
# uses a Cloudsmith mirror @ yum.novemberain.com.
# uses a Cloudsmith mirror @ yum.rabbitmq.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
https://yum2.novemberain.com/erlang/el/8/SRPMS
baseurl=https://yum1.rabbitmq.com/erlang/el/8/SRPMS
https://yum2.rabbitmq.com/erlang/el/8/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand Down Expand Up @@ -200,10 +192,10 @@ using a dnf (yum) repository (a Cloudsmith mirror):
# In /etc/yum.repos.d/modern_erlang.repo
[modern-erlang]
name=modern-erlang-el8
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# uses a Cloudsmith mirror @ yum1.rabbitmq.com.
# Unlike Cloudsmith, it does not have traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
https://yum1.novemberain.com/erlang/el/8/$basearch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
https://yum1.rabbitmq.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand All @@ -217,10 +209,10 @@ type=rpm-md

[modern-erlang-noarch]
name=modern-erlang-el8-noarch
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# uses a Cloudsmith mirror @ yum1.rabbitmq.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/noarch
https://yum2.novemberain.com/erlang/el/8/noarch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
https://yum2.rabbitmq.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand All @@ -235,10 +227,10 @@ type=rpm-md

[modern-erlang-source]
name=modern-erlang-el8-source
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# uses a Cloudsmith mirror @ yum1.rabbitmq.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
https://yum2.novemberain.com/erlang/el/8/SRPMS
baseurl=https://yum1.rabbitmq.com/erlang/el/8/SRPMS
https://yum2.rabbitmq.com/erlang/el/8/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
Expand Down Expand Up @@ -367,6 +359,7 @@ history and release archive can be useful as well.
## Copyright and License

Copyright VMware, Inc and its affiliates, 2011-2023. All Rights Reserved.
Copyright Broadcom. "Broadcom" may refer to Broadcom, Inc or its affiliates, 2023-2024. All Rights Reserved.

Released under the [Apache Software License 2.0](./Erlang_ASL2_LICENSE.txt),
same as Erlang/OTP starting with 18.0.
same as Erlang/OTP.
16 changes: 11 additions & 5 deletions docker/build-docker-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,20 @@ case $os_name in
image="quay.io/centos/centos"
image_tag=stream9;;
8|stream8|centos8)
image="quay.io/centos/centos"
image_tag=stream8;;
fedora|f38|fc38|fedora38)
image="rockylinux"
image_tag=8;;
fedora|f41|fc41|fedora41)
image="fedora"
image_tag="38";;
image_tag="41";;
fedora|f40|fc40|fedora40)
image="fedora"
image_tag="40";;
fedora|f39|fc39|fedora39)
image="fedora"
image_tag="39";;
fedora|f38|fc38|fedora38)
image="fedora"
image_tag="38";;
al|al2023|amazonlinux2023)
image="amazonlinux"
image_tag="2023";;
Expand Down Expand Up @@ -62,4 +68,4 @@ cp "$dockerfile" "$docker_dir/Dockerfile"
sudo docker build --build-arg image="$image" --build-arg image_tag="$image_tag" "$docker_params" -t="erlang-rpm-build-$os_name" "$docker_dir";;
*)
docker build --build-arg image="$image" --build-arg image_tag="$image_tag" "$docker_params" -t="erlang-rpm-build-$os_name" "$docker_dir";;
esac
esac
2 changes: 1 addition & 1 deletion docker/build-image-and-rpm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ second: docker build parameters such as --no-cache
-----------------------------------------
Ex: ./build-image-and-rpm.sh stream9 --no-cache
Ex: ./build-image-and-rpm.sh stream8 --no-cache
Ex: ./build-image-and-rpm.sh fedora38 --no-cache
Ex: ./build-image-and-rpm.sh fedora41 --no-cache
"
exit 1
}
Expand Down
4 changes: 2 additions & 2 deletions docker/build-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ build_and_fetch_rpm_for "stream9"
build_and_fetch_rpm_for "stream8"
# These distributions cannot use CentOS Stream packages
build_and_fetch_rpm_for "al2023"
build_and_fetch_rpm_for "fc38"

build_and_fetch_rpm_for "fc40"
build_and_fetch_rpm_for "fc41"
4 changes: 2 additions & 2 deletions docker/build-rpm-in-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ done
echo "Will now build the RPM in '$build_dir' using image 'erlang-rpm-build-$os_name'"
case $(uname -s) in
Linux)
sudo docker run -i -t -v "$PWD"/"$build_dir":/build/"$build_dir":z "erlang-rpm-build-$os_name";;
sudo docker run --dns 8.8.8.8 -i -t -v "$PWD"/"$build_dir":/build/"$build_dir":z "erlang-rpm-build-$os_name";;
*)
docker run -i -t -v "$PWD"/"$build_dir":/build/"$build_dir":z "erlang-rpm-build-$os_name";;
docker run --dns 8.8.8.8 -i -t -v "$PWD"/"$build_dir":/build/"$build_dir":z "erlang-rpm-build-$os_name";;
esac
40 changes: 36 additions & 4 deletions erlang.spec
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright VMware, Inc. or its affiliantes, 2012-2022. All Rights Reserved.
# Copyright Broadcom, Inc. or its affiliantes, 2012-2024. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

%global upstream_ver 26.2
%global package_ver 26.2
%global upstream_ver 27.1.3
%global package_ver 27.1.3
%global package_ver_release 1

# See https://fedoraproject.org/wiki/Changes/Broken_RPATH_will_fail_rpmbuild
Expand Down Expand Up @@ -106,7 +106,6 @@ touch lib/dialyzer/SKIP
touch lib/diameter/SKIP
touch lib/edoc/SKIP
touch lib/et/SKIP
touch lib/erl_docgen/SKIP
touch lib/ftp/SKIP
touch lib/jinterface/SKIP
touch lib/megaco/SKIP
Expand Down Expand Up @@ -323,6 +322,39 @@ rm -rf $RPM_BUILD_ROOT

%changelog

* Fri Dec 6 2024 Michael Klishin <[email protected]> - 27.1.3
- Update to Erlang/OTP 27.1.3

* Mon Oct 28 2024 Michael Klishin <[email protected]> - 27.1.2
- Update to Erlang/OTP 27.1.2

* Thu Oct 10 2024 Michael Klishin <[email protected]> - 27.1.1
- Update to Erlang/OTP 27.1.1

* Wed Oct 9 2024 Michael Klishin <[email protected]> - 26.2.5.4
- Update to Erlang/OTP 26.2.5.4

* Thu Sep 5 2024 Michael Klishin <[email protected]> - 26.2.5.3
- Update to Erlang/OTP 26.2.5.3

* Wed Jul 10 2024 Michael Klishin <[email protected]> - 26.2.5.2
- Update to Erlang/OTP 26.2.5.2

* Sat May 4 2024 Michael Klishin <[email protected]> - 26.2.5
- Update to Erlang/OTP 26.2.5

* Sat Apr 13 2024 Michael Klishin <[email protected]> - 26.2.4
- Update to Erlang/OTP 26.2.4

* Thu Mar 7 2024 Michael Klishin <[email protected]> - 26.2.3
- Update to Erlang/OTP 26.2.3

* Thu Feb 8 2024 Michael Klishin <[email protected]> - 26.2.2
- Update to Erlang/OTP 26.2.2

* Mon Dec 18 2023 Michael Klishin <[email protected]> - 26.2.1
- Update to Erlang/OTP 26.2.1

* Wed Dec 13 2023 Michael Klishin <[email protected]> - 26.2
- Update to Erlang/OTP 26.2

Expand Down
12 changes: 0 additions & 12 deletions otp-0003-Do-not-install-erlang-sources.patch
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,6 @@ diff --ignore-blank-lines --ignore-space-change -u -r otp-src/lib/edoc/src/Makef

release_docs_spec:
-
diff --ignore-blank-lines --ignore-space-change -u -r otp-src/lib/erl_docgen/src/Makefile otp-src-patched/lib/erl_docgen/src/Makefile
--- otp-src/lib/erl_docgen/src/Makefile 2021-05-12 21:31:55.000000000 +0100
+++ otp-src-patched/lib/erl_docgen/src/Makefile 2020-05-13 23:54:26.000000000 +0100
@@ -91,8 +91,6 @@
include $(ERL_TOP)/make/otp_release_targets.mk

release_spec: opt
- $(INSTALL_DIR) "$(RELSYSDIR)/src"
- $(INSTALL_DATA) $(ERL_FILES) "$(RELSYSDIR)/src"
$(INSTALL_DIR) "$(RELSYSDIR)/ebin"
$(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin"

diff --ignore-blank-lines --ignore-space-change -u -r otp-src/lib/inets/src/http_client/Makefile otp-src-patched/lib/inets/src/http_client/Makefile
--- otp-src/lib/inets/src/http_client/Makefile 2021-05-12 21:31:58.000000000 +0100
+++ otp-src-patched/lib/inets/src/http_client/Makefile 2019-05-28 00:02:47.000000000 +0100
Expand Down

0 comments on commit bb17340

Please sign in to comment.