From f642830dc89e85d52a143cc7a3f26616326e2e61 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 14 Mar 2023 13:56:56 +0330 Subject: [PATCH 1/8] Update x-ui.sh Fix Fedora --- x-ui.sh | 63 ++++++++++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/x-ui.sh b/x-ui.sh index 03432c31..0ae5e2dd 100644 --- a/x-ui.sh +++ b/x-ui.sh @@ -20,46 +20,41 @@ function LOGI() { # check root [[ $EUID -ne 0 ]] && LOGE "ERROR: You must be root to run this script! \n" && exit 1 -# check os -if [[ -f /etc/redhat-release ]]; then - release="centos" -elif cat /etc/issue | grep -Eqi "debian"; then - release="debian" -elif cat /etc/issue | grep -Eqi "ubuntu"; then - release="ubuntu" -elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then - release="centos" -elif cat /proc/version | grep -Eqi "debian"; then - release="debian" -elif cat /proc/version | grep -Eqi "ubuntu"; then - release="ubuntu" -elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then - release="centos" +# Check OS and set release variable +if [[ -f /etc/os-release ]]; then + source /etc/os-release + release=$ID +elif [[ -f /usr/lib/os-release ]]; then + source /usr/lib/os-release + release=$ID else - LOGE "check system OS failed,please contact with author! \n" && exit 1 + echo "Failed to check the system OS, please contact the author!" >&2 + exit 1 fi +echo "The OS release is: $release" + + os_version="" +os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1) -# os version -if [[ -f /etc/os-release ]]; then - os_version=$(awk -F'[= ."]' '/VERSION_ID/{print $3}' /etc/os-release) -fi -if [[ -z "$os_version" && -f /etc/lsb-release ]]; then - os_version=$(awk -F'[= ."]+' '/DISTRIB_RELEASE/{print $2}' /etc/lsb-release) -fi - -if [[ x"${release}" == x"centos" ]]; then - if [[ ${os_version} -le 6 ]]; then - LOGE "please use CentOS 7 or higher version! \n" && exit 1 - fi -elif [[ x"${release}" == x"ubuntu" ]]; then - if [[ ${os_version} -lt 16 ]]; then - LOGE "please use Ubuntu 16 or higher version!\n" && exit 1 - fi -elif [[ x"${release}" == x"debian" ]]; then +if [[ "${release}" == "centos" ]]; then if [[ ${os_version} -lt 8 ]]; then - LOGE "please use Debian 8 or higher version!\n" && exit 1 + echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1 + fi +elif [[ "${release}" == "ubuntu" ]]; then + if [[ ${os_version} -lt 20 ]]; then + echo -e "${red}please use Ubuntu 20 or higher version!${plain}\n" && exit 1 + fi + +elif [[ "${release}" == "fedora" ]]; then + if [[ ${os_version} -lt 36 ]]; then + echo -e "${red}please use Fedora 36 or higher version!${plain}\n" && exit 1 + fi + +elif [[ "${release}" == "debian" ]]; then + if [[ ${os_version} -lt 10 ]]; then + echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1 fi fi From 6dccc5b8914f469745fbab022626e61724066c81 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 14 Mar 2023 14:00:14 +0330 Subject: [PATCH 2/8] Update install.sh Fedora OS Fix --- install.sh | 72 +++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/install.sh b/install.sh index 40714ff0..b403f5c3 100755 --- a/install.sh +++ b/install.sh @@ -10,24 +10,18 @@ cur_dir=$(pwd) # check root [[ $EUID -ne 0 ]] && echo -e "${red}Fatal error:${plain} Please run this script with root privilege \n " && exit 1 -# check os -if [[ -f /etc/redhat-release ]]; then - release="centos" -elif cat /etc/issue | grep -Eqi "debian"; then - release="debian" -elif cat /etc/issue | grep -Eqi "ubuntu"; then - release="ubuntu" -elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then - release="centos" -elif cat /proc/version | grep -Eqi "debian"; then - release="debian" -elif cat /proc/version | grep -Eqi "ubuntu"; then - release="ubuntu" -elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then - release="centos" +# Check OS and set release variable +if [[ -f /etc/os-release ]]; then + source /etc/os-release + release=$ID +elif [[ -f /usr/lib/os-release ]]; then + source /usr/lib/os-release + release=$ID else - echo -e "${red} Check system OS failed, please contact the author! ${plain}\n" && exit 1 + echo "Failed to check the system OS, please contact the author!" >&2 + exit 1 fi +echo "The OS release is: $release" arch=$(arch) @@ -35,46 +29,46 @@ if [[ $arch == "x86_64" || $arch == "x64" || $arch == "amd64" ]]; then arch="amd64" elif [[ $arch == "aarch64" || $arch == "arm64" ]]; then arch="arm64" -elif [[ $arch == "s390x" ]]; then - arch="s390x" else arch="amd64" - echo -e "${red} Fail to check system arch, will use default arch: ${arch}${plain}" + echo -e "${red} Failed to check system arch, will use default arch: ${arch}${plain}" fi echo "arch: ${arch}" if [ $(getconf WORD_BIT) != '32' ] && [ $(getconf LONG_BIT) != '64' ]; then - echo "x-ui dosen't support 32-bit(x86) system, please use 64 bit operating system(x86_64) instead,if there is something wrong, plz let me know" + echo "x-ui dosen't support 32-bit(x86) system, please use 64 bit operating system(x86_64) instead, if there is something wrong, please get in touch with me!" exit -1 fi os_version="" +os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1) -# os version -if [[ -f /etc/os-release ]]; then - os_version=$(awk -F'[= ."]' '/VERSION_ID/{print $3}' /etc/os-release) -fi -if [[ -z "$os_version" && -f /etc/lsb-release ]]; then - os_version=$(awk -F'[= ."]+' '/DISTRIB_RELEASE/{print $2}' /etc/lsb-release) -fi - -if [[ x"${release}" == x"centos" ]]; then - if [[ ${os_version} -le 6 ]]; then - echo -e "${red} Please use CentOS 7 or higher version ${plain}\n" && exit 1 - fi -elif [[ x"${release}" == x"ubuntu" ]]; then - if [[ ${os_version} -lt 16 ]]; then - echo -e "${red} Please use Ubuntu 16 or higher version ${plain}\n" && exit 1 - fi -elif [[ x"${release}" == x"debian" ]]; then +if [[ "${release}" == "centos" ]]; then if [[ ${os_version} -lt 8 ]]; then - echo -e "${red} Please use Debian 8 or higher version ${plain}\n" && exit 1 + echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1 fi +elif [[ "${release}" == "ubuntu" ]]; then + if [[ ${os_version} -lt 20 ]]; then + echo -e "${red}please use Ubuntu 20 or higher version!${plain}\n" && exit 1 + fi + +elif [[ "${release}" == "fedora" ]]; then + if [[ ${os_version} -lt 36 ]]; then + echo -e "${red}please use Fedora 36 or higher version!${plain}\n" && exit 1 + fi + +elif [[ "${release}" == "debian" ]]; then + if [[ ${os_version} -lt 10 ]]; then + echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1 + fi +else + echo -e "${red}Failed to check the OS version, please contact the author!${plain}" && exit 1 fi + install_base() { - if [[ x"${release}" == x"centos" ]]; then + if [[ "${release}" == "centos" ]]; then yum install wget curl tar -y else apt install wget curl tar -y From 4d5a73512eb23ea6077216526c27ae376f3a2da6 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 14 Mar 2023 14:01:52 +0330 Subject: [PATCH 3/8] Update README.md Fedora 36+ --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6a1fb41..23f300e2 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,7 @@ Reference syntax: - CentOS 7+ - Ubuntu 16+ - Debian 8+ +- Fedora 36+ # common problem From f829213dd1272182c13df2ae04ea320300733151 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 14 Mar 2023 14:17:52 +0330 Subject: [PATCH 4/8] go-version go-version update to stable --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e6e00300..6211918a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: '1.20' + go-version: 'stable' - name: build linux amd64 version run: | CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go @@ -123,4 +123,4 @@ jobs: tag: ${{ github.ref }} file: x-ui-linux-s390x.tar.gz asset_name: x-ui-linux-s390x.tar.gz - prerelease: true \ No newline at end of file + prerelease: true From 7f0ba495db9495b7794a86ec95e0c5ff77a510f3 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 18 Mar 2023 13:36:01 +0330 Subject: [PATCH 5/8] Update install.sh Fix OS Version --- install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index b403f5c3..76898b4d 100755 --- a/install.sh +++ b/install.sh @@ -45,12 +45,12 @@ os_version="" os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1) if [[ "${release}" == "centos" ]]; then - if [[ ${os_version} -lt 8 ]]; then + if [[ ${os_version} -lt 7 ]]; then echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1 fi elif [[ "${release}" == "ubuntu" ]]; then - if [[ ${os_version} -lt 20 ]]; then - echo -e "${red}please use Ubuntu 20 or higher version!${plain}\n" && exit 1 + if [[ ${os_version} -lt 18 ]]; then + echo -e "${red}please use Ubuntu 18 or higher version!${plain}\n" && exit 1 fi elif [[ "${release}" == "fedora" ]]; then @@ -59,8 +59,8 @@ elif [[ "${release}" == "fedora" ]]; then fi elif [[ "${release}" == "debian" ]]; then - if [[ ${os_version} -lt 10 ]]; then - echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1 + if [[ ${os_version} -lt 8 ]]; then + echo -e "${red} Please use Debian 8 or higher ${plain}\n" && exit 1 fi else echo -e "${red}Failed to check the OS version, please contact the author!${plain}" && exit 1 From 14e8f6cbfab8de68d5dc1d0b0b3f5c955d48f3ec Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 18 Mar 2023 13:38:37 +0330 Subject: [PATCH 6/8] Update x-ui.sh Fix OS Version --- x-ui.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-ui.sh b/x-ui.sh index 0ae5e2dd..990c8ea9 100644 --- a/x-ui.sh +++ b/x-ui.sh @@ -39,12 +39,12 @@ os_version="" os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1) if [[ "${release}" == "centos" ]]; then - if [[ ${os_version} -lt 8 ]]; then - echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1 + if [[ ${os_version} -lt 7 ]]; then + echo -e "${red} Please use CentOS 7 or higher ${plain}\n" && exit 1 fi elif [[ "${release}" == "ubuntu" ]]; then - if [[ ${os_version} -lt 20 ]]; then - echo -e "${red}please use Ubuntu 20 or higher version!${plain}\n" && exit 1 + if [[ ${os_version} -lt 18 ]]; then + echo -e "${red}please use Ubuntu 18 or higher version!${plain}\n" && exit 1 fi elif [[ "${release}" == "fedora" ]]; then From 268e8c7eb17e0f921b498cbc7a34ada50e86f13c Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 18 Mar 2023 13:39:54 +0330 Subject: [PATCH 7/8] Update x-ui.sh Fix Debian 8 Support --- x-ui.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-ui.sh b/x-ui.sh index 990c8ea9..9f27ceff 100644 --- a/x-ui.sh +++ b/x-ui.sh @@ -53,8 +53,8 @@ elif [[ "${release}" == "fedora" ]]; then fi elif [[ "${release}" == "debian" ]]; then - if [[ ${os_version} -lt 10 ]]; then - echo -e "${red} Please use Debian 10 or higher ${plain}\n" && exit 1 + if [[ ${os_version} -lt 8 ]]; then + echo -e "${red} Please use Debian 8 or higher ${plain}\n" && exit 1 fi fi From 8bba9f3c258437a039eb04f9baeb2e1ab13b2066 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 18 Mar 2023 13:43:54 +0330 Subject: [PATCH 8/8] Update install.sh Fix s390x --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index 76898b4d..178945f4 100755 --- a/install.sh +++ b/install.sh @@ -29,6 +29,8 @@ if [[ $arch == "x86_64" || $arch == "x64" || $arch == "amd64" ]]; then arch="amd64" elif [[ $arch == "aarch64" || $arch == "arm64" ]]; then arch="arm64" +elif [[ $arch == "s390x" ]]; then + arch="s390x" else arch="amd64" echo -e "${red} Failed to check system arch, will use default arch: ${arch}${plain}"