gxde-infra-git
LOW
maintainer CharOfString
0 votes
scanned 2026-10-08 20:09:40.002650
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
3
pkgname=gxde-infra-git
4
pkgver=2026.10.04.r0.g0000000
5
pkgrel=1
6
pkgdesc='GXDE OS infrastructure components'
7
arch=(x86_64 aarch64)
8
url='https://github.com/GXDE-OS'
9
license=(GPL-3.0-or-later LGPL-3.0-or-later LGPL-2.0-or-later)
10
_mods=(golang-gxde-dev gxde-k9 disomaster-qt6 gxde-api deepin-keyring libgnome-keyring
11
gxde-desktop-base gxde-desktop-schemas dframework-dbus-qt6 gxde-network-utils-qt6
12
udisks2-qt6 gxde-movie-reborn libdbusmenu-qt6 xdg-desktop-portal-gxde)
13
_codename=zhuangzhuang
14
depends=(gxde-dtk5-git gxde-dtk2-git gxde-dtk6-git gxde-dtk2-qt6-git
15
qt5-base qt5-x11extras qt6-base qt6-declarative
16
glib2 gtk3 cairo librsvg gdk-pixbuf2 gdk-pixbuf-xlib poppler-glib freetype2
17
libgcrypt dbus udisks2 libisoburn alsa-lib libpulse
18
mpv ffmpeg ffmpegthumbnailer libdvdnav
19
libpipewire libdrm mesa libglvnd wayland
20
libx11 libxcb libxcursor libxfixes libxtst
21
gcc-libs glibc)
22
optdepends=('gnome-keyring: secret storage backend for libgnome-keyring')
23
makedepends=(git go cmake ninja python intltool gobject-introspection vala
24
qt5-tools qt6-tools deepin-gettext-tools
25
wlr-protocols treeland-protocols wayland-protocols
26
gxde-dtk2widget-dev-git)
27
provides=(deepin-desktop-base deepin-desktop-schemas deepin-api udisks2-qt6 xdg-desktop-portal-impl)
28
conflicts=(deepin-desktop-base deepin-desktop-schemas deepin-api udisks2-qt6
29
xdg-desktop-portal-dde deepin-daemon)
30
source=("golang-gxde-dev::git+$url/golang-gxde-dev.git"
31
"gxde-k9::git+$url/gxde-k9.git"
32
"disomaster-qt6::git+$url/disomaster-qt6.git"
33
"gxde-api::git+$url/gxde-api.git"
34
"deepin-keyring::git+$url/deepin-keyring.git"
35
"libgnome-keyring::git+$url/libgnome-keyring.git"
36
"gxde-desktop-base::git+$url/gxde-desktop-base.git"
37
"gxde-desktop-schemas::git+$url/gxde-desktop-schemas.git"
38
"dframework-dbus-qt6::git+$url/dframework-dbus-qt6.git#branch=main"
39
"gxde-network-utils-qt6::git+$url/gxde-network-utils-qt6.git"
40
"udisks2-qt6::git+$url/udisks2-qt6.git"
41
"gxde-movie-reborn::git+$url/gxde-movie-reborn.git"
42
"libdbusmenu-qt6::git+$url/libdbusmenu-qt6.git"
43
"xdg-desktop-portal-gxde::git+$url/xdg-desktop-portal-gxde.git")
44
sha256sums=(SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP)
45
46
pkgver() {
47
local _count=0 _m
48
for _m in "${_mods[@]}"; do
49
_count=$((_count + $(git -C "$_m" rev-list --count HEAD)))
50
done
51
printf '%s.r%s.g%s' "$(git -C gxde-desktop-base describe --tags --abbrev=0)" "$_count" \
52
"$(git -C gxde-desktop-base rev-parse --short=7 HEAD)"
53
}
54
55
prepare() {
56
local _m _tag
57
for _m in "${_mods[@]}"; do
58
_tag=$(git -C "$_m" describe --tags --abbrev=0 2>/dev/null) || { msg2 "$_m -> HEAD (no tag)"; continue; }
59
msg2 "$_m -> $_tag"
60
git -C "$_m" checkout -q --detach "refs/tags/$_tag"
61
done
62
}
63
64
_distro() {
65
case $CARCH in
66
aarch64) echo arm ;;
67
*) echo x86 ;;
68
esac
69
}
70
71
_cmake() {
72
local _m=$1; shift
73
cmake -S "$_m" -B "build-$_m" -G Ninja \
74
-DCMAKE_INSTALL_PREFIX=/usr \
75
-DCMAKE_INSTALL_LIBDIR=lib \
76
-DCMAKE_INSTALL_LIBEXECDIR=lib \
77
-DCMAKE_PREFIX_PATH="$srcdir/stage/usr" \
78
-DCMAKE_BUILD_TYPE=None \
79
-DBUILD_TESTING=OFF \
80
"$@"
81
cmake --build "build-$_m"
82
DESTDIR="$srcdir/stage" cmake --install "build-$_m"
83
}
84
85
build() {
86
local _stage="$srcdir/stage"
87
export LD_LIBRARY_PATH="$_stage/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
88
export GO111MODULE=off GOFLAGS="-buildmode=pie -trimpath"
89
# golang-gxde-dev 里 gir 绑定生成的 C 代码用了 C23 之前的 extern void f(); 写法
90
export CGO_CPPFLAGS="$CPPFLAGS" CGO_CFLAGS="$CFLAGS -std=gnu17" CGO_CXXFLAGS="$CXXFLAGS" CGO_LDFLAGS="$LDFLAGS"
91
92
make -C golang-gxde-dev install DESTDIR="$_stage"
93
94
_cmake disomaster-qt6
95
96
make -C gxde-api GOPATH="$_stage/usr/share/gocode-gxde/:$srcdir/gxde-api/gopath"
97
98
( cd libgnome-keyring && GPGRT_CONFIG=/usr/bin/gpgrt-config ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
99
--enable-introspection --enable-vala --disable-gtk-doc --disable-maintainer-mode && make )
100
101
# 等同 gxde-desktop-base 的 make build(zhuangzhuang 用 lizhi 那套身份文件);
102
# 它的 Makefile 调用的是 Debian 的 perl rename,Arch 的 rename 语法不同
103
local _f
104
for _f in gxde-desktop-base/files/*-lizhi; do cp "$_f" "${_f%-lizhi}"; done
105
make -C gxde-desktop-schemas build DISTRO="$(_distro)"
106
107
# 它在配置时把打过补丁的 gxde-qdbusxml2cpp 编进源码目录,generate_code.py 只在构建目录
108
# 往上三层和 PATH 里找;Debian 的构建目录在源码目录里所以能找到,这里要加进 PATH,
109
# 否则会退回 Qt 原版 qdbusxml2cpp,部分 XML 过不了
110
PATH="$srcdir/dframework-dbus-qt6:$PATH" _cmake dframework-dbus-qt6
111
112
mkdir -p build-gxde-network-utils-qt6
113
( cd build-gxde-network-utils-qt6 && DFRAMEWORK_PATH="$_stage/usr" qmake6 ../gxde-network-utils-qt6 \
114
PREFIX=/usr CONFIG+=no_qt_rpath \
115
QMAKE_CXXFLAGS_RELEASE="$CXXFLAGS" QMAKE_LFLAGS_RELEASE="$LDFLAGS" && make )
116
117
_cmake udisks2-qt6
118
_cmake gxde-movie-reborn -DUSE_DXCB=OFF
119
_cmake libdbusmenu-qt6 -DUSE_QT6=ON -DWITH_DOC=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5
120
_cmake xdg-desktop-portal-gxde
121
}
122
123
package() {
124
local _m
125
make -C golang-gxde-dev install DESTDIR="$pkgdir"
126
cp -a gxde-k9/src/. "$pkgdir/"
127
make -C gxde-api install DESTDIR="$pkgdir" SYSTEMD_LIB_DIR=/usr/lib
128
rm -r "$pkgdir/boot"
129
install -Dm644 deepin-keyring/keyrings/*.gpg -t "$pkgdir/usr/share/keyrings/"
130
make -C libgnome-keyring install DESTDIR="$pkgdir"
131
132
# gxde-desktop-base:只装身份和数据文件
133
make -C gxde-desktop-base install DESTDIR="$pkgdir" GXDE_CODENAME=$_codename
134
( cd "$pkgdir" && rm -r etc/apt usr/share/python-apt etc/default/grub.d etc/sudoers.d \
135
etc/systemd tmp usr/share/distro-info )
136
ln -s ../usr/lib/deepin/desktop-version "$pkgdir/etc/deepin-version"
137
ln -s ../usr/lib/deepin/os-version "$pkgdir/etc/os-version"
138
139
make -C gxde-desktop-schemas install DESTDIR="$pkgdir" DISTRO="$(_distro)"
140
make -C build-gxde-network-utils-qt6 install INSTALL_ROOT="$pkgdir"
141
for _m in disomaster-qt6 dframework-dbus-qt6 udisks2-qt6 gxde-movie-reborn \
142
libdbusmenu-qt6 xdg-desktop-portal-gxde; do
143
DESTDIR="$pkgdir" cmake --install "build-$_m"
144
done
145
}
146
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-08 20:09:40 | Low | 1 |