Added Fedora rpm makefile target

This commit is contained in:
Bartek Kryza
2023-01-02 21:02:37 +01:00
parent d140c1f1a1
commit cab22d3621
4 changed files with 49 additions and 13 deletions

View File

@@ -27,6 +27,9 @@ CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
GIT_VERSION ?= $(shell git describe --tags --always --abbrev=7)
PKG_VERSION ?= $(shell git describe --tags --always --abbrev=7 | tr - .)
GIT_COMMIT ?= $(shell git rev-parse HEAD)
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
.PHONY: clean
clean:
@@ -104,3 +107,15 @@ iwyu_fixes: debug
python3 $(shell which iwyu_tool.py) -p debug > debug/iwyu.out
python3 $(shell which fix_includes.py) -h --re_only="${PWD}/src/.*" < debug/iwyu.out
python3 $(shell which fix_includes.py) -h --re_only="${PWD}/tests/.*" < debug/iwyu.out
.PHONY: fedora_36
fedora_36:
mkdir -p packaging/_BUILD/fedora/36
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/36/clang-uml-$(PKG_VERSION).tar.gz
docker run --cpus="8" -v $(PWD):$(PWD) fedora:36 sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=36 VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm"
.PHONY: fedora_37
fedora_37:
mkdir -p packaging/_BUILD/fedora/37
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/37/clang-uml-$(PKG_VERSION).tar.gz
docker run --cpus="8" -v $(PWD):$(PWD) fedora:37 sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=37 VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm"

View File

@@ -35,6 +35,7 @@ COMMIT ?= $(shell git rev-parse HEAD)
BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
SOURCE_ARCHIVE ?= $(NAME)-$(VERSION).tar.$(TAR_EXT)
SOURCE_ARCHIVE_DEB ?= $(NAME)-$(VERSION)-$(REBUILD).tar.$(TAR_EXT)
SOURCE_ARCHIVE_RPM ?= $(NAME)-$(VERSION).tar.$(TAR_EXT)
CONDA_TOKEN ?=
#
@@ -61,11 +62,36 @@ _BUILD/$(SOURCE_ARCHIVE):
_BUILD/$(SOURCE_ARCHIVE_DEB):
echo "############################"
echo "Creating source archive from latest commit $(COMMIT) - $(SOURCE_ARCHIVE)"
echo "Creating source archive for DEB from latest commit $(COMMIT) - $(SOURCE_ARCHIVE)"
echo "############################"
mkdir -p $(build_dir)
git-archive-all --prefix=$(NAME)-$(VERSION)-$(REBUILD)/ _BUILD/$(SOURCE_ARCHIVE_DEB)
_BUILD/$(SOURCE_ARCHIVE_RPM):
echo "############################"
echo "Creating source archive for RPM from latest commit $(COMMIT) - $(SOURCE_ARCHIVE)"
echo "############################"
mkdir -p $(build_dir)
git archive --format=tar.gz --prefix=$(NAME)-$(VERSION)/ v$(VERSION) >_BUILD/$(NAME)-$(VERSION).tar.gz
rpm:
echo "############################"
echo "Creating rpm package for $(OS) $(DIST)"
echo "Creating directory: ", $(build_dir)/$(NAME)-$(VERSION)
echo "Extracting source archive..."
echo "############################"
#rm -rf $(build_dir)
mkdir -p $(build_dir)
dnf install -y fedora-packager rpmdevtools gcc cmake git clang-devel clang-tools-extra ccache yaml-cpp llvm-devel wget yaml-cpp-devel
rpmdev-setuptree
cp $(build_dir)/$(SOURCE_ARCHIVE_RPM) /root/rpmbuild/SOURCES/
cp fedora/clang-uml.spec /root/rpmbuild/SPECS/
rpmbuild -ba --define 'git_version ${VERSION}' /root/rpmbuild/SPECS/clang-uml.spec
cp /root/rpmbuild/RPMS/x86_64/* $(build_dir)
cp /root/rpmbuild/SRPMS/* $(build_dir)
deb: _BUILD/$(SOURCE_ARCHIVE_DEB)
echo "############################"
echo "Creating deb source package for $(OS) $(DIST)"

View File

@@ -25,14 +25,10 @@ dput ppa:bkryza/clang-uml *.changes
## Fedora
```bash
docker run -v $PWD:$PWD fedora:37 bash
dnf install fedora-packager rpmdevtools gcc cmake git clang-devel clang-tools-extra ccache yaml-cpp llvm-devel wget yaml-cpp-devel
rpmdev-setuptree
cd /root/rpmbuild/SOURCES
wget https://github.com/bkryza/clang-uml/archive/refs/heads/v0.3.0.zip
cd /root/rpmbuild/SPECS/
wget https://raw.githubusercontent.com/bkryza/clang-uml/v0.3.0/packaging/fedora/clang-uml.spec
rpmbuild -ba clang-uml.spec
cd clang-uml
make fedora_36
make fedora_37
find packaging/_BUILD/fedora
```
## Anaconda

View File

@@ -1,13 +1,12 @@
# %define git_version %(git describe --tags --always --abbrev=7)
%define _unpackaged_files_terminate_build 0
Name: clang-uml
Version: 0.3.0
Version: %{?git_version}
Release: 1%{?dist}
Summary: C++ UML diagram generator based on Clang
License: ASL 2.0
URL: https://github.com/bkryza/clang-uml
Source0: https://github.com/bkryza/clang-uml/archive/refs/heads/v%{version}.zip
Source0: clang-uml-%{version}.tar.gz
BuildRequires: cmake
BuildRequires: git
@@ -61,7 +60,7 @@ fi
%files
%{_bindir}/clang-uml
%doc CHANGELOG.md README.md AUTHORS.md
%doc CHANGELOG.md README.md AUTHORS.md LICENSE.md
%license LICENSE.md
%changelog