From baf6e3b0b5162e856a20f778911adc55163f2bd5 Mon Sep 17 00:00:00 2001 From: Egor00f Date: Thu, 5 Dec 2024 17:47:59 +0000 Subject: [PATCH 1/9] start make offline installers Changes: + downloading archives in building --- .gitignore | 1 + .vscode/settings.json | 10 +++++++- CMakeLists.txt | 56 +++++++++++++++++++++++++++++++++++++++++- README.md | 5 +++- install.sh | 36 +++++++++++++-------------- installator.iss | 7 +++--- package/DEBIAN/control | 2 +- 7 files changed, 91 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index bd75751..ca2b526 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build/ chocolatey/kos32-gcc*.nupkg chocolatey/install.ps1 chocolatey/tools/install.ps1 +*.7z diff --git a/.vscode/settings.json b/.vscode/settings.json index 6418f2d..b5ed4a7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,13 @@ "msys", "kolibrios", "Egor" - ] + ], + "cSpell.ignorePaths": [ + "vscode-extension", + ".git/objects", + ".vscode", + ".vscode-insiders", + "package/DEBIAN" + ], + "cmake.parallelJobs": 1 } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 62faa24..255f8f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,11 +5,39 @@ project( DESCRIPTION "Installer of gcc toolchain for KolibriOS" ) +add_custom_target( + download_libraries + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q + COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib + COMMAND 7z x -y sdk-28-10-16.7z + COMMAND mv builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ./ + COMMAND rm -R builds.kolibrios.org + COMMENT "Download libraries" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libs +) + +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 ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Download linux toolchain" +) + +add_custom_target( + download_windows + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z + COMMENT "Download windows toolchain" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) + add_custom_target( deb + COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright + COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z -o ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/prerm @@ -19,18 +47,44 @@ add_custom_target( COMMAND dpkg-deb --build ${CMAKE_CURRENT_SOURCE_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 + ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control + ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postrm ) add_custom_target( Installer + COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z -o ${CMAKE_CURRENT_BINARY_DIR} COMMAND iscc /O"${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss COMMENT "Build windows installer" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + ${CMAKE_CURRENT_SOURCE_DIR}/README.md ) add_custom_target( choco - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.ps1 ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools + COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools COMMAND choco pack WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey COMMENT "Build chocolatey package" ) + +add_dependencies( + deb + download_linux +) + +add_dependencies( + choco + download_windows +) + +add_dependencies( + Installer + download_windows +) diff --git a/README.md b/README.md index a041ab3..b35ac97 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,10 @@ ### Linux -Просто запустите `install.sh`. +Просто запустите `install.sh` с аргументом `online`: +``` +./install.sh online +``` Некоторые команды требуют sudo. diff --git a/install.sh b/install.sh index 89502aa..2aca3b0 100755 --- a/install.sh +++ b/install.sh @@ -49,8 +49,6 @@ echo "Installing toolchain to $TOOLCHAIN_DIR" print_msg "Checking utilities..." - - check_utils wget check_utils 7z @@ -64,25 +62,24 @@ sudo mkdir -p $TOOLCHAIN_DIR print_ok "Successfully!" +if ["$1" == "online"]; then + print_msg "Download the kos32-gcc toolchain..." -print_msg "Download the kos32-gcc toolchain..." - -sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O $TOOLCHAIN_DIR/kos32-toolchain.7z - -print_ok "Successfully!" - + sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O /tmp/kos32-toolchain.7z + print_ok "Successfully!" +fi print_msg "Extracting files ..." -cd $TOOLCHAIN_DIR -sudo 7z x -y kos32-toolchain.7z -sudo rm -rf kos32-toolchain.7z +sudo 7z x -y /tmp/kos32-toolchain.7z -o $TOOLCHAIN_DIR +sudo rm -rf /tmp/kos32-toolchain.7z print_ok "Successfully!" + print_msg "Downloading libraries..." cd $TOOLCHAIN_DIR/win32/mingw32 @@ -105,17 +102,20 @@ print_ok "Successfully!" -print_msg "Downloading libisl..." +if ["$1" == "online"]; then + print_msg "Downloading libisl..." -cd /tmp -sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z -sudo 7z x -y libisl.so.10.2.2.7z + cd /tmp + sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z + sudo 7z x -y libisl.so.10.2.2.7z -if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then - sudo mkdir -p /usr/lib/x86_64-linux-gnu/ + if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then + sudo mkdir -p /usr/lib/x86_64-linux-gnu/ + fi + + sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 fi -sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10 sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10 diff --git a/installator.iss b/installator.iss index 0942d36..9df7666 100644 --- a/installator.iss +++ b/installator.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "KolibriOS gcc toolchain" -#define MyAppVersion "0.1.5" +#define MyAppVersion "0.1.6" #define MyAppPublisher "Egor00f" #define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain" @@ -65,11 +65,10 @@ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environmen Check: NeedsAddPath('{app}\win32\bin') [Files] -Source: ".\install.ps1"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\build\libs"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\build\win32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files -[Run] -Filename: "{app}\install.ps1"; description: "install script"; StatusMsg: "Installing toolchain"; Parameters: "-InstallPath {app}"; Flags: runhidden logoutput [Icons] Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" diff --git a/package/DEBIAN/control b/package/DEBIAN/control index b2acc75..cfd9eef 100755 --- a/package/DEBIAN/control +++ b/package/DEBIAN/control @@ -1,5 +1,5 @@ Package: kos32-gcc -Version: 0.1.5 +Version: 0.1.6 Architecture: all Section: devel Depends: libc6-i386:amd64, libmpc3:amd64 From ed213eb3e63c9abfa55de3a12e6bba77caf205ef Mon Sep 17 00:00:00 2001 From: Egor00f Date: Wed, 8 Jan 2025 13:23:21 +0500 Subject: [PATCH 2/9] save attempts --- CMakeLists.txt | 13 ++++++------- README.md | 2 ++ chocolatey/kos32-gcc.nuspec | 2 +- chocolatey/tools/chocolateyInstall.ps1 | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 255f8f4..adad16d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,13 +7,13 @@ project( add_custom_target( download_libraries - COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q - COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib - COMMAND 7z x -y sdk-28-10-16.7z - COMMAND mv builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ./ - COMMAND rm -R builds.kolibrios.org + COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/libs + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z + COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib -O ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org + COMMAND 7z x -y ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z + COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ${CMAKE_CURRENT_BINARY_DIR}/libs + COMMAND rm -R ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org COMMENT "Download libraries" - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libs ) add_custom_target( @@ -31,7 +31,6 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) - add_custom_target( deb COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu diff --git a/README.md b/README.md index b35ac97..2f3b310 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,8 @@ wget для windows можно поискать в GnuWin32 например, 7z ### Windows +Для сборки установщиков необходимы `CoreUtils` и `wget` из `GnuWin32`. + Установщик собирается с помощью Inno Setup. Цель для сборки Installer. Для сборки требуется компилятор Inno Setup. Если сборка не работает, добавьте папку Inno Setup (например: `C:\Programs Files\Inno Setup 6`) в PATH. diff --git a/chocolatey/kos32-gcc.nuspec b/chocolatey/kos32-gcc.nuspec index f39252d..5f0398b 100644 --- a/chocolatey/kos32-gcc.nuspec +++ b/chocolatey/kos32-gcc.nuspec @@ -3,7 +3,7 @@ kos32-gcc KolibriOS gcc toolchain installer - 0.1.5 + 0.1.6 Egor00f Egor00f idk diff --git a/chocolatey/tools/chocolateyInstall.ps1 b/chocolatey/tools/chocolateyInstall.ps1 index fa0527d..ccde14b 100644 --- a/chocolatey/tools/chocolateyInstall.ps1 +++ b/chocolatey/tools/chocolateyInstall.ps1 @@ -8,7 +8,8 @@ $packageName = 'kos32-gcc' # arbitrary name for the package, used in messages $INSTALL_PATH = Read-Host 'Path to install toolchain(Enter - default)' -C:\ProgramData\Chocolatey\lib\kos32-gcc\tools\install.ps1 +Expand-7Zip -ArchiveFileName C:\ProgramData\Chocolatey\lib\kos32-gcc\tools\kos32-toolchain-win.7z -TargetPath $INSTALL_PATH + Out-File -FilePath C:\ProgramData\Chocolatey\lib\kos32-gcc\install-path -InputObject $INSTALL_PATH From dba9a23acb7a9fbae95d29d6d9ab4f0f55ee643a 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: Tue, 4 Feb 2025 11:47:02 +0000 Subject: [PATCH 3/9] add debian offline and online package --- .gitignore | 3 - CMakeLists.txt | 62 +++++++++++++----- package/DEBIAN/postinst | 140 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+), 20 deletions(-) create mode 100755 package/DEBIAN/postinst diff --git a/.gitignore b/.gitignore index bedc75f..bc41e5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ Output/ -package/DEBIAN/postinst -package/DEBIAN/copyright -package.deb build/ chocolatey/kos32-gcc*.nupkg chocolatey/install.ps1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a36b5e..c33eb8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,25 +32,43 @@ add_custom_target( ) add_custom_target( - deb - COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright - COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z -o ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/prerm - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postrm - COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright - COMMAND dpkg-deb --build ${CMAKE_CURRENT_SOURCE_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb + extract_linux + COMMENT "Extract linux archives" + COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) + +add_custom_target( + configureDebPackage + COMMENT "Setup debian 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 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/package/ +) + + +add_custom_target( + debOffline + 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 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" +) + +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 - ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control - ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postrm + ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ) add_custom_target( @@ -74,7 +92,17 @@ add_custom_target( ) add_dependencies( - deb + debOnline + configureDebPackage +) + +add_dependencies( + debOffline + configureDebPackage +) + +add_dependencies( + configureDebPackage download_linux ) diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst new file mode 100755 index 0000000..e8d24d5 --- /dev/null +++ b/package/DEBIAN/postinst @@ -0,0 +1,140 @@ +#!/bin/bash + +# Written by turbocat2001 (Maxim Logaev) +# Installation steps described by maxcodehack (Maxim Kuzmitsky) +# modified by Egor00f (Egor) + +set -e +pwd + +DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" + +TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR + +print_msg(){ + echo -e "\e[34m$1\e[0m" +} + +print_ok(){ + echo -e "\e[32m$1\e[0m" +} + +print_err(){ + echo -e "\e[31m$1\e[0m" + exit +} + +check_utils(){ + printf "%s: " $1 + if command -v $1 &> /dev/null + then + print_ok "ok\r" + else + print_err "no\r" + fi +} + +echo -n -e "\e[0mToolchain install path \e[90m(default is $TOOLCHAIN_DIR)\e[97m: " +read INPUT + +if [[ ! -z "$INPUT" ]]; then + TOOLCHAIN_DIR=$INPUT +fi + +echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m" + + +print_msg "Checking utilities..." + +check_utils wget +check_utils 7z + + + +print_msg "Create the toolchain folders..." + +sudo mkdir -p $DEFAULT_TOOLCHAIN_DIR +sudo mkdir -p $TOOLCHAIN_DIR + +print_ok "Successfully!" + +print_msg "Extracting files ..." + +sudo 7z x -y /home/autobuild/tools/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR +sudo rm -rf /home/autobuild/tools/kos32-toolchain-linux.7z + +print_ok "Successfully!" + + + + +print_msg "Downloading libraries..." + +cd $TOOLCHAIN_DIR/win32/mingw32 +sudo 7z x -y -bso0 -bsp0 sdk-28-10-16.7z +sudo rm -rf sdk-28-10-16.7z + +print_ok "Successfully!" + + + +print_msg "Updating libraries" + +cd lib + +print_ok "Successfully!" + + +if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then + sudo mkdir -p /usr/lib/x86_64-linux-gnu/ +fi + +sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10 +sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10 +sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10 +sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 + +print_ok "Successfully!" + + +print_msg "Fixing libmpfr..." + +sudo ln -sf /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4 +sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4 + +print_ok "Successfully!" + + +if [ "$TOOLCHAIN_DIR" != "$DEFAULT_TOOLCHAIN_DIR" ]; then + sudo ln -sf $TOOLCHAIN_DIR/win32 $DEFAULT_TOOLCHAIN_DIR +fi + + +MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin" + +EXPORT_MESSSAGE="export $MESSAGE" + +if [ ! "$(id -u)" -ne 0 ] +then + echo $MESSAGE >> /etc/profile + + sudo mkdir -p /etc/kos32-gcc + echo $TOOLCHAIN_DIR > /etc/kos32-gcc/install-path +else + if ! grep -q $EXPORT_MESSSAGE ~/.bashrc; then + print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'" + echo '$EXPORT_MESSSAGE' >> ~/.bashrc + fi +fi + +sudo chmod 775 $TOOLCHAIN_DIR/win32/bin/* +sudo chmod 774 $TOOLCHAIN_DIR/win32/include/* +sudo chmod 774 $TOOLCHAIN_DIR/win32/lib/* +sudo chmod 774 $TOOLCHAIN_DIR/win32/mingw32/lib/* +sudo chmod -R 775 /home/autobuild/tools/win32/lib/gcc + +cd "$OLDPWD" + +export PATH=$PATH:$TOOLCHAIN_DIR/win32/bin + +print_ok "Installation was successful!" From 7711f345e0fae51c23e65d35adbae9abd36c7645 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: Tue, 4 Feb 2025 17:02:27 +0500 Subject: [PATCH 4/9] revert install.sh chagnes to main --- install.sh | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/install.sh b/install.sh index 822f610..908a442 100755 --- a/install.sh +++ b/install.sh @@ -46,6 +46,8 @@ echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m" print_msg "Checking utilities..." + + check_utils wget check_utils 7z @@ -59,23 +61,24 @@ sudo mkdir -p $TOOLCHAIN_DIR print_ok "Successfully!" -if ["$1" == "online"]; then - print_msg "Download the kos32-gcc toolchain..." - sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O /tmp/kos32-toolchain.7z +print_msg "Download the kos32-gcc toolchain..." - print_ok "Successfully!" -fi - -print_msg "Extracting files ..." - -sudo 7z x -y /tmp/kos32-toolchain.7z -o $TOOLCHAIN_DIR -sudo rm -rf /tmp/kos32-toolchain.7z +sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O $TOOLCHAIN_DIR/kos32-toolchain.7z print_ok "Successfully!" +print_msg "Extracting files ..." + +cd $TOOLCHAIN_DIR +sudo 7z x -y -bso0 -bsp0 kos32-toolchain.7z +sudo rm -rf kos32-toolchain.7z + +print_ok "Successfully!" + + print_msg "Downloading libraries..." @@ -99,21 +102,17 @@ print_ok "Successfully!" -if ["$1" == "online"]; then - print_msg "Downloading libisl..." +print_msg "Downloading libisl..." cd /tmp sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z sudo 7z x -y -bso0 -bsp0 libisl.so.10.2.2.7z - - if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then - sudo mkdir -p /usr/lib/x86_64-linux-gnu/ - fi - - sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 +if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then + sudo mkdir -p /usr/lib/x86_64-linux-gnu/ fi +sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10 sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10 From 881bd90806f5854d6a3221842e70f7d6116ec0cc 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: Tue, 4 Feb 2025 17:19:23 +0500 Subject: [PATCH 5/9] Update test.yml --- .github/workflows/test.yml | 70 ++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 866ca5f..4f5cbac 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,7 @@ jobs: #Test linux install script linux-install: + name: linux(sh) script install test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -28,6 +29,7 @@ jobs: #Test Batch install script batch-install: + name: Batch script install test runs-on: windows-latest steps: - uses: actions/checkout@v4 @@ -42,6 +44,7 @@ jobs: #Test PowerShell install script PowerShell-install: + name: PowerShell install script test runs-on: windows-latest steps: - uses: actions/checkout@v4 @@ -61,6 +64,7 @@ jobs: #Test Windows Installer build-Installer: + name: Build windows installer test runs-on: windows-latest needs: PowerShell-install steps: @@ -78,8 +82,9 @@ jobs: # Upload entire repository path: './build/installer.exe' - # Test deb package build - deb-package-build: + # Test online deb package build + deb-online-package-build: + name: Debian online package build test runs-on: ubuntu-latest needs: linux-install steps: @@ -88,7 +93,7 @@ jobs: - name: Build run: | cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target deb + cmake --build ${{ github.workspace }}/build --target debOnline - name: Upload artifact uses: actions/upload-artifact@v4 @@ -98,16 +103,67 @@ jobs: path: './build/package.deb' # Test deb package install/remove - deb-package-test: + deb-online-package-test: + name: Debian online package install/remove test runs-on: ubuntu-latest - needs: deb-package-build + needs: deb-online-package-build steps: - uses: actions/checkout@v4 - name: Build run: | cmake -B ${{ github.workspace }}/build - cmake --build ${{ github.workspace }}/build --target deb + 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-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 - name: Install package run: echo '/kolibrios-toolchain' | sudo apt install ${{ github.workspace }}/build/package.deb -y @@ -129,6 +185,7 @@ jobs: #Test chocolatey package build chocolatey-package-build: + name: Chocolatey build package test runs-on: windows-latest needs: PowerShell-install steps: @@ -148,6 +205,7 @@ jobs: # Test chocolatey package install/remove chocolatey-package-test: + name: chocolatey install test runs-on: windows-latest needs: chocolatey-package-build steps: From 6e7dd2ed39ce06bfd604afb8ecfa057dab7c3a63 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: Tue, 4 Feb 2025 13:19:47 +0000 Subject: [PATCH 6/9] fix remove package error && update text.yml and README.md && other fixes --- .github/workflows/test.yml | 11 ++++++++--- .vscode/extensions.json | 3 --- .vscode/settings.json | 1 - CMakeLists.txt | 30 +++++++++++++++++++++++++++--- README.md | 21 +++++++++++++++------ package/DEBIAN/postrm | 2 +- package/DEBIAN/prerm | 4 ++-- 7 files changed, 53 insertions(+), 19 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f5cbac..d47b633 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,8 +1,13 @@ -name: Test +name: Test packages on: push: branches: [ "main" ] + paths-ignore: + - '.vscode/**' + - '.devcontainer/**' + - '.gitignore' + - 'CONTRIBUTING.md' pull_request: branches: [ "main" ] workflow_dispatch: @@ -98,7 +103,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: deb-package + name: deb-online-package # Upload entire repository path: './build/package.deb' @@ -148,7 +153,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: deb-package + name: deb-offline-package # Upload entire repository path: './build/package.deb' diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d801e45..05773af 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,9 +1,6 @@ { "recommendations": [ "chouzz.vscode-innosetup", - "streetsidesoftware.code-spell-checker", - "streetsidesoftware.code-spell-checker-russian", "ms-vscode.cmake-tools", - "github.vscode-github-actions" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index b5ed4a7..b0b7111 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,4 @@ ".vscode-insiders", "package/DEBIAN" ], - "cmake.parallelJobs": 1 } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c33eb8e..7a34aab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,9 @@ add_custom_target( 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 ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Download linux toolchain" + BYPRODUCTS + ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z ) add_custom_target( @@ -29,6 +32,8 @@ add_custom_target( COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z COMMENT "Download windows toolchain" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + BYPRODUCTS + ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z ) add_custom_target( @@ -36,6 +41,10 @@ add_custom_target( COMMENT "Extract linux archives" COMMAND 7z x ${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 + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z ) add_custom_target( @@ -48,6 +57,8 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/package/ + BYPRODUCTS + ${CMAKE_CURRENT_BINARY_DIR}/package ) @@ -58,6 +69,11 @@ add_custom_target( 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" + BYPRODUCTS + ${CMAKE_CURRENT_BINARY_DIR}/package.deb + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ) add_custom_target( @@ -69,6 +85,9 @@ add_custom_target( 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( @@ -78,9 +97,9 @@ add_custom_target( COMMENT "Build windows installer" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss - ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE - ${CMAKE_CURRENT_SOURCE_DIR}/README.md + ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + ${CMAKE_CURRENT_SOURCE_DIR}/README.md ) add_custom_target( @@ -103,6 +122,11 @@ add_dependencies( add_dependencies( configureDebPackage + extract_linux +) + +add_dependencies( + extract_linux download_linux ) diff --git a/README.md b/README.md index a6b86b6..c6897e4 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ ### Linux -Просто запустите `install.sh` с аргументом `online`: +Просто запустите `install.sh`: ``` -./install.sh online +./install.sh ``` Некоторые команды требуют sudo. @@ -25,7 +25,7 @@ Желательно чтобы вы перед установкой тулчейна установите msys из установщика MinGW. -Для windows есть установщик(посмотрите в релизах) или просто запустите `install.bat`. Рекомендуется запускать с повышенными правами. +Для windows есть установщик(посмотрите в релизах) или просто запустите `install.bat`. Нужно запускать с повышенными правами. wget для windows можно поискать в GnuWin32 например, 7z Нужно добавить в PATH. @@ -37,9 +37,18 @@ install.bat Path ## Сборка установщиков -Установщики полностью базируются на скриптах установки, так что без разницы что вы будете использовать скрипт или установщик, но установщики могут и удалить тулчейн. +Установщики базируются на скриптах установки, так что без разницы что вы будете использовать скрипт или установщик, но установщики могут и удалить тулчейн. -Установщики собираются с помощью cmake (cmake просто потому что могу). +Установщики собираются с помощью cmake. + +Просто запустите: + +``` +mkdir build +cd build +cmake .. +make <установщик> +``` ### Linux @@ -47,7 +56,7 @@ install.bat Path ### Windows -Для сборки установщиков необходимы `CoreUtils` и `wget` из `GnuWin32`. +Для сборки установщиков необходимы `CoreUtils` и `wget` из `GnuWin32` или ещё откуда то. Установщик собирается с помощью Inno Setup. Цель для сборки Installer. Для сборки требуется компилятор Inno Setup. diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm index f4be720..b6db8c0 100755 --- a/package/DEBIAN/postrm +++ b/package/DEBIAN/postrm @@ -8,5 +8,5 @@ MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin" sudo sed -i '/$MESSAGE/d' /etc/profile -rm /etc/kos32-gcc -R +rm -R /etc/kos32-gcc diff --git a/package/DEBIAN/prerm b/package/DEBIAN/prerm index a58ff21..c15fd43 100755 --- a/package/DEBIAN/prerm +++ b/package/DEBIAN/prerm @@ -2,6 +2,6 @@ TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path) -rm -R $TOOLCHAIN_DIR +rm -Rf $TOOLCHAIN_DIR -rm -R /home/autobuild +rm -Rf /home/autobuild From 11280877d495c6f4e49752d373f832ef7b0f59fc Mon Sep 17 00:00:00 2001 From: Egor00f Date: Wed, 5 Feb 2025 14:23:51 +0500 Subject: [PATCH 7/9] fix lib extract --- CMakeLists.txt | 34 ++++++++++++++++++++++++---------- package/DEBIAN/postinst | 15 ++++----------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a34aab..c930464 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,13 +7,27 @@ project( add_custom_target( download_libraries - COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/libs - COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z - COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib -O ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org - COMMAND 7z x -y ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z - COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ${CMAKE_CURRENT_BINARY_DIR}/libs - COMMAND rm -R ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org +# 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 -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 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} COMMENT "Download libraries" + BYPRODUCTS + ${CMAKE_CURRNET_BINARY_DIR}/lib + ${CMAKE_CURRNET_BINARY_DIR}/sdk-28-10-16.7z +) + +add_custom_target( + archive_libraries + COMMAND 7z a lib.7z ${CMAKE_CURRNET_BINARY_DIR}/lib + WORKING_DIRECTORY ${CMAKE_CURRNET_BINARY_DIR} + BYPRODUCTS + ${CMAKE_CURRNET_BINARY_DIR}/lib.7z + DEPENDS + ${CMAKE_CURRNET_BINARY_DIR}/lib ) add_custom_target( @@ -66,6 +80,8 @@ add_custom_target( debOffline 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 cp -f ${CMAKE_CURRNET_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" @@ -74,6 +90,7 @@ add_custom_target( DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z + ${CMAKE_CURRNET_BINARY_DIR}/lib.7z ) add_custom_target( @@ -118,10 +135,7 @@ add_dependencies( add_dependencies( debOffline configureDebPackage -) - -add_dependencies( - configureDebPackage + archive_libraries extract_linux ) diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst index e8d24d5..f8b7686 100755 --- a/package/DEBIAN/postinst +++ b/package/DEBIAN/postinst @@ -58,7 +58,7 @@ sudo mkdir -p $TOOLCHAIN_DIR print_ok "Successfully!" -print_msg "Extracting files ..." +print_msg "Extracting toolchain ..." sudo 7z x -y /home/autobuild/tools/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR sudo rm -rf /home/autobuild/tools/kos32-toolchain-linux.7z @@ -68,23 +68,16 @@ print_ok "Successfully!" -print_msg "Downloading libraries..." +print_msg "Extracting libraries..." cd $TOOLCHAIN_DIR/win32/mingw32 -sudo 7z x -y -bso0 -bsp0 sdk-28-10-16.7z -sudo rm -rf sdk-28-10-16.7z +sudo 7z x -y -bso0 -bsp0 /home/autobuild/tools/lib.7z +sudo rm -rf /home/autobuild/tools/lib.7z print_ok "Successfully!" -print_msg "Updating libraries" - -cd lib - -print_ok "Successfully!" - - if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then sudo mkdir -p /usr/lib/x86_64-linux-gnu/ fi From 56cb3b1e84f81c33df5e618d8fa5a110fd8634c1 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: Wed, 5 Feb 2025 10:18:18 +0000 Subject: [PATCH 8/9] fix CURRNET (fix build) --- .vscode/settings.json | 1 + CMakeLists.txt | 19 +++++++++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b0b7111..b5ed4a7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,4 +14,5 @@ ".vscode-insiders", "package/DEBIAN" ], + "cmake.parallelJobs": 1 } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c930464..a319fe4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,25 +16,25 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Download libraries" BYPRODUCTS - ${CMAKE_CURRNET_BINARY_DIR}/lib - ${CMAKE_CURRNET_BINARY_DIR}/sdk-28-10-16.7z + ${CMAKE_CURRENT_BINARY_DIR}/lib + ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z ) add_custom_target( archive_libraries - COMMAND 7z a lib.7z ${CMAKE_CURRNET_BINARY_DIR}/lib - WORKING_DIRECTORY ${CMAKE_CURRNET_BINARY_DIR} + COMMAND 7z a ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/lib + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} BYPRODUCTS - ${CMAKE_CURRNET_BINARY_DIR}/lib.7z + ${CMAKE_CURRENT_BINARY_DIR}/lib.7z DEPENDS - ${CMAKE_CURRNET_BINARY_DIR}/lib + ${CMAKE_CURRENT_BINARY_DIR}/lib ) 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 ${CMAKE_CURRENT_BINARY_DIR} + WORKING_DIRECTORY ${c} 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 ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + COMMAND 7z x -y ${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 @@ -81,7 +81,6 @@ add_custom_target( 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 cp -f ${CMAKE_CURRNET_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" @@ -90,7 +89,7 @@ add_custom_target( DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z - ${CMAKE_CURRNET_BINARY_DIR}/lib.7z + ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ) add_custom_target( 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 9/9] 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