From: Hanchett, Paul [mailto:[email protected]]
Sent: Thursday, September 19, 2013 1:32 AM
To: Zhang, Qiang Z
Cc: Maurer, Steven; [email protected]
Subject: Re: Major reason for inability to build Tizen sources found...

Qiang--

Originally I was trying to follow your advice here:


Hi Paul,

I found new version of IVI is released: 
http://download.tizen.org/releases/daily/tizen/ivi/tizen_20130913.12/

In this release contains the following updates as I know:

- wrt/libtapi issue: already fixed in today's release: 
http://download.tizen.org/releases/daily/tizen/ivi/latest/builddata/manifest/tizen_20130913.12_ia32.xml

- Toolchain: use gcc48 instead of gcc 47, so gcc and toolchain conflict issue 
will be fixed.

- curl updated, so CURL_OPENSSL_4 related error will be fixed

Gerrit git updates:

- Update scm/meta/build-conf to latest released config

- Update pre-built/toolchain-x86 to latest toolchain, including (gcc48,new 
eglibc)

So with above updates, gbs local full build can works more better, only 28 
packages build failed.

So, please build using latest code and repo:

- use this manifest 
http://download.tizen.org/releases/daily/tizen/ivi/latest/builddata/manifest/tizen_20130913.12_ia32.xml
 to update 
scm/manifest/ivi-projects.xml<http://download.tizen.org/releases/daily/tizen/ivi/latest/builddata/manifest/tizen_20130913.12_ia32.xml%20to%20update%20scm/manifest/ivi-projects.xml>

- use remote repo 
http://download.tizen.org/releases/daily/tizen/ivi/tizen_20130913.12/ in 
.gbs.conf

- run gbs build --clean-repos

 Btw, latest tizen3.0 code does not exist package cycles , so you don't need 
specify --exclude now.
 But when I tried to implement that, I got an error

Qiang,

My repo init and sync -m xxxxx seem to both be successful.  However when I try 
a gbs build, I get an error (two actually):

==================================================================================================
gbs build -A i586 --threads 2 --clean-repos --exclude=texinfo,systemd
==================================================================================================
info: generate repositories ...
warning: No such repo path:/home/paulha/20130913.12/pre-built/toolchain-x86/
error: Traceback (most recent call last):
  File "/usr/bin/gbs", line 539, in <module>
    sys.exit(main(sys.argv))
  File "/usr/bin/gbs", line 533, in main
    return module.main(args)
  File "/usr/lib/pymodules/python2.7/gitbuildsys/cmd_build.py", line 290, in 
main
    cmd += prepare_repos_and_build_conf(args, buildarch, profile)
  File "/usr/lib/pymodules/python2.7/gitbuildsys/cmd_build.py", line 140, in 
prepare_repos_and_build_conf
    shutil.copy(profile.buildconf, distconf)
  File "/usr/lib/python2.7/shutil.py", line 119, in copy
    copyfile(src, dst)
  File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 
'/home/paulha/20130913.12/scm/meta/build-config/build.conf'

My partner across the way is able to get past this.  The one difference I know 
about is that I am starting with a new set of directories where he is re-using 
existing directory structures.

Do you think that's a clue?

I hear your response as essentially "You're doing it wrong" but didn't 
understand what to try instead.
So, you only need update ivi-project.xml with 
http://download.tizen.org/releases/daily/tizen/ivi/tizen_20130913.23/builddata/manifest/tizen_20130913.23_ia32.xml.
I thought that was what I'd done.
[Qiang] yes. you just need replace ivi-project.xml with manifest in 
http://download.tizen.org/releases/daily/tizen/ivi/<>/builddata/manifest<http://download.tizen.org/releases/daily/tizen/ivi/%3c%3e/builddata/manifest>,
 then run 'repo sync' to clone code.

So I just went back to building off the tizen branch, and things looked 
surprisingly good except for the errors we've noted here.
BTW, it's useful to know that the package in question does not build in OBS yet.

I am curious: Why are packages that won't build being added to the tizen 
branch/repository/manifest?  I would think that the first step would be for the 
developer working on the package to create new branches as needed and then to 
merge them into the current line once it builds without error.  :-)
[Qiang] We are working on this to clean up spec files that does not built in 
OBS.

Thanks
Qiang




Paul


Paul Hanchett
-------------------
Infotainment Engineer
MSX on behalf of Jaguar Land Rover
One World Trade Center, 121 Southwest Salmon Street, 11th Floor, Portland, 
Oregon, 97204

Email: [email protected]<mailto:[email protected]>
-------------------

Business Details:
Jaguar Land Rover Limited
Registered Office: Abbey Road, Whitley, Coventry CV3 4LF
Registered in England No: 1672070

