summaryrefslogtreecommitdiffstats
path: root/src/ob-buildopk.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/ob-buildopk.sh')
-rw-r--r--src/ob-buildopk.sh33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/ob-buildopk.sh b/src/ob-buildopk.sh
index 598419f..dc88758 100644
--- a/src/ob-buildopk.sh
+++ b/src/ob-buildopk.sh
@@ -27,12 +27,20 @@ build_opk()
local plat="${4}"
local date="${5}"
shift 5
+ local binary_qual=
local find_not_link=
local touch_noderef=
local sort_r=
+ if [ "x${arch}" = 'xsrc' ]; then
+ binary_qual="${binary}"
+ else
+ binary_qual="$(ob_qualify_package_name "${binary}" \
+ "${OPK_HOST_ARCH}")"
+ fi
+
ob_info "$(ob_get_msg 'build_opk')" \
- "${binary}_${version}_${arch}_${plat}.opk"
+ "${binary_qual}_${version}_${arch}_${plat}.opk"
mkdir -p '.opkbuild'
@@ -57,7 +65,7 @@ build_opk()
# order.
touch '.opkbuild/a' '.opkbuild/b'
if [ x"$(printf '.opkbuild/a\n.opkbuild/b\n' | ${TAR} -c -T - | \
- ${TAR} -t | head -n 1)" = x'b' ]; then
+ ${TAR} -t | head -n 1)" = x'.opkbuild/b' ]; then
sort_r='-r'
else
sort_r=''
@@ -69,22 +77,27 @@ build_opk()
# This utility runs with (fake) privileges, so we can chown what we're
# about to tar.
- find "${binary}.control" "${binary}.data" | xargs chown -h 0:0
+ if [ "x${arch}" = 'xsrc' ]; then
+ find "${binary}.control" "${binary}.data" | xargs chown -h 0:0
+ else
+ find "${binary}.control" | xargs chown -h 0:0
+ fi
(cd -- "${binary}.control" && find '.' | LC_ALL=C sort ${sort_r} | \
${TAR} -cf '../control.tar' --no-recursion -T -)
(cd -- "${binary}.data" && find '.' | LC_ALL=C sort ${sort_r} | \
${TAR} -cf '../data.tar' --no-recursion -T -)
- ${TOUCH} -t "${date}" 'control.tar' 'data.tar'
${GZIP} 'control.tar' 'data.tar'
+ ${TOUCH} -t "${date}" 'control.tar.gz' 'data.tar.gz'
- ${TAR} -cf "../../${binary}_${version}_${arch}_${plat}.tar" \
+ ${TAR} -cf "../../${binary_qual}_${version}_${arch}_${plat}.tar" \
'debian-binary' 'control.tar.gz' 'data.tar.gz'
rm -Rf 'control.tar.gz' 'data.tar.gz'
- ${TOUCH} -t "${date}" "../../${binary}_${version}_${arch}_${plat}.tar"
- ${GZIP} "../../${binary}_${version}_${arch}_${plat}.tar"
- mv "../../${binary}_${version}_${arch}_${plat}.tar.gz" \
- "../../${binary}_${version}_${arch}_${plat}.opk"
+ ${TOUCH} -t "${date}" \
+ "../../${binary_qual}_${version}_${arch}_${plat}.tar"
+ ${GZIP} "../../${binary_qual}_${version}_${arch}_${plat}.tar"
+ mv "../../${binary_qual}_${version}_${arch}_${plat}.tar.gz" \
+ "../../${binary_qual}_${version}_${arch}_${plat}.opk"
return 0
}
@@ -108,7 +121,7 @@ main()
printf '2.0\n' >'debian-binary'
${TOUCH} -t "${date}" 'debian-binary'
if [ x"${OB_DO_SOURCE:+set}" = x'set' ]; then
- build_opk "src-${OPK_SOURCE}" "${OPK_SOURCE_VERSION}" \
+ build_opk "src:${OPK_SOURCE}" "${OPK_SOURCE_VERSION}" \
'src' 'all' "${date}"
else
for pkg in ${OPK_PACKAGES_REDUCED}; do