From 3b3e3f3fd6e946b57d5b0a360387565673e04de0 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, 13 Mar 2025 17:55:43 +0000 Subject: [PATCH] fix not deleting PATH set from etc/profile on remove && some other changes --- CMakeLists.txt | 40 +++++++++++++++++++++++----------------- install.sh | 20 ++++++++++++-------- package/DEBIAN/control | 24 +++++++++++++----------- package/DEBIAN/postinst | 29 ++++++++++++++++++----------- package/DEBIAN/postrm | 15 ++++++++++----- package/DEBIAN/prerm | 7 ++++++- 6 files changed, 82 insertions(+), 53 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d755c3..df7b218 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,58 +12,68 @@ add_custom_target( 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} COMMENT "Download libraries" - BYPRODUCTS - ${CMAKE_CURRENT_BINARY_DIR}/lib + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z + BYPRODUCTS + ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) add_custom_target( archive_libraries 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} + COMMENT "Add libraries to archive" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/lib.7z BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/lib.7z DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) 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" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) 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} + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) add_custom_target( extract_linux - COMMENT "Extract linux archives" COMMAND 7z x -y -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Extract linux archives" + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) 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 @@ -71,10 +81,10 @@ add_custom_target( 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 + OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/package/ BYPRODUCTS - ${CMAKE_CURRENT_BINARY_DIR}/package + ${CMAKE_CURRENT_BINARY_DIR}/package/ ) @@ -86,12 +96,13 @@ 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 package" - BYPRODUCTS + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/package.deb DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/lib.7z + configureDebPackage ) add_custom_target( @@ -117,8 +128,3 @@ add_custom_target( ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyInstall.ps1 ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyUninstall.ps1 ) - -add_dependencies( - deb - configureDebPackage -) diff --git a/install.sh b/install.sh index 908a442..ff60e94 100755 --- a/install.sh +++ b/install.sh @@ -7,9 +7,10 @@ set -e pwd +CONFIG_FOLDER="/etc/kos32-gcc" +INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path" DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" -TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR print_msg(){ echo -e "\e[34m$1\e[0m" @@ -34,16 +35,19 @@ check_utils(){ fi } -echo -n -e "\e[0mToolchain install path \e[90m(default is $TOOLCHAIN_DIR)\e[97m: " -read INPUT +if [ test -f $INSTALL_PATH_FILE ]; then + TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE) +else + echo -n -e "\e[0mToolchain install path \e[90m(default is $DEFAULT_TOOLCHAIN_DIR)\e[97m: " + read INPUT -if [[ ! -z "$INPUT" ]]; then - TOOLCHAIN_DIR=$INPUT + if [[ ! -z "$INPUT" ]]; then + TOOLCHAIN_DIR=$INPUe + else + TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR + fi fi -echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m" - - print_msg "Checking utilities..." diff --git a/package/DEBIAN/control b/package/DEBIAN/control index 9cd3714..79a4fb7 100755 --- a/package/DEBIAN/control +++ b/package/DEBIAN/control @@ -1,14 +1,16 @@ -Package: kos32-gcc -Version: 0.1.7 -Architecture: amd64 -Section: devel -Depends: libc6-i386:amd64, libmpc3:amd64 -Pre-Depends: p7zip-full, wget -Recommends: fasm -Priority: optional -Homepage: https://github.com/Egor00f/kolibrios-gcc-toolchain -Origin: http://ftp.kolibrios.org/users/Serge/new/Toolchain -Maintainer: Egor00f +Package: kos32-gcc +Version: 0.1.8 +Architecture: amd64 +Section: devel +Depends: libc6-i386:amd64, + libmpc3:amd64 +Pre-Depends: p7zip-full, + wget +Recommends: fasm +Priority: optional +Homepage: https://github.com/Egor00f/kolibrios-gcc-toolchain +Origin: http://ftp.kolibrios.org/users/Serge/new/Toolchain +Maintainer: Egor00f Installed-Size: 131708 Description: KolibriOS gcc toolchain installer This package installing KolibriOS gcc toolchain by Serge. diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst index 81d21e2..9f875f4 100755 --- a/package/DEBIAN/postinst +++ b/package/DEBIAN/postinst @@ -7,9 +7,10 @@ set -e pwd +CONFIG_FOLDER="/etc/kos32-gcc" +INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path" DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" -TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR print_msg(){ echo -e "\e[34m$1\e[0m" @@ -34,11 +35,17 @@ check_utils(){ fi } -echo -n -e "\e[0mToolchain install path \e[90m(default is $TOOLCHAIN_DIR)\e[97m: " -read INPUT +if [ test -f $INSTALL_PATH_FILE ]; then + TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE) +else + echo -n -e "\e[0mToolchain install path \e[90m(default is $DEFAULT_TOOLCHAIN_DIR)\e[97m: " + read INPUT -if [[ ! -z "$INPUT" ]]; then - TOOLCHAIN_DIR=$INPUT + if [[ ! -z "$INPUT" ]]; then + TOOLCHAIN_DIR=$INPUe + else + TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR + fi fi echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m" @@ -60,8 +67,8 @@ print_ok "Successfully!" print_msg "Extracting toolchain ..." -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 +sudo 7z x -y -bso0 -bsp0 $DEFAULT_TOOLCHAIN_DIR/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR +sudo rm -rf $DEFAULT_TOOLCHAIN_DIR/kos32-toolchain-linux.7z print_ok "Successfully!" @@ -71,8 +78,8 @@ print_ok "Successfully!" print_msg "Extracting libraries..." cd $TOOLCHAIN_DIR/win32/mingw32 -sudo 7z x -y -bso0 -bsp0 /home/autobuild/tools/lib.7z -sudo rm -rf /home/autobuild/tools/lib.7z +sudo 7z x -y -bso0 -bsp0 $DEFAULT_TOOLCHAIN_DIR/lib.7z +sudo rm -rf $DEFAULT_TOOLCHAIN_DIR/lib.7z print_ok "Successfully!" @@ -111,8 +118,8 @@ if [ ! "$(id -u)" -ne 0 ] then echo $MESSAGE >> /etc/profile - sudo mkdir -p /etc/kos32-gcc - echo $TOOLCHAIN_DIR > /etc/kos32-gcc/install-path + sudo mkdir -p $CONFIG_FOLDER + echo $TOOLCHAIN_DIR > $INSTALL_PATH_FILE else if ! grep -q $EXPORT_MESSSAGE ~/.bashrc; then print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'" diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm index 67d586b..5048e26 100755 --- a/package/DEBIAN/postrm +++ b/package/DEBIAN/postrm @@ -1,12 +1,17 @@ #!/bin/bash +CONFIG_FOLDER="/etc/kos32-gcc" +INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path" +DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" + + TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path) +FULL_PATH="$TOOLCHAIN_DIR/win32/bin" +CHR="/" +REPLACE_TO="\/" -MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin" - -sudo sed -i -e '/$MESSAGE/d' /etc/profile - -rm -R /etc/kos32-gcc +MESSAGE="${FULL_PATH//$CHR/"$REPLACE_TO"}" +sudo sed -i -e '/'$MESSAGE'/d' /etc/profile diff --git a/package/DEBIAN/prerm b/package/DEBIAN/prerm index c15fd43..78e120e 100755 --- a/package/DEBIAN/prerm +++ b/package/DEBIAN/prerm @@ -1,6 +1,11 @@ #!/bin/bash -TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path) +CONFIG_FOLDER="/etc/kos32-gcc" +INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path" +DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" + + +TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE) rm -Rf $TOOLCHAIN_DIR