diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d4790b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/v2.2.0.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..2fa88a7 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,32 @@ +upstream_tag_template: v{version} + +jobs: + - job: propose_downstream + trigger: release + dist_git_branches: + - fedora-all + - epel-9 + + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-all + - epel-9 + + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + - epel-9 + allowed_pr_authors: + - packit + - mhayden + allowed_committers: + - packit + - mhayden + + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched + - epel-9 diff --git a/amazon-ec2-utils.spec b/amazon-ec2-utils.spec new file mode 100644 index 0000000..1b839ce --- /dev/null +++ b/amazon-ec2-utils.spec @@ -0,0 +1,83 @@ +Name: amazon-ec2-utils +Version: 2.2.0 +Release: %autorelease +Summary: Utilities and settings for Amazon EC2 +License: MIT AND CC-BY-SA-4.0 +URL: https://github.com/amazonlinux/%{name}/ +Source0: %{url}/archive/refs/tags/v%{version}.tar.gz + +# Skip the EBS udev rules as they create invalid symlinks. +# See RHBZ#2284397 for more details. +Patch0: remove-EBS-udev-rules.patch + +BuildArch: noarch + +Requires: curl +Requires: python3 + +BuildRequires: python3-devel +BuildRequires: systemd-rpm-macros + +# ec2-metadata was once provided directly from a page on the AWS website, +# but an updated and maintained version is now offered in this package. ✨ +Provides: ec2-metadata = %{version}-%{release} +Obsoletes: ec2-metadata <= 0.1.3 + +%description +Contains a set of utilities and settings for Linux deployments in EC2. + + +%prep +%autosetup -p1 -n %{name}-%{version} + + +%build +# Nothing to build for this package. + + +%install +# Install regular udev rules for EC2 instances. +install -d -m 0755 %{buildroot}%{_udevrulesdir}/ +install -p -m 0644 51-ec2-hvm-devices.rules %{buildroot}%{_udevrulesdir}/ +install -p -m 0644 51-ec2-xen-vbd-devices.rules %{buildroot}%{_udevrulesdir}/ +install -p -m 0644 53-ec2-read-ahead-kb.rules %{buildroot}%{_udevrulesdir}/ +install -p -m 0644 70-ec2-nvme-devices.rules %{buildroot}%{_udevrulesdir}/ + +# The rules for cdrom are meant to override existing systemd udev rules. +install -d -m 0755 %{buildroot}%{_sysconfdir}/udev/rules.d/ +install -p -m 0644 60-cdrom_id.rules %{buildroot}%{_sysconfdir}/udev/rules.d/ + +# Some executables are meant for all users. +install -d -m 0755 %{buildroot}%{_bindir} +install -p -m 0755 ec2-metadata %{buildroot}%{_bindir} + +# Other executables are meant only for root. +install -d -m 0755 %{buildroot}%{_sbindir} +install -p -m 0755 ec2udev-vbd %{buildroot}%{_sbindir} +install -p -m 0755 ebsnvme-id %{buildroot}%{_sbindir} +install -p -m 0755 ec2nvme-nsid %{buildroot}%{_sbindir} + +# 📚 Documentation +install -d -m 0755 %{buildroot}%{_mandir}/man8/ +install -p -m 0644 doc/ebsnvme-id.8 %{buildroot}%{_mandir}/man8/ +install -p -m 0644 doc/ec2-metadata.8 %{buildroot}%{_mandir}/man8/ + + +%files +%license LICENSE +%doc CODE_OF_CONDUCT.md CONTRIBUTING.md NOTICE README.md +%{_bindir}/ec2-metadata +%{_sbindir}/ebsnvme-id +%{_sbindir}/ec2nvme-nsid +%{_sbindir}/ec2udev-vbd +%{_mandir}/man8/ebsnvme-id.8* +%{_mandir}/man8/ec2-metadata.8* +%{_udevrulesdir}/51-ec2-hvm-devices.rules +%{_udevrulesdir}/51-ec2-xen-vbd-devices.rules +%{_udevrulesdir}/53-ec2-read-ahead-kb.rules +%{_udevrulesdir}/70-ec2-nvme-devices.rules +%{_sysconfdir}/udev/rules.d//60-cdrom_id.rules + + +%changelog +%autochangelog diff --git a/remove-EBS-udev-rules.patch b/remove-EBS-udev-rules.patch new file mode 100644 index 0000000..43175a2 --- /dev/null +++ b/remove-EBS-udev-rules.patch @@ -0,0 +1,32 @@ +From 87d578a723f270b4a2bba120f3a143bc7c8b1b19 Mon Sep 17 00:00:00 2001 +From: Major Hayden +Date: Mon, 23 Sep 2024 10:47:15 -0500 +Subject: [PATCH] Remove EBS udev rules + +These rules create invalid symlinks. + +See RHBZ 2284397. + +Signed-off-by: Major Hayden +--- + 70-ec2-nvme-devices.rules | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/70-ec2-nvme-devices.rules b/70-ec2-nvme-devices.rules +index 6fae458..8f415a7 100644 +--- a/70-ec2-nvme-devices.rules ++++ b/70-ec2-nvme-devices.rules +@@ -13,10 +13,6 @@ KERNEL=="nvme[0-9]*n[0-9]*", ENV{DEVTYPE}=="disk", ATTRS{serial}=="?*", ATTRS{mo + KERNEL=="nvme[0-9]*n[0-9]*p[0-9]*", ENV{DEVTYPE}=="partition", ATTRS{serial}=="?*", ATTRS{model}=="?*", IMPORT{program}="/usr/sbin/ec2nvme-nsid %k" + KERNEL=="nvme[0-9]*n[0-9]*p[0-9]*", ENV{DEVTYPE}=="partition", ATTRS{serial}=="?*", ATTRS{model}=="?*", ENV{_NS_ID}=="?*", SYMLINK+="disk/by-id/nvme-$attr{model}_$attr{serial}-ns-$env{_NS_ID}-part%n", OPTIONS+="string_escape=replace" + +-# ebs nvme devices +-KERNEL=="nvme[0-9]*n[0-9]*", ENV{DEVTYPE}=="disk", ATTRS{model}=="Amazon Elastic Block Store", PROGRAM="/usr/sbin/ebsnvme-id -u /dev/%k", SYMLINK+="%c" +-KERNEL=="nvme[0-9]*n[0-9]*p[0-9]*", ENV{DEVTYPE}=="partition", ATTRS{model}=="Amazon Elastic Block Store", PROGRAM="/usr/sbin/ebsnvme-id -u /dev/%k", SYMLINK+="%c%n" +- + # Do not timeout I/O operations on EBS volumes. + KERNEL=="nvme[0-9]*n[0-9]*", ENV{DEVTYPE}=="disk", ATTRS{model}=="Amazon Elastic Block Store", ATTR{queue/io_timeout}="4294967295" + +-- +2.46.1 + diff --git a/sources b/sources new file mode 100644 index 0000000..3021f67 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (v2.2.0.tar.gz) = 57faa20e4066a77cb73fe530159a1b37dc6bd303852c6cf50dcaeeb9043ca529593ca5c6054264694b8f670f5683106827f342adec0f1abdc622ce81323d9900