This commit is contained in:
commit
ac3c60376d
43
.drone.yml
Normal file
43
.drone.yml
Normal file
@ -0,0 +1,43 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: almalinux:8.10
|
||||
commands:
|
||||
# Add custom EPEL repository
|
||||
- echo -e "[epel]\nname=epel repository\nbaseurl=https://edgecache.query.consul/epel/8/Everything/x86_64\ngpgkey=http://edgecache.query.consul/epel/RPM-GPG-KEY-EPEL-8\nenabled=1\ngpgcheck=1" > /etc/yum.repos.d/epel.repo
|
||||
|
||||
# Add custom BaseOS repository
|
||||
- echo -e "[baseos]\nname=baseos repository\nbaseurl=https://edgecache.query.consul/almalinux/8.10/BaseOS/x86_64/os\ngpgkey=http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-8\nenabled=1\ngpgcheck=1" > /etc/yum.repos.d/baseos.repo
|
||||
|
||||
# Add custom AppStream repository
|
||||
- echo -e "[appstream]\nname=appstream repository\nbaseurl=https://edgecache.query.consul/almalinux/8.10/AppStream/x86_64/os\ngpgkey=http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-8\nenabled=1\ngpgcheck=1" > /etc/yum.repos.d/appstream.repo
|
||||
|
||||
# Add custom PowerTools repository
|
||||
- echo -e "[powertools]\nname=powertools repository\nbaseurl=https://edgecache.query.consul/almalinux/8.10/PowerTools/x86_64/os\ngpgkey=http://edgecache.query.consul/almalinux/RPM-GPG-KEY-AlmaLinux-8\nenabled=1\ngpgcheck=1" > /etc/yum.repos.d/powertools.repo
|
||||
|
||||
# Clean and update repository cache
|
||||
- dnf clean all
|
||||
- dnf makecache
|
||||
|
||||
# Install the required packages using custom repositories
|
||||
- dnf install -y \
|
||||
golang \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
make \
|
||||
git \
|
||||
sqlite-devel \
|
||||
taglib-devel \
|
||||
ffmpeg \
|
||||
mpv \
|
||||
rpmdevtools \
|
||||
wget \
|
||||
systemd \
|
||||
sqlite \
|
||||
taglib
|
||||
|
||||
# Run the `make` command
|
||||
- make
|
||||
32
Makefile
Normal file
32
Makefile
Normal file
@ -0,0 +1,32 @@
|
||||
.PHONY: all prep download build clean
|
||||
|
||||
RPMBUILD := $(HOME)/rpmbuild
|
||||
SOURCES := $(RPMBUILD)/SOURCES
|
||||
SPECS := $(RPMBUILD)/SPECS
|
||||
SPECFILE := gonic.spec
|
||||
|
||||
# Extract the version from the spec file
|
||||
VERSION := $(shell grep "^Version:" $(SPECFILE) | awk '{print $$2}')
|
||||
|
||||
all: build
|
||||
|
||||
prep:
|
||||
@echo "Creating rpmbuild directories..."
|
||||
@mkdir -p $(RPMBUILD)/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||
|
||||
download: prep
|
||||
@echo "Downloading sources..."
|
||||
@wget -O $(SOURCES)/gonic-$(VERSION).tar.gz https://github.com/sentriz/gonic/archive/refs/tags/v$(VERSION).tar.gz
|
||||
@wget -O $(SOURCES)/gonic-config https://raw.githubusercontent.com/sentriz/gonic/master/contrib/config
|
||||
@wget -O $(SOURCES)/gonic.service https://raw.githubusercontent.com/sentriz/gonic/master/contrib/gonic.service
|
||||
@echo "Sources downloaded."
|
||||
|
||||
build: $(SPECFILE) download
|
||||
@echo "Building RPM..."
|
||||
@rpmbuild -ba $(SPECFILE)
|
||||
@echo "RPM built."
|
||||
|
||||
clean:
|
||||
@echo "Cleaning up..."
|
||||
@rm -rf $(RPMBUILD)
|
||||
@echo "Clean up done."
|
||||
64
gonic.spec
Normal file
64
gonic.spec
Normal file
@ -0,0 +1,64 @@
|
||||
Name: gonic
|
||||
Version: 0.16.4
|
||||
Release: 1%{?dist}
|
||||
Summary: Gonic - A lightweight music streaming server
|
||||
|
||||
License: MIT
|
||||
URL: https://github.com/sentriz/gonic
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: gonic-config
|
||||
Source2: gonic.service
|
||||
|
||||
BuildRequires: golang, gcc, gcc-c++, make, git, sqlite-devel, taglib-devel, ffmpeg, mpv, rpmdevtools, wget, systemd
|
||||
Requires: golang, git, sqlite, taglib, ffmpeg, mpv, systemd
|
||||
|
||||
%description
|
||||
Gonic is a lightweight music streaming server written in Go.
|
||||
|
||||
%global debug_package %{nil}
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version}
|
||||
|
||||
%build
|
||||
mkdir -p build
|
||||
go build -o build/gonic ./cmd/gonic
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}/usr/local/bin
|
||||
cp build/gonic %{buildroot}/usr/local/bin/gonic
|
||||
|
||||
mkdir -p %{buildroot}/var/lib/gonic
|
||||
mkdir -p %{buildroot}/etc/gonic
|
||||
mkdir -p %{buildroot}/etc/systemd/system
|
||||
cp %{SOURCE1} %{buildroot}/etc/gonic/config
|
||||
cp %{SOURCE2} %{buildroot}/etc/systemd/system/gonic.service
|
||||
|
||||
%post
|
||||
/usr/sbin/groupadd --system gonic || :
|
||||
/usr/sbin/useradd --system --no-create-home --gid gonic gonic || :
|
||||
chown -R gonic:gonic /var/lib/gonic/
|
||||
chown gonic:gonic /etc/gonic/config
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now gonic
|
||||
|
||||
%preun
|
||||
if [ $$1 -eq 0 ]; then
|
||||
systemctl stop gonic
|
||||
systemctl disable gonic
|
||||
fi
|
||||
|
||||
%postun
|
||||
if [ $$1 -ge 1 ]; then
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
%files
|
||||
/usr/local/bin/gonic
|
||||
/var/lib/gonic/
|
||||
/etc/gonic/config
|
||||
/etc/systemd/system/gonic.service
|
||||
|
||||
%changelog
|
||||
* Thu Aug 01 2024 Ben Vincent <ben@unkin.net> - 0.16.4-1
|
||||
- Initial package
|
||||
Reference in New Issue
Block a user