diff options
Diffstat (limited to 'src/ob-buildopk.sh')
-rw-r--r-- | src/ob-buildopk.sh | 33 |
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 |