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: