From c5a655f58f911391afcaa1dcef8114db1c9f4b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80?= <148970641+Egor00f@users.noreply.github.com> Date: Thu, 6 Feb 2025 11:55:00 +0000 Subject: [PATCH] remove online deb installer&& update Readme.md --- .github/workflows/test.yml | 69 +++++-------------------------------- CMakeLists.txt | 70 +++++++++++--------------------------- README.md | 2 ++ package/DEBIAN/postinst | 2 +- package/DEBIAN/postrm | 2 +- 5 files changed, 33 insertions(+), 112 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d47b633..15e5716 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -87,88 +87,37 @@ jobs: # Upload entire repository path: './build/installer.exe' - # Test online deb package build - deb-online-package-build: - name: Debian online package build test + # Test deb package build + deb-package-build: + name: Debian package build test runs-on: ubuntu-latest - needs: linux-install steps: - uses: actions/checkout@v4 - name: Build run: | cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target debOnline + cmake --build ${{ github.workspace }}/build --target deb - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: deb-online-package + name: deb-package # Upload entire repository path: './build/package.deb' # Test deb package install/remove - deb-online-package-test: - name: Debian online package install/remove test + deb-package-test: + name: Debian package install/remove test runs-on: ubuntu-latest - needs: deb-online-package-build + needs: deb-package-build steps: - uses: actions/checkout@v4 - name: Build run: | cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target debOnline - - - name: Install package - run: echo '/kolibrios-toolchain' | sudo apt install ${{ github.workspace }}/build/package.deb -y - - - name: Add toolchain to path - run: echo "/kolibrios-toolchain/win32/bin" >> $GITHUB_PATH - - - name: Test run - run: | - kos32-g++ -v - kos32-gcc -v - /home/autobuild/tools/win32/bin/kos32-gcc -v - /home/autobuild/tools/win32/bin/kos32-g++ -v - /kolibrios-toolchain/win32/bin/kos32-gcc -v - /kolibrios-toolchain/win32/bin/kos32-g++ -v - - - name: Remove package - run: sudo apt remove kos32-gcc - - # Test offline deb package build - deb-offline-package-build: - name: Debian offline package build test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Build - run: | - cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target debOffline - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: deb-offline-package - # Upload entire repository - path: './build/package.deb' - - # Test deb package install/remove - deb-offline-package-test: - name: Debian offline package install/remove test - runs-on: ubuntu-latest - needs: deb-offline-package-build - steps: - - uses: actions/checkout@v4 - - - name: Build - run: | - cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target debOffline + cmake --build ${{ github.workspace }}/build --target deb - name: Install package run: echo '/kolibrios-toolchain' | sudo apt install ${{ github.workspace }}/build/package.deb -y diff --git a/CMakeLists.txt b/CMakeLists.txt index a319fe4..3d755c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) +CMAKE_MINIMUM_REQUIRED(VERSION 3.2) project( KolibriOS-gcc-Toolchain-installer @@ -7,10 +7,9 @@ project( add_custom_target( download_libraries -# COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/libs - COMMAND wget -q http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z + COMMAND wget -q -N http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -O ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/ - COMMAND 7z x -y ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z -o${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/lib COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ${CMAKE_CURRENT_BINARY_DIR}/lib COMMAND rm -R ${CMAKE_CURRENT_BINARY_DIR}/builds.kolibrios.org WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} @@ -22,19 +21,20 @@ add_custom_target( add_custom_target( archive_libraries - COMMAND 7z a ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/lib + COMMAND 7z x -y -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z -o${CMAKE_CURRENT_BINARY_DIR} + COMMAND 7z a -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/lib WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/lib.7z DEPENDS - ${CMAKE_CURRENT_BINARY_DIR}/lib + ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z ) add_custom_target( download_linux COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z COMMAND wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z - WORKING_DIRECTORY ${c} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Download linux toolchain" BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z @@ -53,7 +53,7 @@ add_custom_target( add_custom_target( extract_linux COMMENT "Extract linux archives" - COMMAND 7z x -y ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + COMMAND 7z x -y -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 @@ -63,11 +63,13 @@ add_custom_target( add_custom_target( configureDebPackage + COMMAND COMMENT "Setup debian package" + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/package COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package/ ${CMAKE_CURRENT_BINARY_DIR}/package COMMAND chmod -R 775 ${CMAKE_CURRENT_BINARY_DIR}/package - COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu - COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/package/ @@ -77,35 +79,21 @@ add_custom_target( add_custom_target( - debOffline + deb COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools COMMAND dpkg-deb --build ${CMAKE_CURRENT_BINARY_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Build deb offline package" + COMMENT "Build deb package" BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/package.deb DEPENDS - ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ) -add_custom_target( - debOnline - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_BINARY_DIR}/package/DEBIAN/postinst - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/package/DEBIAN/copyright - COMMAND dpkg-deb --build ${CMAKE_CURRENT_BINARY_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Build deb package" - SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/install.sh - ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE - BYPRODUCTS - ${CMAKE_CURRENT_BINARY_DIR}/package.deb -) - add_custom_target( Installer COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z -o ${CMAKE_CURRENT_BINARY_DIR} @@ -124,31 +112,13 @@ add_custom_target( COMMAND choco pack WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey COMMENT "Build chocolatey package" + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/kos32-gcc.nuspec + ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyInstall.ps1 + ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyUninstall.ps1 ) add_dependencies( - debOnline + deb configureDebPackage ) - -add_dependencies( - debOffline - configureDebPackage - archive_libraries - extract_linux -) - -add_dependencies( - extract_linux - download_linux -) - -add_dependencies( - choco - download_windows -) - -add_dependencies( - Installer - download_windows -) diff --git a/README.md b/README.md index c6897e4..7f116ff 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ wget для windows можно поискать в GnuWin32 например, 7z install.bat Path ``` +Так же вы можете установить тулчейн с помощью установщика(можете найти его в [релизах](https://git.kolibrios.org/Egor00f/-/packages/debian/kos32-gcc/)) + ## Сборка установщиков Установщики базируются на скриптах установки, так что без разницы что вы будете использовать скрипт или установщик, но установщики могут и удалить тулчейн. diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst index f8b7686..81d21e2 100755 --- a/package/DEBIAN/postinst +++ b/package/DEBIAN/postinst @@ -60,7 +60,7 @@ print_ok "Successfully!" print_msg "Extracting toolchain ..." -sudo 7z x -y /home/autobuild/tools/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR +sudo 7z x -y -bso0 -bsp0 /home/autobuild/tools/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR sudo rm -rf /home/autobuild/tools/kos32-toolchain-linux.7z print_ok "Successfully!" diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm index b6db8c0..67d586b 100755 --- a/package/DEBIAN/postrm +++ b/package/DEBIAN/postrm @@ -6,7 +6,7 @@ TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path) MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin" -sudo sed -i '/$MESSAGE/d' /etc/profile +sudo sed -i -e '/$MESSAGE/d' /etc/profile rm -R /etc/kos32-gcc