Skip to content

Commit fba364a

Browse files
committed
Fix meta packages build to correctly parse all fields
1 parent f16dfa0 commit fba364a

1 file changed

Lines changed: 49 additions & 29 deletions

File tree

.github/workflows/virtualmin.dev+virtualmin-stack-meta.yml

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ on:
99
- published
1010

1111
env:
12-
PKG_RELEASE: "1"
13-
PKG_SUMMARY: "Installs required dependencies for the stack"
14-
PKG_DESC: "A dummy package designed to pull in all required dependencies. Together with the \"virtualmin-core\" package, it installs everything needed for the selected stack."
15-
PKG_HOMEPAGE: "https://github.com/virtualmin/virtualmin-stack-meta"
1612
IS_RELEASE: ${{ github.event_name == 'release' }}
1713

1814
BUILD_DEPS: "tar curl gzip dpkg-dev fakeroot build-essential coreutils"
@@ -62,33 +58,57 @@ jobs:
6258
6359
# Parse debian control and build packages
6460
while IFS= read -r line; do
65-
result+=("$line")
61+
case $line in
62+
PACKAGE_START)
63+
unset pkg_name pkg_version pkg_release pkg_depends pkg_recommends \
64+
pkg_suggests pkg_replaces pkg_homepage pkg_summary \
65+
pkg_description
66+
;;
67+
68+
PACKAGE_END)
69+
[[ $pkg_name && $pkg_version ]] || continue
70+
71+
decoded_description=
72+
[[ ${pkg_description:-} ]] && \
73+
decoded_description=$(echo "$pkg_description" | base64 --decode)
74+
75+
build_native_package \
76+
--architectures "noarch" \
77+
--target-dir "$ROOT_REPOS" \
78+
--base-name "$pkg_name" \
79+
--version "$pkg_version" \
80+
--release "${pkg_release:-1}" \
81+
--depends "${pkg_depends:-}" \
82+
--recommends "${pkg_recommends:-}" \
83+
--suggests "${pkg_suggests:-}" \
84+
--replaces "${pkg_replaces:-}" \
85+
--skip rpm \
86+
--summary "${pkg_summary:-}" \
87+
--description "${decoded_description:-}" \
88+
--homepage "${pkg_homepage:-}"
89+
;;
90+
91+
*=*)
92+
# split the key-value safely
93+
key=${line%%=*}
94+
val=${line#*=}
95+
96+
case $key in
97+
name) pkg_name=$val ;;
98+
version) pkg_version=$val ;;
99+
release) pkg_release=$val ;;
100+
depends) pkg_depends=$val ;;
101+
recommends) pkg_recommends=$val ;;
102+
suggests) pkg_suggests=$val ;;
103+
replaces) pkg_replaces=$val ;;
104+
homepage) pkg_homepage=$val ;;
105+
summary) pkg_summary=$val ;;
106+
description) pkg_description=$val ;;
107+
esac
108+
;;
109+
esac
66110
done < <(parse_debian_control "." "$testing")
67111
68-
for ((i = 0; i < ${#result[@]}; i += 6)); do
69-
pkg_name="${result[i]}"
70-
pkg_version="${result[i+1]}"
71-
pkg_depends="${result[i+2]}"
72-
pkg_recommends="${result[i+3]}"
73-
pkg_suggests="${result[i+4]}"
74-
pkg_replaces="${result[i+5]}"
75-
76-
build_native_package \
77-
--architectures noarch \
78-
--target-dir "$ROOT_REPOS" \
79-
--base-name "$pkg_name" \
80-
--version "$pkg_version" \
81-
--release "${{ env.PKG_RELEASE }}" \
82-
--depends "$pkg_depends" \
83-
--recommends "$pkg_recommends" \
84-
--suggests "$pkg_suggests" \
85-
--replaces "$pkg_replaces" \
86-
--skip rpm \
87-
--summary "${{ env.PKG_SUMMARY }}" \
88-
--description "${{ env.PKG_DESC }}" \
89-
--homepage "${{ env.PKG_HOMEPAGE }}"
90-
done
91-
92112
# Upload and sign
93113
upload_list=("$ROOT_REPOS/"*)
94114
cloud_upload upload_list

0 commit comments

Comments
 (0)