From c9537bae954a1d8637839b97b9831fed2b8b0815 Mon Sep 17 00:00:00 2001 From: Vadim Vetrov Date: Tue, 29 Oct 2024 01:09:23 +0300 Subject: [PATCH] Add versioning --- .github/workflows/build-ci.yml | 34 +++++++++++++++++++++------------- Makefile | 7 +++++++ args.c | 9 +++++++-- kmake.mk | 2 +- kytunblock.c | 5 ++++- uspace.mk | 2 ++ 6 files changed, 42 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 07fe3d1..8d59d1a 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -16,12 +16,11 @@ jobs: runs-on: ubuntu-latest outputs: version: ${{ steps.gh.outputs.version }} + release: ${{ steps.gh.outputs.release }} sha: ${{ steps.gh.outputs.sha }} steps: - name: Checkout uses: actions/checkout@v4 - with: - ref: 'openwrt' - name: GH id: gh @@ -30,7 +29,8 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | - echo "version=$(cat youtubeUnblock/Makefile | grep PKG_VERSION | sed 's/PKG_VERSION:=//')" >> $GITHUB_OUTPUT + echo "version=$(cat Makefile | grep "PKG_VERSION :=" | sed 's/PKG_VERSION := //')" >> $GITHUB_OUTPUT + echo "release=$(cat Makefile | grep "PKG_RELEASE :=" | sed 's/PKG_RELEASE := //')" >> $GITHUB_OUTPUT if [[ "${{ github.event_name }}" != "pull_request" ]]; then echo "sha=$(echo ${GITHUB_SHA::7})" >> $GITHUB_OUTPUT else @@ -72,6 +72,7 @@ jobs: ARCH: ${{ matrix.arch }} CCACHE_DIR: ${{ github.workspace }}/.ccache VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} shell: alpine.sh {0} run: | @@ -85,7 +86,7 @@ jobs: make -j$(nproc) CC="ccache gcc -static-libgcc -static" || exit 1 strip -s build/youtubeUnblock cp -va build/youtubeUnblock . - tar -czvf youtubeUnblock-$VERSION-$SHA-$PLATFORM-static.tar.gz youtubeUnblock youtubeUnblock.service README.md + tar -czvf youtubeUnblock-$VERSION-$RELEASE-$SHA-$PLATFORM-static.tar.gz youtubeUnblock youtubeUnblock.service README.md ccache --show-stats - name: Upload artifacts @@ -137,6 +138,7 @@ jobs: ARCH: ${{ matrix.arch }} TOOL: ${{ matrix.tool }} VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} run: | make -j$(nproc) \ @@ -148,13 +150,13 @@ jobs: CROSS_COMPILE_PLATFORM=$TOOL || exit 1 $TOOL-strip -s build/youtubeUnblock cp -va build/youtubeUnblock . - tar -czvf youtubeUnblock-$VERSION-$SHA-$ARCH-static.tar.gz youtubeUnblock youtubeUnblock.service README.md + tar -czvf youtubeUnblock-$VERSION-$RELEASE-$SHA-$ARCH-static.tar.gz youtubeUnblock youtubeUnblock.service README.md - name: Upload artifacts if: steps.build.outcome == 'success' uses: actions/upload-artifact@v4 with: - name: static-${{ matrix.arch }} + name: youtubeUnblock-static-${{ matrix.arch }} path: ./**/youtubeUnblock*.tar.gz build-openwrt: @@ -203,14 +205,16 @@ jobs: - name: Prepare build env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} run: | - sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$SHA/" youtubeUnblock/Makefile + sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$RELEASE-$SHA/" youtubeUnblock/Makefile - name: Build packages id: build env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} working-directory: /builder run: | @@ -220,7 +224,7 @@ jobs: ./scripts/feeds install -a -p youtubeUnblock make defconfig make package/youtubeUnblock/compile V=s - mv $(find ./bin -type f -name 'youtubeUnblock*.ipk') ./youtubeUnblock-$VERSION-$SHA-${{ matrix.arch }}-${{ matrix.branch }}.ipk + mv $(find ./bin -type f -name 'youtubeUnblock*.ipk') ./youtubeUnblock-$VERSION-$RELEASE-$SHA-${{ matrix.arch }}-${{ matrix.branch }}.ipk - name: Upload packages if: steps.build.outcome == 'success' @@ -245,14 +249,16 @@ jobs: - name: Prepare build env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} run: | - sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$SHA/" youtubeUnblock/Makefile + sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$RELEASE-$SHA/" youtubeUnblock/Makefile - name: Build packages id: build env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} working-directory: /builder run: | @@ -262,7 +268,7 @@ jobs: ./scripts/feeds install -a -p youtubeUnblock make defconfig make package/luci-app-youtubeUnblock/compile V=s - mv $(find ./bin -type f -name 'luci-app-youtubeUnblock*.ipk') ./luci-app-youtubeUnblock-$VERSION-$SHA.ipk + mv $(find ./bin -type f -name 'luci-app-youtubeUnblock*.ipk') ./luci-app-youtubeUnblock-$VERSION-$RELEASE-$SHA.ipk - name: Upload packages if: steps.build.outcome == 'success' @@ -343,9 +349,10 @@ jobs: - name: Prepare build env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} run: | - sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$SHA/" youtubeUnblock/Makefile + sed -i "s/PKG_REV:=.*$/PKG_REV:=$SHA/;s/PKG_VERSION:=.*$/PKG_VERSION:=$VERSION-$RELEASE-$SHA/" youtubeUnblock/Makefile - name: Build packages id: build @@ -361,6 +368,7 @@ jobs: shell: bash env: VERSION: ${{ needs.prepare.outputs.version }} + RELEASE: ${{ needs.prepare.outputs.release }} SHA: ${{ needs.prepare.outputs.sha }} run: | mkdir output @@ -368,7 +376,7 @@ jobs: rm -rf youtubeUnblock || true mkdir youtubeUnblock bash -c "cp -r ./output/* youtubeUnblock" - tar -czvf youtubeUnblock-$VERSION-$SHA-${{ matrix.arch }}-entware.tar.gz youtubeUnblock + tar -czvf youtubeUnblock-$VERSION-$RELEASE-$SHA-${{ matrix.arch }}-entware.tar.gz youtubeUnblock - name: Upload packages if: steps.build.outcome == 'success' @@ -380,7 +388,7 @@ jobs: pre-release: if: github.event_name != 'pull_request' && github.ref_name == 'main' - needs: [build-static, build-static-cross, build-openwrt, build-entware] + needs: [build-static, build-static-cross, build-openwrt, build-entware, build-openwrt-luci] permissions: contents: write runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index 010bcdb..75c6cbe 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,13 @@ USPACE_TARGETS := default all install uninstall dev run_dev KMAKE_TARGETS := kmake kload kunload kreload xmod xtclean +PKG_VERSION := 1.0.0 +PKG_RELEASE := 4 + +PKG_FULLVERSION := $(PKG_VERSION)-$(PKG_RELEASE) + +export PKG_VERSION PKG_RELEASE PKG_FULLVERSION + .PHONY: $(USPACE_TARGETS) $(KMAKE_TARGETS) clean $(USPACE_TARGETS): @$(MAKE) -f uspace.mk $@ diff --git a/args.c b/args.c index 5d28cd7..551a279 100644 --- a/args.c +++ b/args.c @@ -110,8 +110,13 @@ static long parse_numeric_option(const char* value) { } void print_version() { - printf("youtubeUnblock\n"); - printf("Bypasses deep packet inspection systems that relies on SNI\n"); + printf("youtubeUnblock" +#if defined(PKG_VERSION) + " " PKG_VERSION +#endif + "\n" + ); + printf("Bypasses deep packet inspection systems that rely on SNI\n"); printf("\n"); } diff --git a/kmake.mk b/kmake.mk index 3ad7d87..ea4b181 100644 --- a/kmake.mk +++ b/kmake.mk @@ -13,7 +13,7 @@ KERNEL_BUILDER_MAKEDIR:=/lib/modules/$(shell uname -r)/build kmake: kmod kmod: - $(MAKE) -C $(KERNEL_BUILDER_MAKEDIR) M=$(PWD) modules + $(MAKE) -C $(KERNEL_BUILDER_MAKEDIR) M=$(PWD) EXTRA_CFLAGS='-DPKG_VERSION=\"$(PKG_FULLVERSION)\"' modules kload: insmod kyoutubeUnblock.ko diff --git a/kytunblock.c b/kytunblock.c index d82634f..c5c3591 100644 --- a/kytunblock.c +++ b/kytunblock.c @@ -21,8 +21,11 @@ #include "utils.h" #include "logging.h" +#if defined(PKG_VERSION) +MODULE_VERSION(PKG_VERSION); +#endif + MODULE_LICENSE("GPL"); -MODULE_VERSION("0.3.2"); MODULE_AUTHOR("Vadim Vetrov "); MODULE_DESCRIPTION("Linux kernel module for youtubeUnblock"); diff --git a/uspace.mk b/uspace.mk index d119c84..e406026 100644 --- a/uspace.mk +++ b/uspace.mk @@ -17,6 +17,8 @@ else override CFLAGS += -Wall -Wpedantic -Wno-unused-variable -std=gnu11 endif +override CFLAGS += -DPKG_VERSION=\"$(PKG_FULLVERSION)\" + LIBNFNETLINK_CFLAGS := -I$(DEPSDIR)/include LIBNFNETLINK_LIBS := -L$(DEPSDIR)/lib LIBMNL_CFLAGS := -I$(DEPSDIR)/include