diff --git a/.github/workflows/run-ppa.yml b/.github/workflows/run-ppa.yml
index d438ec7a..06477595 100644
--- a/.github/workflows/run-ppa.yml
+++ b/.github/workflows/run-ppa.yml
@@ -143,25 +143,25 @@ jobs:
echo "🔄 Using rebuild release number: ppa$REBUILD_RELEASE"
fi
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms" dms questing
+ REBUILD_RELEASE="$REBUILD_RELEASE" bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms" dms questing
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Uploading dms-git to PPA..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms-git" dms-git questing
+ REBUILD_RELEASE="$REBUILD_RELEASE" bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms-git" dms-git questing
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Uploading dms-greeter to PPA..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms-greeter" danklinux questing
+ REBUILD_RELEASE="$REBUILD_RELEASE" bash distro/scripts/ppa-upload.sh "distro/ubuntu/dms-greeter" danklinux questing
else
PPA_NAME="$PACKAGES"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Uploading $PACKAGES to PPA..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- bash distro/scripts/ppa-upload.sh "distro/ubuntu/$PACKAGES" "$PPA_NAME" questing
+ REBUILD_RELEASE="$REBUILD_RELEASE" bash distro/scripts/ppa-upload.sh "distro/ubuntu/$PACKAGES" "$PPA_NAME" questing
fi
- name: Summary
diff --git a/distro/debian/dms-git/debian/changelog b/distro/debian/dms-git/debian/changelog
index ebf9d884..57b51e4a 100644
--- a/distro/debian/dms-git/debian/changelog
+++ b/distro/debian/dms-git/debian/changelog
@@ -1,5 +1,6 @@
-dms-git (0.6.2+git2419.993f14a3) nightly; urgency=medium
+dms-git (1.0.0+git2419.993f14a3) nightly; urgency=medium
+ * Major stable release v1.0.0
* widgets: make dank icon picker a popup
* Previous updates included in build
diff --git a/distro/debian/dms/_service b/distro/debian/dms/_service
index 16d5ac5f..e295c1cf 100644
--- a/distro/debian/dms/_service
+++ b/distro/debian/dms/_service
@@ -3,19 +3,19 @@
https
github.com
- /AvengeMedia/DankMaterialShell/archive/refs/tags/v0.6.2.tar.gz
+ /AvengeMedia/DankMaterialShell/archive/refs/tags/v1.0.0.tar.gz
dms-source.tar.gz
https
github.com
- /AvengeMedia/DankMaterialShell/releases/download/v0.6.2/dms-distropkg-amd64.gz
+ /AvengeMedia/DankMaterialShell/releases/download/v1.0.0/dms-distropkg-amd64.gz
https
github.com
- /AvengeMedia/DankMaterialShell/releases/download/v0.6.2/dms-distropkg-arm64.gz
+ /AvengeMedia/DankMaterialShell/releases/download/v1.0.0/dms-distropkg-arm64.gz
diff --git a/distro/debian/dms/debian/changelog b/distro/debian/dms/debian/changelog
index 5cea7c04..ffff8ac9 100644
--- a/distro/debian/dms/debian/changelog
+++ b/distro/debian/dms/debian/changelog
@@ -1,6 +1,7 @@
-dms (0.6.2) stable; urgency=medium
+dms (1.0.0) stable; urgency=medium
- * Update to v0.6.2 release
+ * Update to v1.0.0 release
+ * Major stable release
* Fix binary download paths for OBS builds
* Native format: removed revisions
diff --git a/distro/debian/dms/debian/rules b/distro/debian/dms/debian/rules
index 52673d69..9455d503 100755
--- a/distro/debian/dms/debian/rules
+++ b/distro/debian/dms/debian/rules
@@ -42,8 +42,10 @@ override_dh_auto_build:
elif [ -f dms-source.tar.gz ]; then \
tar -xzf dms-source.tar.gz; \
fi; \
- if [ ! -d DankMaterialShell-$(UPSTREAM_VERSION) ] && [ -d DankMaterialShell-0.6.2 ]; then \
- mv DankMaterialShell-0.6.2 DankMaterialShell-$(UPSTREAM_VERSION); \
+ SOURCE_DIR=$$(find . -maxdepth 1 -type d -name "DankMaterialShell-*" ! -name "DankMaterialShell-$(UPSTREAM_VERSION)" | head -n1); \
+ if [ -n "$$SOURCE_DIR" ] && [ "$$SOURCE_DIR" != "./DankMaterialShell-$(UPSTREAM_VERSION)" ]; then \
+ echo "Renaming $$SOURCE_DIR to DankMaterialShell-$(UPSTREAM_VERSION)"; \
+ mv "$$SOURCE_DIR" DankMaterialShell-$(UPSTREAM_VERSION); \
fi; \
fi
@@ -53,8 +55,12 @@ override_dh_auto_install:
mkdir -p debian/dms/usr/share/quickshell/dms debian/dms/usr/lib/systemd/user
# Handle directory name mismatch again for install step if needed
- if [ ! -d DankMaterialShell-$(UPSTREAM_VERSION) ] && [ -d DankMaterialShell-0.6.2 ]; then \
- mv DankMaterialShell-0.6.2 DankMaterialShell-$(UPSTREAM_VERSION); \
+ if [ ! -d DankMaterialShell-$(UPSTREAM_VERSION) ]; then \
+ SOURCE_DIR=$$(find . -maxdepth 1 -type d -name "DankMaterialShell-*" | head -n1); \
+ if [ -n "$$SOURCE_DIR" ]; then \
+ echo "Renaming $$SOURCE_DIR to DankMaterialShell-$(UPSTREAM_VERSION) for install"; \
+ mv "$$SOURCE_DIR" DankMaterialShell-$(UPSTREAM_VERSION); \
+ fi; \
fi
if [ -d DankMaterialShell-$(UPSTREAM_VERSION) ]; then \
cp -r DankMaterialShell-$(UPSTREAM_VERSION)/quickshell/* debian/dms/usr/share/quickshell/dms/; \
diff --git a/distro/opensuse/dms.spec b/distro/opensuse/dms.spec
index 564b6fc6..8b3648b5 100644
--- a/distro/opensuse/dms.spec
+++ b/distro/opensuse/dms.spec
@@ -3,7 +3,7 @@
%global debug_package %{nil}
Name: dms
-Version: 0.6.2
+Version: 1.0.0
Release: 1%{?dist}
Summary: DankMaterialShell - Material 3 inspired shell for Wayland compositors
diff --git a/distro/scripts/obs-upload.sh b/distro/scripts/obs-upload.sh
index 0547ab90..5ad89189 100755
--- a/distro/scripts/obs-upload.sh
+++ b/distro/scripts/obs-upload.sh
@@ -792,7 +792,15 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ "$SOURCE_FORMAT" == *"native"* ]] && [[
echo " Renaming $EXTRACTED to $EXPECTED_SOURCE_DIR"
mv "$EXTRACTED" "$EXPECTED_SOURCE_DIR"
rm -f "$WORK_DIR/dms-source.tar.gz"
- tar --sort=name --mtime='2000-01-01 00:00:00' --owner=0 --group=0 -czf "$WORK_DIR/dms-source.tar.gz" "$EXPECTED_SOURCE_DIR"
+ if ! tar --sort=name --mtime='2000-01-01 00:00:00' --owner=0 --group=0 -czf "$WORK_DIR/dms-source.tar.gz" "$EXPECTED_SOURCE_DIR"; then
+ echo " Error: Failed to create dms-source.tar.gz"
+ ls -lah "$EXPECTED_SOURCE_DIR" | head -20
+ exit 1
+ fi
+ if [[ ! -f "$WORK_DIR/dms-source.tar.gz" ]]; then
+ echo " Error: dms-source.tar.gz was not created"
+ exit 1
+ fi
ROOT_DIR=$(tar -tf "$WORK_DIR/dms-source.tar.gz" | head -1 | cut -d/ -f1)
if [[ "$ROOT_DIR" != "$EXPECTED_SOURCE_DIR" ]]; then
echo " Error: Recreated tarball has wrong root directory: $ROOT_DIR (expected $EXPECTED_SOURCE_DIR)"
@@ -917,15 +925,31 @@ EOF
fi
fi
-cd "$WORK_DIR"
+# Ensure we're in WORK_DIR and it exists
+if [[ ! -d "$WORK_DIR" ]]; then
+ echo "ERROR: WORK_DIR does not exist: $WORK_DIR"
+ exit 1
+fi
+
+cd "$WORK_DIR" || {
+ echo "ERROR: Cannot cd to WORK_DIR: $WORK_DIR"
+ exit 1
+}
find . -maxdepth 1 -type f \( -name "*.dsc" -o -name "*.spec" \) -exec grep -l "^<<<<<<< " {} \; 2>/dev/null | while read -r conflicted_file; do
echo " Removing conflicted text file: $conflicted_file"
rm -f "$conflicted_file"
done
-# Ensure we're in WORK_DIR before running osc commands
-cd "$WORK_DIR"
+# Ensure we're STILL in WORK_DIR before running osc commands
+cd "$WORK_DIR" || {
+ echo "ERROR: Cannot cd to WORK_DIR: $WORK_DIR"
+ exit 1
+}
+echo "DEBUG: Current directory: $(pwd)"
+echo "DEBUG: WORK_DIR=$WORK_DIR"
+echo "DEBUG: Files in directory:"
+ls -la 2>&1 | head -20
echo "==> Staging changes"
echo "Files to upload:"
diff --git a/distro/scripts/ppa-build.sh b/distro/scripts/ppa-build.sh
index 39164568..5b11e99c 100755
--- a/distro/scripts/ppa-build.sh
+++ b/distro/scripts/ppa-build.sh
@@ -50,9 +50,15 @@ fi
# Get absolute path
PACKAGE_DIR=$(cd "$PACKAGE_DIR" && pwd)
PACKAGE_NAME=$(basename "$PACKAGE_DIR")
+PACKAGE_PARENT=$(dirname "$PACKAGE_DIR")
+
+# Create temporary working directory (like OBS)
+TEMP_WORK_DIR=$(mktemp -d -t ppa_build_work_XXXXXX)
+trap "rm -rf '$TEMP_WORK_DIR'" EXIT
info "Building source package for: $PACKAGE_NAME"
info "Package directory: $PACKAGE_DIR"
+info "Working directory: $TEMP_WORK_DIR"
info "Target Ubuntu series: $UBUNTU_SERIES"
# Check for required files
@@ -119,8 +125,13 @@ elif [[ -z "${GITHUB_ACTIONS:-}" ]] && [[ -z "${CI:-}" ]]; then
echo "==> Local/manual run detected (not in CI)"
fi
+# Copy package to temp working directory
+info "Copying package to working directory..."
+cp -r "$PACKAGE_DIR" "$TEMP_WORK_DIR/"
+WORK_PACKAGE_DIR="$TEMP_WORK_DIR/$PACKAGE_NAME"
+
# Detect package type and update version automatically
-cd "$PACKAGE_DIR"
+cd "$WORK_PACKAGE_DIR"
# Function to get latest tag from GitHub
get_latest_tag() {
@@ -589,10 +600,12 @@ info "Building source package..."
echo
# Determine if we need to include orig tarball (-sa) or just debian changes (-sd)
-# Check if .orig.tar.xz already exists in parent directory (previous build)
+# Check if .orig.tar.xz already exists in real parent directory (previous build)
ORIG_TARBALL="${PACKAGE_NAME}_${VERSION%.ppa*}.orig.tar.xz"
-if [ -f "../$ORIG_TARBALL" ]; then
- info "Found existing orig tarball, using -sd (debian changes only)"
+if [ -f "$PACKAGE_PARENT/$ORIG_TARBALL" ]; then
+ info "Found existing orig tarball in $PACKAGE_PARENT, using -sd (debian changes only)"
+ # Copy it to temp parent so debuild can find it
+ cp "$PACKAGE_PARENT/$ORIG_TARBALL" "$TEMP_WORK_DIR/"
DEBUILD_SOURCE_FLAG="-sd"
else
info "No existing orig tarball found, using -sa (include original source)"
@@ -606,15 +619,19 @@ if yes | DEBIAN_FRONTEND=noninteractive debuild -S $DEBUILD_SOURCE_FLAG -d; then
echo
success "Source package built successfully!"
+ # Copy build artifacts back to parent directory
+ info "Copying build artifacts to $PACKAGE_PARENT..."
+ cp -v "$TEMP_WORK_DIR"/${SOURCE_NAME}_${CHANGELOG_VERSION}* "$PACKAGE_PARENT/" 2>/dev/null || true
+
# List generated files
- info "Generated files in $(dirname "$PACKAGE_DIR"):"
- ls -lh "$(dirname "$PACKAGE_DIR")"/${SOURCE_NAME}_${CHANGELOG_VERSION}* 2>/dev/null || true
+ info "Generated files in $PACKAGE_PARENT:"
+ ls -lh "$PACKAGE_PARENT"/${SOURCE_NAME}_${CHANGELOG_VERSION}* 2>/dev/null || true
# Show what to do next
echo
info "Next steps:"
echo " 1. Review the source package:"
- echo " cd $(dirname "$PACKAGE_DIR")"
+ echo " cd $PACKAGE_PARENT"
echo " ls -lh ${SOURCE_NAME}_${CHANGELOG_VERSION}*"
echo
echo " 2. Upload to PPA (stable):"
@@ -624,7 +641,7 @@ if yes | DEBIAN_FRONTEND=noninteractive debuild -S $DEBUILD_SOURCE_FLAG -d; then
echo " dput ppa:avengemedia/dms-git ${SOURCE_NAME}_${CHANGELOG_VERSION}_source.changes"
echo
echo " 4. Or use the upload script:"
- echo " ./upload-ppa.sh $(dirname "$PACKAGE_DIR")/${SOURCE_NAME}_${CHANGELOG_VERSION}_source.changes dms"
+ echo " ./upload-ppa.sh $PACKAGE_PARENT/${SOURCE_NAME}_${CHANGELOG_VERSION}_source.changes dms"
else
error "Source package build failed!"
diff --git a/distro/scripts/ppa-dput.sh b/distro/scripts/ppa-dput.sh
index 23e13a4f..7515bab8 100755
--- a/distro/scripts/ppa-dput.sh
+++ b/distro/scripts/ppa-dput.sh
@@ -150,7 +150,38 @@ fi
info "Uploading to Launchpad..."
echo
-if dput "ppa:avengemedia/$PPA_NAME" "$CHANGES_FILE"; then
+UPLOAD_SUCCESS=false
+
+if [ "$UPLOAD_METHOD" = "dput" ]; then
+ if dput "ppa:avengemedia/$PPA_NAME" "$CHANGES_FILE"; then
+ UPLOAD_SUCCESS=true
+ fi
+elif [ "$UPLOAD_METHOD" = "lftp" ]; then
+ # Use lftp to upload to Launchpad PPA
+ CHANGES_DIR=$(dirname "$CHANGES_FILE")
+ CHANGES_BASENAME=$(basename "$CHANGES_FILE")
+
+ # Extract files to upload from .changes file
+ FILES_TO_UPLOAD=("$CHANGES_BASENAME")
+ while IFS= read -r line; do
+ if [[ "$line" =~ ^\ [a-f0-9]+\ [0-9]+\ [^\ ]+\ [^\ ]+\ (.+)$ ]]; then
+ FILES_TO_UPLOAD+=("${BASH_REMATCH[1]}")
+ fi
+ done < "$CHANGES_FILE"
+
+ # Build lftp command to upload all files
+ LFTP_COMMANDS="set ftp:ssl-allow no; open ftp://ppa.launchpad.net; user anonymous ''; cd ~avengemedia/ubuntu/$PPA_NAME/;"
+ for file in "${FILES_TO_UPLOAD[@]}"; do
+ LFTP_COMMANDS="$LFTP_COMMANDS put '$CHANGES_DIR/$file';"
+ done
+ LFTP_COMMANDS="$LFTP_COMMANDS bye"
+
+ if echo "$LFTP_COMMANDS" | lftp; then
+ UPLOAD_SUCCESS=true
+ fi
+fi
+
+if [ "$UPLOAD_SUCCESS" = true ]; then
echo
success "Upload successful!"
echo
@@ -166,7 +197,6 @@ if dput "ppa:avengemedia/$PPA_NAME" "$CHANGES_FILE"; then
echo " sudo add-apt-repository ppa:avengemedia/$PPA_NAME"
echo " sudo apt update"
echo " sudo apt install $PACKAGE_NAME"
-
else
error "Upload failed!"
echo
diff --git a/distro/ubuntu/dms/debian/changelog b/distro/ubuntu/dms/debian/changelog
index 634af4eb..cf92ca8e 100644
--- a/distro/ubuntu/dms/debian/changelog
+++ b/distro/ubuntu/dms/debian/changelog
@@ -1,5 +1,5 @@
-dms (0.6.2ppa3) questing; urgency=medium
+dms (1.0.0ppa4) questing; urgency=medium
- * Rebuild for packaging fixes (ppa3)
+ * Rebuild for packaging fixes (ppa4)
- -- Avenge Media Sun, 23 Nov 2025 00:40:41 -0500
+ -- Avenge Media Wed, 10 Dec 2025 12:56:23 -0500
diff --git a/distro/ubuntu/dms/debian/files b/distro/ubuntu/dms/debian/files
index d527f9a1..af6ffc4d 100644
--- a/distro/ubuntu/dms/debian/files
+++ b/distro/ubuntu/dms/debian/files
@@ -1 +1 @@
-dms_0.6.2ppa3_source.buildinfo x11 optional
+dms_1.0.0ppa4_source.buildinfo x11 optional
diff --git a/distro/ubuntu/dms/debian/rules b/distro/ubuntu/dms/debian/rules
index d785c9f8..1fcfe120 100755
--- a/distro/ubuntu/dms/debian/rules
+++ b/distro/ubuntu/dms/debian/rules
@@ -29,10 +29,15 @@ override_dh_auto_build:
# Extract source tarball for QML files
tar -xzf dms-source.tar.gz
# Find the extracted directory (it might have various names)
- # and create a symlink to expected name for consistent install
- SOURCE_DIR=$$(find . -maxdepth 1 -type d -name "DankMaterialShell*" | head -n1); \
- if [ -n "$$SOURCE_DIR" ]; then \
- ln -sf $$SOURCE_DIR DankMaterialShell-$(BASE_VERSION); \
+ # and rename it to the expected BASE_VERSION name for consistent install
+ SOURCE_DIR=$$(find . -maxdepth 1 -type d -name "DankMaterialShell-*" ! -name "DankMaterialShell-$(BASE_VERSION)" | head -n1); \
+ if [ -n "$$SOURCE_DIR" ] && [ "$$SOURCE_DIR" != "./DankMaterialShell-$(BASE_VERSION)" ]; then \
+ echo "Renaming $$SOURCE_DIR to DankMaterialShell-$(BASE_VERSION)"; \
+ mv "$$SOURCE_DIR" DankMaterialShell-$(BASE_VERSION); \
+ elif [ ! -d "DankMaterialShell-$(BASE_VERSION)" ]; then \
+ echo "ERROR: No DankMaterialShell directory found after extraction!"; \
+ ls -la; \
+ exit 1; \
fi
override_dh_auto_install: