From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 1/6] support/download: Add support to pass options directly to downloaders
Date: Fri, 15 Jul 2016 22:47:29 +0200 [thread overview]
Message-ID: <20160715204729.GH3692@free.fr> (raw)
In-Reply-To: <1468315820-9341-2-git-send-email-romain.perier@free-electrons.com>
Romain, Thomas, All,
On 2016-07-12 11:30 +0200, Romain Perier spake thusly:
> This adds support to pass options to the underlying command that is used
> by downloader. Useful for retrieving data with server-side checking for
> user login or passwords, use a proxy or use specific options for cloning
> a repository via git and hg.
>
> Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
Following the reply by Thomas, I did a second review of this patch with
an eye toward having it applied without changing the way we pass the
current options.
I still have a few comments on it (read the second comment before
reading the first).
> ---
[--SNIP--]
> diff --git a/support/download/bzr b/support/download/bzr
> index e18b01f..9443e03 100755
> --- a/support/download/bzr
> +++ b/support/download/bzr
> @@ -25,6 +25,7 @@ output="${1}"
> repo="${2}"
> rev="${3}"
> basename="${4}"
> +dl_opts="${5}"
So we expect the additional options to be pased as a single string?
Why not use something like:
shift 4 # Get rid of our options
and then:
_bzr export ${verbose} --root="'${basename}/'" --format=tgz \
${timestamp_opt} - "'${repo}'" -r "'${rev}'" \
${timestamp_opt} - "${@}" "'${repo}'" -r "'${rev}'" \
Ditto for all backends, of course.
Note: I wrote the above after writing the comment below; that construct
above would fix the concerns I expressed below.
(I'm hard to follow, am I not? My brain is really tortuous... ;-] )
> # Caller needs to single-quote its arguments to prevent them from
> # being expanded a second time (in case there are spaces in them)
> @@ -49,5 +50,5 @@ if [ ${bzr_version} -ge ${bzr_min_version} ]; then
> fi
>
> _bzr export ${verbose} --root="'${basename}/'" --format=tgz \
> - ${timestamp_opt} - "'${repo}'" -r "'${rev}'" \
> + ${timestamp_opt} - "${dl_opts}" "'${repo}'" -r "'${rev}'" \
When there are no additional options, then this passes an empty string
argument to the wrapping function. Normally, an empty string argument is
not very well handled by most programs, and bzr is no exception.
This happens to work because we then eval the arguments in the wraping
function.
However, this is not a robust solution, as we never encoded the
expectation of such behaviour.
A simple solution would be to just not quote ${dl_opts}. However, that
would not work well is such an option had an explicit space in it.
Still, that's better than nothing.
Unless you can provide convincing arguments that its better to quote
${dl_opts} (but I can't see many).
This all makes me very uneasy... :-/ Except if we follow the suggestion
I mad in the first comment, above, which you can now backtrack to. ;-)
Ditto for all backends, of course.
[--SNIP--]
> diff --git a/support/download/git b/support/download/git
> index 314b388..7fd7563 100755
> --- a/support/download/git
> +++ b/support/download/git
> @@ -24,6 +24,7 @@ output="${1}"
> repo="${2}"
> cset="${3}"
> basename="${4}"
> +dl_opts="${5}"
>
> # Caller needs to single-quote its arguments to prevent them from
> # being expanded a second time (in case there are spaces in them)
> @@ -49,7 +50,7 @@ if [ -n "$(_git ls-remote "'${repo}'" "'${cset}'" 2>&1)" ]; then
> fi
> if [ ${git_done} -eq 0 ]; then
> printf "Doing full clone\n"
> - _git clone ${verbose} --mirror "'${repo}'" "'${basename}'"
> + _git clone ${verbose} "${dl_opts}" --mirror "'${repo}'" "'${basename}'"
You missed the other git clone just a few lines above.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2016-07-15 20:47 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 9:30 [Buildroot] [PATCH v2 0/6] Add support for AMD Catalyst graphics driver Romain Perier
2016-07-12 9:30 ` [Buildroot] [PATCH v2 1/6] support/download: Add support to pass options directly to downloaders Romain Perier
2016-07-15 15:54 ` Yann E. MORIN
2016-07-15 17:21 ` Thomas Petazzoni
2016-07-15 20:47 ` Yann E. MORIN [this message]
2016-07-24 14:00 ` Thomas Petazzoni
2016-07-24 14:04 ` Yann E. MORIN
2016-07-24 14:05 ` Thomas Petazzoni
2016-07-26 7:31 ` Romain Perier
2016-07-12 9:30 ` [Buildroot] [PATCH v2 2/6] pkg-download: Allow packages to pass generic options to download methods Romain Perier
2016-07-15 15:56 ` Yann E. MORIN
2016-07-12 9:30 ` [Buildroot] [PATCH v2 3/6] docs/manual: Document the variable $(PKG)_DL_OPTS Romain Perier
2016-07-15 16:00 ` Yann E. MORIN
2016-07-26 7:30 ` Romain Perier
2016-07-12 9:30 ` [Buildroot] [PATCH v2 4/6] package/xserver_xorg-server: add version 1.17.4 Romain Perier
2016-07-15 13:23 ` Thomas Petazzoni
2016-07-12 9:30 ` [Buildroot] [PATCH v2 5/6] qt: Add option for enabling the accessibility support Romain Perier
2016-07-15 13:23 ` Thomas Petazzoni
2016-07-12 9:30 ` [Buildroot] [PATCH v2 6/6] package/amd-catalyst-driver: Add AMD proprietary graphic stack support Romain Perier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160715204729.GH3692@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox