mirror of
https://github.com/GXDE-OS/GXDE.git
synced 2026-08-09 14:00:51 +08:00
Compare commits
61
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
@@ -88,6 +88,7 @@ jobs:
|
||||
https://github.com/$GITHUB_REPOSITORY \
|
||||
${{ inputs.rootfs-source }} \
|
||||
${{ github.ref_name }} \
|
||||
${{ inputs.gxde-codename-upload }} \
|
||||
$isBackport
|
||||
|
||||
- name: Building ${{ GITHUB.repository }}
|
||||
@@ -97,11 +98,13 @@ jobs:
|
||||
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
|
||||
@@ -116,6 +119,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: |
|
||||
|
||||
@@ -68,19 +68,6 @@ jobs:
|
||||
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
|
||||
@@ -95,26 +82,30 @@ jobs:
|
||||
isBackport=backport
|
||||
fi
|
||||
export REPO_BRANCH=${{ github.ref_name }}
|
||||
bash .github/workflows/configure-building-enviroment-base-system.sh ${{ inputs.arch }} \
|
||||
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_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
|
||||
@@ -129,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: |
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
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
|
||||
|
||||
call-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-hetao-cross-host.yml@master
|
||||
secrets: inherit
|
||||
@@ -29,7 +29,3 @@ jobs:
|
||||
call-hetao:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-hetao-cross.yml@master
|
||||
secrets: inherit
|
||||
|
||||
call-tianlu:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-tianlu-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
|
||||
+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,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
|
||||
@@ -22,6 +22,18 @@ env:
|
||||
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
|
||||
@@ -46,7 +58,6 @@ jobs:
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
gxde-cross-arch: arm64
|
||||
|
||||
|
||||
call-riscv64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
@@ -58,3 +69,15 @@ jobs:
|
||||
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
|
||||
@@ -22,6 +22,17 @@ env:
|
||||
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
|
||||
|
||||
call-amd64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
@@ -44,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: sid
|
||||
rootfs-source: https://mips-repo.gxde.top/
|
||||
gxde-codename: lizhi
|
||||
gxde-codename-upload: zhuangzhuang
|
||||
|
||||
call-riscv64-zhuangzhuang:
|
||||
uses: GXDE-OS/GXDE/.github/workflows/building-deb-base.yml@master
|
||||
secrets: inherit
|
||||
@@ -65,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
|
||||
|
||||
@@ -16,7 +16,7 @@ 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
|
||||
@@ -29,7 +29,7 @@ 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
|
||||
@@ -56,12 +56,14 @@ if [[ $? != 0 ]] && [[ $1 == loong64 ]] && [[ $2 != "loongnix" ]]; then
|
||||
sudo mv squashfs-root $bottlePath -v
|
||||
fi
|
||||
sudo bash .github/workflows/pardus-chroot $bottlePath
|
||||
if [[ $7 == "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.top/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
|
||||
@@ -72,22 +74,6 @@ 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
|
||||
;;
|
||||
"sid")
|
||||
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
|
||||
;;
|
||||
"crimson")
|
||||
env gitPath=$(basename $4) bash .github/workflows/run-command-in-chroot.sh .github/workflows/configure-building-enviroment.sh hetao
|
||||
;;
|
||||
*)
|
||||
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
|
||||
|
||||
@@ -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.top/gxde-os/tianlu ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo.gxde.top/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.top/gxde-os/zhuangzhuang ./" >> /etc/apt/sources.list.d/gxde-os.list
|
||||
echo "deb [trusted=true] https://repo.gxde.top/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.top/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
|
||||
@@ -59,6 +72,7 @@ apt install dpkg-dev sudo debian-ports-archive-keyring debian-archive-keyring de
|
||||
# 如果是 Debian10 就需要安装 Python3 的依赖
|
||||
#apt build-dep python3.7 -y
|
||||
# 解包 gxde-desktop-base
|
||||
|
||||
apt download gxde-desktop-base
|
||||
dpkg -x gxde-desktop-base_*.deb /
|
||||
rm gxde-desktop-base_*.deb -rfv
|
||||
@@ -74,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,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
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
This file contains honored contributers of GXDE and GXDE OS. The list is in alphabetical order.
|
||||
|
||||
CharOfString <markus_verify@126.com>
|
||||
dependon <liuminghang0821@gmail.com>
|
||||
elysia <c.elysia@foxmail.com>
|
||||
gfdgd xi <3025613752@qq.com>
|
||||
@@ -7,3 +8,4 @@ qingyu <qingyuqingyu123@proton.me>
|
||||
shenmo <shenmo@spark-app.store>
|
||||
yoyo <chowhound_xb@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
|
||||
@@ -88,8 +97,7 @@ The author is online and hungry for support (nom nom~). Feeding might even get u
|
||||
|
||||
<p><img src="https://www.gxde.top/install/gf.jpg" style="border-radius: 4px;" ></p>
|
||||
|
||||
### Advertisement
|
||||
Scan to receive a payment red envelope from the Alipay official event!
|
||||
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||
|
||||
# ©2023~Now gfdgd xi
|
||||
<span style="color: #E6004C; font-size: 20px"><b>©2023~Now gfdgd xi</b></span>
|
||||
|
||||
<div style="background: #E6004C; width: 100%; height: 3px;"></div>
|
||||
+12
-12
@@ -1,11 +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>
|
||||
|
||||
|
||||
## 简介
|
||||
@@ -87,9 +90,6 @@ Gitcode:https://gitcode.com/GXDE-OS
|
||||
|
||||
<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>
|
||||
|
||||
### 广告
|
||||
支付宝官方活动,扫描获得支付红包!
|
||||
<p><img src="Icon/QR/advertisement0.jpg" width="250" ></p>
|
||||
|
||||
# ©2023~Now gfdgd xi
|
||||
<div style="background: #E6004C; width: 100%; height: 3px;"></div>
|
||||
|
||||
Vendored
+8
-2
@@ -1,4 +1,4 @@
|
||||
gxde (2025.10.26) UNRELEASED; urgency=medium
|
||||
gxde (2026.08.06) UNRELEASED; urgency=medium
|
||||
|
||||
* 新增 remmina 以解决远程问题
|
||||
* 改为安装 dde-printer
|
||||
@@ -20,8 +20,14 @@ gxde (2025.10.26) UNRELEASED; urgency=medium
|
||||
* 新增 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
|
||||
|
||||
-- gfdgd_xi <3025613752@qq.com> Sun, 26 Oct 2025 15:26:32 +0800
|
||||
-- gfdgd_xi <3025613752@qq.com> Thu, 06 Aug 2026 18:08:23 +0800
|
||||
|
||||
gxde (2024.10.20) UNRELEASED; urgency=medium
|
||||
|
||||
|
||||
Vendored
+8
-3
@@ -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,6 +26,7 @@ Recommends: ${misc:Depends},
|
||||
gxde-sendbylan,
|
||||
gxde-dict,
|
||||
gxde-system-assistant,
|
||||
gxde-hardware-viewer,
|
||||
loongsonapplication,
|
||||
gxde-boot-maker,
|
||||
deepin-clone,
|
||||
@@ -47,6 +48,9 @@ Recommends: ${misc:Depends},
|
||||
deepin-log-viewer,
|
||||
fcitx5-table-wubi98,
|
||||
fcitx5-pinyin-zhwiki,
|
||||
dde-cooperation,
|
||||
firmware-atheros,
|
||||
deepin-liferaft,
|
||||
Description: GXDE New Desktop Environment Extra - Next
|
||||
This is a meta package depends GXDE New Desktop Envrionment Extra.
|
||||
.
|
||||
@@ -66,7 +70,7 @@ Depends:
|
||||
gxde-font-installer,
|
||||
gxde-movie,
|
||||
gxde-quick-hash,
|
||||
spark-store | aptss,
|
||||
spark-store,
|
||||
deepin-system-monitor,
|
||||
gxde-control-center,
|
||||
gxde-file-manager,
|
||||
@@ -87,7 +91,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.
|
||||
.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
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()
|
||||
|
||||
Reference in New Issue
Block a user