%define product_family Amazon Linux %define dist_tag amzn %define dist_version 2027 %define codename Amazon Linux %define major 2027 %define minor aln5 %define release 20251201 %define revision 0 %global dist .%{dist_tag}%{dist_version} %define cpe cpe:2.3:o:amazon:amazon_linux:%{dist_version} %bcond_with LIVEPATCHING # Fedora upstream %define upstream_version 43 Summary: %{product_family} release files Name: system-release Version: %{major}.%{minor}.%{release} Release: %{revision}%{dist} License: MIT URL: https://amazonlinux.com/ # systemd preset files (amzn, early) Source9: 80-amzn-overrides.preset # systemd preset files (via upstream) Source10: 85-display-manager.preset Source11: 90-default.preset Source12: 90-default-user.preset Source13: 99-default-disable.preset # systemd preset files (amzn) Source14: 91-update-motd.preset Source15: 91-amazon-ssm-agent.preset Source16: 91-hibinit-agent.preset Source17: 91-systemd-networkd.preset # amazon linux repo access via CloudFront Source20: amazonlinux.repo-cdn Source21: release-notification.conf-cdn # amazon linux repo access via S3 Source22: amazonlinux.repo-s3 Source23: release-notification.conf-s3 %if %{with LIVEPATCHING} # Kernel Livepatch Repo (CDN, S3) Source24: kernel-livepatch.repo-cdn Source25: kernel-livepatch.repo-s3 %endif # Signing key Source31: RPM-GPG-KEY-amazon-linux-2023 # update-motd scripts Source40: 30-banner Source41: 70-available-updates # cloud-init configuration Source50: 10_aws_dnfvars.cfg BuildArch: noarch Provides: system-release(%{dist_version}) Requires: amazon-linux-repo(%{dist_version}) Suggests: amazon-linux-repo-cdn Suggests: kernel-livepatch-repo kernel-livepatch-repo-cdn %description %{product_family} release files %package -n amazon-linux-repo-cdn Summary: Access to Amazon Linux repositories via CloudFront Provides: amazon-linux-repo Provides: amazon-linux-repo(%{dist_version}) Requires: system-release(%{dist_version}) Conflicts: amazon-linux-repo-s3 Conflicts: system-release < 2022.0.20221019-2.amzn2022 RemovePathPostfixes: -cdn %description -n amazon-linux-repo-cdn Access to Amazon Linux repo via CloudFront %package -n amazon-linux-repo-s3 Summary: Access to Amazon Linux repositories via S3 Provides: amazon-linux-repo Provides: amazon-linux-repo(%{dist_version}) Requires: system-release(%{dist_version}) Conflicts: amazon-linux-repo-cdn Conflicts: system-release < 2022.0.20221019-2.amzn2022 RemovePathPostfixes: -s3 %description -n amazon-linux-repo-s3 Access to Amazon Linux via S3 %if %{with LIVEPATCHING} %package -n kernel-livepatch-repo-cdn Summary: Access to Amazon Linux Kernel Livepatch repositories via CloudFront Provides: kernel-livepatch-repo Provides: kernel-livepatch-repo(%{system_release}) Requires: system-release(%{dist_version}) Conflicts: kernel-livepatch-repo-s3 Conflicts: system-release < 2022.0.20221101-1.amzn2022 RemovePathPostfixes: -cdn %description -n kernel-livepatch-repo-cdn Access to Amazon Linux Kernel Livepatch repo via CloudFront %package -n kernel-livepatch-repo-s3 Summary: Access to Amazon Linux Kernel Livepatch repositories via S3 Provides: kernel-livepatch-repo Provides: kernel-livepatch-repo(%{system_release}) Requires: system-release(%{dist_version}) Conflicts: kernel-livepatch-repo-cdn Conflicts: system-release < 2022.0.20221101-1.amzn2022 RemovePathPostfixes: -s3 %description -n kernel-livepatch-repo-s3 Access to Amazon Linux Kernel Livepatch via S3 %endif %prep %build %install # Create /etc mkdir -p %{buildroot}%{_sysconfdir} # Create /usr/lib/system-release install -d %{buildroot}%{_prefix}/lib echo "%{product_family} release %{VERSION} (%{codename})" \ > %{buildroot}%{_prefix}/lib/system-release ln -s ../usr/lib/system-release %{buildroot}%{_sysconfdir}/system-release ln -s ../usr/lib/system-release %{buildroot}%{_sysconfdir}/amazon-linux-release # Write cpe to /etc/system-release-cpe echo "%{cpe}" > %{buildroot}%{_prefix}/lib/system-release-cpe ln -s ../usr/lib/system-release-cpe %{buildroot}%{_sysconfdir}/system-release-cpe ln -s ../usr/lib/system-release-cpe %{buildroot}%{_sysconfdir}/amazon-linux-release-cpe # ------------------------------------------------------------------------- # Definitions for /etc/os-release and for macros in macros.dist. These # macros are useful for spec files where distribution-specific identifiers # are used to customize packages. # Name of vendor / name of distribution. Typically used to identify where # the binary comes from in --help or --version messages of programs. # Examples: gdb.spec, clang.spec %global dist_vendor Amazon Linux %global dist_name %{product_family} # URL of the homepage of the distribution # Example: gstreamer1-plugins-base.spec %global dist_home_url https://aws.amazon.com/linux/amazon-linux-2023/ # URL of documentation %global dist_doc_url https://docs.aws.amazon.com/linux/ # Vendor %global dist_vendor AWS %global dist_vendor_url https://aws.amazon.com/ # Support %global dist_support_url https://aws.amazon.com/premiumsupport/ # Bugzilla / bug reporting URLs shown to users. # Examples: gcc.spec %global dist_bug_report_url https://github.com/amazonlinux/amazon-linux-%{major} # debuginfod server, as used in elfutils.spec. # Undefined for Amazon Linux # %%global dist_debuginfod_url # ------------------------------------------------------------------------- # Create /etc/os-release cat << EOF >>%{buildroot}%{_prefix}/lib/os-release NAME="%{dist_name}" VERSION="%{dist_version}" ID="%{dist_tag}" ID_LIKE="fedora" VERSION_ID="%{dist_version}" PLATFORM_ID="platform:al%{major}" PRETTY_NAME="%{dist_name} %{VERSION}" ANSI_COLOR="0;33" CPE_NAME="%{cpe}" HOME_URL="%{dist_home_url}" DOCUMENTATION_URL="%{dist_doc_url}" SUPPORT_URL="%{dist_support_url}" BUG_REPORT_URL="%{dist_bug_report_url}" VENDOR_NAME="%{dist_vendor}" VENDOR_URL="%{dist_vendor_url}" SUPPORT_END="2029-06-30" EOF ln -s ../usr/lib/os-release %{buildroot}%{_sysconfdir}/os-release # Create /etc/issue echo "\S" > %{buildroot}%{_prefix}/lib/issue echo "Kernel \r on an \m (\l)" >> %{buildroot}%{_prefix}/lib/issue echo >> %{buildroot}%{_prefix}/lib/issue ln -s ../usr/lib/issue %{buildroot}%{_sysconfdir}/issue # Create /etc/issue.net echo "\S" > %{buildroot}%{_prefix}/lib/issue.net echo "Kernel \r on an \m (\l)" >> %{buildroot}%{_prefix}/lib/issue.net ln -s ../usr/lib/issue.net %{buildroot}%{_sysconfdir}/issue.net # copy GPG keys mkdir -p -m 0755 %{buildroot}/etc/pki/rpm-gpg install -m 0644 %{SOURCE31} %{buildroot}/etc/pki/rpm-gpg # copy yum repos mkdir -p -m 0755 %{buildroot}/etc/yum.repos.d install -m 0644 %{SOURCE20} %{buildroot}/etc/yum.repos.d/amazonlinux.repo-cdn install -m 0644 %{SOURCE22} %{buildroot}/etc/yum.repos.d/amazonlinux.repo-s3 %if %{with LIVEPATCHING} install -m 0644 %{SOURCE24} %{buildroot}/etc/yum.repos.d/kernel-livepatch.repo-cdn install -m 0644 %{SOURCE25} %{buildroot}/etc/yum.repos.d/kernel-livepatch.repo-s3 %endif # Set up dnf release-notification plugin mkdir -p -m 0755 %{buildroot}/etc/dnf/plugins install -m 0644 %{SOURCE21} %{buildroot}/etc/dnf/plugins/release-notification.conf-cdn install -m 0644 %{SOURCE23} %{buildroot}/etc/dnf/plugins/release-notification.conf-s3 # Set up the dist tag macros install -d -m 755 %{buildroot}%{_rpmconfigdir}/macros.d cat >> %{buildroot}%{_rpmconfigdir}/macros.d/macros.dist << EOF # dist macros. %%amzn %{major} %%amzn%{major} 1 %%al_ver %{major} %%fedora %{upstream_version} %%fc%{upstream_version} 1 %%dist .%{dist_tag}%{major} %%vendorzone amazon. %%dist_vendor %{dist_vendor} %%dist_name %{dist_name} %%dist_home_url %{dist_home_url} %%dist_bug_report_url %{dist_bug_report_url} EOF # copy systemd presets mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-preset install -m 0644 %{SOURCE9} %{buildroot}%{_prefix}/lib/systemd/system-preset/ install -m 0644 %{SOURCE10} %{buildroot}%{_prefix}/lib/systemd/system-preset/ install -m 0644 %{SOURCE11} %{buildroot}%{_prefix}/lib/systemd/system-preset/ install -m 0644 %{SOURCE12} %{buildroot}%{_prefix}/lib/systemd/user-preset/ # The same file is installed in two places with identical contents install -m 0644 %{SOURCE13} %{buildroot}%{_prefix}/lib/systemd/system-preset/ install -m 0644 %{SOURCE13} %{buildroot}%{_prefix}/lib/systemd/user-preset/ # Amazon Linux enables update-motd by default install -m 0644 %{SOURCE14} %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Amazon Linux enables amazon-ssm-agent by default install -m 0644 %{SOURCE15} %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Amazon Linux enables hibinit-agent by default install -m 0644 %{SOURCE16} %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Amazon Linux uses systemd-networkd install -m 0644 %{SOURCE17} %{buildroot}%{_prefix}/lib/systemd/system-preset/ # Install MOTD scripts install -d -m 755 %{buildroot}/etc/update-motd.d install -m 755 %{SOURCE41} %{buildroot}/etc/update-motd.d/ # Install Amazon Linux motd banner install -d -m 755 %{buildroot}%{_prefix}/lib/motd.d install -m 755 %{SOURCE40} %{buildroot}%{_prefix}/lib/motd.d/30-banner # create default dnf vars mkdir -p -m 0755 %{buildroot}/etc/dnf/vars echo "amazonaws.com" > %{buildroot}/etc/dnf/vars/awsdomain echo "us-west-2" > %{buildroot}/etc/dnf/vars/awsregion echo ".dualstack" > %{buildroot}/etc/dnf/vars/dualstack echo "mirror.list" > %{buildroot}/etc/dnf/vars/mirrorlist # install cloud-init configuration mkdir -p -m 0755 %{buildroot}/etc/cloud/cloud.cfg.d install -m 0644 %{SOURCE50} %{buildroot}/etc/cloud/cloud.cfg.d/ %files %defattr(0644,root,root,0755) %{_sysconfdir}/system-release %{_sysconfdir}/amazon-linux-release %{_prefix}/lib/system-release %config(noreplace) %{_sysconfdir}/os-release %config(noreplace) %{_prefix}/lib/os-release %config %{_sysconfdir}/system-release-cpe %config %{_sysconfdir}/amazon-linux-release-cpe %config %{_prefix}/lib/system-release-cpe %config(noreplace) %{_sysconfdir}/issue %config(noreplace) %{_prefix}/lib/issue %config(noreplace) %{_sysconfdir}/issue.net %config(noreplace) %{_prefix}/lib/issue.net %{_sysconfdir}/pki/rpm-gpg/ %{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-* %dir /etc/yum.repos.d %config(noreplace) /etc/dnf/vars/awsdomain %config(noreplace) /etc/dnf/vars/awsregion %config(noreplace) /etc/dnf/vars/dualstack %config(noreplace) /etc/dnf/vars/mirrorlist %config(noreplace) /etc/cloud/cloud.cfg.d/10_aws_dnfvars.cfg %{_rpmconfigdir}/macros.d/macros.dist %attr(0755,root,root) %{_prefix}/lib/motd.d/30-banner %attr(0755,root,root) %{_sysconfdir}/update-motd.d/70-available-updates %dir %{_prefix}/lib/systemd/system-preset/ %{_prefix}/lib/systemd/system-preset/80-amzn-overrides.preset %{_prefix}/lib/systemd/system-preset/85-display-manager.preset %{_prefix}/lib/systemd/system-preset/90-default.preset %{_prefix}/lib/systemd/system-preset/91-update-motd.preset %{_prefix}/lib/systemd/system-preset/91-amazon-ssm-agent.preset %{_prefix}/lib/systemd/system-preset/91-hibinit-agent.preset %{_prefix}/lib/systemd/system-preset/91-systemd-networkd.preset %{_prefix}/lib/systemd/system-preset/99-default-disable.preset %dir %{_prefix}/lib/systemd/user-preset/ %{_prefix}/lib/systemd/user-preset/90-default-user.preset %{_prefix}/lib/systemd/user-preset/99-default-disable.preset %files -n amazon-linux-repo-cdn %config %{_sysconfdir}/yum.repos.d/amazonlinux.repo-cdn %config %{_sysconfdir}/dnf/plugins/release-notification.conf-cdn %files -n amazon-linux-repo-s3 %config %{_sysconfdir}/yum.repos.d/amazonlinux.repo-s3 %config %{_sysconfdir}/dnf/plugins/release-notification.conf-s3 %if %{with LIVEPATCHING} %files -n kernel-livepatch-repo-cdn %config %{_sysconfdir}/yum.repos.d/kernel-livepatch.repo-cdn %files -n kernel-livepatch-repo-s3 %config %{_sysconfdir}/yum.repos.d/kernel-livepatch.repo-s3 %endif %changelog * Mon Dec 1 2025 Stewart Smith - 2025.aln5.20251201.0 - aln5 system-release (minor set to aln5) - upstream_version moved to Fedora 43 * Thu Sep 18 2025 Frederick Lefebvre - 2025.alpha.20251001.0 - Initial draft of AL2027's system release