Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion LICENSES-AND-NOTICES/SPECS/data/licenses.json
Original file line number Diff line number Diff line change
Expand Up @@ -3167,7 +3167,10 @@
"Source project": {
"license": "Same as the source project.",
"specs": [
"python-nocaselist"
"coreos-cloudinit",
"coreos-init",
"python-nocaselist",
"update-ssh-keys"
]
},
"Sysbench source": {
Expand Down
5 changes: 5 additions & 0 deletions SPECS/coreos-cloudinit/coreos-cloudinit.signatures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"Signatures": {
"coreos-cloudinit-1.14.0-1c1d7f4.tar.gz": "8b78e7351f04b7883d9f1cdbacc5c560756377faf9229280156bbeabe3e5c220"
}
}
91 changes: 91 additions & 0 deletions SPECS/coreos-cloudinit/coreos-cloudinit.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
Summary: Simple configuration tool for Flatcar Container Linux
Name: coreos-cloudinit
Version: 1.14.0

%global commit 1c1d7f4ae6b933350d7fd36e882dda170123cccc
%global shortcommit %(echo %{commit} | cut -c1-7)

Release: 1%{?dist}
License: Apache-2.0
Vendor: Microsoft Corporation
Distribution: Azure Linux
Group: System Environment/Base
URL: https://github.com/flatcar/coreos-cloudinit

Source0: https://github.com/flatcar/coreos-cloudinit/archive/%{commit}.tar.gz#/%{name}-%{version}-%{shortcommit}.tar.gz

BuildRequires: golang
BuildRequires: systemd-rpm-macros

Requires: shadow-utils >= 4.1.5.1

%description
coreos-cloudinit enables a user to customize Flatcar Container Linux machines by providing
either a cloud-config document or an executable script through user-data.

%prep
%autosetup -n %{name}-%{commit}

%build
export GO111MODULE=on
export GOFLAGS="-mod=vendor"
go build -v -o %{name} .

%check
%if "%{getenv:RUN_CHECK}" == "y"
export GO111MODULE=on
export GOFLAGS="-mod=vendor"
go test ./...
%endif

%install
rm -rf %{buildroot}

install -D -m 0755 %{name} %{buildroot}%{_bindir}/%{name}

