From e54177e8bfe706f014860264f9cb6db956950568 Mon Sep 17 00:00:00 2001 From: putyy Date: Fri, 10 Jan 2025 17:33:05 +0800 Subject: [PATCH] =?UTF-8?q?Linux=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes build/README.md | 95 +++++++++++------- build/linux/.gitignore | 5 + build/linux/AppImage/.DirIcon | 1 + build/linux/AppImage/res-downloader.desktop | 8 ++ build/linux/AppImage/usr/.DS_Store | Bin 0 -> 6148 bytes build/linux/AppImage/usr/bin/.gitkeep | 0 .../share/applications/res-downloader.desktop | 8 ++ .../hicolor/256x256/apps/res-downloader.png | Bin 0 -> 45882 bytes build/linux/Debian/.DS_Store | Bin 0 -> 6148 bytes build/linux/Debian/DEBIAN/.DS_Store | Bin 0 -> 6148 bytes build/linux/Debian/DEBIAN/.control | 9 ++ build/linux/Debian/usr/local/.DS_Store | Bin 0 -> 6148 bytes build/linux/Debian/usr/local/bin/.gitkeep | 0 .../share/applications/res-downloader.desktop | 8 ++ .../hicolor/256x256/apps/res-downloader.png | Bin 0 -> 45882 bytes build/linux/dockerfile | 29 ++++++ build/linux/res-downloader.desktop | 9 -- build/windows/installer/wails_tools.nsh | 2 +- core/app.go | 8 +- core/config.go | 4 +- core/system_darwin.go | 2 +- core/system_linux.go | 54 +++++++--- wails.json | 2 +- 24 files changed, 178 insertions(+), 66 deletions(-) create mode 100644 .DS_Store create mode 100644 build/linux/.gitignore create mode 120000 build/linux/AppImage/.DirIcon create mode 100644 build/linux/AppImage/res-downloader.desktop create mode 100644 build/linux/AppImage/usr/.DS_Store create mode 100644 build/linux/AppImage/usr/bin/.gitkeep create mode 100644 build/linux/AppImage/usr/share/applications/res-downloader.desktop create mode 100644 build/linux/AppImage/usr/share/icons/hicolor/256x256/apps/res-downloader.png create mode 100644 build/linux/Debian/.DS_Store create mode 100644 build/linux/Debian/DEBIAN/.DS_Store create mode 100644 build/linux/Debian/DEBIAN/.control create mode 100644 build/linux/Debian/usr/local/.DS_Store create mode 100644 build/linux/Debian/usr/local/bin/.gitkeep create mode 100644 build/linux/Debian/usr/share/applications/res-downloader.desktop create mode 100644 build/linux/Debian/usr/share/icons/hicolor/256x256/apps/res-downloader.png create mode 100644 build/linux/dockerfile delete mode 100644 build/linux/res-downloader.desktop diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 x86_64 +```bash +docker build --network host -f build/linux/dockerfile -t res-downloader-amd-linux . +docker run -it --name res-downloader-amd-build --network host --privileged -v ./:/www/res-downloader res-downloader-amd-linux /bin/bash +# 容器内 +cd /www/res-downloader +wails build + +# 打包debian +cp build/bin/res-downloader build/linux/Debian/usr/local/bin/ +echo "$(cat build/linux/Debian/DEBIAN/.control | sed -e "s/{{Version}}/$(jq -r '.info.productVersion' wails.json)/g")" > build/linux/Debian/DEBIAN/control +dpkg-deb --build ./build/linux/Debian build/bin/res-downloader_$(jq -r '.info.productVersion' wails.json)_x64.deb + +# 打包AppImage +cp build/bin/res-downloader build/linux/AppImage/usr/bin/ + +# 复制WebKit相关文件 +pushd build/linux/AppImage +find /usr/lib* -name WebKitNetworkProcess -exec mkdir -p $(dirname '{}') \; -exec cp --parents '{}' "." \; || true +find /usr/lib* -name WebKitWebProcess -exec mkdir -p $(dirname '{}') \; -exec cp --parents '{}' "." \; || true +find /usr/lib* -name libwebkit2gtkinjectedbundle.so -exec mkdir -p $(dirname '{}') \; -exec cp --parents '{}' "." \; || true +popd + +wget -O ./build/bin/appimagetool-x86_64.AppImage https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage +chmod +x ./build/bin/appimagetool-x86_64.AppImage +./build/bin/appimagetool-x86_64.AppImage build/linux/AppImage build/bin/res-downloader_$(jq -r '.info.productVersion' wails.json)_x64.AppImage +``` + +> arm64 +```bash +# arm +docker build --platform linux/arm64 --network host -f build/linux/dockerfile -t res-downloader-arm-linux . +docker run --platform linux/arm64 -it --name res-downloader-arm-build --network host --privileged -v ./:/www/res-downloader res-downloader-arm-linux /bin/bash +# 容器内 +cd /www/res-downloader +wails build + +# 打包debian +cp build/bin/res-downloader build/linux/Debian/usr/local/bin/ +echo "$(cat build/linux/Debian/DEBIAN/.control | sed -e "s/{{Version}}/$(jq -r '.info.productVersion' wails.json)/g")" > build/linux/Debian/DEBIAN/control +dpkg-deb --build ./build/linux/Debian build/bin/res-downloader_$(jq -r '.info.productVersion' wails.json)_arm.deb +``` + + +> ArchLinux环境 ```bash git clone https://github.com/putyy/res-downloader.git cd res-downloader @@ -18,30 +69,4 @@ cd build sudo install -Dvm755 bin/res-downloader -t /usr/bin sudo install -Dvm644 appicon.png /usr/share/icons/hicolor/512x512/apps/res-downloader.png sudo install -Dvm644 linux/res-downloader.desktop /usr/share/applications/res-downloader.desktop -``` - -## Mac - -The `darwin` directory holds files specific to Mac builds. -These may be customised and used as part of the build. To return these files to the default state, simply delete them -and -build with `wails build`. - -The directory contains the following files: - -- `Info.plist` - the main plist file used for Mac builds. It is used when building using `wails build`. -- `Info.dev.plist` - same as the main plist file but used when building using `wails dev`. - -## Windows - -The `windows` directory contains the manifest and rc files used when building with `wails build`. -These may be customised for your application. To return these files to the default state, simply delete them and -build with `wails build`. - -- `icon.ico` - The icon used for the application. This is used when building using `wails build`. If you wish to - use a different icon, simply replace this file with your own. If it is missing, a new `icon.ico` file - will be created using the `appicon.png` file in the build directory. -- `installer/*` - The files used to create the Windows installer. These are used when building using `wails build`. -- `info.json` - Application details used for Windows builds. The data here will be used by the Windows installer, - as well as the application itself (right click the exe -> properties -> details) -- `wails.exe.manifest` - The main application manifest file. +``` \ No newline at end of file diff --git a/build/linux/.gitignore b/build/linux/.gitignore new file mode 100644 index 0000000..8b4712d --- /dev/null +++ b/build/linux/.gitignore @@ -0,0 +1,5 @@ +!.gitkeep +debian/usr/local/bin/* +debian/DEBIAN/control +AppImage/usr/bin/* +AppImage/usr/lib/* diff --git a/build/linux/AppImage/.DirIcon b/build/linux/AppImage/.DirIcon new file mode 120000 index 0000000..d2605dd --- /dev/null +++ b/build/linux/AppImage/.DirIcon @@ -0,0 +1 @@ +res-downloader.png \ No newline at end of file diff --git a/build/linux/AppImage/res-downloader.desktop b/build/linux/AppImage/res-downloader.desktop new file mode 100644 index 0000000..2c79eb9 --- /dev/null +++ b/build/linux/AppImage/res-downloader.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=res-downloader +Comment=This is a high-value and high-performance and diverse resource downloader called res-downloader +Exec=/usr/bin/res-downloader +Icon=/usr/share/icons/hicolor/256x256/apps/res-downloader +Terminal=false +Categories=Utility; \ No newline at end of file diff --git a/build/linux/AppImage/usr/.DS_Store b/build/linux/AppImage/usr/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2bf667395c3be2ad1c70ee3455fd18b1ce374993 GIT binary patch literal 6148 zcmeHKF=_)r43u&%3~5}Z+%NbCi*a7y4+LWf0ds~xQeTyKa8-cDPyjhU_CMEhV^8lTe_c2^A1dB*E_zKqYgTV&rRSUcF!UTl0n%<2a_ zgFRlcw@(o(1*Cu!kOERb3j9_9^laMtK2cE$NC7GEtpL9d4NmNZQ(}BN5Ml%Xu0V%j z9kT?mkpT9>DG?0JvlN)6UL%HQIrvt2y>Lp*a`U(u=hV$!6N<;};9I1d_e4c0AO+?M z47uH~|3AWinE&TR+DQQ^@UIl`)&8*G;gzblE?$nkw!xp^%=v`Vu#OUhXve^4$JnqP eKSWaIHLmfz7fy*$4nE3(`Wc`uGAZ!a3VZ=4yBA9U literal 0 HcmV?d00001 diff --git a/build/linux/AppImage/usr/bin/.gitkeep b/build/linux/AppImage/usr/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/build/linux/AppImage/usr/share/applications/res-downloader.desktop b/build/linux/AppImage/usr/share/applications/res-downloader.desktop new file mode 100644 index 0000000..2c79eb9 --- /dev/null +++ b/build/linux/AppImage/usr/share/applications/res-downloader.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=res-downloader +Comment=This is a high-value and high-performance and diverse resource downloader called res-downloader +Exec=/usr/bin/res-downloader +Icon=/usr/share/icons/hicolor/256x256/apps/res-downloader +Terminal=false +Categories=Utility; \ No newline at end of file diff --git a/build/linux/AppImage/usr/share/icons/hicolor/256x256/apps/res-downloader.png b/build/linux/AppImage/usr/share/icons/hicolor/256x256/apps/res-downloader.png new file mode 100644 index 0000000000000000000000000000000000000000..cf244befe3f30addf2dd79d27009d55b47a4b889 GIT binary patch literal 45882 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 V)1N5lfmGo0l9rGcuM#!%|3C50)gb@? literal 0 HcmV?d00001 diff --git a/build/linux/Debian/.DS_Store b/build/linux/Debian/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..379d63a1b3112966e2e8179a4179f5e16e517af8 GIT binary patch literal 6148 zcmeHKyKciU3?v()FwiAqM*TwnKsB79OBVk?hX7fM1PIX1p88$+v>YExs&;dh;0RDB zQ9KE{!8Aoghp+vs$XY~txS{;m(3tci1=e>yOD3jpj8cEj9z z31G1RuqMudh`=H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0jPcPT?la~x#vEvf9F-bDcWr3PCL?kjBb!C3iop7aW;XWM z0l&S$B9<^272m%5TgZsV4@AfprEN#&q%gzkpw+_L09{LKZPV z4E!?&cyk<#N3bY+w*FWip0xtn12h!OD^URfeeDte2JRzW9W-%)I^_8lOM^HH`gJ)V OT?8~C)DZ)}z`z#*dP!jb literal 0 HcmV?d00001 diff --git a/build/linux/Debian/usr/local/bin/.gitkeep b/build/linux/Debian/usr/local/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/build/linux/Debian/usr/share/applications/res-downloader.desktop b/build/linux/Debian/usr/share/applications/res-downloader.desktop new file mode 100644 index 0000000..7f10df5 --- /dev/null +++ b/build/linux/Debian/usr/share/applications/res-downloader.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=res-downloader +Comment=This is a high-value and high-performance and diverse resource downloader called res-downloader +Exec=/usr/local/bin/res-downloader +Icon=/usr/share/icons/hicolor/256x256/apps/res-downloader.png +Terminal=false +Categories=Utility; \ No newline at end of file diff --git a/build/linux/Debian/usr/share/icons/hicolor/256x256/apps/res-downloader.png b/build/linux/Debian/usr/share/icons/hicolor/256x256/apps/res-downloader.png new file mode 100644 index 0000000000000000000000000000000000000000..cf244befe3f30addf2dd79d27009d55b47a4b889 GIT binary patch literal 45882 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 V)1N5lfmGo0l9rGcuM#!%|3C50)gb@? literal 0 HcmV?d00001 diff --git a/build/linux/dockerfile b/build/linux/dockerfile new file mode 100644 index 0000000..ddc5ec7 --- /dev/null +++ b/build/linux/dockerfile @@ -0,0 +1,29 @@ +FROM golang:1.23.4-bookworm + +WORKDIR / + +RUN apt-get update && \ + apt-get install -y --fix-missing \ + build-essential \ + git \ + jq \ + kmod \ + fuse \ + libgtk-3-dev \ + libwebkit2gtk-4.0-dev \ + nsis \ + wget \ + curl \ + gnupg2 \ + lsb-release \ + libfuse-dev \ + libfuse2 \ + file \ + && rm -rf /var/lib/apt/lists/* + +RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - \ + && apt-get install -y nodejs + +RUN go install github.com/wailsapp/wails/v2/cmd/wails@latest + +RUN wails doctor diff --git a/build/linux/res-downloader.desktop b/build/linux/res-downloader.desktop deleted file mode 100644 index f128268..0000000 --- a/build/linux/res-downloader.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Categories= -Comment=支持视频号、小程序、抖音、快手、小红书、直播流、酷狗、QQ音乐等常见网络资源! -Exec=res-downloader -Icon=res-downloader.png -Name=res-downloader -Terminal=false -Type=Application - diff --git a/build/windows/installer/wails_tools.nsh b/build/windows/installer/wails_tools.nsh index 2a2e0b8..e60a30f 100644 --- a/build/windows/installer/wails_tools.nsh +++ b/build/windows/installer/wails_tools.nsh @@ -14,7 +14,7 @@ !define INFO_PRODUCTNAME "res-downloader" !endif !ifndef INFO_PRODUCTVERSION - !define INFO_PRODUCTVERSION "3.0.1" + !define INFO_PRODUCTVERSION "3.0.2" !endif !ifndef INFO_COPYRIGHT !define INFO_COPYRIGHT "Copyright © 2023" diff --git a/core/app.go b/core/app.go index 4d13051..7e91b63 100644 --- a/core/app.go +++ b/core/app.go @@ -42,7 +42,7 @@ func GetApp(assets embed.FS) *App { appOnce = &App{ assets: assets, AppName: "res-downloader", - Version: "3.0.1", + Version: "3.0.2", Description: "res-downloader是一款集网络资源嗅探 + 高速下载功能于一体的软件,高颜值、高性能和多样化,提供个人用户下载自己上传到各大平台的网络资源功能!", Copyright: "Copyright © 2023~" + strconv.Itoa(time.Now().Year()), PublicCrt: []byte(` @@ -142,10 +142,12 @@ func (a *App) OnExit() { func (a *App) installCert() { if res, err := systemOnce.installCert(); err != nil { if sysRuntime.GOOS == "darwin" { - DialogErr("证书安装失败,请手动执行安装命令(已复制到剪切板),err:" + err.Error() + ", " + res) - _ = runtime.ClipboardSetText(appOnce.ctx, `echo "输入本地登录密码" && sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "`+systemOnce.CertFile+`" && touch `+a.LockFile+` && echo "安装完成"`) + _ = runtime.ClipboardSetText(appOnce.ctx, `echo "输入本地登录密码" && sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "`+systemOnce.CertFile+`" && touch `+a.LockFile+` && echo "安装完成"`) + DialogErr("证书安装失败,请打开终端执行安装(命令已复制到剪切板),err:" + err.Error() + ", " + res) } else if sysRuntime.GOOS == "windows" && strings.Contains(err.Error(), "Access is denied.") { DialogErr("首次启用本软件,请使用鼠标右键选择以管理员身份运行") + } else if sysRuntime.GOOS == "linux" && strings.Contains(err.Error(), "Access is denied.") { + DialogErr("证书路径: " + systemOnce.CertFile + ", 请手动安装,安装完成后请执行: touch" + a.LockFile + " err:" + err.Error() + ", " + res) } else { globalLogger.Esg(err, res) DialogErr("err:" + err.Error() + ", " + res) diff --git a/core/config.go b/core/config.go index 4aea8b5..f58d0c3 100644 --- a/core/config.go +++ b/core/config.go @@ -37,7 +37,7 @@ func initConfig() *Config { "OpenProxy": false, "DownloadProxy": false, "AutoProxy": false, - "WxAction": false, + "WxAction": true, "TaskNumber": __TaskNumber__, "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36" } @@ -59,6 +59,8 @@ func initConfig() *Config { func (c *Config) setConfig(config Config) { oldProxy := c.UpstreamProxy + c.Host = config.Host + c.Port = config.Port c.Theme = config.Theme c.Quality = config.Quality c.SaveDirectory = config.SaveDirectory diff --git a/core/system_darwin.go b/core/system_darwin.go index 313891f..7fd9f83 100644 --- a/core/system_darwin.go +++ b/core/system_darwin.go @@ -95,7 +95,7 @@ func (s *SystemSetup) installCert() (string, error) { return "", err } - getPasswordCmd := exec.Command("osascript", "-e", `tell app "System Events" to display dialog "请输入密码,用于安装证书:" default answer "" with hidden answer`, "-e", `text returned of result`) + getPasswordCmd := exec.Command("osascript", "-e", `tell app "System Events" to display dialog "请输入你的电脑密码,用于安装证书文件:" default answer "" with hidden answer`, "-e", `text returned of result`) passwordOutput, err := getPasswordCmd.Output() if err != nil { return string(passwordOutput), err diff --git a/core/system_linux.go b/core/system_linux.go index db4e534..c2a19e1 100644 --- a/core/system_linux.go +++ b/core/system_linux.go @@ -3,7 +3,7 @@ package core import ( - "os" + "fmt" "os/exec" ) @@ -15,13 +15,18 @@ func (s *SystemSetup) setProxy() error { {"gsettings", "set", "org.gnome.system.proxy.https", "host", "127.0.0.1"}, {"gsettings", "set", "org.gnome.system.proxy.https", "port", globalConfig.Port}, } - + is := false for _, cmd := range commands { if err := exec.Command(cmd[0], cmd[1:]...).Run(); err != nil { - return err + fmt.Println(err) + } else { + is = true } } - return nil + if is { + return nil + } + return fmt.Errorf("Failed to activate proxy") } func (s *SystemSetup) unsetProxy() error { @@ -30,21 +35,40 @@ func (s *SystemSetup) unsetProxy() error { } func (s *SystemSetup) installCert() (string, error) { - certData, err := s.initCert() - if err != nil { - return "", err - } - destFile := "/usr/share/ca-certificates/trust-source/" + appOnce.AppName + ".crt" - - err = os.WriteFile(destFile, certData, 0644) + _, err := s.initCert() if err != nil { return "", err } - cmd := exec.Command("sudo", "update-ca-trust") - output, err := cmd.CombinedOutput() - if err != nil { - return string(output), err + actions := [][]string{ + {"/usr/local/share/ca-certificates/", "update-ca-certificates"}, + {"/usr/share/ca-certificates/trust-source/anchors/", "update-ca-trust"}, + {"/usr/share/ca-certificates/trust-source/anchors/", "trust extract-compat"}, + {"/etc/pki/ca-trust/source/anchors/", "update-ca-trust"}, + {"/etc/ssl/ca-certificates/", "update-ca-certificates"}, } + + is := false + + for _, action := range actions { + dir := action[0] + if err := exec.Command("sudo", "cp", "-f", s.CertFile, dir+appOnce.AppName+".crt").Run(); err != nil { + fmt.Printf("Failed to copy to %s: %v\n", dir, err) + continue + } + + cmd := action[1] + if err := exec.Command("sudo", cmd).Run(); err != nil { + fmt.Printf("Failed to refresh certificates using %s: %v\n", cmd, err) + continue + } + + is = true + } + + if !is { + return "", fmt.Errorf("Certificate installation failed") + } + return "", nil } diff --git a/wails.json b/wails.json index 5b9fa52..d104dbc 100644 --- a/wails.json +++ b/wails.json @@ -13,7 +13,7 @@ "info": { "companyName": "res-downloader", "productName": "res-downloader", - "productVersion": "3.0.1", + "productVersion": "3.0.2", "copyright": "Copyright © 2023", "comments": "This is a high-value, high-performance, and diverse resource downloader called res-downloader." }