[Buildroot] [PATCH v2 13/13] WIP: support package with '-'
Peter Seiderer
ps.report at gmx.net
Wed Oct 25 20:10:03 UTC 2017
From: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
---
Changes v1 --> v2:
- from https://github.com/maximeh/buildroot/commit/39fb06a2b4d7662474520db849a56b9977650487.patch
- new WIP patch
---
package/pkg-download.mk | 2 +-
support/download/bzr | 3 ++-
support/download/cvs | 3 ++-
support/download/dl-wrapper | 15 ++++++++-------
support/download/file | 3 ++-
support/download/git | 7 ++++---
support/download/hg | 3 ++-
support/download/scp | 3 ++-
support/download/svn | 3 ++-
support/download/wget | 3 ++-
10 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/package/pkg-download.mk b/package/pkg-download.mk
index 307c415f64..3973778181 100644
--- a/package/pkg-download.mk
+++ b/package/pkg-download.mk
@@ -99,7 +99,7 @@ define DOWNLOAD
-H $(PKGDIR)/$($(PKG)_RAWNAME).hash \
-n $($(PKG)_RAW_BASE_NAME) \
-N $($(PKG)_RAWNAME) \
- -o $($(PKG)_DL_DIR)/$(notdir $(1)) \
+ -o $($(PKG)_DL_DIR) \
$(if $($(PKG)_GIT_SUBMODULES),-r) \
$(DOWNLOAD_URIS) \
$(QUIET) \
diff --git a/support/download/bzr b/support/download/bzr
index 5289a421cd..36f19cc0bb 100755
--- a/support/download/bzr
+++ b/support/download/bzr
@@ -20,6 +20,7 @@ verbose=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) uri="${OPTARG}";;
c) cset="${OPTARG}";;
@@ -55,4 +56,4 @@ fi
_bzr export ${verbose} --root="'${basename}/'" --format=tgz \
${timestamp_opt} - "${@}" "'${uri}'" -r "'${cset}'" \
- >"${output}"
+ >"${output}/${filename}"
diff --git a/support/download/cvs b/support/download/cvs
index 3f77b849e4..959583dcc0 100755
--- a/support/download/cvs
+++ b/support/download/cvs
@@ -21,6 +21,7 @@ while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-Q;;
o) output="${OPTARG}";;
+ f) filename="${OPTARG}";;
u) uri="${OPTARG#*://}";;
c) rev="${OPTARG}";;
N) rawname="${OPTARG}";;
@@ -56,4 +57,4 @@ export TZ=UTC
_cvs ${verbose} -z3 -d"'${uri}'" \
co "${@}" -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'"
-tar czf "${output}" "${basename}"
+tar czf "${output}/${filename}" "${basename}"
diff --git a/support/download/dl-wrapper b/support/download/dl-wrapper
index 67e9742767..c022d356fa 100755
--- a/support/download/dl-wrapper
+++ b/support/download/dl-wrapper
@@ -19,7 +19,7 @@
# We want to catch any unexpected failure, and exit immediately.
set -e
-export BR_BACKEND_DL_GETOPTS=":hc:o:n:N:H:ru:qf:e"
+export BR_BACKEND_DL_GETOPTS=":hc:o:n:N:H:ru:qf:eR:"
main() {
local OPT OPTARG
@@ -56,8 +56,8 @@ main() {
# - matches all its hashes: do not download it again and exit promptly
# - fails at least one of its hashes: force a re-download
# - there's no hash (but a .hash file): consider it a hard error
- if [ -e "${output}" ]; then
- if support/download/check-hash ${quiet} "${hfile}" "${output}" "${output##*/}"; then
+ if [ -e "${output}/${filename}" ]; then
+ if support/download/check-hash ${quiet} "${hfile}" "${output}" "${filename}"; then
exit 0
elif [ ${?} -ne 2 ]; then
# Do not remove the file, otherwise it might get re-downloaded
@@ -109,9 +109,10 @@ main() {
-c "${cset}" \
-n "${raw_base_name}" \
-N "${raw_name}" \
- -f "${filename}" \
+ -f "$(basename ${tmpf})" \
+ -R "${filename}" \
-u "${uri}" \
- -o "${tmpf}" \
+ -o "${tmpd}" \
${quiet} ${recurse} "${@}"
then
rm -rf "${tmpd:?}/*"
@@ -125,7 +126,7 @@ main() {
# Check if the downloaded file is sane, and matches the stored hashes
# for that file
- if ! support/download/check-hash ${quiet} "${hfile}" "${tmpf}" "${output##*/}"; then
+ if ! support/download/check-hash ${quiet} "${hfile}" "${tmpf}" "${filename}"; then
rm -rf "${tmpd:?}/*"
# cd back to keep path coherence
cd "${OLDPWD}"
@@ -181,7 +182,7 @@ main() {
# that 'mv' is atomic, because it then uses rename() that POSIX mandates
# to be atomic, see:
# http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html
- if ! mv -f "${tmp_output}" "${output}"; then
+ if ! mv -f "${tmp_output}" "${output}/${filename}"; then
rm -f "${tmp_output}"
exit 1
fi
diff --git a/support/download/file b/support/download/file
index a3e616a181..5d77d2b66c 100755
--- a/support/download/file
+++ b/support/download/file
@@ -22,6 +22,7 @@ verbose=-v
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) source="${OPTARG#*://}";;
:) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;;
@@ -37,4 +38,4 @@ _localfiles() {
eval ${LOCALFILES} "${@}"
}
-_localfiles ${verbose} "${@}""'${source}'" "'${output}'"
+_localfiles ${verbose} "${@}""'${source}'" "'${output}/${filename}'"
diff --git a/support/download/git b/support/download/git
index 5d09cc0d7a..813784970b 100755
--- a/support/download/git
+++ b/support/download/git
@@ -22,6 +22,7 @@ while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q; exec >/dev/null;;
r) recurse=1;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) uri="${OPTARG}";;
c) cset="${OPTARG}";;
@@ -106,9 +107,9 @@ LC_ALL=C sort <"${BR2_DL_DIR}/${basename}.list" >"${BR2_DL_DIR}/${basename}.list
# sources.buildroot.org and used in the *.hash files
tar cf - --transform="s/^\.$/${basename}/" \
--numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \
- -T "${BR2_DL_DIR}/${basename}.list.sorted" >"${output}.tar"
-gzip -6 -n <"${output}.tar" >"${output}"
-tar tf "${output}"
+ -T "${BR2_DL_DIR}/${basename}.list.sorted" >"${output}/${filename}.tar"
+gzip -n <"${output}/${filename}.tar" >"${output}/${filename}"
+tar tf "${output}/${filename}"
rm -f "${BR2_DL_DIR}/${basename}.list"
rm -f "${BR2_DL_DIR}/${basename}.list.sorted"
diff --git a/support/download/hg b/support/download/hg
index efb515fca5..586d62f3be 100755
--- a/support/download/hg
+++ b/support/download/hg
@@ -19,6 +19,7 @@ verbose=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) uri="${OPTARG}";;
c) cset="${OPTARG}";;
@@ -40,4 +41,4 @@ _hg clone ${verbose} "${@}" --noupdate "'${uri}'" "'${basename}'"
_hg archive ${verbose} --repository "'${basename}'" --type tgz \
--prefix "'${basename}'" --rev "'${cset}'" \
- - >"${output}"
+ - >"${output}/${filename}"
diff --git a/support/download/scp b/support/download/scp
index 8ecf2f4b22..92276dfef2 100755
--- a/support/download/scp
+++ b/support/download/scp
@@ -17,6 +17,7 @@ verbose=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) uri="${OPTARG}";;
:) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;;
@@ -32,4 +33,4 @@ _scp() {
eval ${SCP} "${@}"
}
-_scp ${verbose} "${@}" "'${uri}'" "'${output}'"
+_scp ${verbose} "${@}" "'${uri}'" "'${output}/${filename}'"
diff --git a/support/download/svn b/support/download/svn
index 542b25c0a2..a326d0523e 100755
--- a/support/download/svn
+++ b/support/download/svn
@@ -19,6 +19,7 @@ verbose=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ f) filename="${OPTARG}";;
o) output="${OPTARG}";;
u) uri="${OPTARG}";;
c) rev="${OPTARG}";;
@@ -38,4 +39,4 @@ _svn() {
_svn export ${verbose} "${@}" "'${uri}@${rev}'" "'${basename}'"
-tar czf "${output}" "${basename}"
+tar czf "${output}/${filename}" "${basename}"
diff --git a/support/download/wget b/support/download/wget
index c69e6071aa..97aa43de73 100755
--- a/support/download/wget
+++ b/support/download/wget
@@ -21,6 +21,7 @@ while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
q) verbose=-q;;
o) output="${OPTARG}";;
f) filename="${OPTARG}";;
+ R) remote_filename="${OPTARG}";;
u) url="${OPTARG}";;
e) encode="-e";;
:) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;;
@@ -40,4 +41,4 @@ _wget() {
# mirror
[ -n "${encode}" ] && filename=${filename//\?/%3F}
-_wget ${verbose} "${@}" -O "'${output}'" "'${url}/${filename}'"
+_wget ${verbose} "${@}" -O "'${output}/${filename}'" "'${url}/${remote_filename}'"
--
2.14.2
More information about the buildroot
mailing list