gxde-core-git

LOW
maintainer CharOfString 0 votes scanned 2026-10-09 06:10:33.683041
View on AUR
Why flagged

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: CharOfString <root@charofstring.cc>
2
3pkgname=gxde-core-git
4pkgver=6.0.24.r0.g0000000
5pkgrel=1
6pkgdesc='GXDE OS desktop core components set. Note that X11 is NO longer provided.'
7arch=(x86_64 aarch64)
8url='https://github.com/GXDE-OS'
9license=(GPL-3.0-or-later LGPL-3.0-or-later)
10_mods=(gxde-account-faces gxde-icon-theme deepin-gtk-theme gxde-artwork gxde-wallpapers
11 gxde-default-settings transhell garma gxde-app-installer gxde-app-upgrader
12 gxde-app-uninstaller gxde-shell-tools gxde-sound-theme gxde-polkit-agent
13 dpa-ext-gnomekeyring deepin-installer-reborn deepin-daemon gxde-daemon startgxde
14 deepin-menu gxde-sni-server gxde-dock gxde-globalmenu-service gxde-top-panel-plugins
15 gxde-top-panel gxde-control-center gxde-launcher gxde-session-ui zipu
16 gxde-shell-compressor gxde-compressor rofd gxde-file-manager
17 gxde-file-manager-integration gxde-requ gxde-time-screensaver deepin-screensaver
18 util-dfm deepin-pdfium deepin-service-manager dde-grand-search gxde-terminal)
19declare -A _branch=([gxde-sni-server]=main [gxde-top-panel-plugins]=d20
20 [gxde-file-manager]=char/qt6_migration [gxde-terminal]=dtk6 [rofd]=main)
21depends=(gxde-dtk5-git gxde-dtk2-git gxde-dtk6-git gxde-dtk2-qt6-git gxde-infra-git
22 qt5-base qt5-svg qt5-x11extras qt6-base qt6-5compat qt6-declarative qt6-multimedia
23 qt6-svg qt6-webengine gsettings-qt5 gsettings-qt6 polkit-qt5 polkit-qt6 liblightdm-qt5
24 kcodecs kconfig5 kcoreaddons kcoreaddons5 kcrash kdbusaddons kwindowsystem kwindowsystem5
25 networkmanager-qt layer-shell-qt libdbusmenu-lxqt
26 glib2 gtk3 cairo librsvg gdk-pixbuf2 gdk-pixbuf-xlib fontconfig freetype2 poppler
27 lcms2 openjpeg2 libjpeg-turbo jbig2dec zlib icu libchardet uchardet cjson
28 ffmpeg ffmpegthumbnailer taglib libmediainfo lucene++ alsa-lib libpulse
29 libsecret openssl pam libxcrypt systemd-libs util-linux-libs libgudev libinput libnl
30 udisks2 libisoburn wayland xdotool
31 libx11 libxcb libxcursor libxext libxfixes libxi libxrandr libxss libxtst
32 xcb-util-image xcb-util-wm
33 gcc-libs glibc python python-pydbus python-gobject bash)
34optdepends=('lightdm: display manager for lightdm-deepin-greeter'
35 'accountsservice: user account information for the session and control center')
36provides=(deepin-pdfium deepin-util-dfm deepin-service-manager)
37conflicts=(deepin-gtk-theme deepin-screensaver deepin-daemon deepin-grand-search deepin-tray-loader
38 deepin-util-dfm deepin-sound-theme deepin-service-manager deepin-pdfium
39 deepin-session-ui deepin-session-shell deepin-file-manager deepin-polkit-agent
40 deepin-polkit-agent-ext-gnomekeyring deepin-wallpapers deepin-session deepin-menu)
41makedepends=(git go rust cmake ninja python gettext jq
42 qt5-tools qt6-tools xorg-xcursorgen gtk-update-icon-cache extra-cmake-modules
43 lxqt-build-tools gtest
44 gxde-dtk2widget-dev-git
45 polkit-qt5 polkit-qt6 liblightdm-qt5 gsettings-qt5 gsettings-qt6
46 qt5-declarative qt5-multimedia qt6-5compat qt6-scxml qt6-multimedia qt6-webengine
47 kcoreaddons kcrash kdbusaddons kstatusnotifieritem kwindowsystem networkmanager-qt
48 kcodecs kglobalaccel kwindowsystem5 kcoreaddons5 kconfig5 layer-shell-qt
49 libdbusmenu-lxqt xdotool libxss libxrandr libxtst libxcursor libxkbcommon
50 xcb-util-wm mtdev fontconfig cjson python-pydbus parted
51 libsecret file poppler taglib libwebp ffmpegthumbnailer libisoburn udisks2
52 glibmm libmediainfo lucene++ boost lcms2 openjpeg2 libjpeg-turbo libchardet
53 uchardet libutf8proc icu zlib)
54source=()
55for _m in "${_mods[@]}"; do
56 source+=("$_m::git+$url/$_m.git${_branch[$_m]:+#branch=${_branch[$_m]}}")
57done
58sha256sums=("${_mods[@]/*/SKIP}")
59
60pkgver() {
61 local _count=0 _m
62 for _m in "${_mods[@]}"; do
63 _count=$((_count + $(git -C "$_m" rev-list --count HEAD)))
64 done
65 printf '%s.r%s.g%s' "$(git -C gxde-control-center describe --tags --abbrev=0)" "$_count" \
66 "$(git -C gxde-control-center rev-parse --short=7 HEAD)"
67}
68
69prepare() {
70 local _m _tag
71 for _m in "${_mods[@]}"; do
72 _tag=$(git -C "$_m" describe --tags --abbrev=0)
73 msg2 "$_m -> $_tag"
74 git -C "$_m" checkout -q --detach "refs/tags/$_tag"
75 done
76}
77
78_stage_pcs() {
79 local _f
80 mkdir -p "$srcdir/pc"
81 for _f in "$srcdir"/stage/usr/lib/pkgconfig/*.pc; do
82 [[ -e $_f ]] || continue
83 sed -E "s#(^[a-z_]+=|-I|-L)/usr(/|\$)#\1$srcdir/stage/usr\2#g" "$_f" > "$srcdir/pc/${_f##*/}"
84 done
85}
86
87_cmake() {
88 local _m=$1; shift
89 cmake -S "$_m" -B "build-$_m" -G Ninja \
90 -DCMAKE_INSTALL_PREFIX=/usr \
91 -DCMAKE_INSTALL_LIBDIR=lib \
92 -DCMAKE_PREFIX_PATH="$srcdir/stage/usr" \
93 -DCMAKE_BUILD_TYPE=None \
94 -DBUILD_TESTING=OFF \
95 "$@"
96 cmake --build "build-$_m"
97 DESTDIR="$srcdir/stage" cmake --install "build-$_m"
98 _stage_pcs
99}
100
101_qmake() {
102 local _qm=$1 _m=$2; shift 2
103 mkdir -p "build-$_m"
104 ( cd "build-$_m" && $_qm "../$_m" PREFIX=/usr LIB_INSTALL_DIR=/usr/lib CONFIG+=no_qt_rpath \
105 INCLUDEPATH+="$srcdir/stage/usr/include" LIBS+="-L$srcdir/stage/usr/lib" \
106 QMAKE_CFLAGS_RELEASE="$CFLAGS" QMAKE_CXXFLAGS_RELEASE="$CXXFLAGS" \
107 QMAKE_LFLAGS_RELEASE="$LDFLAGS" "$@" && make )
108 make -C "build-$_m" INSTALL_ROOT="$srcdir/stage" install
109 _stage_pcs
110}
111
112# deepin-daemon 的 make install 依赖 build 目标,package() 中同样需要 GOPATH 模式的环境
113_goenv() {
114 export GO111MODULE=off GOFLAGS="-buildmode=pie -trimpath" GOCACHE="$srcdir/gocache"
115 export CGO_CPPFLAGS="$CPPFLAGS" CGO_CFLAGS="$CFLAGS -std=gnu17" CGO_CXXFLAGS="$CXXFLAGS" CGO_LDFLAGS="$LDFLAGS"
116}
117
118_ver() {
119 sed -n '1s/.*(\([0-9]*:\)\?\([0-9.]*\).*/\2/p' "$1/debian/changelog"
120}
121
122build() {
123 local _stage="$srcdir/stage"
124 export LD_LIBRARY_PATH="$_stage/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
125 export LIBRARY_PATH="$_stage/usr/lib${LIBRARY_PATH:+:$LIBRARY_PATH}"
126 export PKG_CONFIG_PATH="$srcdir/pc${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
127 _goenv
128 export CARGO_HOME="$srcdir/cargo-home" CARGO_NET_OFFLINE=true
129
130 make -C gxde-icon-theme
131 make -C gxde-wallpapers
132 _cmake garma
133 _qmake qmake-qt5 gxde-polkit-agent
134 _qmake qmake-qt5 dpa-ext-gnomekeyring
135
136 local _po
137 for _po in deepin-installer-reborn/src/third_party/timezones/*/deepin-installer-timezones.po; do
138 install -d "build-timezones/$(basename "$(dirname "$_po")")/LC_MESSAGES"
139 msgfmt -o "build-timezones/$(basename "$(dirname "$_po")")/LC_MESSAGES/deepin-installer-timezones.mo" "$_po"
140 done
141
142 make -C deepin-daemon
143 local _d
144 for _d in dock daemon-manager gtk-theme-inject; do
145 cmake -S "gxde-daemon/plugins/$_d" -B "build-gxde-daemon-$_d" -DCMAKE_BUILD_TYPE=None \
146 -DCMAKE_INSTALL_PREFIX=/usr
147 cmake --build "build-gxde-daemon-$_d"
148 done
149 make -C startgxde
150
151 _qmake qmake6 deepin-menu
152 _cmake gxde-sni-server
153 _cmake gxde-dock
154 _cmake gxde-globalmenu-service
155 _cmake gxde-top-panel-plugins
156 # gxde-top-panel 的 CMakeLists 用 `apt --version` 判断是否走 deb.cmake 的安装规则,
157 # 另一分支的规则仍是改名前的文件名(dde-top-panel),这里提供一个 apt 桩让它走 deb.cmake
158 install -Dm755 /dev/stdin "$srcdir/apt-stub/apt" <<< $'#!/bin/sh\necho "apt 0 (build stub)"'
159 PATH="$srcdir/apt-stub:$PATH" _cmake gxde-top-panel
160 _cmake gxde-control-center
161 _cmake gxde-launcher
162 # 与 Debian 一致用 CMake 构建(主工程 Qt5,dde-shutdown 作为 Qt6 ExternalProject);
163 # Arch 的 gsettings-qt5 头文件在 /usr/include/qt5/QGSettings,只传给 Qt5 主工程
164 _cmake gxde-session-ui -DCMAKE_CXX_FLAGS="$CXXFLAGS -I/usr/include/qt5"
165
166 # qttypes 依赖的 cpp crate 有两处与 makepkg 默认选项冲突:
167 # - debug 选项给 RUSTFLAGS 加的 --remap-path-prefix 使宏按改写后的路径匹配,找不到 build.rs 生成的闭包;
168 # - lto 选项给 C/C++ 加的 -flto 使目标文件只含 GIMPLE,宏读不到其中的结构体元数据。
169 ( cd rofd && RUSTFLAGS="$(sed -E 's/--remap-path-prefix=[^ ]*//g' <<< "$RUSTFLAGS")" \
170 CFLAGS="$(sed -E 's/-flto[^ ]*|-ffat-lto-objects//g' <<< "$CFLAGS")" \
171 CXXFLAGS="$(sed -E 's/-flto[^ ]*|-ffat-lto-objects//g' <<< "$CXXFLAGS")" \
172 cargo build --release --offline --locked -p rofd-ffi -p rofd --features rofd/qt-reader )
173 local _rv
174 _rv=$(sed -n 's/^version = "\(.*\)"/\1/p' rofd/crates/rofd-ffi/Cargo.toml | head -1)
175 install -Dm644 rofd/target/release/librofd_ffi.so "$_stage/usr/lib/librofd_ffi.so.$_rv"
176 ln -sf "librofd_ffi.so.$_rv" "$_stage/usr/lib/librofd_ffi.so.${_rv%%.*}"
177 ln -sf "librofd_ffi.so.$_rv" "$_stage/usr/lib/librofd_ffi.so"
178 install -Dm644 rofd/crates/rofd-ffi/include/rofd.h "$_stage/usr/include/rofd.h"
179
180 # Arch 的 KF6 头文件(KCodecs)要求 C++20;-r 让命令行参数传到各子项目
181 _qmake "qmake6 -r" gxde-file-manager VERSION="$(_ver gxde-file-manager)" DISABLE_JEMALLOC=1 \
182 DEFINES+="VERSION=$(_ver gxde-file-manager)" CONFIG+=c++20 \
183 INCLUDEPATH+="$srcdir/stage/usr/include/gxde-dock"
184 _qmake qmake6 gxde-file-manager-integration DAPP_VERSION="$(_ver gxde-file-manager-integration)"
185 _cmake gxde-requ
186 _qmake qmake-qt5 gxde-time-screensaver
187 _cmake deepin-screensaver -DQT_VERSION_MAJOR=6 -DVERSION="$(_ver deepin-screensaver)" \
188 -DAPP_VERSION="$(_ver deepin-screensaver)"
189 _cmake util-dfm -DVERSION="$(_ver util-dfm)"
190 _cmake deepin-pdfium -DVERSION="$(_ver deepin-pdfium)"
191 _cmake deepin-service-manager -DVERSION="$(_ver deepin-service-manager)"
192 # deepin-qdbus-serviceConfig.cmake 写死了 /usr/include/deepin-qdbus-service
193 _cmake dde-grand-search -DVERSION="$(_ver dde-grand-search)" \
194 -DCMAKE_CXX_FLAGS="$CXXFLAGS -I$_stage/usr/include/deepin-qdbus-service"
195 _cmake gxde-terminal -DINSTALL_USER_MANUAL=OFF -DVERSION="$(_ver gxde-terminal)" \
196 -DAPP_VERSION="$(_ver gxde-terminal)"
197}
198
199package() {
200 local _m _d
201 _goenv
202 make -C gxde-account-faces install DESTDIR="$pkgdir"
203 chmod 775 "$pkgdir/var/lib/AccountsService" "$pkgdir/var/lib/AccountsService/icons"
204 install -d "$pkgdir/usr/share/icons"
205 cp -a gxde-icon-theme/{gxde,deepin,gxde-dark,gxde-Sea} "$pkgdir/usr/share/icons/"
206 make -C deepin-gtk-theme install DESTDIR="$pkgdir"
207 cp -a gxde-artwork/etc "$pkgdir/"
208 install -d "$pkgdir/usr/share/wallpapers/deepin" "$pkgdir/var/cache"
209 cp -a gxde-wallpapers/deepin "$pkgdir/usr/share/wallpapers/"
210 cp -a gxde-wallpapers/deepin-community/. gxde-wallpapers/deepin-solidwallpapers/. \
211 "$pkgdir/usr/share/wallpapers/deepin/"
212 cp -a gxde-wallpapers/image-blur "$pkgdir/var/cache/"
213 make -C gxde-default-settings install DESTDIR="$pkgdir"
214 # gxde-default-settings-tuning 子包的 debian/install
215 install -Dm644 gxde-default-settings/tuning/cups-filters/*.pdf -t "$pkgdir/usr/share/deepin-default-settings/cups-filters/"
216 install -Dm644 gxde-default-settings/tuning/google-chrome/*.tar -t "$pkgdir/usr/share/deepin-default-settings/google-chrome/"
217 install -Dm644 gxde-default-settings/tuning/fcitx/*.png -t "$pkgdir/usr/share/deepin-default-settings/fcitx/"
218 for _m in transhell gxde-app-installer gxde-app-upgrader zipu gxde-shell-compressor \
219 gxde-compressor; do
220 cp -a "$_m/src/." "$pkgdir/"
221 done
222 install -d "$pkgdir/usr"
223 cp -a gxde-app-uninstaller/src/usr/. "$pkgdir/usr/"
224 make -C gxde-sound-theme install DESTDIR="$pkgdir"
225
226 install -d "$pkgdir/usr/share/locale"
227 cp -a build-timezones/. "$pkgdir/usr/share/locale/"
228
229 make -C deepin-daemon install DESTDIR="$pkgdir" PAM_MODULE_DIR=usr/lib/security
230 install -Dm755 build-gxde-daemon-dock/gxde-dock-daemon \
231 "$pkgdir/usr/libexec/gxde-daemon/dock/gxde-dock-daemon"
232 install -Dm755 build-gxde-daemon-gtk-theme-inject/gxde-gtk-theme-inject \
233 "$pkgdir/usr/libexec/gxde-daemon/gtk-theme-inject/gxde-gtk-theme-inject"
234 install -Dm755 build-gxde-daemon-daemon-manager/gxde-daemon-manager \
235 "$pkgdir/usr/libexec/gxde-daemon/daemon-manager/gxde-daemon-manager"
236 install -Dm644 gxde-daemon/plugins/dock/translations/*.json \
237 -t "$pkgdir/usr/share/gxde-daemon/dock/translations/"
238 # 以下对应 gxde-daemon 的 debian/install(dh_install 在 make install 之外额外安装)
239 ( cd gxde-daemon
240 install -d "$pkgdir"/usr/{bin,libexec,share/{polkit-1,applications,dbus-1/{services,system-services,system.d}}}
241 install -d "$pkgdir"/usr/share/gxde-k9/{system,edging} "$pkgdir"/usr/share/gxde-daemon/{daemon-k9-conf,plugins}
242 install -d "$pkgdir/usr/lib/systemd/system"
243 cp -a bin/. "$pkgdir/usr/bin/"
244 cp -a misc/polkit-1/. "$pkgdir/usr/share/polkit-1/"
245 cp -a misc/applications/. "$pkgdir/usr/share/applications/"
246 cp -a libexec/gxde-daemon gxde-daemon "$pkgdir/usr/libexec/"
247 cp -a dbus/services/. "$pkgdir/usr/share/dbus-1/services/"
248 cp -a dbus/system-services/. "$pkgdir/usr/share/dbus-1/system-services/"
249 cp -a dbus/system.d/. "$pkgdir/usr/share/dbus-1/system.d/"
250 cp -a k9/system/. "$pkgdir/usr/share/gxde-k9/system/"
251 cp -a k9/edging/. "$pkgdir/usr/share/gxde-k9/edging/"
252 cp -a k9/disable/. "$pkgdir/usr/share/gxde-daemon/daemon-k9-conf/"
253 cp -a systemd/system/. "$pkgdir/usr/lib/systemd/system/"
254 install -m644 plugins/dock/data/top.gxde.daemon.dock.service "$pkgdir/usr/share/dbus-1/services/"
255 install -m644 manifests/*.json "$pkgdir/usr/share/gxde-daemon/plugins/" )
256 make -C startgxde install DESTDIR="$pkgdir"
257
258 install -Dm755 rofd/target/release/rofd "$pkgdir/usr/bin/rofd"
259 install -Dm644 rofd/debian/rofd.desktop "$pkgdir/usr/share/applications/rofd.desktop"
260 install -Dm644 rofd/resources/logo.png "$pkgdir/usr/share/icons/hicolor/256x256/apps/rofd.png"
261 install -d "$pkgdir/usr/lib"
262 cp -a "$srcdir"/stage/usr/lib/librofd_ffi.so* "$pkgdir/usr/lib/"
263 install -Dm644 rofd/crates/rofd-ffi/include/rofd.h "$pkgdir/usr/include/rofd.h"
264
265 for _m in garma gxde-sni-server gxde-dock gxde-globalmenu-service gxde-top-panel-plugins \
266 gxde-top-panel gxde-control-center gxde-launcher gxde-session-ui gxde-requ deepin-screensaver \
267 util-dfm deepin-pdfium deepin-service-manager dde-grand-search gxde-terminal; do
268 DESTDIR="$pkgdir" cmake --install "build-$_m"
269 done
270 for _m in gxde-polkit-agent dpa-ext-gnomekeyring deepin-menu \
271 gxde-file-manager gxde-file-manager-integration gxde-time-screensaver; do
272 make -C "build-$_m" INSTALL_ROOT="$pkgdir" install
273 done
274
275 cd "$pkgdir"
276 # Debian 布局调整为 Arch:/lib、/usr/sbin 为软链接,插件按编译进程序的 PLUGINDIR 安装
277 cp -a lib/. usr/lib/ && rm -r lib
278 install -d usr/bin && mv usr/sbin/* usr/bin/ && rmdir usr/sbin
279 for _d in usr/lib/*-linux-gnu; do
280 [[ -d $_d ]] || continue
281 cp -a "$_d/." usr/lib/ && rm -r "$_d"
282 done
283
284 # 不安装改变系统行为的配置;50-systemd-user.sh 属于 Arch 的 systemd 包
285 rm -r etc/X11/xinit/xinitrc.d/50-systemd-user.sh etc/X11/Xsession.d etc/X11/xorg.conf.d \
286 etc/sudoers.d etc/modprobe.d etc/systemd etc/udisks2 etc/acpi etc/default/grub.d \
287 etc/grub.d etc/gimp
288 find etc -depth -type d -empty -delete
289
290 # 部分模块以 install(FILES) 安装可执行文件,Debian 依赖 dh_fixperms 补执行权限
291 find usr/bin -type f -exec chmod 755 {} +
292 local _f
293 while IFS= read -r -d '' _f; do
294 [[ $(head -c2 "$_f") == '#!' ]] && chmod 755 "$_f"
295 done < <(find usr/libexec -type f ! -perm -u+x -print0)
296}
297

Scan history

Scanned at (UTC)SeverityRules
2026-10-09 06:10:33 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion