On Mon, 2011-02-07 at 16:55 +0000, David Gilbert wrote:
On 7 February 2011 16:50, Guilherme Salgado guilherme.salgado@linaro.org wrote:
In lmc we already have some code which checks if a given utility is present and if not, install (via apt-get) a package which provides that. We could extend it to check for a specific version and try to install a version greater or equal that (can we tell apt-get to install only if it finds a package whose version is greater than X?).
When it fails to install, we would direct the user to the README, which has pointers for the things that are not available in the usual channels.
Be careful about forcing the use of apt to install a newer package than is available in the distro; please check whether there is a working qemu first in case the user has got one from another source. Currently the easiest way on Lucid of getting lmc to work is to copy a qemu-arm-static binary from a natty install; not a pretty solution but it works.
Ok, so ISTM that to keep this solution working we'll need to do something like running qemu-arm-static with no arguments and parse its output for the version string. Unless there's another way to easily trigger the bug without running something inside the chroot (I don't want to wait until we have the chroot ready to find out that the existing qemu-arm-static doesn't work).
On 7 February 2011 19:53, Guilherme Salgado guilherme.salgado@linaro.org wrote:
Ok, so ISTM that to keep this solution working we'll need to do something like running qemu-arm-static with no arguments and parse its output for the version string. Unless there's another way to easily trigger the bug without running something inside the chroot (I don't want to wait until we have the chroot ready to find out that the existing qemu-arm-static doesn't work).
You could run a static ARM binary under qemu-arm-static -- that would not require a chroot. But I don't think we really want to get into the business of doing a pile of tests at runtime. My vote would be for: * packaged versions of l-m-c should just use dependencies to enforce a working version * unpackaged versions are assumed to be used by people who know what they're doing * l-m-c shouldn't try to install anything at runtime
-- PMM
On Mon, 2011-02-07 at 20:30 +0000, Peter Maydell wrote:
On 7 February 2011 19:53, Guilherme Salgado guilherme.salgado@linaro.org wrote:
Ok, so ISTM that to keep this solution working we'll need to do something like running qemu-arm-static with no arguments and parse its output for the version string. Unless there's another way to easily trigger the bug without running something inside the chroot (I don't want to wait until we have the chroot ready to find out that the existing qemu-arm-static doesn't work).
You could run a static ARM binary under qemu-arm-static -- that would not require a chroot. But I don't think we really want to get into the business of doing a pile of tests at runtime.
Indeed, I wouldn't want to go down that route either.
My vote would be for:
- packaged versions of l-m-c should just use dependencies
to enforce a working version
- unpackaged versions are assumed to be used by people
who know what they're doing
But even them usually have no clue what that qemu error is about (or that a newer version has it fixed), and the fact that we keep seeing reports on IRC/mailing lists should be a good indication that we're not doing a great job at communicating that a certain version is required.
- l-m-c shouldn't try to install anything at runtime
I think it should not install automatically, but I think detecting missing dependencies at runtime and prompting the user for installation is a reasonable thing to do and plenty of users would certainly appreciate it.