From 5b8a75b75cee460e65aeba301ce54a254a3ae646 Mon Sep 17 00:00:00 2001 From: "Doncho N. Gunchev" Date: Thu, 22 Feb 2024 11:31:44 +0200 Subject: [PATCH] General rework of the build process (distribution source and rpm). --- .gitattributes | 7 ++++++ .github/workflows/makefile.yml | 12 ----------- .gitignore | 3 ++- Makefile | 24 +++++++++++++++++---- changelog.sh | 13 +++++++++++ gwebu-profile.spec => gwebu-profile.spec.in | 17 +++++++++++---- 6 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 .gitattributes create mode 100755 changelog.sh rename gwebu-profile.spec => gwebu-profile.spec.in (79%) diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..388db68 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +.gitattributes export-ignore +.github export-ignore +.gitignore export-ignore +.pre-commit-config.yaml export-ignore +changelog.sh export-ignore +gwebu-profile.spec.in export-ignore +Makefile export-ignore diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml index 181ade4..dd174b5 100644 --- a/.github/workflows/makefile.yml +++ b/.github/workflows/makefile.yml @@ -26,18 +26,6 @@ jobs: - name: Setup RPM build environment run: rpmdev-setuptree - - name: List all files here - run: ls -al - - - name: Show GITHUB_WORKSPACE - run: echo "$GITHUB_WORKSPACE" - - - name: List GITHUB_WORKSPACE - run: ls -al "$GITHUB_WORKSPACE" - - - name: List all files here - run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - - name: Show the Makefile help screen run: make diff --git a/.gitignore b/.gitignore index ce63e93..da982b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -/dist /.idea +/dist +/gwebu-profile.spec diff --git a/Makefile b/Makefile index 17010e5..f4a9348 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,8 @@ SHELL:=/bin/bash # Use bash syntax, mitigates dash's printf on Debian -ver:=$(shell git describe --tags --always --match='v[0-9]*.[0-9]*' | cut -c 2- | cut -d - -f 1) +ver:=$(shell git describe --dirty --long --match='v[0-9]*.[0-9]*' | cut -c 2- | cut -d - -f 1,2,4) +rpm_ver:=$(firstword $(subst -, ,$(ver))) +rpm_rev:=$(subst $(rpm_ver)-,,$(ver)) +rpm_rev:=$(subst -,_,$(rpm_rev)) help: @@ -10,17 +13,25 @@ help: @echo "Available targets:" @echo " dist: create source distribution package in dist/" @echo " rpm: create an RPM package" + @echo " changelog: Add a changelog entry to gwebu-profile.spec.in" @echo @echo " clean: clean all generated files" @echo - @echo "Version $(ver)." + @echo "Version $(ver), rpm_ver=$(rpm_ver), rpm_rev=$(rpm_rev)." .PHONY: help .PHONY: dist -dist: +dist: dist/profile.d-$(ver).tar.xz + + +dist/profile.d-$(ver).tar.xz: test -d dist || mkdir dist - git archive --prefix="profile.d-$(ver)/" HEAD | xz -9v > "dist/profile.d-$(ver).tar.xz" + sed 's/^Version: .*/Version: $(rpm_ver)/' < gwebu-profile.spec.in \ + | sed 's/^Release: .*/Release: $(rpm_rev)/' \ + > gwebu-profile.spec + git archive --prefix="profile.d-$(ver)/" --add-file=gwebu-profile.spec HEAD | xz -9 > "$@" + rm gwebu-profile.spec .PHONY: rpm @@ -28,6 +39,11 @@ rpm: dist rpmbuild -ta "dist/profile.d-$(ver).tar.xz" +.PHONY: changelog +changelog: + ./changelog.sh + + .PHONY: clean clean: rm -rf dist diff --git a/changelog.sh b/changelog.sh new file mode 100755 index 0000000..3b89442 --- /dev/null +++ b/changelog.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +ver=$(git describe --dirty --long --match='v[0-9]*.[0-9]*' | cut -c 2- | cut -d - -f 1,2,4) +rpm_ver="${ver%%-*}" +rpm_rev="${ver#*-}" +rpm_numeric_rev="${rpm_rev%%-*}" + +change="* $(date +'%a %b %d %Y') $(git log -1 --format='%aN <%aE>') - ${rpm_ver}-${rpm_numeric_rev} +- $(git log -1 --format=%s) +" + +awk -v change="${change}" '/^%changelog/ {print; print change; next} 1' gwebu-profile.spec.in \ + > gwebu-profile.spec.tmp && mv gwebu-profile.spec.tmp gwebu-profile.spec.in diff --git a/gwebu-profile.spec b/gwebu-profile.spec.in similarity index 79% rename from gwebu-profile.spec rename to gwebu-profile.spec.in index 206b14c..517cb56 100644 --- a/gwebu-profile.spec +++ b/gwebu-profile.spec.in @@ -1,12 +1,13 @@ Summary: Gwebu profile.d - cool date, prompt with history, aliases Name: gwebu-profile Version: 1.0.0 -Release: 3 -License: GPLv2 -Source0: profile.d-%{version}.tar.xz +Release: 5 BuildArch: noarch +License: GPLv2 +Source0: profile.d-%{version}-%{release}.tar.xz Requires: bash >= 4 + %description This package contains: - z-aliases.sh: @@ -20,21 +21,29 @@ This package contains: All these reside in /etc/profile.d/. + %prep -%setup -q # -n profile.d-%{version} +%setup -q -n profile.d-%{version}-%{release} + %build # No build actions needed for Bash scripts + %install mkdir -p %{buildroot}%{_sysconfdir}/profile.d install -m 0644 etc/profile.d/*.sh %{buildroot}%{_sysconfdir}/profile.d/ + %files %defattr(-,root,root,-) %{_sysconfdir}/profile.d/*.sh + %changelog +* Thu Feb 22 2024 Doncho N. Gunchev - 1.0.0-4 +- General rework of the build process (distribution source and rpm). + * Wed Feb 21 2024 Doncho N. Gunchev - 1.0.0-3 - Minor updates.