On Tue, Sep 17, 2013 at 11:46 PM, Zhang, Qiang Z 
<[email protected]<mailto:[email protected]>> wrote:
GBS use totally Tizen chroot env to build package, so it will not use host env 
and library.

For your case about build-initvm.spec, actually, this package also has not been 
build in OBS and does not exist in released repo:
http://download.tizen.org/releases/daily/tizen/ivi/latest/repos/ivi/ia32/packages/

That means build-initvm.spec has not been used for finally tizen image, the 
real reason for this package is that it missing a dependency, you can fix like 
this:

/upstream/build$ git diff
diff --git a/packaging/build-initvm.spec b/packaging/build-initvm.spec
index cef4a23..e259ef7 100644
--- a/packaging/build-initvm.spec
+++ b/packaging/build-initvm.spec
@@ -28,9 +28,7 @@ AutoReqProv:    off
Requires:       build
BuildRequires:  gcc
BuildRequires:  glibc-devel
-%if 0%{?suse_version} > 1200
BuildRequires:  glibc-devel-static
-%endif
 %description
This package provides a script for building RPMs for SUSE Linux in a

Which code base(snapsho) are you using? The latest one is 
http://download.tizen.org/releases/daily/tizen/ivi/tizen_20130917.3

Are you using tizen.org<http://tizen.org> git manifest or manifest in 
http://download.tizen.org/releases/daily/tizen/ivi/tizen_20130917.3/builddata/manifest/
 ?

Thanks
Qiang


From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>] On 
Behalf Of Maurer, Steven
Sent: Wednesday, September 18, 2013 5:52 AM
To: [email protected]<mailto:[email protected]>

Subject: Major reason for inability to build Tizen sources found...

Hi people,

I've just come across a reason why I've been unable to build Tizen IVI in a 
vanilla environment: there are absolute paths to tool chains and dependencies 
on specific internal libraries of the cross-platform host.

When I attempt to "gbs build -A i586 platform/upstream/build" in the root git 
directory, the following error is left in the failure log: 
.../logs/fail/build-initvm-20120927-0/log.

                                                        
/usr/lib/gcc/i586-tizen-linux/4.8/../../../../i586-tizen-linux/bin/ld: cannot 
find -lc

This error shows that the build depends on an absolute path in the host 
machine. A directory /usr/lib/gcc/i586-tizen-linux/4.8 must exist, a 
/usr/i586-tizen-linux/bin/ld must exist, and there is an implicit dependency on 
the host's library files. This also happens with platform/upstream/gettext 
package. I strongly suspect that many more packages have this dependency as 
well, but cannot test it because nothing else builds past those two packages.

To test further, I went ahead and made a number of symbolic links to point 
these absolute paths to my local host's default toolchain, and tried to 
rebuild. This immediately ran into a link error because my host environment is 
Ubuntu 64-bit, and this naturally didn't link with the 32-bit Tizen executables.

A total of 239 of 850 packages do build correctly before getting to these 
dependencies, but these are all just vanilla Linux packages. All the 
Tizen-specific libraries and applications needed for Tizen-specific development 
(for example developing a vehicle specific plugin for 
automotive-message-broker) do not build. I run into an onslaught of "nothing 
provides <package>" errors. I am unsure about whether this is caused by the 
toolchain dependency.

In the short term, I would like some help from the people who actually *can* 
build further than this. Where are people getting this i586-tizen-linux 
toolchain from? It does not appear to be documented anywhere accessible by 
google. Until I can get this, I cannot do any sort of Tizen development.  It is 
impossible, as has been suggested, to simply build packages to work on top of 
Tizen. To do such development you still need basic Tizen libraries and header 
files, and the packages that provide those don't build.

In the long term, let me also state my concerns as to why this can't just be 
ignored. Since it appears that Tizen images have library code from the 
development environment baked into them, everyone's Tizen image is going to 
differ, even if built from identical sources, and this could lead to 
consistency issues. There is also a GPL issue, as incorporating non-public 
libraries and irreproducible build environments that make seemingly public code 
non-buildable is something it specifically prohibits (not everybody is so 
persnickety, but automotive manufacturers are very cognizant of legal 
liabilities).

--
Kind Regards

Steven Maurer
-------------------
Infotainment Engineer
MSX on behalf of Jaguar Land Rover
One World Trade Center, 121 Southwest Salmon Street, 11th Floor, Portland, 
Oregon, 97204

Email: [email protected]<mailto:[email protected]>


_______________________________________________
IVI mailing list
[email protected]<mailto:[email protected]>
https://lists.tizen.org/listinfo/ivi

_______________________________________________
IVI mailing list
[email protected]
https://lists.tizen.org/listinfo/ivi

Reply via email to