[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: emsetup bug



Actually there's another bug buried in those error messages that I ran across and was going to post about. You'll notice that it's also complaining about the inability to find gcc-0-arm-linux-gnu. I think that's due to a bug in Tools.pm in the find_latest_gcc() routine. I think the regular expression to extract the gcc version from the package name isn't quite right. I show a diff below of how I fixed it. Also, I had to hack the check_toolchains() routine to return "true", since I have installed, and am trying to use, a gcc-3.4 toolchain (for compatibility with a 2.4 kernel), and the check_toolchains() routine won't let me get away with that, since for 'testing' suite, the latest toolchain is gcc-4.1. I was thinking a way to deal with this would be to modify the check_toolchains() routine to accept a parameter and pass in a preferred version of a toolchain from the cross-compile conf file, with the default being "latest", which would cause the check_toolchain() routine to lookup the latest toolchain. This would allow the user to get the latest toochain by default but specify a different one if that is what they have installed. I didn't, however, code any of that up yet as a proposed patch. Does anybody think that would be a good idea?

-Jim Heck

androcross: /usr/share/perl5/Emdebian
$ diff Tools.pm Tools.pm.orig
130,133d129
<
< # JAH HACK
<       return "true";
<
150,152c146
< # JAH Fix bug
< #             if ($line =~ /gcc-([0-9\.\-]*)$/)
<               if ($line =~ /gcc-([0-9\.]*).*$/)
---
>               if ($line =~ /gcc-([0-9\.\-]*)$/)


Wookey wrote:
If you run emsetup on a fresh system it fails with:
E: Opening configuration file
/home/wookey/.dpkg-cross/apt.conf-testing - ifstream::ifstream (2 No
such file or directory)
No packages found matching ???-0*.
Dry run only.
E: Opening configuration file
/home/wookey/.dpkg-cross/apt.conf-testing - ifstream::ifstream (2 No
such file or directory)
W: Unable to locate package gcc-0-arm-linux-gnu
E: Opening configuration file
/home/wookey/.dpkg-cross/apt.conf-testing - ifstream::ifstream (2 No
such file or directory)
E: Opening configuration file
/home/wookey/.dpkg-cross/apt.conf-testing - ifstream::ifstream (2 No
such file or directory)
Need to install an emdebian toolchain to build 'arm' on 'i386'.

due to neither .dpkg-cross nor apt.conf-testing existing.

I reckon the former should be fixed by something like :
--- Tools.pm~   2007-01-30 00:06:40.000000000 +0000
+++ Tools.pm    2007-02-01 02:51:00.000000000 +0000
@@ -99,15 +99,15 @@
sub get_dpkg_cross_dir()
 {
-       my $home = File::HomeDir->my_home;
-       return "$home/.dpkg-cross";
+       my $home = File::HomeDir->my_home;
+        my $path =  "$home/.dpkg-cross";
+        mkdir $path if (! -d $path);
+        return $path;
 }

But I'm not quite sure where in that lot the creation of
apt-conf.testing should be done, and my brain has shut down 'cos it's
late. Somewhere round get_suite() when it determines the default suite
using check_dist?

Wookey



Reply to: