Add files via upload
This commit is contained in:
1 parent
18b2c37dc0
commit
f7e8cb0969
3 files changed
+307
No files matched your search
+115
@@ -0,0 +1,115 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check for required tools
|
||||
if ! command -v rpmbuild &> /dev/null; then
|
||||
echo "rpmbuild is required but not installed. Please install rpm-build package."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Package information
|
||||
NAME="nx9-dns-server"
|
||||
VERSION=$(grep '^version =' Cargo.toml | cut -d '"' -f2)
|
||||
RELEASE="1"
|
||||
|
||||
# Create RPM build directory structure
|
||||
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||
|
||||
# Create the spec file
|
||||
cat > ~/rpmbuild/SPECS/$NAME.spec << EOF
|
||||
Name: $NAME
|
||||
Version: $VERSION
|
||||
Release: $RELEASE%{?dist}
|
||||
Summary: High-performance DNS server with DNSSEC support
|
||||
License: MIT
|
||||
URL: https://github.com/yourusername/nx9-dns-server
|
||||
BuildRequires: cargo, gcc
|
||||
Requires: systemd
|
||||
|
||||
%description
|
||||
NX9 DNS Server is a high-performance DNS server implementation
|
||||
with full DNSSEC support. It provides both authoritative and
|
||||
recursive DNS services with modern features like cache management
|
||||
and metrics export.
|
||||
|
||||
%prep
|
||||
%setup -q -c -T
|
||||
cp -r %{_sourcedir}/* .
|
||||
|
||||
%build
|
||||
cargo build --release
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
mkdir -p %{buildroot}/usr/local/bin
|
||||
mkdir -p %{buildroot}/etc/nx9-dns-server
|
||||
mkdir -p %{buildroot}/usr/lib/systemd/system
|
||||
mkdir -p %{buildroot}/var/lib/nx9-dns-server
|
||||
mkdir -p %{buildroot}/usr/share/doc/%{name}
|
||||
|
||||
# Install binary
|
||||
install -m 755 target/release/nx9-dns-server %{buildroot}/usr/local/bin/
|
||||
|
||||
# Install config
|
||||
install -m 644 config/nx9-dns-server.conf %{buildroot}/etc/nx9-dns-server/ || :
|
||||
|
||||
# Install docs
|
||||
install -m 644 README.md LICENSE %{buildroot}/usr/share/doc/%{name}/ || :
|
||||
|
||||
# Install systemd service
|
||||
cat > %{buildroot}/usr/lib/systemd/system/nx9-dns-server.service << 'EOL'
|
||||
[Unit]
|
||||
Description=NX9 DNS Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/local/bin/nx9-dns-server
|
||||
Environment=DNS_DB_PATH=/var/lib/nx9-dns-server/dns.db
|
||||
Environment=DNSSEC_KEY_FILE=/etc/nx9-dns-server/dnssec.key
|
||||
Restart=always
|
||||
User=nx9-dns
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOL
|
||||
|
||||
%pre
|
||||
# Create nx9-dns user if it doesn't exist
|
||||
if ! getent passwd nx9-dns > /dev/null; then
|
||||
useradd -r -s /sbin/nologin nx9-dns
|
||||
fi
|
||||
|
||||
%post
|
||||
%systemd_post nx9-dns-server.service
|
||||
chown -R nx9-dns:nx9-dns /var/lib/nx9-dns-server
|
||||
chmod 755 /var/lib/nx9-dns-server
|
||||
|
||||
%preun
|
||||
%systemd_preun nx9-dns-server.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart nx9-dns-server.service
|
||||
|
||||
%files
|
||||
%attr(755,root,root) /usr/local/bin/nx9-dns-server
|
||||
%dir %attr(755,nx9-dns,nx9-dns) /var/lib/nx9-dns-server
|
||||
%dir %attr(755,root,root) /etc/nx9-dns-server
|
||||
%config(noreplace) /etc/nx9-dns-server/nx9-dns-server.conf
|
||||
/usr/lib/systemd/system/nx9-dns-server.service
|
||||
%doc /usr/share/doc/%{name}/*
|
||||
|
||||
%changelog
|
||||
* $(date '+%a %b %d %Y') $USER <$USER@$(hostname)> - $VERSION-$RELEASE
|
||||
- Initial RPM release
|
||||
EOF
|
||||
|
||||
# Create source tarball
|
||||
mkdir -p ~/rpmbuild/SOURCES/$NAME-$VERSION
|
||||
cp -r * ~/rpmbuild/SOURCES/$NAME-$VERSION/
|
||||
cd ~/rpmbuild/SOURCES
|
||||
tar czf $NAME-$VERSION.tar.gz $NAME-$VERSION
|
||||
rm -rf $NAME-$VERSION
|
||||
|
||||
# Build the RPM
|
||||
rpmbuild -ba ~/rpmbuild/SPECS/$NAME.spec
|
||||
|
||||
echo "RPM package created in ~/rpmbuild/RPMS/"
|
||||
Reference in new issue
Block a user