1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

Enable Copr stable builds

This commit is contained in:
purian23
2025-10-12 01:08:10 -04:00
parent 5d023804c1
commit a17343f40e

View File

@@ -61,14 +61,12 @@ jobs:
## Assets
### Complete Packages
- **`dms-full-amd64.tar.gz`** - Complete package for x86_64 systems (CLI binaries + QML source + installation guide)
- **`dms-full-arm64.tar.gz`** - Complete package for ARM64 systems (CLI binaries + QML source + installation guide)
- **`dms-full-amd64.tar.gz`** - Complete package for x86_64 systems (CLI binary + QML source + installation guide)
- **`dms-full-arm64.tar.gz`** - Complete package for ARM64 systems (CLI binary + QML source + installation guide)
### Individual Components
- **`dms-cli-amd64.gz`** - DMS CLI binary for x86_64 systems
- **`dms-cli-arm64.gz`** - DMS CLI binary for ARM64 systems
- **`dms-distropkg-amd64.gz`** - DMS CLI binary built with distro_package tag for AMD64 systems
- **`dms-distropkg-arm64.gz`** - DMS CLI binary built with distro_package tag for ARM64 systems
- **`dms-qml.tar.gz`** - QML source code only
### Checksums
@@ -114,16 +112,14 @@ jobs:
# Download DMS CLI binaries from the danklinux repo
gh release download "${TAG}" -R "${DMS_REPO}" --dir ./_dms_assets
# Rename CLI binaries to dms-cli-* format and copy distropkg binaries
# Rename CLI binaries to dms-cli-* format
for file in _dms_assets/dms-*.gz*; do
if [ -f "$file" ]; then
basename=$(basename "$file")
if [[ "$basename" == dms-distropkg-* ]]; then
cp "$file" "_release_assets/$basename"
else
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
cp "$file" "_release_assets/$newname"
fi
# dms-amd64.gz -> dms-cli-amd64.gz
# dms-amd64.gz.sha256 -> dms-cli-amd64.gz.sha256
newname=$(echo "$basename" | sed 's/^dms-/dms-cli-/')
cp "$file" "_release_assets/$newname"
fi
done
@@ -152,12 +148,6 @@ jobs:
chmod +x _temp_full/bin/dms
fi
# Copy distropkg binary if it exists
if [ -f "_dms_assets/dms-distropkg-${arch}.gz" ]; then
gunzip -c "_dms_assets/dms-distropkg-${arch}.gz" > _temp_full/bin/dms-distropkg
chmod +x _temp_full/bin/dms-distropkg
fi
# Create INSTALL.md
cat > _temp_full/INSTALL.md << 'EOF'
# DankMaterialShell Installation
@@ -176,7 +166,7 @@ jobs:
cp -r dms ~/.config/quickshell/
```
2. **Install the DMS CLI binaries:**
2. **Install the DMS CLI binary:**
```bash
sudo install -m 755 bin/dms /usr/local/bin/dms
# or install to a local directory:
@@ -204,8 +194,11 @@ jobs:
- Ensure all dependencies are installed
EOF
# Create the full package
(cd _temp_full && tar -czf "../_release_assets/dms-full-${arch}.tar.gz" .)
# Create the full package with proper RPM structure (dms-VERSION/ top-level directory)
mkdir -p dms-${TAG}
cp -r _temp_full/* dms-${TAG}/
tar -czf _release_assets/dms-full-${arch}.tar.gz dms-${TAG}
rm -rf dms-${TAG}
# Generate checksum
(cd _release_assets && sha256sum "dms-full-${arch}.tar.gz" > "dms-full-${arch}.tar.gz.sha256")
@@ -221,3 +214,109 @@ jobs:
files: _release_assets/**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup RPM build environment
run: |
sudo apt-get update
sudo apt-get install -y rpm wget curl jq
# Setup rpmbuild tree
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
- name: Prepare RPM sources
run: |
cd ~/rpmbuild/SOURCES
VERSION="${{ env.TAG }}"
# Copy the full packages (already have proper RPM structure)
cp _release_assets/dms-full-amd64.tar.gz dms-${VERSION}-amd64.tar.gz
cp _release_assets/dms-full-arm64.tar.gz dms-${VERSION}-arm64.tar.gz
echo "✅ Prepared tarballs for RPM"
ls -lh ~/rpmbuild/SOURCES/
- name: Create RPM spec file
run: |
VERSION="${{ env.TAG }}"
cat > ~/rpmbuild/SPECS/dms.spec << 'SPECFILE'
%global debug_package %{nil}
Name: dms
Version: VERSION_PLACEHOLDER
Release: 1%{?dist}
Summary: Dank Material Shell - Modern desktop environment
License: GPL-3.0-or-later
URL: https://github.com/AvengeMedia/DankMaterialShell
Source0: dms-VERSION_PLACEHOLDER-amd64.tar.gz
Source1: dms-VERSION_PLACEHOLDER-arm64.tar.gz
BuildArch: %{_arch}
Requires: qt6-qtbase
Requires: qt6-qtdeclarative
Requires: qt6-qtwayland
Requires: quickshell
%description
Dank Material Shell is a modern, Material Design-inspired desktop environment
for Linux systems built with Qt6 and QML. It provides a complete shell experience
with dynamic theming, plugin support, and integration with Wayland compositors.
%prep
%setup -q
%build
# Pre-compiled binaries, no build step needed
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/quickshell/dms
# Install DMS CLI binary for current architecture
if [ -f bin/dms ]; then
install -m 755 bin/dms %{buildroot}%{_bindir}/dms
fi
# Install QML/data files
if [ -d dms ]; then
cp -r dms/* %{buildroot}%{_datadir}/quickshell/dms/
fi
# Install documentation
if [ -f INSTALL.md ]; then
mkdir -p %{buildroot}%{_docdir}/%{name}
install -m 644 INSTALL.md %{buildroot}%{_docdir}/%{name}/
fi
%files
%{_bindir}/dms
%{_datadir}/quickshell/dms/
%doc %{_docdir}/%{name}/INSTALL.md
%changelog
* CHANGELOG_DATE_PLACEHOLDER GitHub Actions <noreply@github.com> - VERSION_PLACEHOLDER-1
- Automated build from release VERSION_PLACEHOLDER
SPECFILE
# Replace placeholders
CHANGELOG_DATE=$(date '+%a %b %d %Y')
sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" ~/rpmbuild/SPECS/dms.spec
sed -i "s/CHANGELOG_DATE_PLACEHOLDER/$CHANGELOG_DATE/g" ~/rpmbuild/SPECS/dms.spec
- name: Build SRPM
run: |
cd ~/rpmbuild/SPECS
rpmbuild -bs dms.spec
echo "✅ SRPM built successfully"
ls -lh ~/rpmbuild/SRPMS/
- name: Upload to Copr
if: success()
run: |
cd ~/rpmbuild/SRPMS
copr-cli build dms dms-*.src.rpm
echo "✅ Uploaded to Copr successfully"