mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
Update dms-cli for OBS packages
This commit is contained in:
13
.github/workflows/run-obs.yml
vendored
13
.github/workflows/run-obs.yml
vendored
@@ -188,23 +188,28 @@ jobs:
|
|||||||
sed -i "s|<param name=\"revision\">v[0-9.]*</param>|<param name=\"revision\">$VERSION</param>|" "$service"
|
sed -i "s|<param name=\"revision\">v[0-9.]*</param>|<param name=\"revision\">$VERSION</param>|" "$service"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '1.24'
|
||||||
|
|
||||||
- name: Install OSC
|
- name: Install OSC
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y osc
|
sudo apt-get install -y osc
|
||||||
|
|
||||||
mkdir -p ~/.config/osc
|
mkdir -p ~/.config/osc
|
||||||
cat > ~/.config/osc/oscrc << EOF
|
cat > ~/.config/osc/oscrc << EOF
|
||||||
[general]
|
[general]
|
||||||
apiurl = https://api.opensuse.org
|
apiurl = https://api.opensuse.org
|
||||||
|
|
||||||
[https://api.opensuse.org]
|
[https://api.opensuse.org]
|
||||||
user = ${{ secrets.OBS_USERNAME }}
|
user = ${{ secrets.OBS_USERNAME }}
|
||||||
pass = ${{ secrets.OBS_PASSWORD }}
|
pass = ${{ secrets.OBS_PASSWORD }}
|
||||||
EOF
|
EOF
|
||||||
chmod 600 ~/.config/osc/oscrc
|
chmod 600 ~/.config/osc/oscrc
|
||||||
|
|
||||||
- name: Upload to OBS
|
- name: Upload to OBS
|
||||||
env:
|
env:
|
||||||
FORCE_REBUILD: ${{ github.event_name == 'workflow_dispatch' && 'true' || '' }}
|
FORCE_REBUILD: ${{ github.event_name == 'workflow_dispatch' && 'true' || '' }}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<services>
|
<services>
|
||||||
<!-- Pull full git repository for master branch -->
|
<!-- Git source and vendoring -->
|
||||||
<service name="tar_scm" mode="disabled">
|
<service name="tar_scm" mode="disabled">
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="url">https://github.com/AvengeMedia/DankMaterialShell.git</param>
|
<param name="url">https://github.com/AvengeMedia/DankMaterialShell.git</param>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<param name="file">*.tar</param>
|
<param name="file">*.tar</param>
|
||||||
<param name="compression">gz</param>
|
<param name="compression">gz</param>
|
||||||
</service>
|
</service>
|
||||||
<!-- Download pre-built binaries (fallback for Debian 13 with Go 1.22) -->
|
<!-- Binary downloads kept for backwards compat - removed after successful source builds
|
||||||
<service name="download_url">
|
<service name="download_url">
|
||||||
<param name="protocol">https</param>
|
<param name="protocol">https</param>
|
||||||
<param name="host">github.com</param>
|
<param name="host">github.com</param>
|
||||||
@@ -21,4 +21,5 @@
|
|||||||
<param name="host">github.com</param>
|
<param name="host">github.com</param>
|
||||||
<param name="path">/AvengeMedia/DankMaterialShell/releases/latest/download/dms-distropkg-arm64.gz</param>
|
<param name="path">/AvengeMedia/DankMaterialShell/releases/latest/download/dms-distropkg-arm64.gz</param>
|
||||||
</service>
|
</service>
|
||||||
|
-->
|
||||||
</services>
|
</services>
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
dms-git (0.6.2+git) nightly; urgency=medium
|
dms-git (0.6.2+git5) nightly; urgency=medium
|
||||||
|
|
||||||
|
* Fix debian/rules to use source at root level (native format)
|
||||||
|
* Remove incorrect dms-git-source subdirectory references
|
||||||
|
* Fix Build-Depends parsing path issue in obs-upload.sh auto-increment
|
||||||
|
* Fix Build-Depends parsing in obs-upload.sh for proper dependency extraction
|
||||||
* Build dms binary from source for true git version strings
|
* Build dms binary from source for true git version strings
|
||||||
* Match Fedora COPR git build behavior
|
* Match Fedora COPR git build behavior
|
||||||
* Now shows proper git version (e.g., v0.6.2-11-g12e91534)
|
* Now shows proper git version (e.g., v0.6.2-11-g12e91534)
|
||||||
* Add golang-go and make as build dependencies
|
* Add golang-go and make as build dependencies
|
||||||
|
|
||||||
-- Avenge Media <AvengeMedia.US@gmail.com> Fri, 22 Nov 2025 00:00:00 -0500
|
-- Avenge Media <AvengeMedia.US@gmail.com> Wed, 27 Nov 2025 04:15:00 -0500
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ Source: dms-git
|
|||||||
Section: x11
|
Section: x11
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Avenge Media <AvengeMedia.US@gmail.com>
|
Maintainer: Avenge Media <AvengeMedia.US@gmail.com>
|
||||||
Build-Depends: debhelper-compat (= 13)
|
Build-Depends: debhelper-compat (= 13),
|
||||||
|
golang-go | golang (>= 2:1.22~) | golang-any
|
||||||
Standards-Version: 4.6.2
|
Standards-Version: 4.6.2
|
||||||
Homepage: https://github.com/AvengeMedia/DankMaterialShell
|
Homepage: https://github.com/AvengeMedia/DankMaterialShell
|
||||||
Vcs-Browser: https://github.com/AvengeMedia/DankMaterialShell
|
Vcs-Browser: https://github.com/AvengeMedia/DankMaterialShell
|
||||||
|
|||||||
@@ -1,31 +1,55 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
# Version info from changelog
|
||||||
DEB_VERSION := $(shell dpkg-parsechangelog -S Version)
|
DEB_VERSION := $(shell dpkg-parsechangelog -S Version)
|
||||||
UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed 's/-[^-]*$$//')
|
UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed 's/-[^-]*$$//')
|
||||||
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
||||||
|
|
||||||
|
# Go needs writable directories for cache
|
||||||
|
export HOME := $(CURDIR)/debian/tmp-home
|
||||||
|
export GOCACHE := $(CURDIR)/debian/tmp-home/go-cache
|
||||||
|
export GOMODCACHE := $(CURDIR)/debian/tmp-home/go-mod
|
||||||
|
|
||||||
|
export GOTOOLCHAIN := local
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@
|
dh $@
|
||||||
|
|
||||||
override_dh_auto_build:
|
override_dh_auto_build:
|
||||||
|
# Create Go cache directories
|
||||||
|
mkdir -p $(HOME) $(GOCACHE) $(GOMODCACHE)
|
||||||
|
|
||||||
|
# Verify core directory exists (native package format has source at root)
|
||||||
|
test -d core || (echo "ERROR: core directory not found!" && exit 1)
|
||||||
|
|
||||||
|
# Patch go.mod to use Go 1.24 base version (Debian 13 has 1.23.x, may vary)
|
||||||
|
sed -i 's/^go 1\.24\.[0-9]*/go 1.24/' core/go.mod
|
||||||
|
|
||||||
|
# Extract version info for embedding
|
||||||
|
VERSION="$(UPSTREAM_VERSION)"
|
||||||
|
COMMIT=$$(echo "$(UPSTREAM_VERSION)" | grep -oP '(?<=git)[0-9]+\.[a-f0-9]+' | cut -d. -f2 | head -c8 || echo "unknown")
|
||||||
|
|
||||||
|
# Build dms-cli from source using vendored dependencies
|
||||||
|
# Architecture mapping: Debian amd64/arm64 -> Makefile amd64/arm64
|
||||||
if [ "$(DEB_HOST_ARCH)" = "amd64" ]; then \
|
if [ "$(DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
if [ -f dms-distropkg-amd64.gz ]; then \
|
MAKE_ARCH=amd64; \
|
||||||
gunzip -c dms-distropkg-amd64.gz > dms; \
|
BINARY_NAME=dms-linux-amd64; \
|
||||||
elif [ -f ../SOURCES/dms-distropkg-amd64.gz ]; then \
|
|
||||||
gunzip -c ../SOURCES/dms-distropkg-amd64.gz > dms; \
|
|
||||||
else \
|
|
||||||
echo "ERROR: dms-distropkg-amd64.gz not found!" && exit 1; \
|
|
||||||
fi \
|
|
||||||
elif [ "$(DEB_HOST_ARCH)" = "arm64" ]; then \
|
elif [ "$(DEB_HOST_ARCH)" = "arm64" ]; then \
|
||||||
if [ -f dms-distropkg-arm64.gz ]; then \
|
MAKE_ARCH=arm64; \
|
||||||
gunzip -c dms-distropkg-arm64.gz > dms; \
|
BINARY_NAME=dms-linux-arm64; \
|
||||||
elif [ -f ../SOURCES/dms-distropkg-arm64.gz ]; then \
|
|
||||||
gunzip -c ../SOURCES/dms-distropkg-arm64.gz > dms; \
|
|
||||||
else \
|
|
||||||
echo "ERROR: dms-distropkg-arm64.gz not found!" && exit 1; \
|
|
||||||
fi \
|
|
||||||
else \
|
else \
|
||||||
echo "Unsupported architecture: $(DEB_HOST_ARCH)" && exit 1; \
|
echo "ERROR: Unsupported architecture: $(DEB_HOST_ARCH)" && exit 1; \
|
||||||
|
fi; \
|
||||||
|
echo "Building with VERSION=$$VERSION COMMIT=$$COMMIT ARCH=$$MAKE_ARCH"; \
|
||||||
|
cd core && $(MAKE) GOFLAGS="-mod=vendor" dist ARCH=$$MAKE_ARCH VERSION="$$VERSION" COMMIT="$$COMMIT"
|
||||||
|
|
||||||
|
# Copy binary to expected location
|
||||||
|
if [ "$(DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
|
cp core/bin/dms-linux-amd64 dms; \
|
||||||
|
elif [ "$(DEB_HOST_ARCH)" = "arm64" ]; then \
|
||||||
|
cp core/bin/dms-linux-arm64 dms; \
|
||||||
fi
|
fi
|
||||||
chmod +x dms
|
chmod +x dms
|
||||||
|
|
||||||
@@ -36,11 +60,8 @@ override_dh_auto_install:
|
|||||||
if [ -d quickshell ]; then \
|
if [ -d quickshell ]; then \
|
||||||
cp -r quickshell/* debian/dms-git/usr/share/quickshell/dms/; \
|
cp -r quickshell/* debian/dms-git/usr/share/quickshell/dms/; \
|
||||||
install -Dm644 quickshell/assets/systemd/dms.service debian/dms-git/usr/lib/systemd/user/dms.service; \
|
install -Dm644 quickshell/assets/systemd/dms.service debian/dms-git/usr/lib/systemd/user/dms.service; \
|
||||||
elif [ -d dms-git-source/quickshell ]; then \
|
|
||||||
cp -r dms-git-source/quickshell/* debian/dms-git/usr/share/quickshell/dms/; \
|
|
||||||
install -Dm644 dms-git-source/quickshell/assets/systemd/dms.service debian/dms-git/usr/lib/systemd/user/dms.service; \
|
|
||||||
else \
|
else \
|
||||||
echo "ERROR: quickshell directory not found (checked root and dms-git-source/)!" && \
|
echo "ERROR: quickshell directory not found!" && \
|
||||||
echo "Contents of current directory:" && ls -la && \
|
echo "Contents of current directory:" && ls -la && \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
@@ -49,6 +70,8 @@ override_dh_auto_install:
|
|||||||
debian/dms-git/usr/share/quickshell/dms/distro
|
debian/dms-git/usr/share/quickshell/dms/distro
|
||||||
|
|
||||||
override_dh_auto_clean:
|
override_dh_auto_clean:
|
||||||
|
# Clean up build artifacts
|
||||||
rm -f dms
|
rm -f dms
|
||||||
[ ! -d dms-git-source ] || rm -rf dms-git-source
|
rm -rf core/bin
|
||||||
|
rm -rf debian/tmp-home
|
||||||
dh_auto_clean
|
dh_auto_clean
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
dms-distropkg-amd64.gz
|
# dms-cli is built from source
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
<services>
|
<services>
|
||||||
<!-- Pull full git repository for master branch (QML code) -->
|
<!-- Git source and vendoring -->
|
||||||
<service name="tar_scm">
|
<service name="tar_scm" mode="disabled">
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="url">https://github.com/AvengeMedia/DankMaterialShell.git</param>
|
<param name="url">https://github.com/AvengeMedia/DankMaterialShell.git</param>
|
||||||
<param name="revision">master</param>
|
<param name="revision">master</param>
|
||||||
<param name="filename">dms-git-source</param>
|
<param name="filename">dms-git-source</param>
|
||||||
</service>
|
</service>
|
||||||
<service name="recompress">
|
<service name="recompress" mode="disabled">
|
||||||
<param name="file">*.tar</param>
|
<param name="file">*.tar</param>
|
||||||
<param name="compression">gz</param>
|
<param name="compression">gz</param>
|
||||||
</service>
|
</service>
|
||||||
<!-- Download pre-built binaries -->
|
<!-- Binary downloads removed - building from source
|
||||||
<service name="download_url">
|
<service name="download_url">
|
||||||
<param name="protocol">https</param>
|
<param name="protocol">https</param>
|
||||||
<param name="host">github.com</param>
|
<param name="host">github.com</param>
|
||||||
@@ -21,4 +21,5 @@
|
|||||||
<param name="host">github.com</param>
|
<param name="host">github.com</param>
|
||||||
<param name="path">/AvengeMedia/DankMaterialShell/releases/latest/download/dms-distropkg-arm64.gz</param>
|
<param name="path">/AvengeMedia/DankMaterialShell/releases/latest/download/dms-distropkg-arm64.gz</param>
|
||||||
</service>
|
</service>
|
||||||
|
-->
|
||||||
</services>
|
</services>
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ Summary: DankMaterialShell - Material 3 inspired shell (git nightly)
|
|||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/AvengeMedia/DankMaterialShell
|
URL: https://github.com/AvengeMedia/DankMaterialShell
|
||||||
Source0: dms-git-source.tar.gz
|
Source0: dms-git-source.tar.gz
|
||||||
Source1: dms-distropkg-amd64.gz
|
|
||||||
Source2: dms-distropkg-arm64.gz
|
|
||||||
|
|
||||||
BuildRequires: gzip
|
BuildRequires: golang >= 1.22
|
||||||
|
BuildRequires: golang-packaging
|
||||||
|
BuildRequires: git-core
|
||||||
BuildRequires: systemd-rpm-macros
|
BuildRequires: systemd-rpm-macros
|
||||||
|
|
||||||
Requires: (quickshell-git or quickshell)
|
Requires: (quickshell-git or quickshell)
|
||||||
@@ -44,15 +44,40 @@ and fixes. Includes pre-built dms CLI binary and QML shell files.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n dms-git-source
|
%setup -q -n dms-git-source
|
||||||
|
|
||||||
%ifarch x86_64
|
# Verify vendored Go dependencies exist (vendored by obs-upload.sh before packaging)
|
||||||
gunzip -c %{SOURCE1} > dms
|
# OBS build environment has no network access
|
||||||
%endif
|
test -d core/vendor || (echo "ERROR: Go vendor directory missing!" && exit 1)
|
||||||
%ifarch aarch64
|
|
||||||
gunzip -c %{SOURCE2} > dms
|
|
||||||
%endif
|
|
||||||
chmod +x dms
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# Create Go cache directories (OBS build env may have restricted HOME)
|
||||||
|
export HOME=%{_builddir}/go-home
|
||||||
|
export GOCACHE=%{_builddir}/go-cache
|
||||||
|
export GOMODCACHE=%{_builddir}/go-mod
|
||||||
|
mkdir -p $HOME $GOCACHE $GOMODCACHE
|
||||||
|
|
||||||
|
# OBS has no network access, so use local toolchain only
|
||||||
|
export GOTOOLCHAIN=local
|
||||||
|
|
||||||
|
# Patch go.mod to use base Go version (e.g., go 1.24 instead of go 1.24.6)
|
||||||
|
sed -i 's/^go 1\.24\.[0-9]*/go 1.24/' core/go.mod
|
||||||
|
|
||||||
|
# Extract version info for embedding in binary
|
||||||
|
VERSION="%{version}"
|
||||||
|
COMMIT=$(echo "%{version}" | grep -oP '(?<=git)[0-9]+\.[a-f0-9]+' | cut -d. -f2 | head -c8 || echo "unknown")
|
||||||
|
|
||||||
|
# Build dms-cli from source using vendored dependencies
|
||||||
|
# Architecture mapping: RPM x86_64/aarch64 -> Makefile amd64/arm64
|
||||||
|
cd core
|
||||||
|
%ifarch x86_64
|
||||||
|
make GOFLAGS="-mod=vendor" dist ARCH=amd64 VERSION="$VERSION" COMMIT="$COMMIT"
|
||||||
|
mv bin/dms-linux-amd64 ../dms
|
||||||
|
%endif
|
||||||
|
%ifarch aarch64
|
||||||
|
make GOFLAGS="-mod=vendor" dist ARCH=arm64 VERSION="$VERSION" COMMIT="$COMMIT"
|
||||||
|
mv bin/dms-linux-arm64 ../dms
|
||||||
|
%endif
|
||||||
|
cd ..
|
||||||
|
chmod +x dms
|
||||||
|
|
||||||
%install
|
%install
|
||||||
install -Dm755 dms %{buildroot}%{_bindir}/dms
|
install -Dm755 dms %{buildroot}%{_bindir}/dms
|
||||||
|
|||||||
@@ -400,9 +400,32 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ -d "distro/debian/$PACKAGE/debian" ]]; t
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo " Found source directory: $SOURCE_DIR"
|
echo " Found source directory: $SOURCE_DIR"
|
||||||
|
|
||||||
|
# Vendor Go dependencies for dms-git
|
||||||
|
if [[ "$PACKAGE" == "dms-git" ]] && [[ -d "$SOURCE_DIR/core" ]]; then
|
||||||
|
echo " - Vendoring Go dependencies for offline OBS build..."
|
||||||
|
cd "$SOURCE_DIR/core"
|
||||||
|
|
||||||
|
if ! command -v go &> /dev/null; then
|
||||||
|
echo "ERROR: Go not found. Install Go to vendor dependencies."
|
||||||
|
echo " Install: sudo apt-get install golang-go (Debian/Ubuntu)"
|
||||||
|
echo " or: sudo dnf install golang (Fedora)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vendor dependencies
|
||||||
|
go mod vendor
|
||||||
|
if [ ! -d "vendor" ]; then
|
||||||
|
echo "ERROR: Failed to vendor Go dependencies"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VENDOR_SIZE=$(du -sh vendor | cut -f1)
|
||||||
|
echo " ✓ Go dependencies vendored ($VENDOR_SIZE)"
|
||||||
|
cd "$REPO_ROOT"
|
||||||
|
fi
|
||||||
|
|
||||||
# Create OpenSUSE-compatible source tarballs BEFORE adding debian/ directory
|
# Create OpenSUSE-compatible source tarballs BEFORE adding debian/ directory
|
||||||
# (OpenSUSE doesn't need debian/ directory)
|
|
||||||
if [[ "$UPLOAD_OPENSUSE" == true ]] && [[ -f "distro/opensuse/$PACKAGE.spec" ]]; then
|
if [[ "$UPLOAD_OPENSUSE" == true ]] && [[ -f "distro/opensuse/$PACKAGE.spec" ]]; then
|
||||||
echo " - Creating OpenSUSE-compatible source tarballs"
|
echo " - Creating OpenSUSE-compatible source tarballs"
|
||||||
|
|
||||||
@@ -518,16 +541,29 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ -d "distro/debian/$PACKAGE/debian" ]]; t
|
|||||||
TARBALL_SIZE=$(stat -c%s "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null || stat -f%z "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null)
|
TARBALL_SIZE=$(stat -c%s "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null || stat -f%z "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null)
|
||||||
TARBALL_MD5=$(md5sum "$WORK_DIR/$COMBINED_TARBALL" | cut -d' ' -f1)
|
TARBALL_MD5=$(md5sum "$WORK_DIR/$COMBINED_TARBALL" | cut -d' ' -f1)
|
||||||
|
|
||||||
BUILD_DEPS="debhelper-compat (= 13)"
|
# Extract Build-Depends from debian/control using awk for proper multi-line parsing
|
||||||
if [[ -f "distro/debian/$PACKAGE/debian/control" ]]; then
|
if [[ -f "$REPO_ROOT/distro/debian/$PACKAGE/debian/control" ]]; then
|
||||||
CONTROL_DEPS=$(sed -n '/^Build-Depends:/,/^[A-Z]/p' "distro/debian/$PACKAGE/debian/control" | \
|
BUILD_DEPS=$(awk '
|
||||||
sed '/^Build-Depends:/s/^Build-Depends: *//' | \
|
/^Build-Depends:/ {
|
||||||
sed '/^[A-Z]/d' | \
|
in_build_deps=1;
|
||||||
tr '\n' ' ' | \
|
sub(/^Build-Depends:[[:space:]]*/, "");
|
||||||
sed 's/^[[:space:]]*//;s/[[:space:]]*$//;s/[[:space:]]\+/ /g')
|
printf "%s", $0;
|
||||||
if [[ -n "$CONTROL_DEPS" && "$CONTROL_DEPS" != "" ]]; then
|
next;
|
||||||
BUILD_DEPS="$CONTROL_DEPS"
|
}
|
||||||
|
in_build_deps && /^[[:space:]]/ {
|
||||||
|
sub(/^[[:space:]]+/, " ");
|
||||||
|
printf "%s", $0;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
in_build_deps { exit; }
|
||||||
|
' "$REPO_ROOT/distro/debian/$PACKAGE/debian/control" | sed 's/[[:space:]]\+/ /g; s/^[[:space:]]*//; s/[[:space:]]*$//')
|
||||||
|
|
||||||
|
# If extraction failed or is empty, use default fallback
|
||||||
|
if [[ -z "$BUILD_DEPS" ]]; then
|
||||||
|
BUILD_DEPS="debhelper-compat (= 13)"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
BUILD_DEPS="debhelper-compat (= 13)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > "$WORK_DIR/$PACKAGE.dsc" << EOF
|
cat > "$WORK_DIR/$PACKAGE.dsc" << EOF
|
||||||
@@ -774,16 +810,29 @@ if [[ "$UPLOAD_DEBIAN" == true ]] && [[ "$SOURCE_FORMAT" == *"native"* ]] && [[
|
|||||||
TARBALL_SIZE=$(stat -c%s "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null || stat -f%z "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null)
|
TARBALL_SIZE=$(stat -c%s "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null || stat -f%z "$WORK_DIR/$COMBINED_TARBALL" 2>/dev/null)
|
||||||
TARBALL_MD5=$(md5sum "$WORK_DIR/$COMBINED_TARBALL" | cut -d' ' -f1)
|
TARBALL_MD5=$(md5sum "$WORK_DIR/$COMBINED_TARBALL" | cut -d' ' -f1)
|
||||||
|
|
||||||
BUILD_DEPS="debhelper-compat (= 13)"
|
# Extract Build-Depends from debian/control using awk for proper multi-line parsing
|
||||||
if [[ -f "distro/debian/$PACKAGE/debian/control" ]]; then
|
if [[ -f "$REPO_ROOT/distro/debian/$PACKAGE/debian/control" ]]; then
|
||||||
CONTROL_DEPS=$(sed -n '/^Build-Depends:/,/^[A-Z]/p' "distro/debian/$PACKAGE/debian/control" | \
|
BUILD_DEPS=$(awk '
|
||||||
sed '/^Build-Depends:/s/^Build-Depends: *//' | \
|
/^Build-Depends:/ {
|
||||||
sed '/^[A-Z]/d' | \
|
in_build_deps=1;
|
||||||
tr '\n' ' ' | \
|
sub(/^Build-Depends:[[:space:]]*/, "");
|
||||||
sed 's/^[[:space:]]*//;s/[[:space:]]*$//;s/[[:space:]]\+/ /g')
|
printf "%s", $0;
|
||||||
if [[ -n "$CONTROL_DEPS" && "$CONTROL_DEPS" != "" ]]; then
|
next;
|
||||||
BUILD_DEPS="$CONTROL_DEPS"
|
}
|
||||||
|
in_build_deps && /^[[:space:]]/ {
|
||||||
|
sub(/^[[:space:]]+/, " ");
|
||||||
|
printf "%s", $0;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
in_build_deps { exit; }
|
||||||
|
' "$REPO_ROOT/distro/debian/$PACKAGE/debian/control" | sed 's/[[:space:]]\+/ /g; s/^[[:space:]]*//; s/[[:space:]]*$//')
|
||||||
|
|
||||||
|
# If extraction failed or is empty, use default fallback
|
||||||
|
if [[ -z "$BUILD_DEPS" ]]; then
|
||||||
|
BUILD_DEPS="debhelper-compat (= 13)"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
BUILD_DEPS="debhelper-compat (= 13)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > "$WORK_DIR/$PACKAGE.dsc" << EOF
|
cat > "$WORK_DIR/$PACKAGE.dsc" << EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user