From f43c059f3747abe701885a9caba3140ef11c53c3 Mon Sep 17 00:00:00 2001 From: yihong0618 Date: Tue, 29 Mar 2022 08:57:05 +0800 Subject: [PATCH] feat: support arch linux for different root prefix --- user/config_gnutls.go | 8 +++++++- user/config_nspr.go | 8 +++++++- user/config_openssl.go | 8 +++++++- user/const.go | 5 +++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/user/config_gnutls.go b/user/config_gnutls.go index 37a786ef4..befe5e9ac 100644 --- a/user/config_gnutls.go +++ b/user/config_gnutls.go @@ -6,6 +6,7 @@ package user import ( "os" + "path/filepath" "strings" ) @@ -48,7 +49,12 @@ func (this *GnutlsConfig) Check() error { soPath, e := getDynPathByElf(this.Curlpath, "libgnutls.so") if e != nil { //this.logger.Printf("get bash:%s dynamic library error:%v.\n", bash, e) - this.Gnutls = "/lib/x86_64-linux-gnu/libgnutls.so.30" + _, e = os.Stat(X86_BINARY_PREFIX) + prefix := X86_BINARY_PREFIX + if e != nil { + prefix = OTHERS_BINARY_PREFIX + } + this.Gnutls = filepath.Join(prefix, "libgnutls.so.30") this.elfType = ELF_TYPE_SO _, e = os.Stat(this.Gnutls) if e != nil { diff --git a/user/config_nspr.go b/user/config_nspr.go index cc3315ddd..389889a3b 100644 --- a/user/config_nspr.go +++ b/user/config_nspr.go @@ -6,6 +6,7 @@ package user import ( "os" + "path/filepath" "strings" ) @@ -48,7 +49,12 @@ func (this *NsprConfig) Check() error { soPath, e := getDynPathByElf(this.Nsprpath, "libnspr4.so") if e != nil { //this.logger.Printf("get bash:%s dynamic library error:%v.\n", bash, e) - this.Nsprpath = "/lib/x86_64-linux-gnu/libnspr4.so" + _, e = os.Stat(X86_BINARY_PREFIX) + prefix := X86_BINARY_PREFIX + if e != nil { + prefix = OTHERS_BINARY_PREFIX + } + this.Nsprpath = filepath.Join(prefix, "libnspr4.so") //this.Gnutls = "/usr/lib/firefox/libnss3.so" //"/usr/lib/firefox/libnspr4.so" this.elfType = ELF_TYPE_SO diff --git a/user/config_openssl.go b/user/config_openssl.go index ee816bf9b..a3893250d 100644 --- a/user/config_openssl.go +++ b/user/config_openssl.go @@ -6,6 +6,7 @@ package user import ( "os" + "path/filepath" "strings" ) @@ -48,7 +49,12 @@ func (this *OpensslConfig) Check() error { soPath, e := getDynPathByElf(this.Curlpath, "libssl.so") if e != nil { //this.logger.Printf("get bash:%s dynamic library error:%v.\n", bash, e) - this.Openssl = "/lib/x86_64-linux-gnu/libssl.so.1.1" + _, e = os.Stat(X86_BINARY_PREFIX) + prefix := X86_BINARY_PREFIX + if e != nil { + prefix = OTHERS_BINARY_PREFIX + } + this.Openssl = filepath.Join(prefix, "libssl.so.1.1") this.elfType = ELF_TYPE_SO _, e = os.Stat(this.Openssl) if e != nil { diff --git a/user/const.go b/user/const.go index 49837b6f9..0151624c7 100644 --- a/user/const.go +++ b/user/const.go @@ -19,3 +19,8 @@ const ( ELF_TYPE_BIN uint8 = 1 ELF_TYPE_SO uint8 = 2 ) + +const ( + X86_BINARY_PREFIX = "/lib/x86_64-linux-gnu" + OTHERS_BINARY_PREFIX = "/usr/lib" +)