[Fuego] unmet dependencies error when running ./install.sh

Tim.Bird at sony.com Tim.Bird at sony.com
Mon Mar 19 21:14:25 UTC 2018


Comments inline below.  Thank you both for thinking about this, researching and testing
different scenarios.

> -----Original Message-----
> From: Guilherme Camargo
> Hello, Tuyen.
> 
> I agree with you. It seems not to be a very good idea to mix jessie packages
> with unstable's.
> 
> I tried a few more things.
> 
> 	- Removing the security repo from apt sources.
> 	Seems to solve the issue with the installation of the crosstoolchains,
> but breaks the
> 	installation of other fuego dependencies:
> 
> 		The following information may help to resolve the situation:
> 		The following packages have unmet dependencies:
> 		 g++ : Depends: cpp (>= 4:4.9.2-2) but it is not going to be
> installed
> 		       Depends: g++-4.9 (>= 4.6.4-1~) but it is not going to be
> installed
> 		       Depends: gcc-4.9 (>= 4.6.4-1~) but it is not going to be
> installed
> 		 gcc : Depends: cpp (>= 4:4.9.2-2) but it is not going to be
> installed
> 		       Depends: gcc-4.9 (>= 4.9.2-1~) but it is not going to be
> installed
> 		 gettext : Depends: libgomp1 (>= 4.9) but it is not going to be
> installed
> 		 libtool : Depends: cpp but it is not going to be installed
> 		 python-matplotlib : Depends: python-numpy (>= 1:1.8.0) but
> it is not going to be installed
> 		                     Depends: python-numpy-abi9
> 		                     Recommends: python-glade2 but it is not going to
> be installed
> 
> 	- Moving to Debian Stretch (the new stable).
> 	Crosstoolchain packages are
> 
> 	already available on the stable strech repos.
> 	By changing our base image to debian:stretch and replacing
> 	openjdk-7 with openjdk-8
> 	(version 7 is not available on stretch) I was able to build successfully.
> 	I'm not sure if this is a good
> 	 solution, though. Moving from jessie to stretch would
> 	represent a major change on Fuego,
> 	that could possibly break other things.

Just a few thoughts on this one.  Long term, we will need to (of course)
update the version of Debian in our base container.  Here are some 
of the issues involved:

1) the primary issue with the docker build right now is compatibility
with toolchain packages.  However, in the long run we may start to see
other compatibility issues for other host-side Fuego tools (for example
the version of the netperf server.)

2) the only support we can realistically provide in Fuego for easy cross-toolchain
support is for Debian-based targets.  YP, OE, or build-root based targets
should be using a 'canned' SDK obtained from an upstream vendor
or built using the same build system used for the distribution build.

3) Many embedded boards are using older Embedded distributions
(often 3 to 5 years behind mainline for their respective upstream projects).
This is probably why we've been OK relying on old emdebian
toolchains.  For example, my beaglebone is running "wheezy", which
dates from 2013.  For this reason, I don't think that we need the
latest and greatest Fuego base Debian distro in the container, or the
latest cross-toolchains.

4) I'd like to stick with a Debian base distro that is well-used in the docker
community as well.  I don't have any sense for what versions of Debian
are well-tested with Docker, other than that Jessie
was used by the Cogent developers for JTA originally, and it's worked pretty
well.  I don't know how much of a consideration it is that docker containers
can re-use image layers in common with other containers on the same system.
Stretch is less than a year old, but I might be able to be convinced that we should
switch to it (probably after a 1.3 release, when we can do a bunch of shakedown
testing, and possibly in conjunction with the profusion changes to refactor
the docker build for the Fuego self-test project).

I'd like to do some testing with modifications to the install_cross_toolchain.sh
script. If that can let us limp along until we get comfortable updating to a 
newer version of Debian (stretch), that has better built-in support for
cross toolchains, it would be good.

Finally:
5) I've had in my mind for some time that it would be a nice option to have
pre-built test binaries for some common target boards (and distro
combinations).  My idea is that make a special "collector" board for each
major architecture (or toolchain) and loop over the tests doing something like:
'ftc run-test -b <collector_board> -t <test_name> -p pcbd'

This would build the tests, and deploy the test binaries into that "virtual" board.
Then we could collect the materials and put them on some centralized test server,
where they could be downloaded, so that other users would not need to
build the tests.  This would require modifying Fuego to check the centralized
server for cached binary objects, and, if present, skip the build phase and
use an alternate 'deploy' phase (similar to what we allow with LTP, but built into
Fuego).

Ultimately, I'd like for most Fuego users to be able to skip the building of the test
materials, unless they have some wacky custom toolchain, or a new architecture.

Let me know what you think.
  -- Tim

