Skip to content

addpkg: flclash#4682

Merged
RocketMaDev merged 8 commits into
archlinuxcn:masterfrom
dongfengweixiao:flclash
Apr 9, 2026
Merged

addpkg: flclash#4682
RocketMaDev merged 8 commits into
archlinuxcn:masterfrom
dongfengweixiao:flclash

Conversation

@dongfengweixiao

@dongfengweixiao dongfengweixiao commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

该应用编译后可以运行,但是在主页面一直显示核心服务无法连接。ps 命令可以看到两个进程都正常启动:

ps -e | grep Fl
1544050 ?        00:00:02 FlClash
1544267 ?        00:00:00 FlClashCore

对比生成的 FlClashCore,相较于aur中的flclash-bin,稍微大了一些。

namcap 运行输出如下:

flclash W: ELF file ('usr/lib/flclash/FlClashCore') lacks FULL RELRO, check LDFLAGS.
flclash W: ELF file ('usr/lib/flclash/lib/libapp.so') lacks FULL RELRO, check LDFLAGS.
flclash W: ELF file ('usr/lib/flclash/lib/libquickjs_c_bridge_plugin.so') lacks FULL RELRO, check LDFLAGS.
flclash W: ELF file ('usr/lib/flclash/FlClashCore') lacks PIE.
flclash W: Unused shared library '/usr/lib/libdl.so.2' by file ('usr/lib/flclash/lib/libflutter_linux_gtk.so')
flclash W: Unused shared library '/usr/lib/libpthread.so.0' by file ('usr/lib/flclash/lib/libflutter_linux_gtk.so')
flclash W: Dependency bash detected and implicitly satisfied (programs ['bash'] needed in scripts ['usr/bin/flclash'])
flclash W: Dependency fontconfig detected and implicitly satisfied (libraries ['usr/lib/libfontconfig.so.1'] needed in files ['usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency libstdc++ detected and implicitly satisfied (libraries ['usr/lib/libstdc++.so.6'] needed in files ['usr/lib/flclash/lib/libscreen_retriever_linux_plugin.so', 'usr/lib/flclash/lib/libtray_manager_plugin.so', 'usr/lib/flclash/lib/libgtk_plugin.so', 'usr/lib/flclash/lib/libquickjs_c_bridge_plugin.so', 'usr/lib/flclash/FlClash', 'usr/lib/flclash/lib/libwindow_manager_plugin.so', 'usr/lib/flclash/lib/libfile_selector_linux_plugin.so', 'usr/lib/flclash/lib/libflutter_js_plugin.so', 'usr/lib/flclash/lib/libhotkey_manager_linux_plugin.so', 'usr/lib/flclash/lib/liburl_launcher_linux_plugin.so', 'usr/lib/flclash/lib/libdynamic_color_plugin.so'])
flclash W: Dependency glibc detected and implicitly satisfied (libraries ['usr/lib/libpthread.so.0', 'usr/lib/libdl.so.2', 'usr/lib/libc.so.6', 'usr/lib/libm.so.6', 'usr/lib/ld-linux-x86-64.so.2'] needed in files ['usr/lib/flclash/lib/libscreen_retriever_linux_plugin.so', 'usr/lib/flclash/lib/libtray_manager_plugin.so', 'usr/lib/flclash/lib/libgtk_plugin.so', 'usr/lib/flclash/lib/libquickjs_c_bridge_plugin.so', 'usr/lib/flclash/FlClash', 'usr/lib/flclash/lib/libwindow_manager_plugin.so', 'usr/lib/flclash/lib/libfile_selector_linux_plugin.so', 'usr/lib/flclash/lib/libflutter_js_plugin.so', 'usr/lib/flclash/lib/libhotkey_manager_linux_plugin.so', 'usr/lib/flclash/lib/libsqlite3_flutter_libs_plugin.so', 'usr/lib/flclash/lib/liburl_launcher_linux_plugin.so', 'usr/lib/flclash/lib/libdynamic_color_plugin.so', 'usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency cairo detected and implicitly satisfied (libraries ['usr/lib/libcairo.so.2'] needed in files ['usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency libepoxy detected and implicitly satisfied (libraries ['usr/lib/libepoxy.so.0'] needed in files ['usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency libgcc detected and implicitly satisfied (libraries ['usr/lib/libgcc_s.so.1'] needed in files ['usr/lib/flclash/lib/libscreen_retriever_linux_plugin.so', 'usr/lib/flclash/lib/libtray_manager_plugin.so', 'usr/lib/flclash/lib/libgtk_plugin.so', 'usr/lib/flclash/lib/libquickjs_c_bridge_plugin.so', 'usr/lib/flclash/FlClash', 'usr/lib/flclash/lib/libwindow_manager_plugin.so', 'usr/lib/flclash/lib/libfile_selector_linux_plugin.so', 'usr/lib/flclash/lib/libflutter_js_plugin.so', 'usr/lib/flclash/lib/libhotkey_manager_linux_plugin.so', 'usr/lib/flclash/lib/liburl_launcher_linux_plugin.so', 'usr/lib/flclash/lib/libdynamic_color_plugin.so'])
flclash W: Dependency at-spi2-core detected and implicitly satisfied (libraries ['usr/lib/libatk-1.0.so.0'] needed in files ['usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency pango detected and implicitly satisfied (libraries ['usr/lib/libpangocairo-1.0.so.0', 'usr/lib/libpango-1.0.so.0'] needed in files ['usr/lib/flclash/lib/libflutter_linux_gtk.so'])
flclash W: Dependency glib2 detected and implicitly satisfied (libraries ['usr/lib/libgio-2.0.so.0', 'usr/lib/libgobject-2.0.so.0', 'usr/lib/libglib-2.0.so.0'] needed in files ['usr/lib/flclash/lib/libwindow_manager_plugin.so', 'usr/lib/flclash/lib/libfile_selector_linux_plugin.so', 'usr/lib/flclash/lib/libflutter_js_plugin.so', 'usr/lib/flclash/lib/libhotkey_manager_linux_plugin.so', 'usr/lib/flclash/lib/libscreen_retriever_linux_plugin.so', 'usr/lib/flclash/lib/libtray_manager_plugin.so', 'usr/lib/flclash/lib/libgtk_plugin.so', 'usr/lib/flclash/FlClash', 'usr/lib/flclash/lib/liburl_launcher_linux_plugin.so', 'usr/lib/flclash/lib/libdynamic_color_plugin.so', 'usr/lib/flclash/lib/libflutter_linux_gtk.so'])

#4642

@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

将源码来源从压缩包改为使用git编译后,内核工作了。

Comment thread archlinuxcn/flclash/PKGBUILD Outdated
@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

core不支持在CGO_ENABLED为1时构建linux产物,因此保留CGO_ENABLED为0。
在该基础上添加了GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw",同时删除了-ldflags="-w -s"

@Xeonacid

Xeonacid commented Apr 7, 2026

Copy link
Copy Markdown
Member

namcap指出的implicitly satisfied的dependency请显式依赖,避免之后间接依赖关系被破坏导致无法正常工作

Comment thread archlinuxcn/flclash/PKGBUILD Outdated
@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

namcap指出的implicitly satisfied的dependency请显式依赖,避免之后间接依赖关系被破坏导致无法正常工作

libgcc/glibc/glib2/libstdc++属于core,不写入PKGBUILD
fontconfig/cairo/at-spi2-core/pango/libepoxy属于extra,写入PKGBUILD

意向如何?

@lilydjwg

lilydjwg commented Apr 7, 2026

Copy link
Copy Markdown
Member

libgcc/glibc/glib2/libstdc++属于core,不写入PKGBUILD

啊?core又不是base——你把整个core仓库里的软件包都装上了吗?

@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

libgcc/glibc/glib2/libstdc++属于core,不写入PKGBUILD

啊?core又不是base——你把整个core仓库里的软件包都装上了吗?

了解。我会提交修改,将所有的implicitly satisfied dependency都写入到 PKGBUILD。

@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

libgcc/glibc/glib2/libstdc++属于core,不写入PKGBUILD

啊?core又不是base——你把整个core仓库里的软件包都装上了吗?

不过我有一个疑问,linux下的flutter应用的外壳是使用的gtk3,gtk3依赖了
at-spi2-core/cairo/fontconfig/glib2/glibc/libepoxy/pango
那是不是在flutter的PKGBUILD中这些依赖就不需要再包含了?

@Xeonacid

Xeonacid commented Apr 7, 2026

Copy link
Copy Markdown
Member

不过我有一个疑问,linux下的flutter应用的外壳是使用的gtk3,gtk3依赖了 at-spi2-core/cairo/fontconfig/glib2/glibc/libepoxy/pango 那是不是在flutter的PKGBUILD中这些依赖就不需要再包含了?

应当全部显式依赖,现在gtk3依赖了他们不代表以后会依赖。

Comment thread archlinuxcn/flclash/PKGBUILD Outdated
@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

最新的提交,删除了source中git子模块的branch,prepare阶段设置子模块的命令参考wiki重写了以保持与文档的一致。

@RocketMaDev

Copy link
Copy Markdown
Contributor

无法编译...

/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/tray_manager/linux/tray_manager_plugin.cc:118:17: warning: 'app_indicator_new' is deprecated [-Wdeprecated-declarations]
/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/hotkey_manager_linux/linux/hotkey_manager_linux_plugin.cc:41:7: error: variable 'identifier' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/hotkey_manager_linux/linux/hotkey_manager_linux_plugin.cc:112:7: error: variable 'keystring' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
/tmp/flclash/src/flclash/build/linux/x64/release/_deps/sqlite3-src/sqlite3.c:126906:9: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
/tmp/flclash/src/flclash/build/linux/x64/release/_deps/sqlite3-src/sqlite3.c:132936:11: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]

由于项目中存在CMakeLists.txt,建议按照 https://wiki.archlinuxcn.org/wiki/CMake_%E8%BD%AF%E4%BB%B6%E6%89%93%E5%8C%85%E5%87%86%E5%88%99 来打包,直接删除所有预设的选项,使用makepkg的flags

@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

无法编译...

/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/tray_manager/linux/tray_manager_plugin.cc:118:17: warning: 'app_indicator_new' is deprecated [-Wdeprecated-declarations]
/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/hotkey_manager_linux/linux/hotkey_manager_linux_plugin.cc:41:7: error: variable 'identifier' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
/tmp/flclash/src/flclash/linux/flutter/ephemeral/.plugin_symlinks/hotkey_manager_linux/linux/hotkey_manager_linux_plugin.cc:112:7: error: variable 'keystring' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
/tmp/flclash/src/flclash/build/linux/x64/release/_deps/sqlite3-src/sqlite3.c:126906:9: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
/tmp/flclash/src/flclash/build/linux/x64/release/_deps/sqlite3-src/sqlite3.c:132936:11: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]

由于项目中存在CMakeLists.txt,建议按照 https://wiki.archlinuxcn.org/wiki/CMake_%E8%BD%AF%E4%BB%B6%E6%89%93%E5%8C%85%E5%87%86%E5%88%99 来打包,直接删除所有预设的选项,使用makepkg的flags

这个编译错误是已知的,很久以前我就已经提交了一个补丁,但是作者没有合并:leanflutter/hotkey_manager#69

我的家目录下的.pub-cache之前修改过,所以之前编译的时候没有提示该错误。
新的提交增加了patch,prepare阶段通过pub get之后,将hotkey_manager的修改写入。

Comment thread archlinuxcn/flclash/PKGBUILD Outdated
@dongfengweixiao

Copy link
Copy Markdown
Contributor Author

经考虑,使用补丁修改pub-cache下的文件虽然可行,但是太奇怪了。
遂采用dependency_overrides的形式,使用本地的hotkey_manager作为依赖,直接修改本地的hotkey_manager源码,避免修改pub-cache下的文件。
如果hotkey_manager将来解决了该问题,再将相关补丁删除。

Comment thread archlinuxcn/flclash/PKGBUILD Outdated
Comment thread archlinuxcn/flclash/PKGBUILD Outdated
Comment thread archlinuxcn/flclash/PKGBUILD
@RocketMaDev RocketMaDev merged commit 82f2723 into archlinuxcn:master Apr 9, 2026
1 check passed
@dongfengweixiao dongfengweixiao deleted the flclash branch April 9, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants