diff --git a/Makefile b/Makefile index cfb4b438..72c0ce4d 100644 --- a/Makefile +++ b/Makefile @@ -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" diff --git a/packaging/Makefile b/packaging/Makefile index 3f010605..3dba9e51 100644 --- a/packaging/Makefile +++ b/packaging/Makefile @@ -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)" diff --git a/packaging/README.md b/packaging/README.md index 03387c38..3ce270a4 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -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 diff --git a/packaging/fedora/clang-uml.spec b/packaging/fedora/clang-uml.spec index d67766b1..339cc6bb 100644 --- a/packaging/fedora/clang-uml.spec +++ b/packaging/fedora/clang-uml.spec @@ -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