From fe092faf3aeece635a2ac51710a319acbb725acd Mon Sep 17 00:00:00 2001 From: Tim Paine <3105306+timkpaine@users.noreply.github.com> Date: Wed, 13 Aug 2025 10:47:55 -0400 Subject: [PATCH] Build rpms Working on rpm build --- .github/workflows/build.yml | 10 ++++++---- .gitignore | 2 ++ Makefile | 38 ++++++++++++++++++++++++++++--------- 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a1aa8a..0ec2bcd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -86,7 +86,7 @@ jobs: run: pip install orderedmultidict - name: Global Dependencies - run: sudo apt install bison flex libfl-dev libftdi1-2 libftdi1-dev libhidapi-hidraw0 libhidapi-dev libreadline-dev libudev-dev tcl-dev zlib1g-dev + run: sudo apt install bison flex libfl-dev libftdi1-2 libftdi1-dev libhidapi-hidraw0 libhidapi-dev libreadline-dev libudev-dev rpm rpmlint tcl-dev zlib1g-dev - name: Configure shell for CCache run: echo 'PATH=/usr/lib/ccache:'"$PATH" >> $GITHUB_ENV @@ -95,7 +95,9 @@ jobs: run: make googletest/install - name: Build - openFPGALoader - run: make openfpgaloader/debian + run: | + make openfpgaloader/debian + make openfpgaloader/rpm - name: Build - capnproto run: | @@ -178,7 +180,7 @@ jobs: override: true - name: Global Dependencies - run: sudo apt install bison flex libfl-dev libreadline-dev tcl-dev + run: sudo apt install bison flex libfl-dev libreadline-dev rpm rpmlint tcl-dev - name: Install Bazel uses: bazelbuild/setup-bazelisk@v3 @@ -234,7 +236,7 @@ jobs: override: true - name: Global Dependencies - run: sudo apt install bison flex libfl-dev libreadline-dev tcl-dev + run: sudo apt install bison flex libfl-dev libreadline-dev rpm rpmlint tcl-dev - name: Install Bazel uses: bazelbuild/setup-bazelisk@v3 diff --git a/.gitignore b/.gitignore index b9bb9ec..6d53865 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ yosys *.deb *.rpm +*.tar.gz + diff --git a/Makefile b/Makefile index cffb61c..1bb90f0 100644 --- a/Makefile +++ b/Makefile @@ -279,7 +279,7 @@ antlr/debian: ## build debian package for antlr # # https://github.com/chipsalliance/UHDM # -.PHONY: uhdm/build_shared uhdm/build_static uhdm uhdm/install uhdm/debian uhdm/rpm +.PHONY: uhdm/build_shared uhdm/build_static uhdm uhdm/install uhdm/debian UHDM_CMAKE_ARGS := -DUHDM_USE_HOST_GTEST=ON -DUHDM_USE_HOST_CAPNP=ON -DUHDM_BUILD_TESTS=OFF @@ -310,11 +310,6 @@ uhdm/debian: ## build debian package for uhdm printf "Package: uhdm\nVersion: $(UHDM_VERSION)\nSection: utils\nPriority: optional\nArchitecture: amd64\nMaintainer: timkpaine \nDescription: UHDM\n" > uhdm/debian/DEBIAN/control dpkg-deb -Z"gzip" --root-owner-group --build uhdm/debian uhdm_$(UHDM_VERSION)_amd64.deb -uhdm/rpm: ## build rpm package for uhdm - mkdir -p uhdm/rpm - printf "Name: uhdm\nVersion: $(UHDM_VERSION)\nLicense: Apache-2\nRelease: 1%%{?dist}\nSummary: UHDM\nPackager: timkpaine \nBuildArch: x86_64\n\n%%description\nUHDM\n\n%%setup\n\n%%build\n\n%%install\n\n%%clean\n\n%%post\n\n%%files\n%%{_bindir}/%%name\n\n%%changelog\n" > uhdm/rpm/uhdm.spec - - ##################################################################################################################################################################################################################################################################################### # _____ _ # / ____| | | @@ -440,7 +435,7 @@ yosys/debian: ## build debian package for yosys # # https://github.com/trabucayre/openFPGALoader # -.PHONY: openfpgaloader/libs openfpgaloader openfpgaloader/install openfpgaloader/debian +.PHONY: openfpgaloader/libs openfpgaloader openfpgaloader/install openfpgaloader/debian openfpgaloader/rpm openfpgaloader/.git: git clone --depth 1 --branch v$(OPENFPGALOADER_VERSION) https://github.com/trabucayre/openFPGALoader.git openfpgaloader @@ -469,6 +464,27 @@ openfpgaloader/debian: ## build debian package for openfpgaloader printf "Package: openfpgaloader\nVersion: $(OPENFPGALOADER_VERSION)\nSection: utils\nPriority: optional\nArchitecture: amd64\nMaintainer: timkpaine \nDescription: openfpgaloader\n" > openfpgaloader/debian/DEBIAN/control dpkg-deb -Z"gzip" --root-owner-group --build openfpgaloader/debian openfpgaloader_$(OPENFPGALOADER_VERSION)_amd64.deb +openfpgaloader/rpm: ## build rpm package for openfpgaloader + tar cfz openfpgaloader-$(OPENFPGALOADER_VERSION).tar.gz --exclude openfpgaloader/rpm --exclude openfpgaloader/debian openfpgaloader + mkdir -p openfpgaloader/rpm/SOURCES openfpgaloader/rpm/SPECS + cp openfpgaloader-$(OPENFPGALOADER_VERSION).tar.gz openfpgaloader/rpm/SOURCES/ + printf 'Name: openfpgaloader\nVersion: $(OPENFPGALOADER_VERSION)\nRelease: 1%%{?dist}\nSummary: openfpgaloader\nExclusiveArch: x86_64\nLicense: Apache-2.0\nSource0: %%{name}-%%{version}.tar.gz\nRequires: bash\n%%description\nopenfpgaloader\n' > openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%prep\n' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%setup -q\n' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%build\nrm -rf $$RPM_BUILD_ROOT\n' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_COMMON_ARGS_SHARED) -DCMAKE_INSTALL_PREFIX=\$$RPM_BUILD_ROOT .\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_BUILD_ARGS_SHARED) -DCMAKE_INSTALL_PREFIX=\$$RPM_BUILD_ROOT\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_COMMON_ARGS_STATIC) -DCMAKE_INSTALL_PREFIX=\$$RPM_BUILD_ROOT .\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_BUILD_ARGS_STATIC) -DCMAKE_INSTALL_PREFIX=\$$RPM_BUILD_ROOT\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%install\n' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_INSTALL_ARGS_SHARED)\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf "cmake $(CMAKE_INSTALL_ARGS_STATIC)\n" >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%files\n%%{_libdir}/*.so\n%%{_libdir}/*.a' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + printf '%%clean\nrm -rf $$RPM_BUILD_ROOT' >> openfpgaloader/rpm/SPECS/openfpgaloader.spec + cat openfpgaloader/rpm/SPECS/openfpgaloader.spec + rpmlint openfpgaloader/rpm/SPECS/openfpgaloader.spec + rpmbuild openfpgaloader/rpm/SPECS/openfpgaloader.spec --buildroot openfpgaloader/rpm + ##################################################################################################################################################################################################################################################################################### # _ _ # | (_) @@ -636,15 +652,19 @@ clean: ## Delete all built repos rm -rf googletest rm -rf capnproto rm -rf json - rm -rf antlr4 + rm -rf antlr rm -rf uhdm rm -rf surelog + rm -rf simview rm -rf synlig rm -rf verible rm -rf yosys rm -rf openfpgaloader rm -rf surfer - + rm -rf verilator + rm -rf ./*.tar.gz + rm -rf ./*.deb + rm -rf ./*.rpm .DEFAULT_GOAL := help .PHONY: help