mono 1.2.5.1: added mono.bbclass, many changes required for packaging
authorHenryk Ploetz <henryk@openmoko.org>
Tue, 2 Oct 2007 18:51:53 +0000 (18:51 +0000)
committerCliff Brake <cbrake@bec-systems.com>
Tue, 2 Oct 2007 18:51:53 +0000 (18:51 +0000)
commitbcaec55e4e64f6bca21cf0e50eaec787bd29b735
treee9f2ec6ba9110006d87f5e5e6db042fcd8045c68
parent1f1297df3c3822b2c5c6682c990ce7fac5183117
mono 1.2.5.1: added mono.bbclass, many changes required for packaging
New file: packages/mono/mono-mcs-intermediate_1.2.5.1.bb
Compiles mono in native mode with standard prefix, then tars up the
resulting tree and puts the tarfile into staging
New file: packages/mono/mono_files.py
Automatically generated using collect-path.py (attached to this mail)
and contains a list that maps file patterns to package names (and
contained assemblies, see below).
New file: classes/mono.bbclass
Has a helper function for the list that maps file patterns to package
names and assemblies (see below). Also has a function mono_do_clilibs
and inserts that function into PACKAGEFUNCS. This function calls
mono_find_provides_and_requires which finds out (through calls to
monodis --assembly and monodis --assemblyref) which assemblies are
provided and required by a particular package. mono_do_clilibs then
puts the information about provided assemblies into
${STAGING_DIR}/clilibs/${packagename}.list and information about the
required packages into ${PKGDEST}/{packagename}.clilibdeps where it
will later be picked up by the modified read_shlibdeps.
Originally I had dependency resolution through the partial list in
mono_files.py but obviously this doens't scale, so I implemented the
new method with mono_do_clilibs. The benefit is now that I don't really
need the extra information in mono_files.py anymore and can in
principle get rid of mono_get_file_table and related code. Instead it
should be possible to modify collect-paths.py to output bitbake .inc
code (e.g. PACKAGES = "..." and a whole lot of FILES_... = "...")
instead of python code. There's still the minor problem of how to
handle the .mdb files, that's why I didn't implement it yet but instead
opted for an approach that I knew would work. (Debian just puts
the .mdb files into the individual packages, while I would argue that
they do belong into corresponding -dbg packages.)
Modified file: classes/package.bbclass
In read_shlibdeps I folded the two identical code blocks dealing with
*.shlibdeps and *.pcdeps into one and added *.clilibdeps (generated by
mono_do_clilibs above).
Modified file: packages/mono/mono_1.2.5.1.bb
Add the mono-mcs-intermediate workaround. Add a whole lot of python
code in populate_packages_prepend in order to split up the packages
based on information from mono_files.py (via mono.bbclass'
mono_get_file_table). As I said above a lot of this code can hopefully
be replaced in the future.
classes/mono.bbclass [new file with mode: 0644]
classes/package.bbclass
packages/mono/README
packages/mono/collect-paths.py [new file with mode: 0644]
packages/mono/mono-mcs-intermediate_1.2.5.1.bb [new file with mode: 0644]
packages/mono/mono_1.2.5.1.bb
packages/mono/mono_files.py [new file with mode: 0644]