diff options
26 files changed, 1447 insertions, 9164 deletions
diff --git a/classes/mono.bbclass b/classes/mono.bbclass new file mode 100644 index 0000000000..dcf5f7272c --- /dev/null +++ b/classes/mono.bbclass @@ -0,0 +1,214 @@ +def mono_get_file_table(packageversion, d): + # The packageversion is currently ignored, but might be used in the future + # if more than one mono version is available and different versions + # need to use different tables + + import bb, sys, os, glob, commands + curdir = os.path.dirname( bb.data.getVar('FILE', d, 1) ) + if curdir not in sys.path: sys.path.append( curdir ) + from mono_files import debian_mono_file_table + + # mono-jay is not being built (for all platforms at least) + IGNORE = ("mono-jay", ) + file_table = [ + # Standard package + {"name": "mono-doc"}, + + # Virtual packages + {"name": "mono"}, + {"name": "mono-runtime"}, + + # Not provided by Debian: + {"name": "libnunit2.2-cil", + "patterns": [ + "/usr/lib/mono/gac/nunit.*/2.2.*", + "/usr/lib/mono/1.0/nunit.*.dll", + "/usr/lib/pkgconfig/mono-nunit.pc", + ], + "assemblies": [ + ("nunit.core", "2.2.0.0"), + ("nunit.framework", "2.2.0.0"), + ("nunit.util", "2.2.0.0"), + ("nunit.mocks", "2.2.8.0"), + ], + }, + {"name": "libmono-cecil0.5-cil", + "patterns": [ + "/usr/lib/mono/gac/Mono.Cecil/0.5.*", + ], + "assemblies": [ + ("Mono.Cecil", "0.5.*"), + ], + }, + {"name": "libmono-db2-1.0-cil", + "patterns": [ + "/usr/lib/mono/gac/IBM.Data.DB2/1.0*", + "/usr/lib/mono/1.0/IBM.Data.DB2.dll", + ], + "assemblies": [ + ("IBM.Data.DB2", "1.0*"), + ], + }, + ] + debian_mono_file_table + + file_table = [e for e in file_table + if not (e.has_key("name") and e["name"] in IGNORE)] + + return file_table + +def mono_find_provides_and_requires(files, d): + provides = [] + requires = [] + + import bb, os, commands + + pathprefix = "export PATH=%s; export LANG=; export LC_ALL=; " % bb.data.getVar('PATH', d, 1) + for filename in files: + if not filename.endswith(".dll") and not filename.endswith(".exe"): + continue + if not os.path.isfile(filename) or os.path.islink(filename): + continue + + ## Provides + name, version = None, None + + ret, result = commands.getstatusoutput("%smonodis --assembly '%s'" % (pathprefix, filename)) + if ret: + bb.error("raw_provides_and_requires: monodis --assembly '%s' failed, dependency information will be inaccurate" % filename) + continue + for line in result.splitlines(): + if not ":" in line: continue + key, value = line.split(":", 1) + if key.strip() == "Name": + name = value.strip() + elif key.strip() == "Version": + version = value.strip() + if name is not None and version is not None: + if (name, version) not in provides: + provides.append( (name, version) ) + + ## Requires + name, version = None, None + ret, result = commands.getstatusoutput("%smonodis --assemblyref '%s'" % (pathprefix, filename)) + if ret: + bb.error("raw_provides_and_requires: monodis --assemblyref '%s' failed, dependency information will be inaccurate" % filename) + continue + for line in result.splitlines(): + if not "=" in line: continue + key, value = line.split("=", 1) + if ":" in key and key.split(":",1)[1].strip() == "Version": + version = value.strip() + elif key.strip() == "Name": + name = value.strip() + if name is not None and version is not None: + if (name, version) not in requires: + requires.append( (name, version) ) + name, version = None, None + + # Remove everything from requires that's already in provides as it's not actually required + # to be provided externally + requires = [e for e in requires if not e in provides] + return provides, requires + +python mono_do_clilibs() { + import bb, os, re, os.path + + exclude_clilibs = bb.data.getVar('EXCLUDE_FROM_CLILIBS', d, 0) + if exclude_clilibs: + bb.note("not generating clilibs") + return + + lib_re = re.compile("^lib.*\.so") + libdir_re = re.compile(".*/lib$") + + packages = bb.data.getVar('PACKAGES', d, 1) + + workdir = bb.data.getVar('WORKDIR', d, 1) + if not workdir: + bb.error("WORKDIR not defined") + return + + staging = bb.data.getVar('STAGING_DIR', d, 1) + if not staging: + bb.error("STAGING_DIR not defined") + return + + pkgdest = bb.data.getVar('PKGDEST', d, 1) + + clilibs_dir = os.path.join(staging, "clilibs") + bb.mkdirhier(clilibs_dir) + + provides, requires = {}, {} + private_libs = bb.data.getVar('PRIVATE_CLILIBS', d, 1) + for pkg in packages.split(): + bb.debug(2, "calculating clilib provides for %s" % pkg) + + files_to_check = [] + top = os.path.join(pkgdest, pkg) + for root, dirs, files in os.walk(top): + for file in files: + path = os.path.join(root, file) + if file.endswith(".exe") or file.endswith(".dll"): + files_to_check.append( path ) + provides[pkg], requires[pkg] = mono_find_provides_and_requires(files_to_check, d) + clilibs_file = os.path.join(clilibs_dir, pkg + ".list") + if os.path.exists(clilibs_file): + os.remove(clilibs_file) + if len(provides[pkg]) > 0: + fd = open(clilibs_file, 'w') + for s in provides[pkg]: + fd.write(" ".join(s) + '\n') + fd.close() + + clilib_provider = {} + list_re = re.compile('^(.*)\.list$') + for file in os.listdir(clilibs_dir): + m = list_re.match(file) + if m: + dep_pkg = m.group(1) + fd = open(os.path.join(clilibs_dir, file)) + lines = fd.readlines() + fd.close() + for l in lines: + clilib_provider[tuple(l.rstrip().split())] = dep_pkg + + for pkg in packages.split(): + bb.debug(2, "calculating clilib requirements for %s" % pkg) + + deps = [] + for n in requires[pkg]: + if n in clilib_provider.keys(): + dep_pkg = clilib_provider[n] + + if dep_pkg == pkg: + continue + + if not dep_pkg in deps: + deps.append(dep_pkg) + else: + bb.note("Couldn't find CLI library provider for %s" % n) + + deps_file = os.path.join(pkgdest, pkg + ".clilibdeps") + if os.path.exists(deps_file): + os.remove(deps_file) + if len(deps) > 0: + fd = open(deps_file, 'w') + for dep in deps: + fd.write(dep + '\n') + fd.close() +} + +python() { + # Insert mono_do_clilibs into PACKAGEFUNCS + # Needs to be called after populate_packages, but before read_shlibdeps + PACKAGEFUNCS = bb.data.getVar("PACKAGEFUNCS", d, 1) + if PACKAGEFUNCS: + PACKAGEFUNCS = PACKAGEFUNCS.split() + if "read_shlibdeps" in PACKAGEFUNCS: + i = PACKAGEFUNCS.index("read_shlibdeps") + PACKAGEFUNCS.insert(i, "mono_do_clilibs") + elif "populate_packages" in PACKAGEFUNCS: + i = PACKAGEFUNCS.index("populate_packages") + PACKAGEFUNCS.insert(i+1, "mono_do_clilibs") + bb.data.setVar("PACKAGEFUNCS", " ".join(PACKAGEFUNCS), d) +} diff --git a/classes/package.bbclass b/classes/package.bbclass index 516cae823d..b114049b8e 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -793,20 +793,14 @@ python read_shlibdeps () { packages = bb.data.getVar('PACKAGES', d, 1).split() for pkg in packages: rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") - shlibsfile = bb.data.expand("${PKGDEST}/" + pkg + ".shlibdeps", d) - if os.access(shlibsfile, os.R_OK): - fd = file(shlibsfile) - lines = fd.readlines() - fd.close() - for l in lines: - rdepends.append(l.rstrip()) - pcfile = bb.data.expand("${PKGDEST}/" + pkg + ".pcdeps", d) - if os.access(pcfile, os.R_OK): - fd = file(pcfile) - lines = fd.readlines() - fd.close() - for l in lines: - rdepends.append(l.rstrip()) + for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": + depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d) + if os.access(depsfile, os.R_OK): + fd = file(depsfile) + lines = fd.readlines() + fd.close() + for l in lines: + rdepends.append(l.rstrip()) bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d) } diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index e3efa9f699..67380a3160 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -17,12 +17,12 @@ SRCREV_pn-fbgrab-viewer-native ?= "1943" SRCREV_pn-fstests ?= "204" SRCREV_pn-gconf-dbus ?= "606" SRCREV_pn-gnuradio ?= "6377" -SRCREV_pn-hildon-1 ?= "13708" +SRCREV_pn-hildon-1 ?= "14173" SRCREV_pn-libgsmd ?= "2957" SRCREV_pn-libmokogsmd2 ?= "2950" SRCREV_pn-libmokojournal2 ?= "2780" SRCREV_pn-libmokopanelui2 ?= "2958" -SRCREV_pn-libmokoui2 ?= "3053" +SRCREV_pn-libmokoui2 ?= "3064" SRCREV_pn-libowl ?= "277" SRCREV_pn-libxosd ?= "627" SRCREV_pn-linux-hackndev-2.6 ?= "1308" @@ -47,9 +47,9 @@ SRCREV_pn-openmoko-calculator2 ?= "2789" SRCREV_pn-openmoko-common ?= "397" SRCREV_pn-openmoko-common2 ?= "2679" SRCREV_pn-openmoko-contacts ?= "2298" -SRCREV_pn-openmoko-contacts2 ?= "335" +SRCREV_pn-openmoko-contacts2 ?= "350" SRCREV_pn-openmoko-dates ?= "467" -SRCREV_pn-openmoko-dates2 ?= "563" +SRCREV_pn-openmoko-dates2 ?= "617" SRCREV_pn-openmoko-dialer ?= "2811" SRCREV_pn-openmoko-dialer2 ?= "2976" SRCREV_pn-openmoko-feedreader2 ?= "3060" @@ -57,11 +57,11 @@ SRCREV_pn-openmoko-finger-demo ?= "1671" SRCREV_pn-openmoko-firststart2 ?= "2873" SRCREV_pn-openmoko-footer ?= "2354" SRCREV_pn-openmoko-icon-theme-standard ?= "2232" -SRCREV_pn-openmoko-icon-theme-standard2 ?= "3055" -SRCREV_pn-openmoko-icon-theme-standard2-qvga ?= "2967" +SRCREV_pn-openmoko-icon-theme-standard2 ?= "3066" +SRCREV_pn-openmoko-icon-theme-standard2-qvga ?= "3066" SRCREV_pn-openmoko-keyboard ?= "1631" SRCREV_pn-openmoko-libs ?= "2367" -SRCREV_pn-openmoko-mediaplayer2 ?= "2952" +SRCREV_pn-openmoko-mediaplayer2 ?= "3057" SRCREV_pn-openmoko-messages ?= "2276" SRCREV_pn-openmoko-panel-battery ?= "2897" SRCREV_pn-openmoko-panel-bt ?= "2896" @@ -79,14 +79,14 @@ SRCREV_pn-openmoko-stylus-demo ?= "2324" SRCREV_pn-openmoko-stylus-demo-simple ?= "1818" SRCREV_pn-openmoko-taskmanager ?= "1663" SRCREV_pn-openmoko-tasks ?= "320" -SRCREV_pn-openmoko-tasks2 ?= "320" +SRCREV_pn-openmoko-tasks2 ?= "343" SRCREV_pn-openmoko-terminal2 ?= "2972" SRCREV_pn-openmoko-theme-standard ?= "2370" SRCREV_pn-openmoko-theme-standard-qvga ?= "2370" -SRCREV_pn-openmoko-theme-standard2 ?= "2964" +SRCREV_pn-openmoko-theme-standard2 ?= "3044" SRCREV_pn-openmoko-theme-standard2-qvga ?= "2964" SRCREV_pn-openmoko-today ?= "3056" -SRCREV_pn-openmoko-today2 ?= "2955" +SRCREV_pn-openmoko-today2 ?= "3056" SRCREV_pn-openmoko-today2-folders ?= "2680" SRCREV_pn-openocd ?= "206" SRCREV_pn-openocd-native ?= "206" diff --git a/conf/machine/htcblueangel.conf b/conf/machine/htcblueangel.conf index 6aa1885293..44454f3902 100644 --- a/conf/machine/htcblueangel.conf +++ b/conf/machine/htcblueangel.conf @@ -21,7 +21,6 @@ MACHINE_FEATURES = "kernel26 touchscreen apm alsa irda bluetooth wifi usbgadget # Software/packages selection # PREFERRED_PROVIDER_virtual/kernel = "linux-handhelds-2.6" -PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.19-hh8" PCMCIA_MANAGER = "pcmciautils" PREFERRED_PROVIDER_xserver = "xserver-kdrive" diff --git a/conf/machine/hx4700.conf b/conf/machine/hx4700.conf index 7cea4e08de..87e03a7bdd 100644 --- a/conf/machine/hx4700.conf +++ b/conf/machine/hx4700.conf @@ -30,7 +30,6 @@ PCMCIA_MANAGER = "pcmciautils" MODUTILS = "26" XSERVER = "xserver-kdrive-w100" -PREFERRED_VERSION_xserver-kdrive = "1.2.0" PREFERRED_VERSION_orinoco-modules = "0.15rc1" diff --git a/packages/atk/atk_1.19.3.bb b/packages/atk/atk_1.19.3.bb index beef4ce97a..52136682d7 100644 --- a/packages/atk/atk_1.19.3.bb +++ b/packages/atk/atk_1.19.3.bb @@ -1,7 +1,5 @@ require atk.inc -DEFAULT_PREFERENCE = "-1" - SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/atk/1.19/atk-${PV}.tar.bz2" do_stage () { diff --git a/packages/fontconfig/fontconfig_2.4.1.bb b/packages/fontconfig/fontconfig_2.4.1.bb index 098939324a..cdfc28fb38 100644 --- a/packages/fontconfig/fontconfig_2.4.1.bb +++ b/packages/fontconfig/fontconfig_2.4.1.bb @@ -3,9 +3,9 @@ LICENSE = "BSD" DESCRIPTION = "A library for configuring and customizing font access." DEPENDS = "expat freetype freetype-native zlib" -SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz" - -PR = "r0" +SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \ + https://stage.maemo.org/svn/maemo/projects/haf/trunk/fontconfig/device_symbols.h" +PR = "r1" PACKAGES =+ "fontconfig-utils-dbg fontconfig-utils " FILES_fontconfig-utils-dbg = "${bindir}/*.dbg" @@ -39,6 +39,7 @@ python do_unpack () { } do_stage () { + cp ${WORKDIR}/device_symbols.h ${S}/fontconfig/ oe_libinstall -so -a -C src libfontconfig ${STAGING_LIBDIR} install -d ${STAGING_INCDIR}/fontconfig for i in ${S}/fontconfig/*.h; do install -m 0644 $i ${STAGING_INCDIR}/fontconfig/; done diff --git a/packages/gtk+/gtk-2.10.inc b/packages/gtk+/gtk-2.10.inc index c3bbb0232a..3fa5d22a71 100644 --- a/packages/gtk+/gtk-2.10.inc +++ b/packages/gtk+/gtk-2.10.inc @@ -52,7 +52,8 @@ do_stage () { mkdir -p ${STAGING_LIBDIR}/gtk-2.0/include install -m 0644 gdk/gdkconfig.h ${STAGING_LIBDIR}/gtk-2.0/include/gdkconfig.h - + # Copy over all headers, since the maemo stuff needs access to the private api. *sigh* + cp gtk/*.h ${STAGING_INCDIR}/gtk-2.0/gtk/ install -m 0644 m4macros/gtk-2.0.m4 ${STAGING_DATADIR}/aclocal/ } diff --git a/packages/gtk-webcore/midori/midori.desktop b/packages/gtk-webcore/midori/midori.desktop deleted file mode 100644 index 683b1a343e..0000000000 --- a/packages/gtk-webcore/midori/midori.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Midori -Comment=Webkit based browser -Exec=midori -Terminal=false -Type=Application -Categories=Application diff --git a/packages/gtk-webcore/midori_0.0.6.bb b/packages/gtk-webcore/midori_0.0.6.bb deleted file mode 100644 index ed0213964f..0000000000 --- a/packages/gtk-webcore/midori_0.0.6.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "Midori is a lightweight web browser." -LICENSE = "GPLv2" - -DEPENDS = "webkit-gtk libsexy" - -inherit autotools pkgconfig - -SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \ - file://midori.desktop" - -do_install_append() { - if [ -f ${WORKDIR}/midori.desktop ]; then - install -d ${D}${datadir}/applications - install -m 0644 ${WORKDIR}/midori.desktop ${D}${datadir}/applications - fi - -} - diff --git a/packages/gtk-webcore/midori_0.0.8.bb b/packages/gtk-webcore/midori_0.0.8.bb new file mode 100644 index 0000000000..23d0179375 --- /dev/null +++ b/packages/gtk-webcore/midori_0.0.8.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Midori is a lightweight web browser." +LICENSE = "GPLv2" + +DEPENDS = "webkit-gtk libsexy" + +inherit autotools pkgconfig + +SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \ + " + + diff --git a/packages/libgcrypt/libgcrypt_1.2.3.bb b/packages/libgcrypt/libgcrypt_1.2.3.bb index 3cca30a6bb..74205da673 100644 --- a/packages/libgcrypt/libgcrypt_1.2.3.bb +++ b/packages/libgcrypt/libgcrypt_1.2.3.bb @@ -3,6 +3,7 @@ SECTION = "libs" PRIORITY = "optional" LICENSE = "GPL LGPL FDL" DEPENDS = "libgpg-error" +PR = "r1" # move libgcrypt-config into -dev package FILES_${PN} = "${libdir}/lib*.so.*" @@ -17,14 +18,5 @@ EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities" ARM_INSTRUCTION_SET = "arm" do_stage() { - oe_libinstall -so -C src libgcrypt ${STAGING_LIBDIR} - oe_libinstall -so -C src libgcrypt-pthread ${STAGING_LIBDIR} - install -m 0755 src/libgcrypt-config ${STAGING_BINDIR_CROSS}/ - - install -d ${STAGING_INCDIR}/ - for X in gcrypt.h gcrypt-module.h - do - install -m 0644 src/${X} ${STAGING_INCDIR}/${X} - done - + autotools_stage_all } diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc index 7579481005..41b0c13179 100644 --- a/packages/linux/linux.inc +++ b/packages/linux/linux.inc @@ -40,7 +40,7 @@ do_configure_prepend() { # # oabi / eabi support # - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then + if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then echo "CONFIG_AEABI=y" >> ${S}/.config echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config else diff --git a/packages/maemo3/hildon-1_svn.bb b/packages/maemo3/hildon-1_svn.bb index c5c01792ca..5105472989 100644 --- a/packages/maemo3/hildon-1_svn.bb +++ b/packages/maemo3/hildon-1_svn.bb @@ -3,7 +3,7 @@ LICENSE = "LGPL" DEPENDS = "gconf-dbus esound gtk+" -PV = "1.0.12+svnr${SRCREV}" +PV = "1.0.17+svnr${SRCREV}" SRC_URI = "svn://stage.maemo.org/svn/maemo/projects/haf/trunk;module=hildon-1;proto=https \ file://buttonbox.patch;patch=1 " diff --git a/packages/gtk-webcore/midori/.mtn2git_empty b/packages/maemo3/libhildonfm/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gtk-webcore/midori/.mtn2git_empty +++ b/packages/maemo3/libhildonfm/.mtn2git_empty diff --git a/packages/maemo3/libhildonfm/hildonfm-ifdef-maemogtk.diff b/packages/maemo3/libhildonfm/hildonfm-ifdef-maemogtk.diff new file mode 100644 index 0000000000..8d91e1dd65 --- /dev/null +++ b/packages/maemo3/libhildonfm/hildonfm-ifdef-maemogtk.diff @@ -0,0 +1,132 @@ +--- /tmp/hildon-file-selection.c 2007-10-02 10:08:17.000000000 +0200 ++++ 1_1.9.41/hildon-fm/hildon-file-selection.c 2007-10-02 11:26:58.292045000 +0200 +@@ -2036,6 +2036,7 @@ + g_object_set(cell, "text", buffer, "sensitive", sensitive, NULL); + } + ++#ifdef USE_MAEMO_GTK + static void hildon_file_selection_navigation_pane_context(GtkWidget * + widget, + gpointer data) +@@ -2052,6 +2053,7 @@ + ULOG_DEBUG(__FUNCTION__); + g_signal_emit(data, signal_content_pane_context_menu, 0); + } ++#endif /* USE_MAEMO_GTK */ + + static gboolean hildon_file_selection_on_content_pane_key(GtkWidget * + widget, +@@ -2200,6 +2202,7 @@ + } + } + ++#ifdef USE_MAEMO_GTK + static gboolean + tap_and_hold_query (gpointer self, guint signal_id) + { +@@ -2225,6 +2228,8 @@ + return tap_and_hold_query (self, signal_navigation_pane_context_menu); + } + ++#endif /* USE_MAEMO_GTK */ ++ + static void hildon_file_selection_create_thumbnail_view(HildonFileSelection + * self) + { +@@ -2277,7 +2282,7 @@ + g_signal_connect_object(tree, "key-press-event", + G_CALLBACK(hildon_file_selection_on_content_pane_key), + self, 0); +- ++#ifdef USE_MAEMO_GTK + gtk_widget_tap_and_hold_setup(GTK_WIDGET(tree), NULL, NULL, + GTK_TAP_AND_HOLD_NONE | GTK_TAP_AND_HOLD_NO_INTERNALS); + g_signal_connect_object (tree, "tap-and-hold-query", +@@ -2286,6 +2291,7 @@ + g_signal_connect_object(tree, "tap-and-hold", + G_CALLBACK + (hildon_file_selection_content_pane_context), self, 0); ++#endif /* USE_MAEMO_GTK */ + + g_signal_connect_object(tree, "notify::has-focus", + G_CALLBACK(content_pane_focus), self, 0); +@@ -2397,7 +2403,7 @@ + (selection, "changed", + G_CALLBACK (hildon_file_selection_content_pane_selection_changed), + self, 0); +- ++#ifdef USE_MAEMO_GTK + gtk_widget_tap_and_hold_setup(GTK_WIDGET(tree), NULL, NULL, + GTK_TAP_AND_HOLD_NONE | GTK_TAP_AND_HOLD_NO_INTERNALS); + g_signal_connect_object (tree, "tap-and-hold-query", +@@ -2406,7 +2412,7 @@ + g_signal_connect_object(tree, "tap-and-hold", + G_CALLBACK + (hildon_file_selection_content_pane_context), self, 0); +- ++#endif /* USE_MAEMO_GTK */ + g_signal_connect_object(tree, "key-press-event", + G_CALLBACK(hildon_file_selection_on_content_pane_key), + self, 0); +@@ -2492,7 +2498,7 @@ + g_signal_connect_object(selection, "changed", + G_CALLBACK(hildon_file_selection_selection_changed), + self, 0); +- ++#ifdef USE_MAEMO_GTK + gtk_widget_tap_and_hold_setup(GTK_WIDGET(self->priv->dir_tree), NULL, + NULL, GTK_TAP_AND_HOLD_NONE | GTK_TAP_AND_HOLD_NO_INTERNALS); + g_signal_connect_object (self->priv->dir_tree, "tap-and-hold-query", +@@ -2502,7 +2508,7 @@ + G_CALLBACK + (hildon_file_selection_navigation_pane_context), + self, 0); +- ++#endif /* USE_MAEMO_GTK */ + g_signal_connect_object(self->priv->dir_tree, "key-press-event", + G_CALLBACK + (hildon_file_selection_on_navigation_pane_key), self, 0); +--- /tmp/hildon-file-chooser-dialog.c 2007-10-02 10:14:05.000000000 +0200 ++++ 1_1.9.41/hildon-fm/hildon-file-chooser-dialog.c 2007-10-02 11:33:43.132045000 +0200 +@@ -191,7 +191,7 @@ + + return (first_digit << 4) | second_digit; + } +- ++#ifdef USE_MAEMO_GTK + static void chooser_entry_invalid_input_cb (GtkEntry *entry, + GtkInvalidInputType inv_type, + gpointer user_data) +@@ -202,7 +202,7 @@ + HCS("ckdg_ib_maximum_characters_reached")); + } + } +- ++#endif /* USE_MAEMO_GTK */ + static gchar * + g_unescape_uri_string (const char *escaped, + int len, +@@ -1837,8 +1837,9 @@ + G_PARAM_READWRITE); + g_object_class_install_property(gobject_class, PROP_SELECTION_MODE, pspec); + +- ++#ifdef USE_MAEMO_GTK + hildon_gtk_file_chooser_install_properties(gobject_class); ++#endif + } + + static void hildon_file_chooser_dialog_sort_changed(GtkWidget * item, +@@ -1975,10 +1976,10 @@ + g_signal_connect( priv->entry_name, "changed", + G_CALLBACK( hildon_file_chooser_entry_changed ), + self ); +- ++#ifdef USE_MAEMO_GTK + g_signal_connect(priv->entry_name, "invalid-input", + G_CALLBACK(chooser_entry_invalid_input_cb), self); +- ++#endif /* USE_MAEMO_GTK */ + priv->hbox_location = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT); + priv->hbox_items = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT); + priv->image_location = gtk_image_new(); diff --git a/packages/maemo3/libhildonfm_1.9.41.bb b/packages/maemo3/libhildonfm_1.9.41.bb new file mode 100644 index 0000000000..de1bb3d9e3 --- /dev/null +++ b/packages/maemo3/libhildonfm_1.9.41.bb @@ -0,0 +1,29 @@ +LICENSE = "LGPL" +DESCRIPTION = "Nokia hildon filemanager library" + +DEPENDS = "hildon-thumbnail mce-dev libhildonmime osso-gwconnect hildon-libs osso-thumbnail" + +PR = "r0" + +SRC_URI = "http://repository.maemo.org/pool/sardine/main/source/libh/libhildonfm/libhildonfm_${PV}.tar.gz \ + file://hildonfm-ifdef-maemogtk.diff;patch=1 \ + " + +inherit autotools pkgconfig lib_package + +S = "${WORKDIR}/1_${PV}" + +do_configure_prepend() { + # remove Werror from OSSO_CFLAGS + sed -i s:-Werror::g configure.ac + touch gtk-doc.make +} + + +PARALLEL_MAKE = "" + +do_stage() { + autotools_stage_all +} + + diff --git a/packages/maemo3/libhildonhelp_1.9.1.bb b/packages/maemo3/libhildonhelp_1.9.1.bb index b04efe2660..43d4c15d2e 100644 --- a/packages/maemo3/libhildonhelp_1.9.1.bb +++ b/packages/maemo3/libhildonhelp_1.9.1.bb @@ -1,7 +1,7 @@ LICENSE = "LGPL" DESCRIPTION = "Nokia hildon help library" -DEPENDS = "libart libpng jpeg libxml2 gtkhtml-3.8 libosso" +DEPENDS = "libart-lgpl libpng jpeg libxml2 gtkhtml-3.8 libosso" PR = "r0" diff --git a/packages/mono/README b/packages/mono/README index 39479308b2..c3043faee3 100644 --- a/packages/mono/README +++ b/packages/mono/README @@ -1,10 +1,39 @@ -Mono in OE is still very much a work in progress. -1.2.4 - - is reported to work on MIPS. - - has floating point problems on ARM +Notes on Mono support in OE. + +=============================== +Cross Compiling Mono + +Cross compiling mono requires a two stage build because the mono mcs directory +cannot be built while cross compiling (http://www.mono-project.com/Mono:ARM). +The recommended way to cross compile mono is to + + 1. do a complete build on the host system, and install. + 2. cross compile mono which will only build the native target code and + overlay the target binaries on the host install. + +The MCS build (step 1) is implemented by the mono-mcs-intermediate* recipe. +This recipe is very similiar to the native build, except it uses standard +install prefixes and the install directory is tar'd up, and placed in staging +for use by the cross build. + +During the mono cross build, the first step during the install is to untar +the install results of the mcs-intermediate build. The cross build install +then proceeds to overlay the native binaries in the install directory. + +================================ +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. + -1.2.5 - - tested on ARM EABI. Floating point issues have been worked around. -There is still a lot of packaging work that needs done to package the mono dll's for installation. diff --git a/packages/mono/collect-paths.py b/packages/mono/collect-paths.py new file mode 100644 index 0000000000..a49b76e5aa --- /dev/null +++ b/packages/mono/collect-paths.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python + +## This utility takes the debian directory from an unpacked debian mono source tree +## (e.g. apt-get source mono), parses the *.install files and generates python source +## for a list of dictionaries that describe the individual packages and their contents +## The output will look like +##debian_mono_file_table = [ +## { 'name': 'libmono-peapi1.0-cil', +## 'patterns': [ +## '/usr/lib/mono/gac/PEAPI/1.0.*/', +## '/usr/lib/mono/1.0/PEAPI.dll' +## ], +## 'assemblies': [ +## ('PEAPI', '1.0.*') +## ] +## }, +## { 'name': 'mono-mjs', +## 'patterns': [ +## '/usr/bin/mjs', +## '/usr/lib/mono/1.0/mjs.exe*' +## ] +## }, +##.... + + +import os, sys, re + +def collect_paths(dir): + paths = {} + + os.chdir(dir) + for filename in os.listdir("."): + if filename.endswith(".install"): + fp = file(filename, "r") + lines = fp.readlines() + fp.close() + + contents = [] + for line in lines: + lineparts = line.strip().split() + if lineparts[0].startswith("debian/tmp"): + pattern = lineparts[0][ len("debian/tmp"): ] + if len(lineparts) == 2: + if not pattern.startswith(lineparts[1]): + print >>sys.stderr, "Warning: Apparently I don't fully understand the format in file %s" % filename + elif len(lineparts) > 2: + print >>sys.stderr, "Warning: Apparently I don't fully understand the format in file %s" % filename + + contents.append( pattern ) + else: + print >>sys.stderr, "Note: Ignoring %s in %s" % (lineparts, filename) + + paths[ filename[ :-len(".install") ] ] = contents + + return paths + +def collect_packages(paths): + gac_re = re.compile(r'/usr/lib/mono/gac/(?P<assembly>[^/]+)/(?P<version>[^/]+)/?') + + # These packages should be populated first (e.g. because their files will otherwise end up + # in other packages) + PACKAGES_FIRST = ("mono-jit", "mono-gac", "mono-mjs", "mono-gmcs", "mono-utils", "mono-doc") |
