mirror of
https://github.com/GXDE-OS/GXDE.git
synced 2026-11-05 23:31:10 +08:00
Compare commits
133
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb28036eec | ||
|
|
e05436265a | ||
|
|
4d67c0c2f0 | ||
|
|
cec74ff92c | ||
|
|
e094939b96 | ||
|
|
3ae20c5867 | ||
|
|
ff4666cd2c | ||
|
|
2fe5b8b9d1 | ||
|
|
a23074725a | ||
|
|
7e1d43b057 | ||
|
|
bf87ba2f2b | ||
|
|
c215251f38 | ||
|
|
d8c5ea88e0 | ||
|
|
09945e156a | ||
|
|
64f4c6b4b3 | ||
|
|
e4d7046327 | ||
|
|
4130492385 | ||
|
|
87ee719ea4 | ||
|
|
23aba101a6 | ||
|
|
8ee15d5725 | ||
|
|
a6f6c26fb9 | ||
|
|
eebd5d7817 | ||
|
|
dd3d0e1a34 | ||
|
|
73a77bb9ca | ||
|
|
96feeb840f | ||
|
|
7633dbe0fb | ||
|
|
572c5f3d13 | ||
|
|
9c74df09be | ||
|
|
61b011f9dd | ||
|
|
141a767e20 | ||
|
|
6bf8cb2c52 | ||
|
|
d877a80884 | ||
|
|
879ecb2926 | ||
|
|
ad749b551b | ||
|
|
4625c03c78 | ||
|
|
d2e6e5dde1 | ||
|
|
257ec720e1 | ||
|
|
c32e2ca563 | ||
|
|
afd0d7d71e | ||
|
|
8c0ad2bc93 | ||
|
|
98a89915e1 | ||
|
|
282c4ec982 | ||
|
|
0c23e00622 | ||
|
|
78d1775624 | ||
|
|
e96dbab83a | ||
|
|
126f1cd95e | ||
|
|
31147bb580 | ||
|
|
82a741a08e | ||
|
|
006e59e54e | ||
|
|
179a8df1ec | ||
|
|
6e9ba79203 | ||
|
|
5e9cd51a31 | ||
|
|
4ad940aeb3 | ||
|
|
d3cf1f3faa | ||
|
|
4ae19694a3 | ||
|
|
46c0155137 | ||
|
|
a1996dfc42 | ||
|
|
4669494602 | ||
|
|
998b5808b2 | ||
|
|
5c4864cd07 | ||
|
|
fcf78ddf76 | ||
|
|
2d0ed0d0ee | ||
|
|
a1d60cf87c | ||
|
|
14c042dec3 | ||
|
|
0681555067 | ||
|
|
38dbe7a12f | ||
|
|
3bb1ee694b | ||
|
|
99c5321d8b | ||
|
|
089a8c5f5f | ||
|
|
217cbfbefc | ||
|
|
c78562c22b | ||
|
|
794193f1c1 | ||
|
|
37108ffdbe | ||
|
|
852b96a25b | ||
|
|
3d732ba434 | ||
|
|
fcac6f5cc7 | ||
|
|
3f80dd73b8 | ||
|
|
55bebc8f57 | ||
|
|
e7281bb859 | ||
|
|
385e820eeb | ||
|
|
bccdaa6137 | ||
|
|
bb3939d370 | ||
|
|
98b08864f4 | ||
|
|
987b6e86a8 | ||
|
|
6e00091e9c | ||
|
|
5e0738a70c | ||
|
|
567cc0c73e | ||
|
|
fb8e916523 | ||
|
|
14790d3bb9 | ||
|
|
844a444396 | ||
|
|
9f29524cd1 | ||
|
|
17a6e18d0a | ||
|
|
db9aef305b | ||
|
|
00dd6a7556 | ||
|
|
689118ae11 | ||
|
|
da2fc47dad | ||
|
|
8972507515 | ||
|
|
578710a84f | ||
|
|
419a47e5ea | ||
|
|
c1acde871e | ||
|
|
009343ec01 | ||
|
|
7b9985be48 | ||
|
|
5305ceff00 | ||
|
|
1e41f890a5 | ||
|
|
4e9d928ccc | ||
|
|
62bd578c8e | ||
|
|
6d2bd7bbff | ||
|
|
e1079908d9 | ||
|
|
b5ec9309fe | ||
|
|
d69d54ecd9 | ||
|
|
52d131446c | ||
|
|
ca37c5931a | ||
|
|
dc74a19201 | ||
|
|
701576ea5d | ||
|
|
c3cc92ba86 | ||
|
|
6369384b2f | ||
|
|
3033623aec | ||
|
|
13345d4c88 | ||
|
|
64a4efe357 | ||
|
|
23529f803e | ||
|
|
99b74ecfda | ||
|
|
4d063c7a4b | ||
|
|
aa0c9f69b9 | ||
|
|
1d98292b0b | ||
|
|
7d3fb159d6 | ||
|
|
e03fa77a70 | ||
|
|
637c022e29 | ||
|
|
90abc92e09 | ||
|
|
41316de896 | ||
|
|
70b54ace06 | ||
|
|
1d77f7d66e | ||
|
|
e1b30589a2 | ||
|
|
fdf8e253aa |
+154
@@ -0,0 +1,154 @@
|
||||
name: Building GXDE Package
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
inputs:
|
||||
arch:
|
||||
type: string
|
||||
description: 'Rootfs Arch'
|
||||
required: true
|
||||
|
||||
rootfs-codename:
|
||||
type: string
|
||||
description: 'Rootfs Codename'
|
||||
required: true
|
||||
|
||||
rootfs-source:
|
||||
type: string
|
||||
description: 'Rootfs Source Url'
|
||||
required: true
|
||||
|
||||
gxde-codename:
|
||||
type: string
|
||||
description: 'GXDE OS Codename'
|
||||
required: true
|
||||
|
||||
gxde-codename-upload:
|
||||
type: string
|
||||
description: 'GXDE OS Codename'
|
||||
required: true
|
||||
|
||||
gxde-is-backport:
|
||||
type: boolean
|
||||
description: 'Is build with backport'
|
||||
required: false
|
||||
|
||||
gxde-cross-arch:
|
||||
type: string
|
||||
description: 'Build deb to which arch'
|
||||
required: false
|
||||
|
||||
display-name:
|
||||
required: false
|
||||
type: string
|
||||
|
||||
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: github.repository_owner == 'GXDE-OS'
|
||||
name: ${{ inputs.display-name || 'Build Job' }}
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- name: Clone Repository To Get Script
|
||||
run: |
|
||||
#apt update
|
||||
#apt install sudo git -y
|
||||
git clone $REPOSITORY --depth=1
|
||||
mv $(basename $REPOSITORY)/* . -v
|
||||
mv $(basename $REPOSITORY)/.* . -v | true
|
||||
|
||||
- name: Configure Base System
|
||||
run: |
|
||||
if [[ ${{ inputs.gxde-is-backport }} == true ]]; then
|
||||
isBackport=backport
|
||||
fi
|
||||
export REPO_BRANCH=${{ github.ref_name }}
|
||||
bash .github/workflows/configure-building-enviroment-base-system.sh ${{ inputs.arch }} \
|
||||
${{ inputs.rootfs-codename }} \
|
||||
$REPOSITORY \
|
||||
https://github.com/$GITHUB_REPOSITORY \
|
||||
${{ inputs.rootfs-source }} \
|
||||
${{ github.ref_name }} \
|
||||
${{ inputs.gxde-codename-upload }} \
|
||||
$isBackport
|
||||
|
||||
- name: Building ${{ GITHUB.repository }}
|
||||
run: |
|
||||
gitPath=$(basename $GITHUB_REPOSITORY)
|
||||
if [[ -f system-bottle/$gitPath/debian/control ]]; then
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh \
|
||||
env GXDE_ARCH=${{ inputs.arch }} GXDE_CODENAME=${{ inputs.gxde-codename }} \
|
||||
GXDE_ARCH=${{ inputs.arch }} GXDE_CROSS_ARCH=${{ inputs.gxde-cross-arch }} GO111MODULE=off \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
dpkg-buildpackage -b
|
||||
else
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh \
|
||||
env GXDE_ARCH=${{ inputs.arch }} GXDE_CODENAME=${{ inputs.gxde-codename }} \
|
||||
GXDE_ARCH=${{ inputs.arch }} GXDE_CROSS_ARCH=${{ inputs.gxde-cross-arch }} GO111MODULE=off \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
bash build-deb.sh
|
||||
fi
|
||||
cp $BOTTLEPATH/*.deb . -rv
|
||||
sudo rename 's/\.deb$/_${{ inputs.gxde-codename }}.deb/' *.deb
|
||||
|
||||
- name: Remove Debug Package
|
||||
run: |
|
||||
cd $BOTTLEPATH
|
||||
echo -e "ls -1 | grep dbgsym | grep .deb | grep -v dtk | grep -v qt | grep -v dock | grep -v gxtk\nexit 0" | sudo tee remove-deb.sh
|
||||
removeDeb=$(bash remove-deb.sh)
|
||||
sudo rm -rf $removeDeb
|
||||
echo -e "ls -1 | grep dbg_ | grep .deb | grep -v dtk | grep -v qt | grep -v dock | grep -v gxtk\nexit 0" | sudo tee remove-deb.sh
|
||||
removeDeb=$(bash remove-deb.sh)
|
||||
sudo rm -rf $removeDeb
|
||||
sudo rm -rf linux-libc-dev_*_hetao.deb
|
||||
|
||||
- name: Pack tar
|
||||
run: |
|
||||
cd $BOTTLEPATH
|
||||
sudo tar -cvf ../deb-$(date +%s).tar *.deb
|
||||
|
||||
- name: Push
|
||||
env:
|
||||
UPASSWD: ${{ secrets.PASSWD }}
|
||||
UUSERS: ${{ secrets.USERS }}
|
||||
UHOST: ${{ secrets.HOST }}
|
||||
UPATH: ${{ secrets.UPATH }}
|
||||
UPROGRAM: ${{ secrets.UPROGRAM }}
|
||||
UPORT: ${{ secrets.UPORT }}
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install sshpass -y
|
||||
mkdir -p ~/.ssh/
|
||||
ssh-keyscan -p $UPORT -H $UHOST >> ~/.ssh/known_hosts
|
||||
tarName=$(ls | grep .tar | head -n 1)
|
||||
sshpass -p "$UPASSWD" rsync -e "ssh -p $UPORT" $tarName $UUSERS@$UHOST:$UPATH
|
||||
sshpass -p "$UPASSWD" ssh $UUSERS@$UHOST -p $UPORT $UPROGRAM ${{ inputs.gxde-codename-upload }} $UPATH/$tarName > /dev/null
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOCKEN_GITHUB }}
|
||||
with:
|
||||
files: |
|
||||
*.deb
|
||||
generate_release_notes: true
|
||||
@@ -47,6 +47,11 @@ on:
|
||||
description: 'Is build with backport'
|
||||
required: false
|
||||
|
||||
gxde-cross-arch:
|
||||
type: string
|
||||
description: 'Build deb to which arch'
|
||||
required: false
|
||||
|
||||
display-name:
|
||||
required: false
|
||||
type: string
|
||||
@@ -59,22 +64,10 @@ env:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: github.repository_owner == 'GXDE-OS'
|
||||
name: ${{ inputs.display-name || 'Build Job' }}
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
# 由于默认的 Ubuntu 环境只有 17G 左右的剩余空间,所以我们需要先利用如下 action 对编译环境进行扩容
|
||||
- name: Maximize build space
|
||||
uses: easimon/maximize-build-space@master
|
||||
with:
|
||||
# 这个值是保留给系统的空间大小,之前设置太小,总会在安装依赖或者编译过程中报设备空间不足的错误而导致编译失败
|
||||
root-reserve-mb: 4096
|
||||
swap-size-mb: 512
|
||||
remove-dotnet: 'true'
|
||||
remove-docker-images: 'true'
|
||||
remove-codeql: 'true'
|
||||
remove-haskell: 'true'
|
||||
remove-android: 'true'
|
||||
|
||||
- name: Clone Repository To Get Script
|
||||
run: |
|
||||
#apt update
|
||||
@@ -88,20 +81,32 @@ jobs:
|
||||
if [[ ${{ inputs.gxde-is-backport }} == true ]]; then
|
||||
isBackport=backport
|
||||
fi
|
||||
bash .github/workflows/configure-building-enviroment-base-system.sh ${{ inputs.arch }} \
|
||||
export REPO_BRANCH=${{ github.ref_name }}
|
||||
env GXDE_ARCH=${{ inputs.arch }} GXDE_CROSS_ARCH=${{ inputs.gxde-cross-arch }} \
|
||||
bash .github/workflows/configure-building-enviroment-base-system.sh ${{ inputs.arch }} \
|
||||
${{ inputs.rootfs-codename }} \
|
||||
$REPOSITORY \
|
||||
https://github.com/$GITHUB_REPOSITORY \
|
||||
${{ inputs.rootfs-source }} \
|
||||
${{ github.ref_name }} \
|
||||
${{ inputs.gxde-codename-upload }} \
|
||||
$isBackport
|
||||
|
||||
- name: Building ${{ GITHUB.repository }}
|
||||
run: |
|
||||
gitPath=$(basename $GITHUB_REPOSITORY)
|
||||
export gitPath=$(basename $GITHUB_REPOSITORY)
|
||||
if [[ -f system-bottle/$gitPath/debian/control ]]; then
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh env GXDE_CODENAME=${{ inputs.gxde-codename }} GO111MODULE=off dpkg-buildpackage -b
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh \
|
||||
env GXDE_ARCH=${{ inputs.arch }} GXDE_CODENAME=${{ inputs.gxde-codename }} \
|
||||
GXDE_ARCH=${{ inputs.arch }} GXDE_CROSS_ARCH=${{ inputs.gxde-cross-arch }} GO111MODULE=off \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
dpkg-buildpackage -b
|
||||
else
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh env GXDE_CODENAME=${{ inputs.gxde-codename }} GO111MODULE=off bash build-deb.sh
|
||||
env gitPath=$gitPath bash .github/workflows/run-command-in-chroot.sh \
|
||||
env GXDE_ARCH=${{ inputs.arch }} GXDE_CODENAME=${{ inputs.gxde-codename }} \
|
||||
GXDE_ARCH=${{ inputs.arch }} GXDE_CROSS_ARCH=${{ inputs.gxde-cross-arch }} GO111MODULE=off \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
bash build-deb.sh
|
||||
fi
|
||||
cp $BOTTLEPATH/*.deb . -rv
|
||||
sudo rename 's/\.deb$/_${{ inputs.gxde-codename }}.deb/' *.deb
|
||||
@@ -115,6 +120,7 @@ jobs:
|
||||
echo -e "ls -1 | grep dbg_ | grep .deb | grep -v dtk | grep -v qt | grep -v dock | grep -v gxtk\nexit 0" | sudo tee remove-deb.sh
|
||||
removeDeb=$(bash remove-deb.sh)
|
||||
sudo rm -rf $removeDeb
|
||||
sudo rm -rf linux-libc-dev_*_hetao.deb
|
||||
|
||||
- name: Pack tar
|
||||
run: |
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
name: Building GXDE Testing Package
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-zhuangzhuang-cross-host.yml@master
|
||||
secrets: inherit
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
name: Building GXDE Testing Package
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-zhuangzhuang-cross.yml@master
|
||||
secrets: inherit
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
name: Building GXDE Package (hetao)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-amd64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: amd64
|
||||
|
||||
call-arm64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-hetao
|
||||
arch: arm64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
call-loong64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: loong64
|
||||
|
||||
call-riscv64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: riscv64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: riscv64
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
name: Building GXDE Package (hetao)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-amd64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: amd64
|
||||
|
||||
call-arm64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
call-loong64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: loong64
|
||||
|
||||
call-riscv64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: riscv64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
gxde-cross-arch: riscv64
|
||||
Executable
+67
@@ -0,0 +1,67 @@
|
||||
name: Building GXDE Package (hetao)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-amd64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-hetao
|
||||
arch: amd64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
|
||||
call-arm64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base-arm64.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-hetao
|
||||
arch: arm64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
|
||||
call-loong64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-hetao
|
||||
arch: loong64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
|
||||
call-riscv64-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: riscv64-hetao
|
||||
arch: riscv64
|
||||
rootfs-codename: crimson
|
||||
rootfs-source: https://mirrors.kernel.org/deepin/beige/
|
||||
gxde-codename: hetao
|
||||
gxde-codename-upload: hetao
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
name: Building GXDE Package (meimei)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-loong64-meimei:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-meimei
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: meimei
|
||||
gxde-codename-upload: meimei
|
||||
gxde-cross-arch: loong64
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
with:
|
||||
display-name: loong64-meimei
|
||||
arch: loong64
|
||||
rootfs-codename: loongnix
|
||||
rootfs-source: https://pkg.loongnix.cn/loongnix/25
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: http://loong13.debian.net/debian-loong64/
|
||||
gxde-codename: meimei
|
||||
gxde-codename-upload: meimei
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
name: Building GXDE Package for Newest Release
|
||||
run-name: Building for Newest Release ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-loong64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-tianlu
|
||||
arch: loong64
|
||||
rootfs-codename: sid
|
||||
rootfs-source: https://deb.debian.org/debian-ports/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
|
||||
call-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-zhuangzhuang.yml@master
|
||||
secrets: inherit
|
||||
|
||||
call-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-hetao.yml@master
|
||||
secrets: inherit
|
||||
@@ -21,14 +21,10 @@ env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-loong64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-tianlu
|
||||
arch: loong64
|
||||
rootfs-codename: sid
|
||||
rootfs-source: https://deb.debian.org/debian-ports/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
jobs:
|
||||
empty:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Empty
|
||||
run: |
|
||||
exit
|
||||
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
name: Building GXDE Testing Package (tianlu)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-i386-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: i386-tianlu
|
||||
arch: i386
|
||||
rootfs-codename: bookworm
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
gxde-cross-arch: i386
|
||||
|
||||
|
||||
call-amd64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-tianlu
|
||||
arch: amd64
|
||||
rootfs-codename: bookworm
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
gxde-cross-arch: amd64
|
||||
|
||||
call-arm64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-tianlu
|
||||
arch: amd64
|
||||
rootfs-codename: bookworm
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
call-mips64el-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: mips64el-tianlu
|
||||
arch: amd64
|
||||
rootfs-codename: bookworm
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
gxde-cross-arch: mips64el
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
gxde-codename-upload: tianlu
|
||||
|
||||
call-arm64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base-arm64.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-tianlu
|
||||
@@ -65,14 +65,3 @@ jobs:
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
|
||||
call-loong64-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-tianlu
|
||||
arch: loong64
|
||||
rootfs-codename: sid
|
||||
rootfs-source: https://deb.debian.org/debian-ports/
|
||||
gxde-codename: bixie
|
||||
gxde-codename-upload: tianlu
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
name: Building GXDE Testing Package (zhuangzhuang)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-i386-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: i386-zhuangzhuang
|
||||
arch: i386
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: i386
|
||||
|
||||
call-amd64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: amd64
|
||||
|
||||
call-arm64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-zhuangzhuang
|
||||
arch: arm64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
call-riscv64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: riscv64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: riscv64
|
||||
|
||||
call-loong64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: loong64
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
name: Building GXDE Testing Package (zhuangzhuang)
|
||||
run-name: Building ${{ GITHUB.REPOSITORY }}
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPROGRAM:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
|
||||
jobs:
|
||||
call-i386-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: i386-zhuangzhuang
|
||||
arch: i386
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: i386
|
||||
|
||||
call-amd64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: amd64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: amd64
|
||||
|
||||
call-arm64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
call-riscv64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: riscv64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: riscv64
|
||||
|
||||
call-loong64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-zhuangzhuang
|
||||
arch: amd64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: loong64
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
call-arm64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base-arm64.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: arm64-zhuangzhuang
|
||||
@@ -55,17 +55,6 @@ jobs:
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
call-mips64el-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: mips64el-zhuangzhuang
|
||||
arch: mips64el
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
call-riscv64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
@@ -76,3 +65,14 @@ jobs:
|
||||
rootfs-source: https://deb.debian.org/debian/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
call-loong64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
with:
|
||||
display-name: loong64-zhuangzhuang
|
||||
arch: loong64
|
||||
rootfs-codename: trixie
|
||||
rootfs-source: http://loong13.debian.net/debian-loong64/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
@@ -26,30 +26,7 @@ jobs:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-zhuangzhuang.yml@master
|
||||
secrets: inherit
|
||||
|
||||
call-meimei:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-meimei.yml@master
|
||||
call-arch:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-pkg.yml@master
|
||||
secrets: inherit
|
||||
|
||||
call-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-tianlu.yml@master
|
||||
secrets: inherit
|
||||
|
||||
UploadOBS:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get REPOSITORY Name
|
||||
run: |
|
||||
echo "REPO_NAME=$(echo "$GITHUB_REPOSITORY" | cut -d'/' -f2)" >> $GITHUB_ENV
|
||||
REPO_NAME=$(echo "$GITHUB_REPOSITORY" | cut -d'/' -f2)
|
||||
mkdir /home/runner/work/$REPO_NAME/$REPO_NAME/debian-deb-output
|
||||
|
||||
- name: Upload to OBS
|
||||
uses: LingmoOS/action-upload-to-obs@0.0.4
|
||||
with:
|
||||
remove-old-sources: true
|
||||
obs-package-name: ${{ env.REPO_NAME }}
|
||||
obs-project-name: 'home:gfdgd-xi'
|
||||
obs-user-name: ${{ secrets.OBS_USERNAME }}
|
||||
obs-password: ${{ secrets.OBS_PASSWORD }}
|
||||
obs-instance-url: 'https://api.opensuse.org'
|
||||
local-package-dir: './debian-deb-output'
|
||||
@@ -0,0 +1,138 @@
|
||||
# Copyright (C) 2026 CharOfString <root@charofstring.cc>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation, either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
# -----------------------------------------------------------------------------
|
||||
# 本工作流用于构建Archlinux软件包,仅接受根目录的PKGBUILD或arch/PKGBUILD,没有时跳过。
|
||||
# This workflow is used to build Arch Linux packages, it only accepts PKGBUILD
|
||||
# in the root directory of the repo or arch/PKGBUILD, otherwise this will be
|
||||
# skipped.
|
||||
|
||||
name: Building GXDE Arch Package
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
PASSWD:
|
||||
required: true
|
||||
USERS:
|
||||
required: true
|
||||
HOST:
|
||||
required: true
|
||||
UPATH:
|
||||
required: true
|
||||
UPORT:
|
||||
required: true
|
||||
UPROGRAM_ARCH:
|
||||
required: false
|
||||
|
||||
env:
|
||||
REPOSITORY: https://github.com/GXDE-OS/GXDE
|
||||
BOTTLEPATH: system-bottle
|
||||
GXDE_ARCH_REPO: https://repo1.gxde.top/gxde-arch
|
||||
|
||||
jobs:
|
||||
detect:
|
||||
if: github.repository_owner == 'GXDE-OS'
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
pkgbuild-dir: ${{ steps.find.outputs.dir }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Find PKGBUILD
|
||||
id: find
|
||||
run: |
|
||||
if [[ -f arch/PKGBUILD ]]; then
|
||||
echo "dir=arch" >> $GITHUB_OUTPUT
|
||||
elif [[ -f PKGBUILD ]]; then
|
||||
echo "dir=." >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "No PKGBUILD found, skip Arch build"
|
||||
fi
|
||||
|
||||
build:
|
||||
needs: detect
|
||||
if: needs.detect.outputs.pkgbuild-dir != ''
|
||||
name: ${{ matrix.arch }}-arch
|
||||
runs-on: ${{ matrix.runner }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- arch: x86_64
|
||||
runner: ubuntu-24.04
|
||||
- arch: aarch64
|
||||
runner: ubuntu-24.04-arm
|
||||
steps:
|
||||
- name: Clone Repository To Get Script
|
||||
run: |
|
||||
git clone $REPOSITORY --depth=1
|
||||
mv $(basename $REPOSITORY)/* . -v
|
||||
mv $(basename $REPOSITORY)/.* . -v | true
|
||||
|
||||
- name: Configure Base System
|
||||
run: |
|
||||
bash .github/workflows/configure-building-enviroment-arch.sh ${{ matrix.arch }} \
|
||||
$REPOSITORY \
|
||||
https://github.com/$GITHUB_REPOSITORY \
|
||||
${{ github.ref_name }} \
|
||||
$GXDE_ARCH_REPO
|
||||
|
||||
- name: Building ${{ GITHUB.repository }}
|
||||
run: |
|
||||
gitPath=/home/builder/$(basename $GITHUB_REPOSITORY)/${{ needs.detect.outputs.pkgbuild-dir }}
|
||||
sudo chroot $BOTTLEPATH sudo -H -u builder bash -c \
|
||||
"cd $gitPath && makepkg -s --noconfirm --needed"
|
||||
mkdir -p packages
|
||||
sudo find $BOTTLEPATH$gitPath -maxdepth 1 -name '*.pkg.tar.*' ! -name '*.sig' -exec cp -v {} packages/ \;
|
||||
sudo chown -R $(id -u):$(id -g) packages
|
||||
ls -l packages
|
||||
|
||||
- name: Remove Debug Package
|
||||
run: |
|
||||
rm -fv packages/*-debug-*.pkg.tar.*
|
||||
|
||||
- name: Pack tar
|
||||
run: |
|
||||
cd packages
|
||||
tar -cvf ../arch-${{ matrix.arch }}-$(date +%s).tar *.pkg.tar.*
|
||||
|
||||
- name: Push
|
||||
env:
|
||||
UPASSWD: ${{ secrets.PASSWD }}
|
||||
UUSERS: ${{ secrets.USERS }}
|
||||
UHOST: ${{ secrets.HOST }}
|
||||
UPATH: ${{ secrets.UPATH }}
|
||||
UPROGRAM_ARCH: ${{ secrets.UPROGRAM_ARCH }}
|
||||
UPORT: ${{ secrets.UPORT }}
|
||||
run: |
|
||||
if [[ -z "$UPROGRAM_ARCH" ]]; then
|
||||
echo "::warning::UPROGRAM_ARCH is not set, skip uploading Arch packages"
|
||||
exit 0
|
||||
fi
|
||||
sudo apt update
|
||||
sudo apt install sshpass -y
|
||||
mkdir -p ~/.ssh/
|
||||
ssh-keyscan -p $UPORT -H $UHOST >> ~/.ssh/known_hosts
|
||||
tarName=$(ls | grep '^arch-.*\.tar$' | head -n 1)
|
||||
sshpass -p "$UPASSWD" rsync -e "ssh -p $UPORT" $tarName $UUSERS@$UHOST:$UPATH
|
||||
sshpass -p "$UPASSWD" ssh $UUSERS@$UHOST -p $UPORT $UPROGRAM_ARCH ${{ matrix.arch }} $UPATH/$tarName > /dev/null
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOCKEN_GITHUB }}
|
||||
with:
|
||||
files: |
|
||||
packages/*.pkg.tar.*
|
||||
@@ -0,0 +1,148 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2026 CharOfString <root@charofstring.cc>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation, either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
# -----------------------------------------------------------------------------
|
||||
# 本脚本用于构建GXDE Arch打包环境
|
||||
# 参数$1 = 架构,可选x86_64/aarch64
|
||||
# 参数$2 = GXDE仓库地址
|
||||
# 参数$3 = 源码包仓库地址
|
||||
# 参数$4 = 当前欲构建的分支
|
||||
# 参数$5 = GXDE Arch源地址,用于获取GXDE依赖
|
||||
# -----------------------------------------------------------------------------
|
||||
# This script is used to configure the packaging environment of GXDE on Arch.
|
||||
# $1 = Archtecture required, either x86_64 or aarch64.
|
||||
# $2 = GXDE repository address.
|
||||
# $3 = Repository path of the software to be built.
|
||||
# $4 = The branch that you want to build.
|
||||
# $5 = The Arch PACMAN source of GXDE, we'll use it to install dependencies.
|
||||
|
||||
set -e
|
||||
build_arch=$1
|
||||
bottle_path=./system-bottle
|
||||
gxde_arch_repo=${5:-https://repo1.gxde.top/gxde-arch}
|
||||
|
||||
# 引用/Works Cited: https://patorjk.com/software/taag/#p=display&f=Linguaholic+Shadow+3D
|
||||
echo ' ██████╗██╗ ██╗██████╗ ████████╗ ████╗ ' &&
|
||||
echo '██╔═════╝╚═██╗ ██╔═╝██╔═══██╗██╔═════╝ ██╔═══╝ ████╗ ██╗ ████╗ ' &&
|
||||
echo '██║ ████╗ ╚═██╔═╝ ██║ ██║██████╗ ██████╗ ██╔═══██╗████╔═══╝ ' &&
|
||||
echo '██║ ╚═██║ ██╔═██╗ ██║ ██║██╔═══╝ ╚═██╔═╝ ██║ ██║██╔═╝ ' &&
|
||||
echo '╚═██████║██╔═╝ ╚═██╗██████╔═╝████████╗ ██║ ╚═████╔═╝██║ ' &&
|
||||
echo ' ╚═════╝╚═╝ ╚═╝╚═════╝ ╚═══════╝ ╚═╝ ╚═══╝ ╚═╝ ' &&
|
||||
echo ' ' &&
|
||||
echo ' ' &&
|
||||
echo ' ████╗ ██╗ ██╗ ██╗ ' &&
|
||||
echo '██╔═══██╗██╗ ████╗ ██████╗██████╗ ██║ ╚═╝██████╗ ██╗ ██╗██╗ ██╗' &&
|
||||
echo '████████║████╔═══╝██╔═════╝██╔═══██╗██║ ██╗██╔═══██╗██║ ██║╚═████╔═╝' &&
|
||||
echo '██╔═══██║██╔═╝ ██║ ██║ ██║██║ ██║██║ ██║██║ ██║ ████║ ' &&
|
||||
echo '██║ ██║██║ ╚═██████╗██║ ██║████████╗██║██║ ██║╚═██████║██╔═══██╗' &&
|
||||
echo '╚═╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═══════╝╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝'
|
||||
|
||||
# 先安装解压chroot用的依赖 ・ Install the dependencies for extracting chroot first.
|
||||
sudo apt update
|
||||
sudo apt install wget zstd git -y
|
||||
|
||||
# 根据架构下载解压对应chroot ・ Download & extract corresponding chroot by archtecture needed.
|
||||
echo '[I] (Chroot) Init: Starting to download chroot for Archlinux...'
|
||||
if [[ $build_arch == "x86_64" ]]; then
|
||||
echo '[I] (Chroot) Init: Archtecture hit >> AMD64.'
|
||||
wget -q https://geo.mirror.pkgbuild.com/iso/latest/archlinux-bootstrap-x86_64.tar.zst
|
||||
sudo tar --zstd -xpf archlinux-bootstrap-x86_64.tar.zst --numeric-owner
|
||||
sudo mv root.x86_64 $bottle_path
|
||||
echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' | sudo tee $bottle_path/etc/pacman.d/mirrorlist
|
||||
keyring=archlinux
|
||||
elif [[ $build_arch == "aarch64" ]]; then
|
||||
echo '[I] (Chroot) Init: Archtecture hit >> AARCH64.'
|
||||
wget -q http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
|
||||
sudo mkdir -p $bottle_path
|
||||
sudo tar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C $bottle_path --numeric-owner
|
||||
keyring=archlinuxarm
|
||||
else
|
||||
echo "[E] (Chroot) Init: Unsupportted archtecture $build_arch, HALTED!"
|
||||
exit 1
|
||||
fi
|
||||
echo '[I] (Chroot) Init: Done downloading chroot for Archlinux.'
|
||||
|
||||
# 挂载chroot ・ Mount chroot.
|
||||
echo '[I] (Chroot) Mount: Starting to mount target chroot...'
|
||||
sudo mount --bind $bottle_path $bottle_path
|
||||
for i in proc sys dev dev/pts; do
|
||||
sudo mount --bind /$i $bottle_path/$i
|
||||
done
|
||||
# ALARM的resolv.conf是指向/run/systemd/resolve的绝对软链接,需先删除,否则cp会写穿到宿主机且chroot内仍无法解析
|
||||
# ALARM ships resolv.conf as an absolute symlink into /run/systemd/resolve, remove it first,
|
||||
# otherwise cp writes through to the host's file and DNS stays broken inside chroot.
|
||||
sudo rm -f $bottle_path/etc/resolv.conf
|
||||
sudo cp -L /etc/resolv.conf $bottle_path/etc/resolv.conf
|
||||
echo '[I] (Chroot) Mount: Done mounting the chroot!'
|
||||
|
||||
# Pacman在chroot里无法做沙箱/空间检查
|
||||
# Pacman is not able to do space check or sandbox in chroot.
|
||||
echo '[I] (Chroot) PostInit: Disabling sanbox and space check since we are in chroot...'
|
||||
sudo sed -i 's/^CheckSpace/#CheckSpace/' $bottle_path/etc/pacman.conf
|
||||
sudo sed -i 's/^#DisableSandbox/DisableSandbox/' $bottle_path/etc/pacman.conf
|
||||
echo '[I] (Chroot) PostInit: Done disabling unavailable components!'
|
||||
|
||||
# 一个小wrapper,在chroot中运行某指令 ・ A wrapper to run certain commands under chroot.
|
||||
run() {
|
||||
sudo chroot $bottle_path bash -c "$*"
|
||||
}
|
||||
|
||||
# 写入GXDE Arch源,以便安装dtk等自身提供的依赖
|
||||
# 新源刚建立时可能还不存在,因此只做可选信任
|
||||
# --------------------------------------------
|
||||
# Add GXDE Archlinux PACMAN source to install dependencies such as DTK.
|
||||
# It may not exist when as we're just getting started, so we will do a Optional TrustAll.
|
||||
echo '[I] (Chroot) PACMAN: Configuring GXDE pacman source...'
|
||||
cat << EOF | sudo tee -a $bottle_path/etc/pacman.conf
|
||||
|
||||
[gxde]
|
||||
SigLevel = Optional TrustAll
|
||||
Server = $gxde_arch_repo/\$arch
|
||||
EOF
|
||||
echo '[I] (Chroot) PACMAN: GXDE pacman source has been added to chroot!'
|
||||
echo '[I] (Chroot) PACMAN: Doing upgrade...'
|
||||
run pacman-key --init
|
||||
run pacman-key --populate $keyring
|
||||
for i in {1..5}; do
|
||||
# GXDE 源尚不存在时 -Syu 会失败,此时去掉 GXDE 源再试一次
|
||||
if run pacman -Syu --noconfirm --needed base-devel git sudo; then
|
||||
break
|
||||
fi
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "GXDE Arch repo unreachable, building without it"
|
||||
sudo sed -i '/^\[gxde\]/,/^Server/d' $bottle_path/etc/pacman.conf
|
||||
fi
|
||||
if [[ $i == 5 ]]; then
|
||||
echo '[E] (Chroot) PACMAN: Failed to upgrade chroot, HALTED!'
|
||||
exit 1
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
echo '[I] (Chroot) PACMAN: Shall be okay...'
|
||||
|
||||
# makepkg不允许以root运行 ・ makepkg require another account other than root.
|
||||
echo '[I] (Building) AccountCtl: Setting up builder account...'
|
||||
run useradd -m builder
|
||||
echo "builder ALL=(ALL) NOPASSWD: ALL" | sudo tee $bottle_path/etc/sudoers.d/builder
|
||||
echo '[I] (Building) AccountCtl: Builder account is up!'
|
||||
|
||||
# 以builder身份克隆仓库 ・ Clone the repo as builder.
|
||||
echo '[I] (Building) Builder: Cloning target repository...'
|
||||
run sudo -H -u builder git clone $3 -b $4 /home/builder/$(basename $3)
|
||||
echo '[I] (Building) Builder: Done cloning target repository.'
|
||||
|
||||
echo '[I] (Env) Setup: Setup finished, bye~'
|
||||
exit 0
|
||||
@@ -16,7 +16,10 @@ function useDebianPort() {
|
||||
sudo cp /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg -v
|
||||
}
|
||||
function useLoongnix() {
|
||||
sudo cp .github/workflows/loongnix /usr/share/debootstrap/scripts/ -v
|
||||
sudo cp .github/workflows/loongnix-stable /usr/share/debootstrap/scripts/ -v
|
||||
}
|
||||
function useDeepin25() {
|
||||
sudo cp .github/workflows/crimson /usr/share/debootstrap/scripts/ -v
|
||||
}
|
||||
|
||||
sudo apt update
|
||||
@@ -26,13 +29,22 @@ bottlePath=./system-bottle
|
||||
if [[ $2 == "beige" ]]; then
|
||||
getd23debootstrap
|
||||
else
|
||||
if [[ $1 == "loong64" ]] && [[ $2 != "loongnix" ]]; then
|
||||
if [[ $1 == "loong64" ]] && [[ $2 != "loongnix-stable" ]]; then
|
||||
useDebianPort
|
||||
else
|
||||
useLoongnix
|
||||
fi
|
||||
fi
|
||||
sudo debootstrap --no-check-gpg --include=git,gcc,make,debian-ports-archive-keyring,debian-archive-keyring,g++,dpkg-dev,qtbase5-dev,ca-certificates --arch=$1 $2 $bottlePath $5
|
||||
if [[ $2 == "crimson" ]]; then
|
||||
useDeepin25
|
||||
sudo debootstrap --no-check-gpg --include=git,deepin-keyring,gcc,make,g++,dpkg-dev,qtbase5-dev,ca-certificates --arch=$1 $2 $bottlePath $5
|
||||
else
|
||||
sudo debootstrap --no-check-gpg --include=git,gcc,make,debian-ports-archive-keyring,debian-archive-keyring,g++,dpkg-dev,qtbase5-dev,ca-certificates,qt6-base-private-dev,qt6-base-dev --arch=$1 $2 $bottlePath $5
|
||||
fi
|
||||
|
||||
if [[ $2 == "crimson" ]]; then
|
||||
sudo sed -i "s/main/main commercial community/g" $bottlePath/etc/apt/sources.list
|
||||
fi
|
||||
#if [[ $? != 0 ]]; then
|
||||
# sudo debootstrap --foreign --include=git,gcc,make,debian-ports-archive-keyring,debian-archive-keyring,g++,dpkg-dev,qtbase5-dev,ca-certificates --arch=$1 $2 $bottlePath $5
|
||||
#fi
|
||||
@@ -44,32 +56,24 @@ if [[ $? != 0 ]] && [[ $1 == loong64 ]] && [[ $2 != "loongnix" ]]; then
|
||||
sudo mv squashfs-root $bottlePath -v
|
||||
fi
|
||||
sudo bash .github/workflows/pardus-chroot $bottlePath
|
||||
if [[ $6 == "backport" ]]; then
|
||||
if [[ $8 == "backport" ]]; then
|
||||
sudo cp -rv .github/workflows/debian-backports.list $bottlePath/etc/apt/sources.list.d
|
||||
sudo mkdir -p $bottlePath/etc/apt/preferences.d/
|
||||
sudo cp -rv .github/workflows/90bookworm-backports $bottlePath/etc/apt/preferences.d/
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/tianlu-bpo ./" >> $bottlePath/etc/apt/sources.list.d/gxde-os-bpo.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/tianlu-bpo ./" >> $bottlePath/etc/apt/sources.list.d/gxde-os-bpo.list
|
||||
fi
|
||||
sudo mkdir -p $bottlePath/sources-list
|
||||
sudo cp -v .github/workflows/sources-*.list $bottlePath/sources-list
|
||||
# 配置 git
|
||||
#echo "deb [trusted=true] https://deb.debian.org/debian-ports/ unreleased main" | sudo tee $bottlePath/etc/apt/sources.list.d/debian-unreleased.list
|
||||
sudo chroot $bottlePath apt update
|
||||
sudo chroot $bottlePath apt full-upgrade -y
|
||||
sudo chroot $bottlePath apt install git -y
|
||||
sudo chroot $bottlePath git clone $3 #--depth=1
|
||||
sudo chroot $bottlePath git clone $4 #--depth=1
|
||||
sudo chroot $bottlePath git clone $4 -b $6 #--depth=1
|
||||
sudo mv $bottlePath/$(basename $3)/.github/workflows/* $bottlePath/$(basename $4)/.github/workflows -v
|
||||
# 修改版本号
|
||||
#sudo sed -i "s/) UNRELEASED; urgency=medium/~$2) UNRELEASED; urgency=medium/g" $bottlePath/deep-wine-runner-qemu-system/debian/changelog
|
||||
case $2 in
|
||||
"trixie")
|
||||
env gitPath=$(basename $4) bash .github/workflows/run-command-in-chroot.sh .github/workflows/configure-building-enviroment.sh zhuangzhuang
|
||||
;;
|
||||
"loongnix")
|
||||
env gitPath=$(basename $4) bash .github/workflows/run-command-in-chroot.sh .github/workflows/configure-building-enviroment.sh meimei
|
||||
;;
|
||||
*)
|
||||
env gitPath=$(basename $4) bash .github/workflows/run-command-in-chroot.sh .github/workflows/configure-building-enviroment.sh
|
||||
;;
|
||||
esac
|
||||
env gitPath=$(basename $4) bash .github/workflows/run-command-in-chroot.sh .github/workflows/configure-building-enviroment.sh $7 $GXDE_CROSS_ARCH
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
export DEBIAN_FRONTEND=noninteractive # 防止卡 tzdate
|
||||
GXDE_CROSS_ARCH=$2
|
||||
#mkdir -p /etc/apt/sources.list.d/
|
||||
#cp /etc/apt/sources.list /etc/apt/sources.list.d/sources.list
|
||||
#sed -i "s/deb /deb-src /g" /etc/apt/sources.list.d/sources.list
|
||||
@@ -20,19 +21,31 @@ export DEBIAN_FRONTEND=noninteractive # 防止卡 tzdate
|
||||
|
||||
|
||||
if [[ $1 == "" ]] || [[ $1 == "tianlu" ]]; then
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/tianlu ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/bixie ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/tianlu ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/bixie ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
elif [[ $1 == "zhuangzhuang" ]];then
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/zhuangzhuang ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/lizhi ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/zhuangzhuang ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/lizhi ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
else
|
||||
echo "deb [trusted=true] https://repo.gxde.org/gxde-os/$1 ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/$1 ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
fi
|
||||
#if [[ $(dpkg --print-architecture) == "loong64" ]]; then
|
||||
# echo "deb [trusted=true] https://deb.debian.org/debian-ports/ unreleased main" > /etc/apt/sources.list.d/debian-unreleased.list
|
||||
#fi
|
||||
apt install -f -y
|
||||
apt install debian-ports-archive-keyring debian-archive-keyring -y
|
||||
apt install debian-ports-archive-keyring debian-archive-keyring wget -y
|
||||
if [[ -f /sources-list/sources-$1.list ]]; then
|
||||
if [[ $(dpkg --print-architecture) == "riscv64" ]] || [[ $GXDE_CROSS_ARCH == "riscv64" ]]; then
|
||||
cp /sources-list/sources-$1-without-backport.list /etc/apt/sources.list.d -v
|
||||
else
|
||||
if [[ $(dpkg --print-architecture) == "loong64" ]] || [[ $GXDE_CROSS_ARCH == "loong64" ]]; then
|
||||
cp /sources-list/sources-$1-loong64.list /etc/apt/sources.list.d -v
|
||||
wget -O /etc/apt/trusted.gpg.d/debian-trixie-loong64.gpg https://loong13.debian.net/keyrings/debian-trixie-loong64.gpg
|
||||
else
|
||||
cp /sources-list/sources-$1.list /etc/apt/sources.list.d -v
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
for i in {1..8};
|
||||
do
|
||||
apt update -o Acquire::Check-Valid-Until=false -y
|
||||
@@ -41,7 +54,7 @@ do
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
apt install dpkg-dev sudo debian-ports-archive-keyring debian-archive-keyring devscripts -y
|
||||
apt install wget curl dpkg-dev sudo debian-ports-archive-keyring debian-archive-keyring devscripts -y
|
||||
#neofetch
|
||||
#if [[ `arch` != "x86_64" ]]; then
|
||||
# apt source qemu
|
||||
@@ -58,9 +71,11 @@ apt install dpkg-dev sudo debian-ports-archive-keyring debian-archive-keyring de
|
||||
#apt build-dep qemu -y
|
||||
# 如果是 Debian10 就需要安装 Python3 的依赖
|
||||
#apt build-dep python3.7 -y
|
||||
# 解包 deepin-desktop-base
|
||||
apt download deepin-desktop-base
|
||||
dpkg -x deepin-desktop-base_*.deb /
|
||||
# 解包 gxde-desktop-base
|
||||
|
||||
apt download gxde-desktop-base
|
||||
dpkg -x gxde-desktop-base_*.deb /
|
||||
rm gxde-desktop-base_*.deb -rfv
|
||||
if [[ -f /etc/apt/sources.list.d/debian-backports.list ]]; then
|
||||
dch --bpo ""
|
||||
sed -i "s/~bpo/-bpo/g" debian/changelog
|
||||
@@ -73,4 +88,48 @@ do
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# 从上游拉源代码
|
||||
# 从上游拉源代码
|
||||
./debian/rules get-orig-source
|
||||
|
||||
# 收集当前目录和上层目录的所有 .tar* 文件
|
||||
tar_files=()
|
||||
if compgen -G "./*.tar*" > /dev/null; then
|
||||
tar_files+=( ./*.tar* )
|
||||
fi
|
||||
if compgen -G "../*.tar*" > /dev/null; then
|
||||
tar_files+=( ../*.tar* )
|
||||
fi
|
||||
|
||||
# 如果找到 tar 文件,则逐个处理
|
||||
if [ ${#tar_files[@]} -gt 0 ]; then
|
||||
for archive in "${tar_files[@]}"; do
|
||||
filename=$(basename "$archive")
|
||||
echo "处理: $archive"
|
||||
|
||||
# 确定目标目录
|
||||
target_dir="."
|
||||
if [[ "$filename" =~ -(amd64|arm64)\.tar ]]; then
|
||||
arch="${BASH_REMATCH[1]}"
|
||||
target_dir="./$arch"
|
||||
echo " 架构: $arch → 目标目录: $target_dir"
|
||||
else
|
||||
echo " 通用包 → 目标目录: 当前目录"
|
||||
fi
|
||||
|
||||
mkdir -p "$target_dir"
|
||||
|
||||
# 直接解压到目标目录,去除顶层目录
|
||||
if tar -xzvf "$archive" -C "$target_dir" --strip-components=1; then
|
||||
echo " 完成: 内容已解压至 $target_dir"
|
||||
# (可选)解压成功后删除原始 tar 文件
|
||||
# rm "$archive"
|
||||
else
|
||||
echo " 错误: 解压 $archive 失败,保留原始文件。"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "未找到任何 .tar* 文件,跳过解压步骤。"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
mirror_style release
|
||||
download_style apt
|
||||
finddebs_style from-indices
|
||||
variants - buildd fakechroot minbase
|
||||
keyring /usr/share/keyrings/debian-archive-keyring.gpg
|
||||
default_mirror https://community-packages.deepin.com/deepin/beige/
|
||||
|
||||
# include common settings
|
||||
if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
|
||||
. "$DEBOOTSTRAP_DIR/scripts/debian-common"
|
||||
elif [ -e /debootstrap/debian-common ]; then
|
||||
. /debootstrap/debian-common
|
||||
elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
|
||||
. "$DEBOOTSTRAP_DIR/debian-common"
|
||||
else
|
||||
error 1 NOCOMMON "File not found: debian-common"
|
||||
fi
|
||||
@@ -0,0 +1,10 @@
|
||||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||||
deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
|
||||
|
||||
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
|
||||
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
|
||||
deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
|
||||
@@ -0,0 +1,25 @@
|
||||
deb http://loong13.debian.net/debian-loong64/ trixie main contrib non-free non-free-firmware
|
||||
deb-src http://loong13.debian.net/debian-loong64/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb http://loong13.debian.net/debian-loong64/ trixie-updates main contrib non-free non-free-firmware
|
||||
deb-src http://loong13.debian.net/debian-loong64/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
deb http://loong13.debian.net/debian-loong64/ trixie-backports main contrib non-free non-free-firmware
|
||||
deb-src http://loong13.debian.net/debian-loong64/ trixie-backports main contrib non-free non-free-firmware
|
||||
|
||||
deb http://loong13.debian.net/debian-loong64-security/ trixie-security main contrib non-free non-free-firmware
|
||||
deb-src http://loong13.debian.net/debian-loong64-security/ trixie-security main contrib non-free non-free-firmware
|
||||
|
||||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||||
deb https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
|
||||
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
|
||||
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
@@ -0,0 +1,25 @@
|
||||
deb [trusted=true] http://loong13.debian.net/debian-loong64/ trixie main contrib non-free non-free-firmware
|
||||
deb-src [trusted=true] http://loong13.debian.net/debian-loong64/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb [trusted=true] http://loong13.debian.net/debian-loong64/ trixie-updates main contrib non-free non-free-firmware
|
||||
deb-src [trusted=true] http://loong13.debian.net/debian-loong64/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
deb [trusted=true] http://loong13.debian.net/debian-loong64/ trixie-backports main contrib non-free non-free-firmware
|
||||
deb-src [trusted=true] http://loong13.debian.net/debian-loong64/ trixie-backports main contrib non-free non-free-firmware
|
||||
|
||||
deb [trusted=true] http://loong13.debian.net/debian-loong64-security/ trixie-security main contrib non-free non-free-firmware
|
||||
deb-src [trusted=true] http://loong13.debian.net/debian-loong64-security/ trixie-security main contrib non-free non-free-firmware
|
||||
|
||||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||||
deb https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
|
||||
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
|
||||
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
@@ -0,0 +1,10 @@
|
||||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||||
deb https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
# deb-src https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
# deb-src https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
|
||||
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
# deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
@@ -0,0 +1,13 @@
|
||||
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
|
||||
deb https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
|
||||
|
||||
deb https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
deb-src https://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware
|
||||
|
||||
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
|
||||
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
|
||||
@@ -16,17 +16,15 @@ jobs:
|
||||
- name: Config
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install git python3-requests -y
|
||||
sudo apt install git -y
|
||||
|
||||
- name: Push
|
||||
env:
|
||||
GITHUBTOKEN: ${{ secrets.GITHUBTOKEN }}
|
||||
GITHUBUSER: ${{ secrets.GITHUBUSER }}
|
||||
GITCODETOKEN: ${{ secrets.GITCODETOKEN }}
|
||||
GITCODEUSER: ${{ secrets.GITCODEUSER }}
|
||||
ATOMGITTOKEN: ${{ secrets.ATOMGITTOKEN }}
|
||||
ATOMGITUSER: ${{ secrets.ATOMGITUSER }}
|
||||
GITEEUSER: ${{ secrets.GITEEUSER }}
|
||||
GITEETOCKEN: ${{ secrets.GITEETOCKEN }}
|
||||
run: |
|
||||
cd sync-gitee-to-github
|
||||
python3 sync.py $GITHUBUSER $GITHUBTOKEN $GITCODEUSER $GITCODETOKEN $ATOMGITUSER $ATOMGITTOKEN
|
||||
python3 sync.py $GITEEUSER $GITEETOCKEN $GITHUBUSER $GITHUBTOKEN
|
||||
|
||||
|
||||
+4
-1
@@ -1,8 +1,11 @@
|
||||
This file contains honored contributers of GXDE and GXDE OS. The list is in alphabetical order.
|
||||
|
||||
CharOfString <root@charofstring.cc>
|
||||
dependon <liuminghang0821@gmail.com>
|
||||
elysia <c.elysia@foxmail.com>
|
||||
gfdgd xi <3025613752@qq.com>
|
||||
qingyu <qingyuqingyu123@proton.me>
|
||||
shenmo <shenmo@spark-app.store>
|
||||
yoyo <chowhound_xb@163.com>
|
||||
zinface <zinface@163.com>
|
||||
zinface <zinface@163.com>
|
||||
zeqi <a202128502@163.com>
|
||||
|
||||
@@ -1,9 +1,18 @@
|
||||

|
||||
|
||||
<div>
|
||||
<div style="float: left; display: flex; align-items: center" >
|
||||
<a href='https://gitee.com/GXDE-OS/GXDE/stargazers'><img src='https://gitee.com/GXDE-OS/GXDE/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||
<img src='https://gitcode.com/GXDE-OS/GXDE/star/badge.svg' alt='G-Star'></img>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<a href="./README.zh.md">中文版</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
## Welcome to GXDE OS Community
|
||||
|
||||
**[中文](/README.zh.md)**
|
||||
|
||||
GXDE OS is an Debian based Linux distro featuring GXDE Desktop Environment. It offers an elegant, beautifu, light weight and out-of-the-box experience.
|
||||
|
||||
### Classic and Extended Deepin DE Experience
|
||||
@@ -32,6 +41,7 @@ Please Click the Star in the Upper Right Corner, Your Support is Our Greatest Mo
|
||||
|
||||
QQ Group: 881201853
|
||||
Discord: https://discord.gg/t5Uf2xYpvA
|
||||
Forum: https://bbs.spark-app.store/
|
||||
|
||||
|
||||
|
||||
@@ -39,17 +49,17 @@ Discord: https://discord.gg/t5Uf2xYpvA
|
||||
> Currently, ISO supports amd64, arm64
|
||||
|
||||
|
||||
Please check https://www.gxde.org/en/install/
|
||||
Please check https://www.gxde.top/en/install/
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## Other Projects
|
||||
@@ -75,11 +85,19 @@ Gitee: http://gitee.com/GXDE-OS
|
||||
Github: http://github.com/GXDE-OS
|
||||
Gitcode: https://gitcode.com/GXDE-OS
|
||||
|
||||
## Donate
|
||||
https://donate.deepinos.org.cn/donate/index.html#
|
||||
## Donations
|
||||
|
||||
### Advertisement
|
||||
Scan to receive a payment red envelope from the Alipay official event!
|
||||
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||
We consistently adhere to the principles of openness and transparency. Your donations will be directly used for system maintenance, server operations, and technical upgrades to ensure continuous project optimization. All fund flows are regularly disclosed to the public, accepting community oversight, with no individual profiting personally. We pledge that every contribution will be transformed into momentum driving the open-source project forward.
|
||||
|
||||
# ©2023~Now gfdgd xi
|
||||
Donation Portal: https://donate.deepinos.org.cn/donate/index.html#
|
||||
Fund Disclosure: https://bbs.spark-app.store/d/282-xing-huo-ying-yong-shang-dian-shou-zhi-ji-lu-ji-yu-suan-202507yi-geng-xin
|
||||
|
||||
### Feed the Developer
|
||||
The author is online and hungry for support (nom nom~). Feeding might even get updates faster!
|
||||
|
||||
<p><img src="https://www.gxde.top/install/gf.jpg" style="border-radius: 4px;" ></p>
|
||||
|
||||
|
||||
<span style="color: #E6004C; font-size: 20px"><b>©2023~Now gfdgd xi</b></span>
|
||||
|
||||
<div style="background: #E6004C; width: 100%; height: 3px;"></div>
|
||||
+29
-16
@@ -1,9 +1,14 @@
|
||||
<center><img src=new-logo-long.png width=300/></center>
|
||||
<hr>
|
||||

|
||||
|
||||
<div>
|
||||
<div style="float: left; display: flex; align-items: center" >
|
||||
<a href='https://gitee.com/GXDE-OS/GXDE/stargazers'><img src='https://gitee.com/GXDE-OS/GXDE/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||
|
||||
|
||||
**[English](/README.md)**
|
||||
<img src='https://gitcode.com/GXDE-OS/GXDE/star/badge.svg' alt='G-Star'></img>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<a href="./README.md">English Version</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
## 简介
|
||||
@@ -30,6 +35,7 @@ GXDE OS 内置 [星火应用商店](https://gitee.com/spark-store-project/),
|
||||
|
||||
QQ 群:881201853
|
||||
Discord:https://discord.gg/t5Uf2xYpvA
|
||||
论坛:https://bbs.spark-app.store/
|
||||
|
||||
请点击右上角的Star,您的支持是我们最大的动力。
|
||||
|
||||
@@ -37,17 +43,17 @@ Discord:https://discord.gg/t5Uf2xYpvA
|
||||
|
||||
## 安装
|
||||
|
||||
请查看 https://www.gxde.org/install/install
|
||||
请查看 https://www.gxde.top/install/install
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 其它项目
|
||||
@@ -73,10 +79,17 @@ Github:http://github.com/GXDE-OS
|
||||
Gitcode:https://gitcode.com/GXDE-OS
|
||||
|
||||
## 捐赠
|
||||
https://donate.deepinos.org.cn/donate/index.html#
|
||||
我们始终秉持开放透明的原则,您的捐赠将直接用于系统维护、服务器运营及技术升级,确保项目持续优化。所有资金流向均定期公示,接受社区监督,无人从中牟取个人利益。我们承诺,每一份支持都将转化为推动开源项目前进的力量。
|
||||
|
||||
### 广告
|
||||
支付宝官方活动,扫描获得支付红包!
|
||||
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||
捐赠入口:https://donate.deepinos.org.cn/donate/index.html#
|
||||
资金公示:https://bbs.spark-app.store/d/282-xing-huo-ying-yong-shang-dian-shou-zhi-ji-lu-ji-yu-suan-202507yi-geng-xin
|
||||
|
||||
# ©2023~Now gfdgd xi
|
||||
### 请作者喝杯茶
|
||||
|
||||
作者在线求投喂(嗷呜~),说不定会更新得更快哦
|
||||
|
||||
<p><img src="https://www.gxde.top/install/gf.jpg" style="border-radius: 4px;" ></p>
|
||||
|
||||
<span style="color: #E6004C; font-size: 20px"><b>©2023~Now gfdgd xi</b></span>
|
||||
|
||||
<div style="background: #E6004C; width: 100%; height: 3px;"></div>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# PKGBUILD for testing purpose.
|
||||
|
||||
pkgname=gxde-example
|
||||
pkgver=0
|
||||
pkgrel=1
|
||||
pkgdesc="GXDE example component"
|
||||
arch=('x86_64' 'aarch64')
|
||||
url="https://github.com/GXDE-OS/${pkgname}"
|
||||
license=('GPL-3.0-or-later')
|
||||
|
||||
depends=('qt5-base')
|
||||
makedepends=('git' 'cmake' 'qt5-tools')
|
||||
source=()
|
||||
sha256sums=()
|
||||
|
||||
_srcdir() {
|
||||
git -C "$startdir" rev-parse --show-toplevel
|
||||
}
|
||||
|
||||
pkgver() {
|
||||
head -n 1 "$(_srcdir)/debian/changelog" | sed -E 's/.*\(([^)]*)\).*/\1/; s/^[0-9]+://; s/-/./g'
|
||||
}
|
||||
|
||||
build() {
|
||||
cmake -B build -S "$(_srcdir)" \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
}
|
||||
Vendored
+26
-2
@@ -1,4 +1,4 @@
|
||||
gxde (2025.05.04) UNRELEASED; urgency=medium
|
||||
gxde (2026.10.26) UNRELEASED; urgency=medium
|
||||
|
||||
* 新增 remmina 以解决远程问题
|
||||
* 改为安装 dde-printer
|
||||
@@ -6,8 +6,32 @@ gxde (2025.05.04) UNRELEASED; urgency=medium
|
||||
* 修复安装 gxde-desktop-android 会自动安装 gxde-desktop-extra 的问题
|
||||
* 新增推荐依赖:龙芯应用合作社(仅限:mips64el loongarch64 loong64)
|
||||
* 移除推荐依赖:plank
|
||||
* 修复小小电脑无法正常更新 gxde-desktop-android 的问题
|
||||
* 修改 dde-control-center、dde-launcher、dde-dock、deepin-desktop-base 为 gxde-control-center、gxde-launcher、gxde-dock、gxde-desktop-base
|
||||
* 修改 dde-session-ui、dde-file-manager、dde-desktop 为
|
||||
gxde-session-ui、gxde-file-manager、gxde-desktop-panel
|
||||
* startdde=>startgxde
|
||||
* dde-kwin --> gxde-wm-shim
|
||||
* 新增推荐依赖 gxde-desktop
|
||||
* gxde-introduction 由 Depends 设置为 Recommends
|
||||
* 推荐安装 apt-is-aptss
|
||||
* 新增推荐依赖 bash-pinyin-completion
|
||||
* 新增推荐依赖gxde-kernel-manager、deepin-log-viewer
|
||||
* 新增 98 版五笔输入法
|
||||
* 新增推荐fcitx5-pinyin-zhwiki
|
||||
* gxde-desktop-android gxde-ocr 设置为推荐依赖
|
||||
* 新增 GXDE 硬件管理器
|
||||
* 推荐安装 deepin 跨端协同
|
||||
* 更改 gxde-desktop-extra 推荐依赖
|
||||
* 推荐安装 firmware-atheros | firmware-ath9k-htc
|
||||
* gxde-desktop-android 指定安装 spark-store 而不是可选安装 aptss
|
||||
* 添加推荐依赖 deepin-liferaft
|
||||
* 新增推荐依赖 gxde-dlna-caster
|
||||
* 新增推荐依赖 gxde-filetransfer
|
||||
* 新增推荐依赖 gxde-wayland-session, gxdm-emergency-mode, gxde-freewb, fcitx5-theme-deepin
|
||||
* 移除星火动态壁纸依赖
|
||||
|
||||
-- gfdgd_xi <3025613752@qq.com> Sun, 04 May 2025 19:29:23 +0800
|
||||
-- gfdgd_xi <3025613752@qq.com> Mon, 26 Oct 2026 21:57:06 +0800
|
||||
|
||||
gxde (2024.10.20) UNRELEASED; urgency=medium
|
||||
|
||||
|
||||
Vendored
+36
-24
@@ -14,7 +14,7 @@ Recommends: ${misc:Depends},
|
||||
gxde-terminal,
|
||||
gxde-deb-installer,
|
||||
gxde-editor,
|
||||
gxde-image-viewer,
|
||||
gxde-image-viewer | deepin-image-viewer,
|
||||
gxde-icon-theme,
|
||||
gxde-sea-icon-theme,
|
||||
gxde-ocr,
|
||||
@@ -26,7 +26,7 @@ Recommends: ${misc:Depends},
|
||||
gxde-sendbylan,
|
||||
gxde-dict,
|
||||
gxde-system-assistant,
|
||||
spark-store | aptss,
|
||||
gxde-hardware-viewer,
|
||||
loongsonapplication,
|
||||
gxde-boot-maker,
|
||||
deepin-clone,
|
||||
@@ -34,14 +34,28 @@ Recommends: ${misc:Depends},
|
||||
deepin-system-monitor,
|
||||
gxde-downloader,
|
||||
gparted,
|
||||
fantascene-dynamic-wallpaper,
|
||||
x11vnc,
|
||||
gxde-dlna-caster,
|
||||
com.github.minesweep,
|
||||
2048-qt,
|
||||
papirus-icon-theme | gxde-desktop-android,
|
||||
remmina,
|
||||
screensaver-pp,
|
||||
gxde-time-screensaver,
|
||||
gxde-desktop,
|
||||
bash-pinyin-completion,
|
||||
gxde-kernel-manager,
|
||||
deepin-log-viewer,
|
||||
fcitx5-table-wubi98,
|
||||
fcitx5-pinyin-zhwiki,
|
||||
gxde-freewb,
|
||||
fcitx5-theme-deepin,
|
||||
dde-cooperation,
|
||||
firmware-atheros,
|
||||
deepin-liferaft,
|
||||
gxde-wayland-session,
|
||||
gxde-filetransfer,
|
||||
gxdm-emergency-mode,
|
||||
Description: GXDE New Desktop Environment Extra - Next
|
||||
This is a meta package depends GXDE New Desktop Envrionment Extra.
|
||||
.
|
||||
@@ -53,21 +67,21 @@ Depends:
|
||||
${misc:Depends},
|
||||
gxde-daemon,
|
||||
gxde-desktop,
|
||||
gxde-calculator,
|
||||
gxde-terminal,
|
||||
gxde-deb-installer,
|
||||
gxde-editor,
|
||||
gxde-image-viewer,
|
||||
gxde-ocr,
|
||||
gxde-music,
|
||||
gxde-font-installer,
|
||||
gxde-movie,
|
||||
gxde-quick-hash,
|
||||
spark-store | aptss,
|
||||
loongsonapplication,
|
||||
spark-store,
|
||||
deepin-system-monitor,
|
||||
dde-control-center,
|
||||
dde-file-manager,
|
||||
gxde-control-center,
|
||||
gxde-file-manager,
|
||||
spark-store | aptss,
|
||||
Recommends:
|
||||
gxde-ocr
|
||||
Conflicts:
|
||||
plymouth-theme-gxde-logo,
|
||||
linux-kernel-gxde-i386,
|
||||
@@ -82,7 +96,8 @@ Conflicts:
|
||||
linux-kernel-oldstable-gxde-loong64,
|
||||
plymouth,
|
||||
tela-grub2-themes,
|
||||
plymouth-theme-gxde-logo,
|
||||
firmware-atheros,
|
||||
firmware-ath9k-htc,
|
||||
Description: GXDE New Desktop Environment For PRoot - Next
|
||||
This is a meta package depends GXDE New Desktop Envrionment in Android PRoot.
|
||||
.
|
||||
@@ -90,28 +105,28 @@ Description: GXDE New Desktop Environment For PRoot - Next
|
||||
Package: gxde-desktop
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends},
|
||||
deepin-desktop-base,
|
||||
dde-desktop,
|
||||
dde-dock,
|
||||
dde-control-center(>> 2.90.5),
|
||||
dde-launcher,
|
||||
startdde,
|
||||
dde-session-ui,
|
||||
gxde-desktop-base,
|
||||
gxde-desktop-panel,
|
||||
gxde-dock,
|
||||
gxde-control-center,
|
||||
gxde-launcher,
|
||||
startgxde,
|
||||
gxde-session-ui,
|
||||
gxde-artwork,
|
||||
dde-file-manager,
|
||||
gxde-file-manager,
|
||||
dde-qt5integration,
|
||||
eject,
|
||||
gxde-wallpapers,
|
||||
fonts-noto,
|
||||
dde-kwin | gxde-kwin,
|
||||
gxde-wm-shim | gxde-kwin-neo,
|
||||
deepin-screensaver,
|
||||
gxde-default-settings,
|
||||
gxde-shell-tools,
|
||||
gxde-compressor,
|
||||
gxde-introduction,
|
||||
Recommends:
|
||||
gxde-desktop-extra | gxde-desktop-android,
|
||||
gxde-editor,
|
||||
gxde-introduction,
|
||||
pppoe,
|
||||
gvfs-fuse,
|
||||
smbclient,
|
||||
@@ -147,7 +162,6 @@ Recommends:
|
||||
x-display-manager,
|
||||
gxde-image-viewer,
|
||||
gxde-calendar,
|
||||
gxde-calculator,
|
||||
gxde-voice-recorder,
|
||||
deepin-screen-recorder,
|
||||
warm-sched,
|
||||
@@ -158,14 +172,12 @@ Recommends:
|
||||
plymouth-theme-gxde-logo,
|
||||
fcitx5,
|
||||
fcitx5-table,
|
||||
fantascene-dynamic-wallpaper,
|
||||
x11vnc,
|
||||
apt-is-aptss,
|
||||
Conflicts:
|
||||
dde-control-center(<< 2.90.5),
|
||||
deepin-desktop-environment-desktop,
|
||||
deepin-desktop-environment-dock,
|
||||
deepin-desktop-environment-launcher,
|
||||
libdframeworkdbus2(>> 15)
|
||||
Description: GXDE New Desktop Environment - Next
|
||||
This is a meta package depends GXDE New Desktop Envrionment.
|
||||
.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
@@ -0,0 +1,4 @@
|
||||
# GXDE Arch Linux pacman source
|
||||
[gxde]
|
||||
SigLevel = Optional TrustAll
|
||||
Server = https://repo1.gxde.top/gxde-arch/$arch
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
+135
-62
@@ -1,73 +1,146 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
将 Gitee 上的 GXDE-OS 组织仓库镜像同步到 GitHub(GXDE-OS 组织)。
|
||||
|
||||
用法:
|
||||
python3 sync.py <gitee用户名> <gitee密码或Token> <github用户名> <githubToken>
|
||||
|
||||
流程:
|
||||
1. 通过 Gitee API v5 分页获取 GXDE-OS 组织下的全部仓库列表(带 token 失败时回退匿名)
|
||||
2. 多线程 clone --bare 拉取 Gitee 仓库
|
||||
3. 逐个 push --mirror 推送到 GitHub,失败自动重试并在结束时汇总报告
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
import requests
|
||||
import threading
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
dataHeaders = {
|
||||
"accept": "application/json"
|
||||
}
|
||||
pullUrl = "https://gitee.com/GXDE-OS/"
|
||||
pushUrl = [
|
||||
"https://@USER@:@PASS@@github.com/GXDE-OS/",
|
||||
"https://@USER@:@PASS@@gitcode.com/GXDE-OS/",
|
||||
"https://@USER@:@PASS@@atomgit.com/GXDE-OS/"
|
||||
]
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0]
|
||||
cloneDir = os.path.join(programPath, "git-clone")
|
||||
orgName = "GXDE-OS"
|
||||
perPage = 100
|
||||
threadMax = 8
|
||||
|
||||
if (len(sys.argv) < 1 + len(pushUrl) * 2):
|
||||
print(f"请输入用于推送的账户和密码(需要 {len(pushUrl)} 组以推送不同的平台,提供顺序如下)")
|
||||
for i in pushUrl:
|
||||
print(f" {i}")
|
||||
exit(1)
|
||||
|
||||
# 读取参数
|
||||
userName = []
|
||||
password = []
|
||||
for i in range(1, len(sys.argv)):
|
||||
# 输入账户
|
||||
if (i % 2 == 1):
|
||||
userName.append(sys.argv[i])
|
||||
# 输入密码
|
||||
if (i % 2 == 0):
|
||||
password.append(sys.argv[i])
|
||||
def usage():
|
||||
print("用法: python3 sync.py <gitee用户名> <gitee密码或Token> <github用户名> <githubToken>")
|
||||
sys.exit(1)
|
||||
|
||||
def sync(i):
|
||||
global thread
|
||||
# 拉取代码进行同步
|
||||
if (not os.path.exists(f"{programPath}/git-clone")):
|
||||
os.makedirs(f"{programPath}/git-clone")
|
||||
print(f"======================> {pullUrl}/{i}")
|
||||
os.system(f"cd '{programPath}/git-clone' ; git clone --bare '{pullUrl}/{i}'")
|
||||
# 推送
|
||||
for j in range(len(pushUrl)):
|
||||
# git remote set-url origin
|
||||
gitUrl = pushUrl[j].replace("@USER@", userName[j]).replace("@PASS@", password[j]) + "/" + i
|
||||
os.system(f"cd '{programPath}/git-clone/{i}.git' ; git remote set-url origin '{gitUrl}'")
|
||||
os.system(f"cd '{programPath}/git-clone/{i}.git' ; git push --mirror")
|
||||
# 移除临时文件
|
||||
os.system(f"rm -rf '{programPath}/git-clone/{i}.git'")
|
||||
thread -= 1
|
||||
|
||||
data = requests.get("https://github.com/orgs/GXDE-OS/repos_list?q=&page=1", headers=dataHeaders).json()
|
||||
# 获取页数
|
||||
page = int(data["pageCount"])
|
||||
repoList = []
|
||||
# 获取仓库列表
|
||||
for i in range(1, page + 1):
|
||||
pageData = requests.get(f"https://github.com/orgs/GXDE-OS/repos_list?q=&page={i}", headers=dataHeaders).json()
|
||||
repositories = pageData["repositories"]
|
||||
for j in repositories:
|
||||
repoList.append(j["name"])
|
||||
# 多线程处理以提升速度
|
||||
thread = 0
|
||||
threadMax = 32
|
||||
for i in repoList:
|
||||
def apiGet(path, params):
|
||||
"""调用 Gitee API v5 的单个请求"""
|
||||
params["per_page"] = str(perPage)
|
||||
url = "https://gitee.com/api/v5" + path + "?" + urllib.parse.urlencode(params)
|
||||
req = urllib.request.Request(url, headers={"User-Agent": "GXDE-Sync/1.0"})
|
||||
with urllib.request.urlopen(req, timeout=30) as resp:
|
||||
return json.loads(resp.read().decode("utf-8"))
|
||||
|
||||
|
||||
def getGiteeRepos(token):
|
||||
"""分页获取 Gitee 组织下全部仓库的 path(URL 安全路径)
|
||||
|
||||
Gitee API 返回的 name 是仓库别名(可能含大写、中文或括号,如
|
||||
"CTranslate2"),不能直接用作 clone URL 的路径组件;path 才是 URL
|
||||
安全的仓库路径(如 "ctranslate2"),用它拼接 clone/push URL 才合法。
|
||||
"""
|
||||
repoList = []
|
||||
page = 1
|
||||
while True:
|
||||
time.sleep(0.1)
|
||||
if (thread < threadMax):
|
||||
threading.Thread(target=sync, args=[i]).start()
|
||||
thread += 1
|
||||
params = {"page": str(page)}
|
||||
if token:
|
||||
params["access_token"] = token
|
||||
data = apiGet(f"/orgs/{orgName}/repos", params)
|
||||
if not isinstance(data, list) or len(data) == 0:
|
||||
break
|
||||
repoList.extend([i["path"] for i in data])
|
||||
page += 1
|
||||
return repoList
|
||||
|
||||
|
||||
def runGit(args, cwd=None):
|
||||
return subprocess.run(args, cwd=cwd, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT, text=True)
|
||||
|
||||
|
||||
def syncRepo(name, pullUrl, pushUrl):
|
||||
repoDir = os.path.join(cloneDir, name + ".git")
|
||||
try:
|
||||
# 1. 从 Gitee clone --bare(重试 3 次)
|
||||
ok = False
|
||||
lastOut = ""
|
||||
for attempt in range(3):
|
||||
result = runGit(["git", "clone", "--bare", pullUrl + name, repoDir])
|
||||
if result.returncode == 0:
|
||||
ok = True
|
||||
break
|
||||
lastOut = result.stdout
|
||||
time.sleep(5)
|
||||
if not ok:
|
||||
print(f"[FAIL] clone 失败: {name}\n{lastOut}")
|
||||
return False
|
||||
|
||||
# 2. push --mirror 到 GitHub(重试 3 次)
|
||||
ok = False
|
||||
lastOut = ""
|
||||
for attempt in range(3):
|
||||
result = runGit(["git", "-C", repoDir, "push", "--mirror", pushUrl + name])
|
||||
if result.returncode == 0:
|
||||
ok = True
|
||||
break
|
||||
lastOut = result.stdout
|
||||
time.sleep(5)
|
||||
if not ok:
|
||||
print(f"[FAIL] push 失败: {name}\n{lastOut}")
|
||||
return False
|
||||
|
||||
print(f"[ OK ] 同步完成: {name}")
|
||||
return True
|
||||
finally:
|
||||
# 清理临时目录
|
||||
runGit(["rm", "-rf", repoDir])
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 5:
|
||||
usage()
|
||||
giteeUser, giteeToken = sys.argv[1], sys.argv[2]
|
||||
githubUser, githubToken = sys.argv[3], sys.argv[4]
|
||||
|
||||
pullUrl = f"https://{urllib.parse.quote(giteeUser)}:{urllib.parse.quote(giteeToken)}@gitee.com/{orgName}/"
|
||||
pushUrl = f"https://{urllib.parse.quote(githubUser)}:{urllib.parse.quote(githubToken)}@github.com/{orgName}/"
|
||||
|
||||
os.makedirs(cloneDir, exist_ok=True)
|
||||
|
||||
# 获取仓库列表:优先带 token,失败则回退到匿名(仅公开仓库)
|
||||
try:
|
||||
repoList = getGiteeRepos(giteeToken)
|
||||
except Exception:
|
||||
repoList = getGiteeRepos("")
|
||||
print(f"共获取到 {len(repoList)} 个仓库")
|
||||
if not repoList:
|
||||
print("未能获取仓库列表,退出")
|
||||
sys.exit(1)
|
||||
|
||||
failed = []
|
||||
with ThreadPoolExecutor(max_workers=threadMax) as pool:
|
||||
futures = {pool.submit(syncRepo, n, pullUrl, pushUrl): n for n in repoList}
|
||||
for future in as_completed(futures):
|
||||
if not future.result():
|
||||
failed.append(futures[future])
|
||||
|
||||
print("=" * 50)
|
||||
print(f"同步完成: 成功 {len(repoList) - len(failed)} / {len(repoList)}")
|
||||
if failed:
|
||||
print("以下仓库同步失败:")
|
||||
for name in failed:
|
||||
print(" -", name)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2026 CharOfString <root@charofstring.cc>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation, either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
# -----------------------------------------------------------------------------
|
||||
# 本脚本用于向GXDE Arch源上传包并更新数据库,由building-pkg.yml自动调用
|
||||
# 用法:
|
||||
# arch-repo-update.sh <x86_64|aarch64> <arch-xxx.tar>
|
||||
# 依赖:
|
||||
# repo-add、bsdtar、flock (Archlinux自带;Debian上需要安装pacman-package-manager、libarchive-tools)
|
||||
# 环境变量:
|
||||
# GXDE_ARCH_REPO_ROOT 源根目录,对外地址为 https://repo1.gxde.top/gxde-arch/$arch
|
||||
# GXDE_ARCH_GPG_KEY 可选,设置后对包和数据库进行签名
|
||||
# -----------------------------------------------------------------------------
|
||||
# This script updates the artifacts in GXDE pacman source and is invoked by
|
||||
# building-pkg.yml automatically.
|
||||
# Usage:
|
||||
# arch-repo-update.sh <x86_64|aarch64> <arch-xxx.tar>
|
||||
# Dependencies:
|
||||
# repo-add, bsdtar, flock (Archlinux built-in; on Debian, install pacman-package-manager
|
||||
# and libarchive-tools)
|
||||
# Environment variables:
|
||||
# GXDE_ARCH_REPO_ROOT The root directory of the source, externally accessible at
|
||||
# https://repo1.gxde.top/gxde-arch/$arch
|
||||
# GXDE_ARCH_GPG_KEY Optional, if set, will sign the packages and database.
|
||||
|
||||
set -e
|
||||
arch=$1
|
||||
tar_path=$2
|
||||
repo_root=${GXDE_ARCH_REPO_ROOT:-/var/www/repo/gxde-arch}
|
||||
repo_name=gxde
|
||||
|
||||
# 引用/Works Cited: https://patorjk.com/software/taag/#p=display&f=Linguaholic+Shadow+3D
|
||||
echo ' ██████╗██╗ ██╗██████╗ ████████╗ ████╗ ' &&
|
||||
echo '██╔═════╝╚═██╗ ██╔═╝██╔═══██╗██╔═════╝ ██╔═══╝ ████╗ ██╗ ████╗ ' &&
|
||||
echo '██║ ████╗ ╚═██╔═╝ ██║ ██║██████╗ ██████╗ ██╔═══██╗████╔═══╝ ' &&
|
||||
echo '██║ ╚═██║ ██╔═██╗ ██║ ██║██╔═══╝ ╚═██╔═╝ ██║ ██║██╔═╝ ' &&
|
||||
echo '╚═██████║██╔═╝ ╚═██╗██████╔═╝████████╗ ██║ ╚═████╔═╝██║ ' &&
|
||||
echo ' ╚═════╝╚═╝ ╚═╝╚═════╝ ╚═══════╝ ╚═╝ ╚═══╝ ╚═╝ ' &&
|
||||
echo ' ' &&
|
||||
echo ' ' &&
|
||||
echo ' ████╗ ██╗ ██╗ ██╗ ' &&
|
||||
echo '██╔═══██╗██╗ ████╗ ██████╗██████╗ ██║ ╚═╝██████╗ ██╗ ██╗██╗ ██╗' &&
|
||||
echo '████████║████╔═══╝██╔═════╝██╔═══██╗██║ ██╗██╔═══██╗██║ ██║╚═████╔═╝' &&
|
||||
echo '██╔═══██║██╔═╝ ██║ ██║ ██║██║ ██║██║ ██║██║ ██║ ████║ ' &&
|
||||
echo '██║ ██║██║ ╚═██████╗██║ ██║████████╗██║██║ ██║╚═██████║██╔═══██╗' &&
|
||||
echo '╚═╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═══════╝╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝'
|
||||
|
||||
# repo-add依赖bsdtar读取包,缺失时只会报"is not a package file"
|
||||
# repo-add needs bsdtar to read packages, without it it only says "is not a package file".
|
||||
for cmd in repo-add bsdtar flock; do
|
||||
if ! command -v $cmd > /dev/null; then
|
||||
echo "$cmd not found, install pacman-package-manager and libarchive-tools" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
case $arch in
|
||||
x86_64|aarch64) ;;
|
||||
*) echo "Unsupported arch: $arch" >&2; exit 1 ;;
|
||||
esac
|
||||
|
||||
if [[ ! -f $tar_path ]]; then
|
||||
echo "$tar_path not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
repoDir=$repo_root/$arch
|
||||
mkdir -p $repoDir
|
||||
exec 9> $repoDir/.lock
|
||||
flock 9
|
||||
|
||||
tmpDir=$(mktemp -d)
|
||||
trap "rm -rf $tmpDir" EXIT
|
||||
tar -xf $tar_path -C $tmpDir
|
||||
|
||||
newPackages=()
|
||||
for pkg in $tmpDir/*.pkg.tar.*; do
|
||||
[[ $pkg == *.sig ]] && continue
|
||||
name=$(basename $pkg)
|
||||
mv -f $pkg $repoDir/$name
|
||||
if [[ -n $GXDE_ARCH_GPG_KEY ]]; then
|
||||
rm -f $repoDir/$name.sig
|
||||
gpg --batch --yes -u $GXDE_ARCH_GPG_KEY --detach-sign --no-armor $repoDir/$name
|
||||
fi
|
||||
newPackages+=($repoDir/$name)
|
||||
done
|
||||
|
||||
if [[ ${#newPackages[@]} == 0 ]]; then
|
||||
echo "No package in $tar_path" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
signArgs=()
|
||||
if [[ -n $GXDE_ARCH_GPG_KEY ]]; then
|
||||
signArgs=(--sign --key $GXDE_ARCH_GPG_KEY)
|
||||
fi
|
||||
|
||||
repo-add -R "${signArgs[@]}" $repoDir/$repo_name.db.tar.gz "${newPackages[@]}"
|
||||
rm -f $tar_path
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 67 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
Reference in New Issue
Block a user