# Install udev rules + systemd units from upstream "units/" directory (as in ebuild)
if [ -d units ]; then
install -d %{buildroot}%{_udevrulesdir}
for f in units/*.rules; do
[ -f "$f" ] && install -m 0644 "$f" %{buildroot}%{_udevrulesdir}/
done

install -d %{buildroot}%{_unitdir}
for ext in mount path service target; do
for f in units/*.${ext}; do
[ -f "$f" ] && install -m 0644 "$f" %{buildroot}%{_unitdir}/
done
done

# systemd_enable_service multi-user.target system-config.service
# systemd_enable_service multi-user.target user-config.target
install -d %{buildroot}%{_unitdir}/multi-user.target.wants
for u in system-config.service user-config.target; do
if [ -f "%{buildroot}%{_unitdir}/$u" ]; then
ln -sf ../$u %{buildroot}%{_unitdir}/multi-user.target.wants/$u
fi
done
fi

# Azure Linux: ensure everything in buildroot is captured
find %{buildroot} -type f -o -type l \
| sed "s|^%{buildroot}||" \
| sort -u > %{name}.files

%post
%systemd_post system-config.service >/dev/null 2>&1 || :

%preun
%systemd_preun system-config.service >/dev/null 2>&1 || :

%postun
%systemd_postun system-config.service >/dev/null 2>&1 || :

%files -f %{name}.files
%license LICENSE NOTICE
%doc README.md

%changelog
* Mon Feb 02 2026 Sumit Jena (HCL Technologies Ltd) - 1.14.0-1
- Initial Azure Linux import from the source project (license: same as "License" tag).
- License verified.
5 changes: 5 additions & 0 deletions SPECS/coreos-init/coreos-init.signatures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"Signatures": {
"coreos-init-0.0.1-8bd8a82.tar.gz": "8a512599c00629a9b1a3dfa55b3edb6ce6ddf57bd5418c6a7acc0160127113ad"
}
}
99 changes: 99 additions & 0 deletions SPECS/coreos-init/coreos-init.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
Name: coreos-init
Version: 0.0.1
Release: 1%{?dist}
Summary: Init scripts for Flatcar (systemd units, scripts, configs)

License: BSD-3-Clause
URL: https://github.com/flatcar/init
Vendor: Microsoft Corporation
Distribution: Azure Linux
Group: System Environment/Base
BuildArch: noarch

%global commit 8bd8a82fb22bc46ea2cf7da94d58655e102ca26d
%global shortcommit %(echo %{commit} | cut -c1-7)

# tarball matches the ebuild SRC_URI pattern:
Source0: https://github.com/flatcar/init/archive/%{commit}/init-%{commit}.tar.gz#/%{name}-%{version}-%{shortcommit}.tar.gz

# optional tests, analogous to IUSE=test
%bcond_without tests

# The upstream repo contains systemd units/scripts/configs for Flatcar init. [1](https://github.com/flatcar/init)
BuildRequires: make
BuildRequires: systemd-rpm-macros

# DEPEND/RDEPEND mapping from ebuild:
# DEPEND: openssh, rpcbind
# RDEPEND adds: logrotate, parted, gptfdisk, systemd >= 207, coreos-cloudinit >= 0.1.2-r5
#
# NOTE: package names can differ in Azure Linux; adjust if your repo uses split names
# (e.g., openssh-server instead of openssh).
BuildRequires: openssh
BuildRequires: rpcbind
Requires: logrotate
Requires: parted
Requires: gptfdisk
Requires: systemd >= 207
Requires: coreos-cloudinit

%if %{with tests}
BuildRequires: python3
%endif

%description
System initialization content for Flatcar-style images: systemd unit files, helper scripts,
and configuration files used during early boot and provisioning. The upstream project
organizes content under configs/, scripts/, systemd/, udev/, etc. [1](https://github.com/flatcar/init)

%prep
%autosetup -n init-%{commit}

%install
rm -rf %{buildroot}

# ebuild: emake DESTDIR="${D}" install
%{__make} DESTDIR=%{buildroot} install

# ebuild: systemd_enable_service rpcbind.target rpcbind.service
# In systemd, enabling a unit is implemented by creating symlinks in a target’s .wants dir. [3](https://www.flatcar.org/docs/latest/setup/systemd/getting-started/)
install -d %{buildroot}%{_sysconfdir}/systemd/system/rpcbind.target.wants
ln -sf %{_unitdir}/rpcbind.service %{buildroot}%{_sysconfdir}/systemd/system/rpcbind.target.wants/rpcbind.service

rm %{buildroot}/usr/lib/systemd/system/ignition-delete-config.service
rm %{buildroot}/usr/lib/systemd/system/sshd-keygen.service
rm -rf %{buildroot}/etc/issue
# Generate file manifest automatically (avoids missing files when upstream changes)
# This will list all files installed under %{buildroot} as absolute paths.
find %{buildroot} -type f -o -type l \
| sed "s|^%{buildroot}||" \
| sort -u > %{name}.files

%check
%if %{with tests}
# Upstream includes a tests/ directory; if tests are wired via Makefile, run them.
# If this fails in Azure Linux, replace with the repo’s actual test invocation.
%{__make} test
%endif

%post
# Standard systemd scriptlets for packages shipping unit files
%systemd_post rpcbind.target
%systemd_post rpcbind.service

%preun
%systemd_preun rpcbind.target
%systemd_preun rpcbind.service

%postun
%systemd_postun rpcbind.target
%systemd_postun rpcbind.service

%files -f %{name}.files
%license LICENSE NOTICE
%doc README.md

%changelog
* Mon Feb 02 2026 Sumit Jena (HCL Technologies Ltd) - 0.0.1-1
- Initial Azure Linux import from the source project (license: same as "License" tag).
- License verified.
6 changes: 6 additions & 0 deletions SPECS/update-ssh-keys/update-ssh-keys.signatures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"Signatures": {
"be3ce2acc50313a6826c578e9dbb67e17085d60d.tar.gz": "70a39289dfb4962ff1ede2a12e51f4c7fbeafb36edf7f4ec1182731d2e5844a8",
"update-ssh-keys-0.3.0-vendor.tar.gz": "dfeb707b2e0bd52086429d2c3255d498ebcac4124dbc71e58096a9593b5fca60"
}
}
83 changes: 83 additions & 0 deletions SPECS/update-ssh-keys/update-ssh-keys.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
%global crate update-ssh-keys

# Below is a manually created tarball containing vendored Rust dependencies.
# The vendored crates are needed because network access is disabled during build time.
#
# How to recreate this vendor tarball:
# 1. Download the update-ssh-keys source tarball
# 2. Extract it: tar xzf update-ssh-keys-X.Y.Z.tar.gz && cd update-ssh-keys-X.Y.Z
# 3. Generate vendor directory: cargo vendor > /dev/null
# 4. Create the vendor tarball: tar czf ../update-ssh-keys-X.Y.Z-vendor.tar.gz vendor/
#
# Note: The vendor tarball should be uploaded to the GitHub releases page or stored
# in the package's source location (using the format update-ssh-keys-VERSION-vendor.tar.gz)

Name: update-ssh-keys
Version: 0.3.0
Release: 1%{?dist}
Summary: Utility for managing OpenSSH authorized public keys

License: Apache-2.0
URL: https://github.com/flatcar/update-ssh-keys
Vendor: Microsoft Corporation
Distribution: Azure Linux
Group: System Environment/Base
Source0: https://github.com/flatcar/update-ssh-keys/archive/be3ce2acc50313a6826c578e9dbb67e17085d60d.tar.gz
SOURCE1: update-ssh-keys-0.3.0-vendor.tar.gz
BuildRequires: cargo
BuildRequires: rust >= 1.60

# make sure we have a new enough coreos-init that we won't conflict with the
# old bash script
Requires: coreos-init

%ifarch x86_64
%define rust_def_target x86_64-unknown-linux-gnu
%endif
%ifarch aarch64
%define rust_def_target aarch64-unknown-linux-gnu
%endif

%description
update-ssh-keys is a command line tool and library for managing OpenSSH
authorized public keys. It keeps track of sets of keys with names, allows
for adding additional keys, as well as deleting and disabling them.

The tool is commonly used on Container Linux and Flatcar to manage SSH
access in cloud environments. It can integrate with cloud-config and other
provisioning systems to maintain authorized_keys files.

%prep
%autosetup -n update-ssh-keys-be3ce2acc50313a6826c578e9dbb67e17085d60d -a1

# Extract vendored crates
tar xf %{SOURCE1}
mkdir -p .cargo

cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "vendor"
EOF

%build
cargo build --release --target=%{rust_def_target} --offline

%install
mkdir -p %{buildroot}%{_bindir}
install -m 755 ./target/%{rust_def_target}/release/%{crate} %{buildroot}%{_bindir}/%{crate}

%check
cargo test --offline

%files
%license LICENSE
%doc README.md
%{_bindir}/%{crate}

%changelog
* Wed Feb 19 2026 Akarsh Chaudhary <v-akarshc@microsoft.com> - 0.3.0-1
- Initial Azure Linux import from the source project (license: same as "License" tag).
- License verified
Loading
Loading