> 
> ​Additionally, emdebian updates seem to have cease a while ago (last change
> was in 2015), so eventually ​we would
> need to come up with alternatives for the sources of those toolchains.
> 
> Do you or anyone have any other suggestions?
> 
> Thanks
> 
> --
> Guilherme
> 
> 
> On Sun, Mar 18, 2018 at 12:53 PM, Tuyển Hoàng <tuyen.hv.3i at gmail.com
> <mailto:tuyen.hv.3i at gmail.com> > wrote:
> 
> 
> 	Hello Guilherme,
> 
> 
> 	Thank you so much for your help!
> 
> 	Actually, The ARM cross toolchain can be installed successfully with
> your patch,
> 
> 	but I do not think that adding debian unstable (sid) repository to the
> debian jessie 
> 	system is a good idea.
> 
> 	Normally, I think we should not add a different codename repository
> to a Debian system.
> 
> 	This can make our system get issues related to unmet dependencies
> of version packages later.
> 
> 	For example, When I add debian sid repository and install cross
> toolchain, It has 21 upgraded,
> 	80 newly installed. For a long time, We can install or run packages
> from Debian Jessie and
> 
> 	these packages can depend on packages with Jessie version but they
> updated version to Debian sid before.
> 	We can get problems with these packages.
> 
> 
> 	That is my opinion.
> 
> 	How do you think about this?
> 
> 
> 	Thank you and Best regards,
> 
> 	Tuyen
> 
> 
> 
> 	_______________________________________________
> 	Fuego mailing list
> 	Fuego at lists.linuxfoundation.org
> <mailto:Fuego at lists.linuxfoundation.org>
> 	https://lists.linuxfoundation.org/mailman/listinfo/fuego
> <https://lists.linuxfoundation.org/mailman/listinfo/fuego>
> 
> 
> 
> 
> 	2018-03-18 20:21 GMT+07:00 Guilherme Camargo
> <guicc at profusion.mobi <mailto:guicc at profusion.mobi> >:
> 
> 
> 		Hello, Tuyen
> 
> 
> 		I solved this issue by replacing the emdebian repository with
> debian/unstable
> 		(sip). See the patch here
> <https://bitbucket.org/profusionmobi/fuego/commits/055f58cefb954cf0daa
> 828e17795ce95d8d38b6b> .
> 		That patch has been applied on my fork, that's based on the
> branch 'next', so it can't
> 		be applied directly on master. I plan to send a patch to
> master this Monday, but for now,
> 		you may be able to fix that issue by doing the following:
> 
> 
> 		-RUN echo "deb http://emdebian.org/tools/debian/
> <http://emdebian.org/tools/debian/>  jessie main" >
> /etc/apt/sources.list.d/crosstools.list
> 		-RUN dpkg --add-architecture armhf
> 		-RUN curl http://emdebian.org/tools/debian/emdebian-
> toolchain-archive.key <http://emdebian.org/tools/debian/emdebian-
> toolchain-archive.key>  | sudo apt-key add -
> 		+RUN echo deb http://deb.debian.org/debian unstable main
> contrib non-free >
> 		+        /etc/apt/sources.list.d/crosstools.list
> 		+RUN dpkg --add-architecture armhf
> 
> 		Can you please try that out and tell me if it works for you?
> 
> 		Thanks
> 
> 		--
> 		Guilherme
> 
> 
> 		On Sat, Mar 17, 2018 at 11:53 PM, Tuyển Hoàng
> <tuyen.hv.3i at gmail.com <mailto:tuyen.hv.3i at gmail.com> > wrote:
> 
> 
> 			Hello all,
> 
> 
> 			When I ran ./install, I got the below error:
> 
> 			Step 51 : RUN DEBIAN_FRONTEND=noninteractive
> apt-get update
> 			 ---> Using cache
> 			 ---> 0ee853280c49
> 			Step 52 : RUN DEBIAN_FRONTEND=noninteractive
> apt-get -yV install crossbuild-essential-armhf cpp-arm-linux-gnueabihf gcc-
> arm-linux-gnueabihf binutils-arm-linux-gnueabihf
> 			 ---> Running in bec6bfd97f37
> 			Reading package lists...
> 			Building dependency tree...
> 			Reading state information...
> 			Some packages could not be installed. This may mean
> that you have
> 			requested an impossible situation or if you are using
> the unstable
> 			distribution that some required packages have not
> yet been created
> 			or been moved out of Incoming.
> 			The following information may help to resolve the
> situation:
> 
> 			The following packages have unmet dependencies:
> 			 crossbuild-essential-armhf : Depends: g++-arm-
> linux-gnueabihf (>= 4.9.1-1) but it is not going to be installed
> 			 gcc-arm-linux-gnueabihf : Depends: gcc-4.9-arm-
> linux-gnueabihf (>= 4.9.2-10) but it is not going to be installed
> 			E: Unable to correct problems, you have held broken
> packages.
> 			The command '/bin/sh -c
> DEBIAN_FRONTEND=noninteractive apt-get -yV install crossbuild-essential-
> armhf cpp-arm-linux-gnueabihf gcc-arm-linux-gnueabihf binutils-arm-linux-
> gnueabihf' returned a non-zero code: 100
> 
> 
> 			How to reproduce the issue?
> 
> 			I cleaned all the old Jessie docker images and
> containers on my machine then run ./install.sh.
> 
> 			This will re-clone a new Jessie docker image.
> 
> 			I think this issue also occurs if we setup Fuego on a
> new machine.
> 
> 
> 			After several checks about the dependence of
> packages, I see that
> 			gcc-4.9-arm-linux-gnueabihf package depends on:
> libgcc-4.9-dev:armhf (= 4.9.2-10) but 4.9.2-10+deb8u1 is to be installed
> 
> 
> 			The reason that some packages in emdebian.org
> <http://emdebian.org/tools/debian/dists/jessie/main/>  repository are
> older than the current Jessie docker image and security.debian.org
> <http://security.debian.org/debian-security/dists/jessie/updates/>
> repository.
> 
> 
> 			How should we do to solve the issue?
> 
> 
> 			Best regards,
> 
> 			Tuyen
> 
> 
> 
> 	_______________________________________________
> 			Fuego mailing list
> 			Fuego at lists.linuxfoundation.org
> <mailto:Fuego at lists.linuxfoundation.org>
> 
> 	https://lists.linuxfoundation.org/mailman/listinfo/fuego
> <https://lists.linuxfoundation.org/mailman/listinfo/fuego>
> 
> 
> 
> 
> 



More information about the Fuego mailing list