Updates and and fixes
Richard,
Here is the lastest tested set of changes, I addessed issues found in the last MUT build.
Sau!
The following changes since commit 35b5fb2dd2131d4c7dc6635c14c6e08ea6926457:
eglibc-package: remove /var (2012-05-01 12:36:18 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib sgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage
Christopher Larson (14):
mesa: add missing flex-native/bison-native deps
distcc: use PACKAGECONFIG for x11 distro feature
libpcap: use PACKAGECONFIG for bluetooth distro feature
libsndfile1: use PACKAGECONFIG for alsa distro feature bitbake.conf: shift build config summary control to here base.bbclass: use isinstance for base_eventhandler csl-versions.inc: capture version in signatures
external-csl-toolchain: split out a libstdc++-staticdev package
external-csl-toolchain: silence .a/.debug QA warnings
external-csl-toolchain: cleanup, simplify, use base_libdir
external-csl-toolchain: update SUPPORTED to match toolchain
tclibc-eglibc: drop hardcoded locale-base-en-us/en-gb
libc-package: rework ''precompiled' locale handling
tcmode-external-csl: use the existing precompiled locale files
Kang Kai (2):
autospectacle.pl: pull it from meego as a base
create-recipe: base on autospectacle.pl to create recipe file
Nitin A Kamble (5):
makedepend: upgrade from 1.0.3 to 1.0.4
quilt: upgrade from 0.51 to 0.60
gdb: upgrade from 7.4 to 7.4.1
python: upgrade from 2.7.2 to 2.7.3
distro-tracking: update as per recent recipe upgrades
Saul Wold (15):
libgcc: Add MLPREFIX to sanity check skip
gcc-package-target: add libexec for plugin
resolvconf: Update to 1.65
libtasn1: Update to 2.12
xmodmap: Update to 1.0.7
xhost: Update to 1.0.5
cairo: Update to 1.12.2
util-linux: Update to 2.21.1
mc: Update to 4.8.3
xkbcomp: Update to 1.2.4
bigreqsproto: Update to 1.1.2
xauth: Update to 1.0.7
gnutls: Update to 2.12.18
builder: Add Please Wait Dialog Box
pulseaudio: disable tcpwrap by default
meta/classes/base.bbclass | 60 +-
meta/classes/libc-package.bbclass | 96 +-
meta/conf/bitbake.conf | 7 +
meta/conf/distro/include/csl-versions.inc | 4 +
meta/conf/distro/include/default-versions.inc | 4 +-
.../conf/distro/include/distro_tracking_fields.inc | 20 +-
meta/conf/distro/include/tclibc-eglibc.inc | 12 +-
meta/conf/distro/include/tcmode-external-csl.inc | 4 +
meta/recipes-connectivity/libpcap/libpcap.inc | 5 +-
.../{resolvconf_1.64.bb => resolvconf_1.65.bb} | 4 +-
meta/recipes-core/meta/external-csl-toolchain.bb | 70 +-
.../meta/external-csl-toolchain/SUPPORTED | 257 +++-
.../{util-linux-2.21 => util-linux}/MCONFIG | 0
.../{util-linux-2.21 => util-linux}/defines.h | 0
.../fix_NL_TIME_FIRST_WEEKDAY.patch | 0
.../{util-linux-2.21 => util-linux}/make_include | 0
.../remove-lscpu.patch | 0
.../remove_sigsetmark.patch | 0
.../{util-linux-2.21 => util-linux}/swapargs.h | 0
.../uclibc-__progname-conflict.patch | 0
.../uclibc-compile.patch | 0
.../util-linux-ng-2.16-mount_lock_path.patch | 0
.../util-linux-ng-replace-siginterrupt.patch | 0
.../{util-linux_2.21.bb => util-linux_2.21.1.bb} | 6 +-
meta/recipes-devtools/distcc/distcc_2.18.3.bb | 14 +-
meta/recipes-devtools/gcc/gcc-4.7.inc | 2 +-
meta/recipes-devtools/gcc/gcc-package-target.inc | 2 +-
meta/recipes-devtools/gcc/libgcc_4.7.bb | 3 +-
meta/recipes-devtools/gdb/gdb-common.inc | 6 +-
...canadian_7.4.bb => gdb-cross-canadian_7.4.1.bb} | 2 +-
.../gdb/{gdb-cross_7.4.bb => gdb-cross_7.4.1.bb} | 0
.../gdb/{gdb_7.4.bb => gdb_7.4.1.bb} | 0
...thon-native_2.7.2.bb => python-native_2.7.3.bb} | 6 +-
meta/recipes-devtools/python/python.inc | 8 +-
.../python/python/04-default-is-optimized.patch | 30 +-
.../python/fix_for_using_different_libdir.patch | 30 +-
.../python/sys_platform_is_now_always_linux2.patch | 39 -
.../python/{python_2.7.2.bb => python_2.7.3.bb} | 3 +-
.../quilt/{quilt-0.51.inc => quilt-0.60.inc} | 4 +-
.../{quilt-native_0.51.bb => quilt-native_0.60.bb} | 2 +-
.../quilt/{quilt_0.51.bb => quilt_0.60.bb} | 2 +-
.../mc/{mc_4.8.1.bb => mc_4.8.3.bb} | 6 +-
meta/recipes-graphics/builder/builder_0.1.bb | 7 +-
.../builder/files/builder_hob_start.sh | 2 +
.../builder/files/please_wait_dialog.py | 28 +
.../cairo/{cairo_1.10.2.bb => cairo_1.12.2.bb} | 20 +-
meta/recipes-graphics/mesa/mesa-common.inc | 2 +-
.../xorg-app/{xauth_1.0.6.bb => xauth_1.0.7.bb} | 4 +-
.../xorg-app/{xhost_1.0.4.bb => xhost_1.0.5.bb} | 4 +-
.../{xkbcomp_1.2.3.bb => xkbcomp_1.2.4.bb} | 5 +-
.../{xmodmap_1.0.5.bb => xmodmap_1.0.7.bb} | 4 +-
...bigreqsproto_1.1.1.bb => bigreqsproto_1.1.2.bb} | 4 +-
.../{makedepend_1.0.3.bb => makedepend_1.0.4.bb} | 5 +-
.../libsndfile/libsndfile1_1.0.25.bb | 5 +-
meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 1 +
.../pulseaudio/pulseaudio_1.1.bb | 2 +-
.../configure-fix.patch | 0
.../correct_rpl_gettimeofday_signature.patch | 0
.../fix-gettext-version.patch | 0
.../gnutls-openssl.patch | 0
.../gnutls-texinfo-euro.patch | 0
meta/recipes-support/gnutls/gnutls.inc | 2 +-
.../{gnutls_2.12.17.bb => gnutls_2.12.18.bb} | 4 +-
.../gnutls/{libtasn1_2.11.bb => libtasn1_2.12.bb} | 6 +-
scripts/create-recipe | 1926 ++++++++++++++++++++
65 files changed, 2475 insertions(+), 264 deletions(-)
rename meta/recipes-connectivity/resolvconf/{resolvconf_1.64.bb => resolvconf_1.65.bb} (88%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/MCONFIG (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/defines.h (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/fix_NL_TIME_FIRST_WEEKDAY.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/make_include (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/remove-lscpu.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/remove_sigsetmark.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/swapargs.h (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/uclibc-__progname-conflict.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/uclibc-compile.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/util-linux-ng-2.16-mount_lock_path.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/util-linux-ng-replace-siginterrupt.patch (100%)
rename meta/recipes-core/util-linux/{util-linux_2.21.bb => util-linux_2.21.1.bb} (90%)
rename meta/recipes-devtools/gdb/{gdb-cross-canadian_7.4.bb => gdb-cross-canadian_7.4.1.bb} (88%)
rename meta/recipes-devtools/gdb/{gdb-cross_7.4.bb => gdb-cross_7.4.1.bb} (100%)
rename meta/recipes-devtools/gdb/{gdb_7.4.bb => gdb_7.4.1.bb} (100%)
rename meta/recipes-devtools/python/{python-native_2.7.2.bb => python-native_2.7.3.bb} (92%)
delete mode 100644 meta/recipes-devtools/python/python/sys_platform_is_now_always_linux2.patch
rename meta/recipes-devtools/python/{python_2.7.2.bb => python_2.7.3.bb} (98%)
rename meta/recipes-devtools/quilt/{quilt-0.51.inc => quilt-0.60.inc} (84%)
rename meta/recipes-devtools/quilt/{quilt-native_0.51.bb => quilt-native_0.60.bb} (83%)
rename meta/recipes-devtools/quilt/{quilt_0.51.bb => quilt_0.60.bb} (98%)
rename meta/recipes-extended/mc/{mc_4.8.1.bb => mc_4.8.3.bb} (81%)
create mode 100644 meta/recipes-graphics/builder/files/please_wait_dialog.py
rename meta/recipes-graphics/cairo/{cairo_1.10.2.bb => cairo_1.12.2.bb} (72%)
rename meta/recipes-graphics/xorg-app/{xauth_1.0.6.bb => xauth_1.0.7.bb} (69%)
rename meta/recipes-graphics/xorg-app/{xhost_1.0.4.bb => xhost_1.0.5.bb} (81%)
rename meta/recipes-graphics/xorg-app/{xkbcomp_1.2.3.bb => xkbcomp_1.2.4.bb} (78%)
rename meta/recipes-graphics/xorg-app/{xmodmap_1.0.5.bb => xmodmap_1.0.7.bb} (78%)
rename meta/recipes-graphics/xorg-proto/{bigreqsproto_1.1.1.bb => bigreqsproto_1.1.2.bb} (73%)
rename meta/recipes-graphics/xorg-util/{makedepend_1.0.3.bb => makedepend_1.0.4.bb} (82%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/configure-fix.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/correct_rpl_gettimeofday_signature.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/fix-gettext-version.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/gnutls-openssl.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/gnutls-texinfo-euro.patch (100%)
rename meta/recipes-support/gnutls/{gnutls_2.12.17.bb => gnutls_2.12.18.bb} (77%)
rename meta/recipes-support/gnutls/{libtasn1_2.11.bb => libtasn1_2.12.bb} (71%)
create mode 100755 scripts/create-recipeSignature · 1 line
1.7.7.6
[CONSOLIDATED PULL 01/36] libgcc: Add MLPREFIX to sanity check skip
Fixes:
ERROR: QA Issue: non -staticdev package contains static .a library: lib32-libgcov-dev path '/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/packages-split/lib32-libgcov-dev/usr/lib/i586-pokymllib32-linux/4.7.1/libgcov.a'
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/temp/log.do_package.9691
NOTE: package lib32-libgcc-4.7.0+svnr186651-r0: task do_package: Failed
ERROR: Task 1077 (virtual:multilib:lib32:/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/meta/recipes-devtools/gcc/libgcc_4.7.bb, do_package) failed with exit code '1'
--- meta/recipes-devtools/gcc/libgcc_4.7.bb | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
meta/recipes-devtools/gcc/libgcc_4.7.bb +1 -2
@@ -67,5 +67,4 @@ do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package" BBCLASSEXTEND = "nativesdk" INSANE_SKIP_${PN}-dev = "staticdev" -INSANE_SKIP_libgcov${PKGSUFFIX}-dev = "staticdev" - +INSANE_SKIP_${MLPREFIX}libgcov${PKGSUFFIX}-dev = "staticdev"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 02/36] gcc-package-target: add libexec for plugin
In reply to Saul WoldFixes:
ERROR: For recipe gcc, the following files/directories were installed but not shipped in any package:
ERROR: /usr/libexec/gcc/i586-poky-linux/4.7.1/plugin/gengtype
--- meta/recipes-devtools/gcc/gcc-4.7.inc | 2 +- meta/recipes-devtools/gcc/gcc-package-target.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-devtools/gcc/gcc-4.7.inc +1 -1
@@ -1,6 +1,6 @@ require gcc-common.inc -PR = "r0" +PR = "r1" # Third digit in PV should be incremented after a minor release # happens from this branch on gcc e.g. currently its 4.7.0
meta/recipes-devtools/gcc/gcc-package-target.inc +1 -1
@@ -36,7 +36,7 @@ FILES_${PN}-dev = "\ " FILES_${PN}-plugin-dev = "\ ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/include/ \ - ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/gengtype \ + ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/plugin/gengtype \ ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/gtype.state \ " FILES_${PN}-symlinks = "\
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 04/36] create-recipe: base on autospectacle.pl to create recipe file
In reply to Saul WoldFrom: Kang Kai <[email protected]>
[Yocto 1656]
create-recipe is based on original autospectacle.pl from project Meego. Add feature to create a recipe .bb file. It requires a parameter to be told where to download source package, then download and parse. Create recipe file according to parse results.
---
scripts/{autospectacle.pl => create-recipe} | 117 +++++++++++++++++++++++---
1 files changed, 103 insertions(+), 14 deletions(-)
rename scripts/{autospectacle.pl => create-recipe} (94%)scripts/create-recipe renamed from scripts/autospectacle.pl +103 -14
@@ -1,5 +1,7 @@ #!/usr/bin/perl -w +# Copyright (C) 2012 Wind River Systems, Inc. +# # Copyright (C) 2010 Intel Corporation # #
@@ -29,6 +31,7 @@ use File::Temp qw(tempdir); use File::Path qw(mkpath rmtree); use File::Spec (); +use File::Basename qw(basename dirname); my $name = "";
@@ -42,6 +45,10 @@ my @sources; my @mainfiles; my @patches; +my $md5sum = ""; +my $sh256sum = ""; +my @inherits; + my $printed_subpackages = 0; my $fulldir = "";
@@ -70,6 +77,7 @@ my %failed_headers; my %licenses; my @license; +my %lic_files; sub setup_licenses {
@@ -115,8 +123,14 @@ sub guess_license_from_file { if (defined($licenses{$sha1})) { my $lic = $licenses{$sha1}; push(@license, $lic); + + my $md5output = `md5sum $copying`; + $md5output =~ /^([a-zA-Z0-9]*) /; + my $md5 = $1; + chomp($md5); + $lic_files{$copying} = $md5 } - + # # We also must make sure that the COPYING/etc files # end up in the main package as %doc..
@@ -124,7 +138,7 @@ sub guess_license_from_file { $copying =~ s/$fulldir//g; $copying =~ s/^\///g; $copying = "\"\%doc " . $copying ."\""; - + push(@mainfiles, $copying); }
@@ -1522,7 +1536,7 @@ sub guess_name_from_url { } my $tarfile = $spliturl[0]; - if ($tarfile =~ /(.*?)\-([0-9\.\-\~]+)\.tar/) { + if ($tarfile =~ /(.*?)\-([0-9\.\-\~]+)[-\.].*?\.tar/) { $name = $1; $version = $2; $version =~ s/\-/\_/g;
@@ -1650,7 +1664,7 @@ sub write_yaml write_makefile(); write_changelog(); - system("rm $name.spec"); + system("rm $name.spec 2>/dev/null"); system("specify &> /dev/null"); if ($oscmode > 0) { system("osc addremove");
@@ -1659,6 +1673,65 @@ sub write_yaml } +sub write_bbfile +{ + open(BBFILE, ">${name}_$version.bb"); + print BBFILE "SUMMARY = \"$summary\"\n"; + print BBFILE "DESCRIPTION = \"$description\"\n"; + + print BBFILE "LICENSE = \"@license\"\n"; + print BBFILE "LIC_FILES_CHKSUM = \""; + foreach (keys %lic_files) { + print BBFILE "file://" . basename($_) . ";md5=$lic_files{$_} \\\n"; + } + print BBFILE "\"\n\n"; + + if (@license <= 0) { + print "Can NOT get license from package itself.\n"; + print "Please update the license and license file manually.\n"; + } + + if (@buildreqs > 0) { + my %saw; + my @out = grep(!$saw{$_}++,@buildreqs); + print BBFILE "DEPENDS = \"@out\"\n\n"; + }; + + print BBFILE 'PR = "r0"' . "\n\n"; + print BBFILE "SRC_URI = \""; + foreach (@sources) { + print BBFILE "$_ \\\n"; + } + print BBFILE "\"\n\n"; + print BBFILE "SRC_URI[md5sum] = \"$md5sum\"\n"; + print BBFILE "SRC_URI[sha256sum] = \"$sha256sum\"\n"; + + if (@inherits) { + print BBFILE "inherit "; + foreach (@inherits) { + print BBFILE "$_ "; + } + } + + close(BBFILE); + + my $curdir = `pwd`; + chomp($curdir); + print "Create bb file: $curdir/${name}_$version.bb\n"; +} + +sub calculate_sums +{ + @_ = basename $dir; + my $md5output = `md5sum @_`; + $md5output =~ /^([a-zA-Z0-9]*) /; + $md5sum = $1; + chomp($md5sum); + my $sha256output = `sha256sum @_`; + $sha256output =~ /^([a-zA-Z0-9]*) /; + $sha256sum = $1; + chomp($sha256sum); +} ############################################################################ #
@@ -1696,33 +1769,40 @@ $dir = $ARGV[0]; guess_name_from_url($dir); push(@sources, $dir); - #system("cd $tmpdir; curl -s -O $dir"); $orgdir = `pwd`; chomp($orgdir); +my $outputdir = $name; +if (! $name) { + $outputdir = basename $dir; +} +mkpath($outputdir); +chdir($outputdir); print "Downloading package: $dir\n"; -system("wget --quiet $dir"); +system("wget --quiet $dir") == 0 or die "Download $dir failed."; + +calculate_sums($outputdir); + print "Unpacking to : $tmpdir\n"; -my @tgzfiles = <$orgdir/*.tgz>; +my @tgzfiles = <$orgdir/$outputdir/*.tgz>; foreach (@tgzfiles) { - my $tgz = $_; + my $tgz = basename $_; my $tar = $tgz; $tar =~ s/tgz/tar\.gz/g; $dir =~ s/tgz/tar\.gz/g; - system("mv $tgz $tar"); + system("mv $orgdir/$outputdir/$tgz $orgdir/$outputdir/$tar"); guess_name_from_url($dir); } - # # I really really hate the fact that meego deleted the -a option from tar. # this is a step backwards in time that is just silly. # -system("cd $tmpdir; tar -jxf $orgdir/*\.tar\.bz2"); -system("cd $tmpdir; tar -zxf $orgdir/*\.tar\.gz"); +system("cd $tmpdir; tar -jxf $orgdir/$outputdir/*\.tar\.bz2 &>/dev/null"); +system("cd $tmpdir; tar -zxf $orgdir/$outputdir/*\.tar\.gz &>/dev/null"); print "Parsing content ....\n"; my @dirs = <$tmpdir/*>; foreach (@dirs) {
@@ -1734,11 +1814,13 @@ $fulldir = $dir; if ( -e "$dir/autogen.sh" ) { $configure = "autogen"; $uses_configure = 1; + push(@inherits, "autotools"); } if ( -e "$dir/BUILD-CMAKE" ) { $configure = "cmake"; push(@buildreqs, "cmake"); $uses_configure = 1; + push(@inherits, "cmake"); } if ( -e "$dir/configure" ) {
@@ -1747,7 +1829,7 @@ if ( -e "$dir/configure" ) { my @files = <$dir/configure.*>; -my $findoutput = `find $dir -name "configure.ac"`; +my $findoutput = `find $dir -name "configure.ac" 2>/dev/null`; my @findlist = split(/\n/, $findoutput); foreach (@findlist) { push(@files, $_);
@@ -1756,7 +1838,7 @@ foreach (@files) { process_configure_ac("$_"); } -$findoutput = `find $dir -name "*.pro"`; +$findoutput = `find $dir -name "*.pro" 2>/dev/null`; @findlist = split(/\n/, $findoutput); foreach (@findlist) { process_qmake_pro("$_");
@@ -1765,6 +1847,7 @@ foreach (@findlist) { if (-e "$dir/$name.pro") { $builder = "qmake"; push_pkgconfig_buildreq("Qt"); + push(@inherits, "qmake2"); }
@@ -1804,6 +1887,12 @@ foreach (@files) { guess_description($dir); +# +# Output of bbfile file +# +write_bbfile(); +chdir($orgdir); +exit 0; # # Output of the yaml file
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 03/36] autospectacle.pl: pull it from meego as a base
In reply to Saul WoldFrom: Kang Kai <[email protected]>
This autospectacle.pl is from meego project
http://meego.gitorious.org/meego-developer-tools/autospectacle
And take its latest
commit f462b759c6f569f35283d0885c97ae53b010bb03 as base of Yocto 1656: Recipe creation/import script.
--- scripts/autospectacle.pl | 1837 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1837 insertions(+), 0 deletions(-) create mode 100755 scripts/autospectacle.pl
scripts/autospectacle.pl new file +1837 -0
@@ -0,0 +1,1837 @@ +#!/usr/bin/perl -w + +# Copyright (C) 2010 Intel Corporation +# +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, you may create a larger work that contains +# part or all of the autospectacle output and distribute that work +# under terms of your choice. +# Alternatively, if you modify or redistribute autospectacle itself, +# you may (at your option) remove this special exception. +# +# This special exception was modeled after the bison exception +# (as done by the Free Software Foundation in version 2.2 of Bison) +# + + +use File::Temp qw(tempdir); +use File::Path qw(mkpath rmtree); +use File::Spec (); + + +my $name = ""; +my $version = "TO BE FILLED IN"; +my $description = ""; +my $summary = ""; +my $url = ""; +my $configure = ""; +my $localename = ""; +my @sources; +my @mainfiles; +my @patches; + +my $printed_subpackages = 0; +my $fulldir = ""; + +my $builder = ""; + + +my $oscmode = 0; + +my @banned_pkgconfig; +my %failed_commands; +my %failed_libs; +my %failed_headers; + + + +###################################################################### +# +# License management +# +# We store the sha1sum of common COPYING files in an associative array +# %licenses. +# +# For all matching sha1's in the tarbal, we then push the result +# in the @license array (which we'll dedupe at the time of printing). +# + +my %licenses; +my @license; + +sub setup_licenses +{ + $licenses{"06877624ea5c77efe3b7e39b0f909eda6e25a4ec"} = "GPLv2"; + $licenses{"075d599585584bb0e4b526f5c40cb6b17e0da35a"} = "GPLv2"; + $licenses{"10782dd732f42f49918c839e8a5e2894c508b079"} = "GPLv2"; + $licenses{"2d29c273fda30310211bbf6a24127d589be09b6c"} = "GPLv2"; + $licenses{"4df5d4b947cf4e63e675729dd3f168ba844483c7"} = "LGPLv2.1"; + $licenses{"503df7650052cf38efde55e85f0fe363e59b9739"} = "GPLv2"; + $licenses{"5405311284eab5ab51113f87c9bfac435c695bb9"} = "GPLv2"; + $licenses{"5fb362ef1680e635fe5fb212b55eef4db9ead48f"} = "LGPLv2"; + $licenses{"68c94ffc34f8ad2d7bfae3f5a6b996409211c1b1"} = "GPLv2"; + $licenses{"66c77efd1cf9c70d4f982ea59487b2eeb6338e26"} = "LGPLv2.1"; + $licenses{"74a8a6531a42e124df07ab5599aad63870fa0bd4"} = "GPLv2"; + $licenses{"8088b44375ef05202c0fca4e9e82d47591563609"} = "LGPLv2.1"; + $licenses{"8624bcdae55baeef00cd11d5dfcfa60f68710a02"} = "GPLv3"; + $licenses{"8e57ffebd0ed4417edc22e3f404ea3664d7fed27"} = "MIT"; + $licenses{"99b5245b4714b9b89e7584bfc88da64e2d315b81"} = "BSD"; + $licenses{"aba8d76d0af67d57da3c3c321caa59f3d242386b"} = "MPLv1.1"; + $licenses{"bf50bac24e7ec325dbb09c6b6c4dcc88a7d79e8f"} = "LGPLv2"; + $licenses{"caeb68c46fa36651acf592771d09de7937926bb3"} = "LGPLv2.1"; + $licenses{"dfac199a7539a404407098a2541b9482279f690d"} = "GPLv2"; + $licenses{"e60c2e780886f95df9c9ee36992b8edabec00bcc"} = "LGPLv2.1"; + $licenses{"c931aad3017d975b7f20666cde0953234a9efde3"} = "GPLv2"; +} + +sub guess_license_from_file { + my ($copying) = @_; + + if (!-e $copying) { + return; + } + + my $sha1output = `sha1sum $copying`; + $sha1output =~ /^([a-zA-Z0-9]*) /; + my $sha1 = $1; + + chomp($sha1); + + # + # if sha1 matches.. push there result + # + if (defined($licenses{$sha1})) { + my $lic = $licenses{$sha1}; + push(@license, $lic); + } + + # + # We also must make sure that the COPYING/etc files + # end up in the main package as %doc.. + # + $copying =~ s/$fulldir//g; + $copying =~ s/^\///g; + $copying = "\"\%doc " . $copying ."\""; + + push(@mainfiles, $copying); +} + +sub print_license +{ + my $count = @license; + if ($count == 0) { + print OUTFILE "License: TO BE FILLED IN\n"; + return; + } + + # remove dupes + undef %saw; + @saw{@license} = (); + @out = sort keys %saw; + + print OUTFILE "License : "; + foreach (@out) { + print OUTFILE "$_ "; + } + print OUTFILE "\n"; +} + +# end of license section +# +####################################################################### + +###################################################################### +# +# Package group management +# +# We set up an associative array of regexp patterns, where the content +# of the array is the name of the group. +# +# These are "strings of regexps", which means one needs to escape +# everything, and if you want the actual regexp to have a \, +# it needs to be a \\ in this string. + +my %group_patterns; +my @groups; +my $group = "TO_BE/FILLED_IN"; + +sub setup_group_rules +{ + $group_patterns{"^\\/usr\\/lib\\/.*so"} = "System/Libraries"; + $group_patterns{"^\\/lib\\/.*so"} = "System/Libraries"; + $group_patterns{"^\\/bin\\/.*"} = "Applications/System"; + $group_patterns{"^\\/sbin\\/.*"} = "Applications/System"; + $group_patterns{"^\\/usr\\/sbin\\/.*"} = "Applications/System"; +} + +sub guess_group_from_file +{ + my ($filename) = @_; + while (($key,$value) = each %group_patterns) { + if ($filename =~ /$key/) { + push(@groups, $value); + } + } + +} + +# end of group section +# +###################################################################### + + +###################################################################### +# +# Files and package section +# +# This section creates the %files section, but also decides which +# subpackages (devel and/or doc) we need to have. +# +# We start out with the @allfiles array, which will contain all the +# files installed by the %build phase of the package. The task is +# to sort these into @mainfiles, @develfiles and @docfiles. +# In addition, an attempt is made to compress the files list by +# replacing full filenames with "*" patterns. +# +# For this we use a set of regexps from the @files_match array, +# which are then used as index to three associative arrays: +# %files_target : numerical index for which package the regexp +# would place the file at hand. +# 0 - main package +# 1 - devel package +# 2 - doc package +# 99 - don't package this at all +# +# %files_from: regexp to match the file against for filename-wildcarding +# %files_to : pattern to append to the ()'d part of %files_from to end up +# with the filename-wildcard. + +my @allfiles; +my @develfiles; +my @docfiles; + + +my @files_match; +my %files_target; +my %files_from; +my %files_to; + +my $totaldocs = 0; + + +sub add_files_rule +{ + my ($match, $target, $from, $to) =@_; + push(@files_match, $match); + $files_target{"$match"} = $target; + + if (length($from) > 0) { + $files_from{"$match"} = $from; + } + + if (length($to) > 0) { + $files_to{"$match"} = $to; + } +} + +sub setup_files_rules +{ + +# +# Files for the Main package +# + + add_files_rule("^\\/usr\\/lib\\/[a-z0-9A-Z\\_\\-\\.]+\\.so\\.", 0, + "(\\/usr\\/lib\\/.*\\.so\\.).*", "\*"); + + + add_files_rule("^\\/usr\\/share\\/omf\\/", 0, + "(\\/usr\\/share\\/omf\\/.*?\\/).*", "\*"); + +# +# Files for the Devel subpackage +# + add_files_rule("^\\/usr\\/share\\/gir-1\\.0\\/[a-z0-9A-Z\\_\\-\\.]+\\.gir\$", 1, + "(\\/usr\\/share\\/gir-1\\.0\/).*", "\*\.gir"); + add_files_rule("^\\/usr\\/lib\\/girepository-1\\.0\\/[a-z0-9A-Z\\_\\-\\.]+\\.typelib\$", 1, + "(\\/usr\\/lib\\/girepository-1\\.0\/).*", "\*\.typelib"); + add_files_rule("^\\/usr\\/include\\/[a-z0-9A-Z\\_\\-\\.]+\\.h\$", 1, + "(\\/usr\\/include\/).*", "\*\.h"); + add_files_rule("^\\/usr\\/include\\/[a-z0-9A-Z\\_\\-\\.]+\\/.*?\\.h\$", 1, + "(\\/usr\\/include\\/[a-z0-9A-Z\\_\\-\\.]+\\/.*?)[a-z0-9A-Z\\_\\-\\.]+\\.h", "\*\.h"); + add_files_rule("^\\/usr\\/lib\\/[a-z0-9A-Z\\_\\-\\.]+\\.so\$", 1, + "(\\/usr\\/lib\\/).*\\.so\$", "\*.so"); + add_files_rule("^\\/usr\\/lib\\/pkgconfig\\/[a-z0-9A-Z\\_\\-\\.\+]+\\.pc\$", 1, + "(\\/usr\\/lib\\/pkgconfig\\/).*\\.pc\$", "\*.pc"); + add_files_rule("^\\/usr\\/share\\/aclocal", 1, "", ""); + add_files_rule("^\\/usr\\/lib\\/qt4\\/mkspecs/", 1, "", ""); + + + + +# +# Files for the documentation subpackage +# + add_files_rule("^\\/usr\\/share\\/gtk\-doc\\/html\\/[a-z0-9A-Z\\_\\-\\.]+\\/.\*", 2, + "(\\/usr\\/share\\/gtk\-doc\\/html\\/[a-z0-9A-Z\\_\\-\\.]+\\/).\*", "\*"); + add_files_rule("^\\/usr\\/share\\/doc\\/[a-zA-Z0-9\-]*", 2, + "(\\/usr\\/share\\/doc\\/[a-zA-Z0-9\-]+\\/).*", "\*"); + add_files_rule("^\\/usr\\/share\\/man\\/man[0-9]\\/[a-zA-Z0-9\-]*", 2, + "(\\/usr\\/share\\/man\\/man[0-9]\\/[a-zA-Z0-9\-]+\\/).*", "\*"); + add_files_rule("^\\/usr\\/share\\/gnome\\/help\\/", 2, + "(\\/usr\\/share\\/gnome\\/help\\/.*?\\/.*?\\/).*", "\*"); + + +# +# Files to just not package at all (picked up by other things) +# + add_files_rule("^\\/usr\\/share\\/locale", 99, "", ""); + # compiled python things will get auto cleaned by rpm +# add_files_rule("\.pyo\$", 99, "", ""); +# add_files_rule("\.pyc\$", 99, "", ""); + +} + +sub apply_files_rules +{ + my $filenumber = @allfiles; + + if ($filenumber == 0) { + return; + } + + while (@allfiles > 0) { + my $filename = $allfiles[0]; + my $destname = $filename; + my $handled = 0; + +# +# while we're here, try to guess what group our package is +# + guess_group_from_file($filename); + + foreach (@files_match) { + my $match = $_; + + if ($filename =~ /$match/) { +# +# First try to see if we can turn the full filename into a +# wildcard based filename +# + if (defined($files_from{$match}) && defined($files_to{$match})) { + $from = $files_from{$match}; + $to = $files_to{$match}; + $destname =~ s/$from/$1$to/; +# print "changing $filename to $destname\n"; + } + +# devel package + if ($files_target{$match} == 1) { + $handled = 1; + push(@develfiles, $destname); + } +# doc rules.. also prepend %doc + if ($files_target{$match} == 2) { + $handled = 1; + $destname = "\"%doc " . $destname . "\""; + push(@docfiles, $destname); + $totaldocs = $totaldocs + 1; + } +# don't package + if ($files_target{$match} == 99) { + $handled = 1; + if ($filename =~ /\/usr\/share\/locale\/.*?\/LC_MESSAGES\/(.*)\.mo/) { + $localename = $1; + } + } + } + } + + +# +# if the destination name contains our package version, +# use %version instead for future maintenance +# + $destname =~ s/$version/\%\{version\}/g; + if ($handled == 0) { + push(@mainfiles, $destname); + } + shift(@allfiles); + } + +# +# Now.. if we have less than 5 documentation files, just stick them in the main package +# + + $filenumber = @docfiles; + + if ($filenumber <= 5) { + while (@docfiles > 0) { + my $filename = $docfiles[0]; + + push(@mainfiles, $filename); + shift(@docfiles); + } + } + +} + +sub print_files +{ + my $count = @mainfiles; + if ($count == 0) { + return; + } + + # remove dupes + undef %saw; + @saw{@mainfiles} = (); + @out = sort keys %saw; + + print OUTFILE "Files:\n"; + foreach (@out) { + print OUTFILE " - $_\n"; + } +} + +sub print_devel +{ + my $count = @develfiles; + if ($count == 0) { + return; + } + print OUTFILE "SubPackages:\n"; + $printed_subpackages = 1; + print OUTFILE " - Name: devel\n"; + print OUTFILE " Summary: Development components for the $name package\n"; + print OUTFILE " Group: Development/Libraries\n"; + print OUTFILE " Description:\n"; + print OUTFILE " - Development files for the $name package\n"; + + # remove dupes + undef %saw; + @saw{@develfiles} = (); + @out = sort keys %saw; + + print OUTFILE " Files:\n"; + foreach (@out) { + print OUTFILE " - $_\n"; + } +} + +sub print_doc +{ + my $count = @docfiles; + if ($count == 0) { + return; + } + if ($printed_subpackages == 0) { + print OUTFILE "SubPackages:\n"; + $printed_subpackages = 1; + } + print OUTFILE " - Name: docs\n"; + print OUTFILE " Summary: Documentation components for the $name package\n"; + print OUTFILE " Group: Documentation\n"; + + # remove dupes + undef %saw; + @saw{@docfiles} = (); + @out = sort keys %saw; + + print OUTFILE " Files:\n"; + foreach (@out) { + print OUTFILE " - $_\n"; + } +} + + +# end of %files section +# +###################################################################### + + +###################################################################### +# +# What we can learn from configure.ac/configure +# +# - pkgconfig requirements +# - regular build requirements +# - package name / version + + +sub setup_pkgconfig_ban +{ + push(@banned_pkgconfig, "^dnl\$"); + push(@banned_pkgconfig, "^hal\$"); # we don't have nor want HAL + push(@banned_pkgconfig, "tslib-0.0"); # we don't want tslib-0.0 (legacy touchscreen interface) + push(@banned_pkgconfig, "intel-gen4asm"); + push(@banned_pkgconfig, "^xp\$"); # xprint - deprecated and not in meego + push(@banned_pkgconfig, "^directfb\$"); # we use X, not directfb + push(@banned_pkgconfig, "^gtkmm-2.4\$"); # we use X, not directfb + push(@banned_pkgconfig, "^evil\$"); + push(@banned_pkgconfig, "^directfb"); + push(@banned_pkgconfig, "^sdl "); + + +} + +sub setup_failed_commands +{ + $failed_commands{"doxygen"} = "doxygen"; + $failed_commands{"scrollkeeper-config"} = "rarian-compat"; + $failed_commands{"dot"} = "graphviz"; + $failed_commands{"flex"} = "flex"; + $failed_commands{"lex"} = "flex"; + $failed_commands{"freetype-config"} = "freetype-devel"; + $failed_commands{"makeinfo"} = "texinfo"; + $failed_commands{"desktop-file-install"} = "desktop-file-utils"; + $failed_commands{"deflateBound in -lz"} = "zlib-devel"; + $failed_commands{"gconftool-2"} = "GConf-dbus"; + $failed_commands{"jpeglib.h"} = "libjpeg-devel"; + $failed_commands{"expat.h"} = "expat-devel"; + $failed_commands{"bison"} = "bison"; + $failed_commands{"msgfmt"} = "gettext"; + $failed_commands{"curl-config"} = "libcurl-devel"; + $failed_commands{"doxygen"} = "doxygen"; + $failed_commands{"X"} = "pkgconfig(x11)"; + + $failed_commands{"gawk"} = "gawk"; + $failed_commands{"xbkcomp"} = "xkbcomp"; + $failed_commands{"Vorbis"} = "libvorbis-devel"; + # checking Expat 1.95.x... no + $failed_commands{"Expat 1.95.x"} = "expat-devel"; + $failed_commands{"xml2-config path"} = "libxml2-devel"; + + $failed_libs{"-lz"} = "zlib-devel"; + $failed_libs{"-lncursesw"} = "ncurses-devel"; + $failed_libs{"-ltiff"} = "libtiff-devel"; + $failed_libs{"-lasound"} = "alsa-lib-devel"; + $failed_libs{"Curses"} = "ncurses-devel"; + + $failed_headers{"X11/extensions/randr.h"} = "xrandr"; + $failed_headers{"X11/Xlib.h"} = "x11"; + $failed_headers{"X11/extensions/XShm.h"} = "xext"; + $failed_headers{"X11/extensions/shape.h"} = "xext"; + $failed_headers{"ncurses.h"} = "ncursesw"; + $failed_headers{"curses.h"} = "ncursesw"; + $failed_headers{"pci/pci.h"} = "libpci"; + $failed_headers{"xf86.h"} = "xorg-server"; + $failed_headers{"sqlite.h"} = "sqlite3"; + + $failed_headers{"X11/extensions/XIproto.h"} = "xi"; + $failed_headers{"QElapsedTimer"} = ""; +} + + + +my @package_configs; +my @buildreqs; +my $uses_configure = 0; + + +sub push_pkgconfig_buildreq +{ + my ($pr) = @_; + + $pr =~ s/\s+//g; + + # remove collateral ] ) etc damage in the string + $pr =~ s/\"//g; + $pr =~ s/\)//g; + $pr =~ s/\]//g; + $pr =~ s/\[//g; + + + # first, undo the space packing + + $pr =~ s/\>\=/ \>\= /g; + $pr =~ s/\<\=/ \<\= /g; + + $pr =~ s/\<1.1.1/ /g; + + # don't show configure variables, we can't deal with them + if ($pr =~ /^\$/) { + return; + } + if ($pr =~ /AC_SUBST/) { + return; + } + + + + + # process banned pkgconfig options for things that we don't + # have or don't want. + + + # remore versions that are macros or strings, not numbers + $pr =~ s/\s\>\= \$.*//g; + + $pr =~ s/\s\>\= [a-zA-Z]+.*//g; + + # don't show configure variables, we can't deal with them + if ($pr =~ /\$/) { + return; + } + + foreach (@banned_pkgconfig) { + my $ban = $_; + if ($pr =~ /$ban/) { + return; + } + } + + push(@package_configs, $pr); +} + +# +# detect cases where we require both a generic pkgconfig, and a version specific +# case +# +sub uniquify_pkgconfig +{ + # first remove real dupes + undef %saw; + @saw{@package_configs} = (); + @out = sort keys %saw; + + my $count = 0; + + while ($count < @out) { + + my $entry = $out[$count]; + + foreach(@out) { + my $compare = $_; + if ($entry eq $compare) { + next; + } + + $compare =~ s/ \>\=.*//g; + if ($entry eq $compare) { + $out[$count] = ""; + } + } + $count = $count + 1; + } + @package_configs = @out; +} + + +sub process_configure_ac +{ + my ($filename) = @_; + my $line = ""; + my $depth = 0; + my $keepgoing = 1; + my $buffer = ""; + + if (!-e $filename) { + return; + } + + $uses_configure = 1; + + + + open(CONFIGURE, "$filename") || die "Couldn't open $filename\n"; + seek(CONFIGURE, 0,0) or die "seek : $!"; + while ($keepgoing && !eof(CONFIGURE)) { + $buffer = getc(CONFIGURE); + + if ($buffer eq "(") { + $depth = $depth + 1; + } + if ($buffer eq ")" && $depth > 0) { + $depth = $depth - 1; + } + + if (!($buffer eq "\n")) { + $line = $line . $buffer; + } + + if (!($buffer eq "\n") || $depth > 0) { + redo unless eof(CONFIGURE); + } + + if ($line =~ /PKG_CHECK_MODULES\((.*)\)/) { + my $match = $1; + $match =~ s/\s+/ /g; + $match =~ s/, /,/g; + my @pkgs = split(/,/, $match); + my $pkg; + if (defined($pkgs[1])) { + $pkg = $pkgs[1]; + } else { + next; + } + if ($pkg =~ /\[(.*)\]/) { + $pkg = $1; + } + + $pkg =~ s/\s+/ /g; + # deal with versioned pkgconfig's by removing the spaces around >= 's + $pkg =~ s/\>\=\s/\>\=/g; + $pkg =~ s/\s\>\=/\>\=/g; + $pkg =~ s/\=\s/\=/g; + $pkg =~ s/\s\=/\=/g; + $pkg =~ s/\<\=\s/\<\=/g; + $pkg =~ s/\<\s/\</g; + $pkg =~ s/\s\<\=/\<\=/g; + $pkg =~ s/\s\</\</g; + + @words = split(/ /, $pkg); + foreach(@words) { + push_pkgconfig_buildreq($_); + } + } + + if ($line =~ /PKG_CHECK_EXISTS\((.*)\)/) { + my $match = $1; + $match =~ s/\s+/ /g; + $match =~ s/, /,/g; + my @pkgs = split(/,/, $match); + my $pkg = $pkgs[0]; + if ($pkg =~ /\[(.*)\]/) { + $pkg = $1; + } + + $pkg =~ s/\s+/ /g; + # deal with versioned pkgconfig's by removing the spaces around >= 's + $pkg =~ s/\>\=\s/\>\=/g; + $pkg =~ s/\s\>\=/\>\=/g; + $pkg =~ s/\<\=\s/\<\=/g; + $pkg =~ s/\<\s/\</g; + $pkg =~ s/\s\<\=/\<\=/g; + $pkg =~ s/\s\</\</g; + $pkg =~ s/\=\s/\=/g; + $pkg =~ s/\s\=/\=/g; + + @words = split(/ /, $pkg); + foreach(@words) { + push_pkgconfig_buildreq($_); + } + } + + if ($line =~ /XDT_CHECK_PACKAGE\(.*?,.*?\[(.*?)\].*\)/) { + my $pkg = $1; + + $pkg =~ s/\s+/ /g; + # deal with versioned pkgconfig's by removing the spaces around >= 's + $pkg =~ s/\>\=\s/\>\=/g; + $pkg =~ s/\s\>\=/\>\=/g; + $pkg =~ s/\=\s/\=/g; + $pkg =~ s/\s\=/\=/g; + + @words = split(/ /, $pkg); + foreach(@words) { + push_pkgconfig_buildreq($_); + } + } + + if ($line =~ /XDT_CHECK_OPTIONAL_PACKAGE\(.*?,.*?\[(.*?)\].*\)/) { + my $pkg = $1; + + $pkg =~ s/\s+/ /g; + # deal with versioned pkgconfig's by removing the spaces around >= 's + $pkg =~ s/\>\=\s/\>\=/g; + $pkg =~ s/\s\>\=/\>\=/g; + $pkg =~ s/\=\s/\=/g; + $pkg =~ s/\s\=/\=/g; + + @words = split(/ /, $pkg); + foreach(@words) { + push_pkgconfig_buildreq($_); + } + } + + if ($line =~ /AC_CHECK_LIB\(\[expat\]/) { + push(@buildreqs, "expat-devel"); + } + if ($line =~ /AC_CHECK_FUNC\(\[tgetent\]/) { + push(@buildreqs, "ncurses-devel"); + } + if ($line =~ /_PROG_INTLTOOL/) { + push(@buildreqs, "intltool"); + } + if ($line =~ /GETTEXT_PACKAGE/) { + push(@buildreqs, "gettext"); + } + if ($line =~ /GTK_DOC_CHECK/) { + push_pkgconfig_buildreq("gtk-doc"); + } + if ($line =~ /GNOME_DOC_INIT/) { + push(@buildreqs, "gnome-doc-utils"); + } + if ($line =~ /AM_GLIB_GNU_GETTEXT/) { + push(@buildreqs, "gettext"); + } + + if ($line =~ /AC_INIT\((.*)\)/) { + my $match = $1; + $match =~ s/\s+/ /g; + @acinit = split(/,/, $match); +# $name = $acinit[0]; + + if ($name =~ /\[(.*)\]/) { +# $name = $1; + } + + if (defined($acinit[3])) { +# $name = $acinit[3]; + if ($name =~ /\[(.*)\]/) { +# $name = $1; + } + } + if (defined($acinit[1])) { + my $ver = $acinit[1]; + $ver =~ s/\[//g; + $ver =~ s/\]//g; + if ($ver =~ /\$/){} else { + $version = $ver; + $version =~ s/\s+//g; + } + } + } + if ($line =~ /AM_INIT_AUTOMAKE\((.*)\)/) { + my $match = $1; + $match =~ s/\s+/ /g; + @acinit = split(/,/, $match); +# $name = $acinit[0]; + + if ($name =~ /\[(.*)\]/) { +# $name = $1; + } + + if (defined($acinit[3])) { +# $name = $acinit[3]; + if ($name =~ /\[(.*)\]/) { +# $name = $1; + } + } + if (defined($acinit[1])) { + my $ver = $acinit[1]; + $ver =~ s/\[//g; + $ver =~ s/\]//g; + if ($ver =~ /\$/){} else { + $version = $ver; + $version =~ s/\s+//g; + } + } + } + + $line = ""; + } + close(CONFIGURE); +} + +sub process_qmake_pro +{ + my ($filename) = @_; + my $line = ""; + my $depth = 0; + my $keepgoing = 1; + my $buffer = ""; + my $prev_char = ""; + + if (!-e $filename) { + return; + } + + + open(CONFIGURE, "$filename") || die "Couldn't open $filename\n"; + seek(CONFIGURE, 0,0) or die "seek : $!"; + while ($keepgoing && !eof(CONFIGURE)) { + $buffer = getc(CONFIGURE); + + if ($buffer eq "(") { + $depth = $depth + 1; + } + if ($buffer eq ")" && $depth > 0) { + $depth = $depth - 1; + } + + if (!($buffer eq "\n")) { + $line = $line . $buffer; + } + + if (!($buffer eq "\n") || ($prev_char eq "\\") ) { + $prev_char = $buffer; + redo unless eof(CONFIGURE); + } + $prev_char = " "; + + if ($line =~ /PKGCONFIG.*?\=(.*)/) { + my $l = $1; + my @pkgs; + + $l =~ s/\\//g; + $l =~ s/\s/ /g; + @pkgs = split(/ /, $l); + foreach (@pkgs) { + if (length($_)>1) { + push_pkgconfig_buildreq($_); + } + } + } + + $line = ""; + } + close(CONFIGURE); +} + +# +# We also check configure if it exists, it's nice for some things +# because various configure.ac macros have been expanded for us already. +# +sub process_configure +{ + my ($filename) = @_; + my $line = ""; + my $depth = 0; + my $keepgoing = 1; + + if (!-e $filename) { + return; + } + + $uses_configure = 1; + + open(CONFIGURE, "$filename") || die "Couldn't open $filename\n"; + seek(CONFIGURE, 0,0) or die "seek : $!"; + while ($keepgoing && !eof(CONFIGURE)) { + $buffer = getc(CONFIGURE); + + if ($buffer eq "(") { + $depth = $depth + 1; + } + if ($buffer eq ")" && $depth > 0) { + $depth = $depth - 1; + } + + if (!($buffer eq "\n")) { + $line = $line . $buffer; + } + + if (!($buffer eq "\n") || $depth > 0) { + redo unless eof(CONFIGURE); + } + + + + if ($line =~ /^PACKAGE_NAME=\'(.*?)\'/) { + $name = $1; + } + if ($line =~ /^PACKAGE_TARNAME=\'(.*?)\'/) { + $name = $1; + } + if ($line =~ /^PACKAGE_VERSION=\'(.*?)\'/) { + $version = $1; + $version =~ s/\s+//g; + } + if ($line =~ /^PACKAGE_URL=\'(.*?)\'/) { + if (length($1) > 2) { + $url = $1; + } + } + + + $line = ""; + } + close(CONFIGURE); +} + +sub print_pkgconfig +{ + my $count = @package_configs; + if ($count == 0) { + return; + } + + uniquify_pkgconfig(); + + print OUTFILE "PkgConfigBR:\n"; + foreach (@out) { + $line = $_; + $line =~ s/^\s+//g; + if (length($line) > 1) { + print OUTFILE " - $line\n"; + } + } +} + +sub print_buildreq +{ + my $count = @buildreqs; + if ($count == 0) { + return; + } + + # remove dupes + undef %saw; + @saw{@buildreqs} = (); + @out = sort keys %saw; + + print OUTFILE "PkgBR:\n"; + foreach (@out) { + print OUTFILE " - $_\n"; + } +} + + +# end of configure section +# +###################################################################### + + +###################################################################### +# +# Guessing the Description and Summary for a package +# +# We'll look at various sources of information for this: +# - spec files in the package +# - debain files in the package +# - DOAP files in the package +# - pkgconfig files in the package +# - the README file in the package +# - freshmeat.net online +# + +sub guess_description_from_spec { + my ($specfile) = @_; + + my $state = 0; + my $cummul = ""; + + open(SPEC, $specfile); + while (<SPEC>) { + my $line = $_; + if ($state == 1 && $line =~ /^\%/) { + $state = 2; + } + if ($state == 1) { + $cummul = $cummul . $line; + } + if ($state==0 && $line =~ /\%description/) { + $state = 1; + } + + if ($line =~ /Summary:\s*(.*)/ && length($summary) < 2) { + $summary = $1; + } + if ($line =~ /URL:\s*(.*)/ && length($url) < 2) { + $url = $1; + } + } + close(SPEC); + if (length($cummul) > 4) { + $description = $cummul; + } +} + +# +# DOAP is a project to create an XML/RDF vocabulary to describe software projects, and in particular open source. +# so if someone ships a .doap file... we can learn from it. +# +sub guess_description_from_doap { + my ($doapfile) = @_; + + open(DOAP, $doapfile); + while (<DOAP>) { + my $line = $_; + # <shortdesc xml:lang="en">Virtual filesystem implementation for gio</shortdesc> + if ($line =~ /\<shortdesc .*?\>(.*)\<\/shortdesc\>/) { + $summary = $1; + } + if ($line =~ /\<homepage .*?resource=\"(.*)\"\s*\/>/) { + $url = $1; + } + } + close(DOAP); +} + +# +# Debian control files have some interesting fields we can glean information +# from as well. +# +sub guess_description_from_debian_control { + my ($file) = @_; + + my $state = 0; + my $cummul = ""; + + $file = $file . "/debian/control"; + + open(FILE, $file) || return; + while (<FILE>) { + my $line = $_; + if ($state == 1 && length($line) < 2) { + $state = 2; + } + if ($state == 1) { + $cummul = $cummul . $line; + } + if ($state==0 && $line =~ /\Description: (.*)/) { + $state = 1; + $cummul = $1; + } + + } + close(FILE); + if (length($cummul) > 4) { + $description = $cummul; + } +} + +# +# the pkgconfig files have often a one line description +# of the software... good for Summary +# +sub guess_description_from_pkgconfig { + my ($file) = @_; + + open(FILE, $file); + while (<FILE>) { + my $line = $_; + + if ($line =~ /Description:\s*(.*)/ && length($summary) < 2) { + $summary = $1; + } + } + close(FILE); +} + +# +# Freshmeat can provide us with a good one paragraph description +# of the software.. +# +sub guess_description_from_freshmeat { + my ($tarname) = @_; + my $cummul = ""; + my $state = 0; + open(HTML, "curl -s http://freshmeat.net/projects/$tarname |"); + while (<HTML>) { + my $line = $_; + + if ($state == 1) { + $cummul = $cummul . $line; + } + if ($state == 0 && $line =~ /\<div class\=\"project-detail\"\>/) { + $state = 1; + } + if ($state == 1 && $line =~/\<\/p\>/) { + $state = 2; + } + } + close(HTML); + $cummul =~ s/\<p\>//g; + $cummul =~ s/\r//g; + $cummul =~ s/\<\/p\>//g; + $cummul =~ s/^\s*//g; + if (length($cummul)>10) { + $description = $cummul; + } +} +# +# If all else fails, just take the first paragraph of the +# readme file +# +sub guess_description_from_readme { + my ($file) = @_; + + my $state = 0; + my $cummul = ""; + + open(FILE, $file); + while (<FILE>) { + my $line = $_; + if ($state == 1 && $line =~ /^\n/ && length($cummul) > 80) { + $state = 2; + } + if ($state == 0 && length($line)>1) { + $state = 1; + } + if ($state == 1) { + $cummul = $cummul . $line; + } + if ($line =~ /(http\:\/\/.*$name.*\.org)/) { + my $u = $1; + if ($u =~ /bug/ || length($url) > 1) { + } else { + $url = $u; + } + } + } + close(FILE); + if (length($cummul) > 4 && length($description)<3) { + $description = $cummul; + } +} + +# +# Glue all the guesses together +# +sub guess_description { + my ($directory) = @_; + + + @files = <$directory/README*>; + foreach (@files) { + guess_description_from_readme($_); + } + + if (length($name)>2) { + guess_description_from_freshmeat($name); + } + + @files = <$directory/*.spec*>; + foreach (@files) { + guess_description_from_spec($_); + } + + guess_description_from_debian_control($directory); + + $name =~ s/ //g; + @files = <$directory/$name.pc*>; + foreach (@files) { + guess_description_from_pkgconfig($_); + } + @files = <$directory/*.pc.*>; + foreach (@files) { + guess_description_from_pkgconfig($_); + } + @files = <$directory/*.pc>; + foreach (@files) { + guess_description_from_pkgconfig($_); + } + @files = <$directory/*.doap>; + foreach (@files) { + guess_description_from_doap($_); + } + + if (length($summary) < 2) { + $summary = $description; + $summary =~ s/\n/ /g; + $summary =~ s/\s+/ /g; + if ($summary =~ /(.*?)\./) { + $summary = $1; + } + } + +} + +# end of Description / Summary section +# +###################################################################### + + + +# +# Build the package, and wait for rpm to complain about unpackaged +# files.... which we then use as basis for our %files section +# +sub guess_files_from_rpmbuild { + my $infiles = 0; + open(OUTPUTF, "rpmbuild --nodeps --define \"\%_sourcedir $orgdir \" -ba $name.spec 2>&1 |"); + while (<OUTPUTF>) { + my $line2 = $_; + + if ($infiles == 1 && $line2 =~ /RPM build errors/) { + $infiles = 2; + } + if ($infiles == 1 && $line2 =~ /^Building/) { + $infiles = 2; + } + + if ($infiles == 1) { + $line2 =~ s/\s*//g; + push(@allfiles, $line2); + } + if ($line2 =~ / Installed \(but unpackaged\) file\(s\) found\:/) { + $infiles = 1; + } + } + close(OUTPUTF); + if (@allfiles == 0) { + print "Build failed ... stopping here.\n"; + exit(0); + } + +} + +sub guess_files_from_oscbuild { + my $infiles = 0; + my $restart = 0; + my $mustrestart = 0; + my $rcount = 0; + my $done_python = 0; + + system("osc addremove &> /dev/null"); + system("osc ci -m \"Initial import by autospectacle\" &> /dev/null"); + +retry: + if ($restart > 0) { + write_yaml(); + print "Restarting the build\n"; + } + $restart = 0; + $infiles = 0; + $mustrestart = 0; + open(OUTPUTF, "osc build --no-verify $name.spec 2>&1 |"); + while (<OUTPUTF>) { + my $line2 = $_; + +# print "line is $line2\n"; + if ($infiles == 1 && $line2 =~ /RPM build errors/) { + $infiles = 2; + } + if ($infiles == 1 && $line2 =~ /^Building/) { + $infiles = 2; + } + if ($infiles == 1) { + $line2 =~ s/\s*//g; + push(@allfiles, $line2); + } + if ($line2 =~ /No package \'(.*)\' found/) { + push_pkgconfig_buildreq("$1"); + $restart = $restart + 1; + print " Adding pkgconfig($1) requirement\n"; + } + if ($line2 =~ /Package requirements \((.*?)\) were not met/) { + $pkg = $1; + # deal with versioned pkgconfig's by removing the spaces around >= 's + $pkg =~ s/\>\=\s/\>\=/g; + $pkg =~ s/\s\>\=/\>\=/g; + $pkg =~ s/\=\s/\=/g; + $pkg =~ s/\s\=/\=/g; + my @req = split(/ /,$pkg); + foreach (@req) { + push_pkgconfig_buildreq("$_"); + + $restart = $restart + 1; + print " Adding pkgconfig($_) requirement\n"; + } + } + if ($line2 =~ /which: no qmake/) { + $restart += 1; + push_pkgconfig_buildreq("Qt"); + print " Adding Qt requirement\n"; + } + if ($line2 =~ /Cannot find development files for any supported version of libnl/) { + $restart += 1; + push_pkgconfig_buildreq("libnl-1"); + print " Adding libnl requirement\n"; + } + if ($line2 =~ /<http:\/\/www.cmake.org>/) { + $restart += 1; + push(@buildreqs, "cmake"); + print " Adding cmake requirement\n"; + } + if ($line2 =~ /checking for (.*?)\.\.\. not_found/ || $line2 =~ /checking for (.*?)\.\.\. no/ || $line2 =~ /checking (.*?)\.\.\. no/) { + $pkg = $1; + while (($key,$value) = each %failed_commands) { + if ($pkg eq $key) { + push(@buildreqs, $value); + print " Adding $value requirement\n"; + $restart += $restart + 1; + $mustrestart = 1; + } + } + + } + + if ($line2 =~ /checking for [a-zA-Z0-9\_]+ in (.*?)\.\.\. no/) { + $pkg = $1; + while (($key,$value) = each %failed_libs) { + if ($pkg eq $key) { + push(@buildreqs, $value); + print " Adding $value requirement\n"; + $restart += $restart + 1; + $mustrestart = 1; + } + } + + } + + if ($line2 =~ /-- Could NOT find ([a-zA-Z0-9]+)/) { + $pkg = $1; + while (($key,$value) = each %failed_libs) { + if ($pkg eq $key) { + push(@buildreqs, $value); + print " Adding $value requirement\n"; + $restart += $restart + 1; + $mustrestart = 1; + } + } + + } + + if ($line2 =~ /fatal error\: (.*)\: No such file or directory/) { + $pkg = $1; + while (($key,$value) = each %failed_headers) { + if ($pkg eq $key) { + push_pkgconfig_buildreq($value); + print " Adding $value requirement\n"; + $restart += $restart + 1; + } + } + + } + if ($line2 =~ /checking for UDEV\.\.\. no/) { + print " Adding pkgconfig(udev) requirement\n"; + push_pkgconfig_buildreq("udev"); + } + if ($line2 =~ /checking for Apache .* module support/) { + print " Adding pkgconfig(httpd-devel) requirement\n"; + push(@buildreqs, "httpd-devel"); + if ($rcount < 3) { + $restart = $restart + 1; + } + } + if ($line2 =~ /([a-zA-Z0-9\-\_]*)\: command not found/i) { + my $cmd = $1; + my $found = 0; + + while (($key,$value) = each %failed_commands) { + if ($cmd eq $key) { + push(@buildreqs, $value); + print " Adding $value requirement\n"; + $restart += $restart + 1; + $mustrestart = 1; + $found = 1; + } + } + + if ($found < 1) { + print " Command $cmd not found!\n"; + } + } + if ($line2 =~ /checking for.*in -ljpeg... no/) { + push(@buildreqs, "libjpeg-devel"); + print " Adding libjpeg-devel requirement\n"; + $restart = $restart + 1; + } + if ($line2 =~ /fatal error\: zlib\.h\: No such file or directory/) { + push(@buildreqs, "zlib-devel"); + print " Adding zlib-devel requirement\n"; + $restart = $restart + 1; + } + if ($line2 =~ /error\: xml2-config not found/) { + push_pkgconfig_buildreq("libxml-2.0"); + print " Adding libxml2-devel requirement\n"; + $restart = $restart + 1; + } + if ($line2 =~ /checking \"location of ncurses\.h file\"/) { + push(@buildreqs, "ncurses-devel"); + print " Adding ncurses-devel requirement\n"; + $restart = $restart + 1; + } + if (($line2 =~ / \/usr\/include\/python2\.6$/ || $line2 =~ / to compile python extensions/) && $done_python == 0) { + push(@buildreqs, "python-devel"); + print " Adding python-devel requirement\n"; + $restart = $restart + 1; + $done_python = 1; + } + if ($line2 =~ /error: must install xorg-macros 1.6/) { + push_pkgconfig_buildreq("xorg-macros"); + print " Adding xorg-macros requirement\n"; + $restart = $restart + 1; + } + if ($line2 =~ /installing .*?.gmo as [a-zA-Z0-9\-\.\/\_]+?\/([a-zA-Z0-9\-\_\.]+)\.mo$/) { + my $loc = $1; + if ($loc eq $localename) {} else { + print " Changing localename from $localename to $loc\n"; + $localename = $loc; + $restart = $restart + 1; + } + } + + if ($infiles == 0 && $line2 =~ / Installed \(but unpackaged\) file\(s\) found\:/) { + $infiles = 1; + } + } + close(OUTPUTF); + if (@allfiles == 0 || $mustrestart > 0) { + if ($restart >= 1) + { + $rcount = $rcount + 1; + if ($rcount < 10) { + goto retry; + } + } + print "Build failed ... stopping here.\n"; + exit(0); + } + +} + +sub process_rpmlint { + my $infiles = 0; + + + if ($oscmode == 0) { + return; + } + + print "Verifying package ....\n"; + + system("osc addremove &> /dev/null"); + system("osc ci -m \"Final import by autospectacle\" &> /dev/null"); + + open(OUTPUTF, "osc build --no-verify $name.spec 2>&1 |"); + while (<OUTPUTF>) { + my $line2 = $_; + +# print "line is $line2\n"; + if ($infiles == 1 && $line2 =~ /RPM build errors/) { + $infiles = 2; + } + if ($infiles == 1 && $line2 =~ /^Building/) { + $infiles = 2; + } + if ($infiles == 1) { + $line2 =~ s/\s*//g; + push(@allfiles, $line2); + } + if ($infiles == 0 && $line2 =~ / Installed \(but unpackaged\) file\(s\) found\:/) { + $infiles = 1; + } + } + close(OUTPUTF); + +} + +sub guess_name_from_url { + my ($bigurl) = @_; + + @spliturl = split(/\//, $bigurl); + while (@spliturl > 1) { + shift(@spliturl); + } + my $tarfile = $spliturl[0]; + + if ($tarfile =~ /(.*?)\-([0-9\.\-\~]+)\.tar/) { + $name = $1; + $version = $2; + $version =~ s/\-/\_/g; + } +} + +############################################################################ +# +# Output functions +# + +sub print_name_and_description +{ + my @lines; + + print OUTFILE "Name : $name\n"; + print OUTFILE "Version : $version\n"; + print OUTFILE "Release : 1\n"; + + # remove dupes + undef %saw; + @saw{@groups} = (); + @out = sort keys %saw; + + if (@out == 1) { + foreach (@out) { + print OUTFILE "Group : $_\n"; + } + } else { + print OUTFILE "Group : $group\n"; + } + # + # Work around spectacle bug + $summary =~ s/\:\s/ /g; + $summary =~ s/^([a-z])/\u$1/ig; + $summary =~ s/\@//g; + $summary = substr($summary, 0, 79); + + $summary =~ s/\.^//g; + if (length($summary) < 1) { + $summary = "TO BE FILLED IN"; + } + # + print OUTFILE "Summary : $summary\n"; + print OUTFILE "Description: |\n"; + + $description =~ s/"/\"/g; + $description =~ s/\@//g; + @lines = split(/\n/, $description); + foreach (@lines) { + print OUTFILE " $_\n"; + } + if (length($url)>1) { + print OUTFILE "URL : $url\n"; + } + + # remove dupes + undef %saw; + @saw{@sources} = (); + @out = sort keys %saw; + + print OUTFILE "Sources : \n"; + foreach (@out) { + $source = $_; + $source =~ s/$version/\%\{version\}/g; + + print OUTFILE " - $source\n"; + } + + if (@patches > 0) { + print OUTFILE "Patches: \n"; + foreach (@patches) { + my $patch = $_; + print OUTFILE " - $patch\n"; + } + } + + print OUTFILE "\n"; + if (length($configure)>2) { + print OUTFILE "Configure : $configure\n"; + } + if (length($localename) > 2) { + print OUTFILE "LocaleName : $localename\n"; + } + if (length($builder) > 2) { + print OUTFILE "Builder : $builder\n"; + } +} + +sub write_makefile +{ + open(MAKEFILE, ">Makefile"); + + print MAKEFILE "PKG_NAME := $name\n"; + print MAKEFILE "SPECFILE = \$(addsuffix .spec, \$(PKG_NAME))\n"; + print MAKEFILE "YAMLFILE = \$(addsuffix .yaml, \$(PKG_NAME))\n"; + print MAKEFILE "\n"; + print MAKEFILE "include /usr/share/packaging-tools/Makefile.common\n"; + + close(MAKEFILE); +} + +sub write_changelog +{ + open(CHANGELOG, ">$name.changes"); + $date = ` date +"%a %b %d %Y"`; + chomp($date); + print CHANGELOG "* $date - Autospectacle <autospectacle\@meego.com> - $version\n"; + print CHANGELOG "- Initial automated packaging\n"; + close(CHANGELOG); +} + +sub write_yaml +{ + open(OUTFILE, ">$name.yaml"); + print_name_and_description(); + print_license(); + print_pkgconfig(); + print_buildreq(); + print_files(); + print_devel(); + print_doc(); + close(OUTFILE); + + write_makefile(); + write_changelog(); + + system("rm $name.spec"); + system("specify &> /dev/null"); + if ($oscmode > 0) { + system("osc addremove"); + system("osc ci -m \"Import by autospectacle\" &> /dev/null"); + } + +} + + +############################################################################ +# +# Main program +# + +if ( @ARGV < 1 ) { + print "Usage: $0 <url-of-source-tarballs>\n"; + exit(1); +} + +if (@ARGV > 1) { + my $i = 1; + while ($i < @ARGV) { + my $patch = $ARGV[$i]; + print "Adding patch $patch\n"; + push(@patches, $patch); + $i++; + } +} + +setup_licenses(); +setup_files_rules(); +setup_group_rules(); +setup_pkgconfig_ban(); +setup_failed_commands(); + +if (-e ".osc/_packages") { + $oscmode = 1; +} + +my $tmpdir = tempdir(); + +$dir = $ARGV[0]; +guess_name_from_url($dir); +push(@sources, $dir); + + +#system("cd $tmpdir; curl -s -O $dir"); +$orgdir = `pwd`; +chomp($orgdir); +print "Downloading package: $dir\n"; +system("wget --quiet $dir"); +print "Unpacking to : $tmpdir\n"; + +my @tgzfiles = <$orgdir/*.tgz>; +foreach (@tgzfiles) { + my $tgz = $_; + my $tar = $tgz; + $tar =~ s/tgz/tar\.gz/g; + $dir =~ s/tgz/tar\.gz/g; + system("mv $tgz $tar"); + guess_name_from_url($dir); +} + + +# +# I really really hate the fact that meego deleted the -a option from tar. +# this is a step backwards in time that is just silly. +# + + +system("cd $tmpdir; tar -jxf $orgdir/*\.tar\.bz2"); +system("cd $tmpdir; tar -zxf $orgdir/*\.tar\.gz"); +print "Parsing content ....\n"; +my @dirs = <$tmpdir/*>; +foreach (@dirs) { + $dir = $_; +} + +$fulldir = $dir; + +if ( -e "$dir/autogen.sh" ) { + $configure = "autogen"; + $uses_configure = 1; +} +if ( -e "$dir/BUILD-CMAKE" ) { + $configure = "cmake"; + push(@buildreqs, "cmake"); + $uses_configure = 1; +} + +if ( -e "$dir/configure" ) { + $configure = ""; +} + +my @files = <$dir/configure.*>; + +my $findoutput = `find $dir -name "configure.ac"`; +my @findlist = split(/\n/, $findoutput); +foreach (@findlist) { + push(@files, $_); +} +foreach (@files) { + process_configure_ac("$_"); +} + +$findoutput = `find $dir -name "*.pro"`; +@findlist = split(/\n/, $findoutput); +foreach (@findlist) { + process_qmake_pro("$_"); +} + +if (-e "$dir/$name.pro") { + $builder = "qmake"; + push_pkgconfig_buildreq("Qt"); +} + + +# +# This is a good place to generate configure.in +# +if (length($configure) > 2) { + if ($configure eq "autogen") { + system("cd $dir ; ./autogen.sh &> /dev/null"); + } +} +@files = <$dir/configure>; +foreach (@files) { + process_configure("$_"); +} + +if ($uses_configure == 0) { + $configure = "none"; +} + +@files = <$dir/COPY*>; +foreach (@files) { + guess_license_from_file("$_"); +} + +@files = <$dir/LICENSE*>; +foreach (@files) { + guess_license_from_file("$_"); +} + + +@files = <$dir/GPL*>; +foreach (@files) { + guess_license_from_file("$_"); +} + + +guess_description($dir); + + +# +# Output of the yaml file +# + + +if ($oscmode == 1) { + print "Creating OBS project $name ...\n"; + system("osc mkpac $name &> /dev/null"); + system("mkdir $name &> /dev/null"); + chdir($name); + system("mv ../$name*\.tar\.* ."); +} + +write_yaml(); +print "Building package ....\n"; + +if ($oscmode == 0) { + guess_files_from_rpmbuild(); +} else { + guess_files_from_oscbuild(); +} + +apply_files_rules(); + +$printed_subpackages = 0; +write_yaml(); + +process_rpmlint(); + +print "Spectacle creation complete.\n";
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 05/36] mesa: add missing flex-native/bison-native deps
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
A quick glance at configure.ac shows that both are required to build mesa, but we were relying on their being built implicitly via other recipes in the dependency chain. Make it explicit.
--- meta/recipes-graphics/mesa/mesa-common.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +1 -1
@@ -19,7 +19,7 @@ PE = "2" PROTO_DEPS = "xf86driproto glproto" LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes libxml2-native" -DEPENDS = "makedepend-native python-native ${PROTO_DEPS} ${LIB_DEPS}" +DEPENDS = "makedepend-native python-native flex-native bison-native ${PROTO_DEPS} ${LIB_DEPS}" PROVIDES = "virtual/libgl"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 07/36] libpcap: use PACKAGECONFIG for bluetooth distro feature
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/recipes-connectivity/libpcap/libpcap.inc | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
meta/recipes-connectivity/libpcap/libpcap.inc +4 -1
@@ -10,7 +10,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867 \ file://pcap.h;beginline=1;endline=34;md5=8d6cf7e17d5745010d633e30bc529ea9" DEPENDS = "flex-native bison-native" -INC_PR = "r0" +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluetooth', '', d)}" +PACKAGECONFIG[bluetooth] = "--enable-bluetooth,--disable-bluetooth,bluez4" + +INC_PR = "r1" SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 06/36] distcc: use PACKAGECONFIG for x11 distro feature
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/recipes-devtools/distcc/distcc_2.18.3.bb | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-)
meta/recipes-devtools/distcc/distcc_2.18.3.bb +8 -6
@@ -4,11 +4,15 @@ compilation of C/C++/ObjC code across machines on a network." SECTION = "devel" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -PR = "r7" +PR = "r8" -DEPENDS = "avahi ${GTKDEP}" -GTKDEP_libc-uclibc = "" -GTKDEP = "gtk+" +DEPENDS = "avahi" + +GTKCONFIG = "gtk" +GTKCONFIG_libc-uclibc = "" + +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', '${GTKCONFIG}', '', d)}" +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+" RRECOMMENDS_${PN} = "avahi-daemon"
@@ -28,8 +32,6 @@ inherit autotools pkgconfig update-rc.d INITSCRIPT_NAME = "distcc" -EXTRA_OECONF = "--with-gtk" -EXTRA_OECONF_libc-uclibc = "--without-gtk --without-gnome" do_install_append() { install -d ${D}${sysconfdir}/init.d/ install -d ${D}${sysconfdir}/default
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 09/36] bitbake.conf: shift build config summary control to here
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/classes/base.bbclass | 50 ++++++++++++++++++++++++++++++-------------- meta/conf/bitbake.conf | 7 ++++++ 2 files changed, 41 insertions(+), 16 deletions(-)
meta/classes/base.bbclass +34 -16
@@ -225,6 +225,27 @@ def get_layers_branch_rev(d): return layers_branch_rev +BUILDCFG_FUNCS ??= "buildcfg_vars get_layers_branch_rev buildcfg_neededvars" +BUILDCFG_FUNCS[type] = "list" + +def buildcfg_vars(d): + statusvars = oe.data.typed_value('BUILDCFG_VARS', d) + for var in statusvars: + value = d.getVar(var, True) + if value is not None: + yield '%-17s = "%s"' % (var, value) + +def buildcfg_neededvars(d): + needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d) + pesteruser = [] + for v in needed_vars: + val = d.getVar(v, True) + if not val or val == 'INVALID': + pesteruser.append(v) + + if pesteruser: + bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) + addhandler base_eventhandler python base_eventhandler() { from bb.event import getName
@@ -232,22 +253,19 @@ python base_eventhandler() { name = getName(e) if name.startswith("BuildStarted"): - e.data.setVar( 'BB_VERSION', bb.__version__) - statusvars = ['BB_VERSION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'DISTRO_VERSION','TUNE_FEATURES', 'TARGET_FPU'] - statuslines = ["%-17s = \"%s\"" % (i, e.data.getVar(i, True) or '') for i in statusvars] - - statuslines += get_layers_branch_rev(e.data) - statusmsg = "\nOE Build Configuration:\n%s\n" % '\n'.join(statuslines) - bb.plain(statusmsg) - - needed_vars = [ "TARGET_ARCH", "TARGET_OS" ] - pesteruser = [] - for v in needed_vars: - val = e.data.getVar(v, True) - if not val or val == 'INVALID': - pesteruser.append(v) - if pesteruser: - bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) + e.data.setVar('BB_VERSION', bb.__version__) + statuslines = [] + for func in oe.data.typed_value('BUILDCFG_FUNCS', e.data): + g = globals() + if func not in g: + bb.warn("Build configuration function '%s' does not exist" % func) + else: + flines = g[func](e.data) + if flines: + statuslines.extend(flines) + + statusheader = e.data.getVar('BUILDCFG_HEADER', True) + bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) if name == "ConfigParsed": generate_git_config(e)
meta/conf/bitbake.conf +7 -0
@@ -609,6 +609,13 @@ export PATCH_GET="0" # Not sure about the rest of this yet. ################################################################## +# Pre-build configuration output +BUILDCFG_HEADER = "Build Configuration:" +BUILDCFG_VARS = "BB_VERSION TARGET_ARCH TARGET_OS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU" +BUILDCFG_VARS[type] = "list" +BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS" +BUILDCFG_NEEDEDVARS[type] = "list" + # Other export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}/${libdir}/pkgconfig"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 08/36] libsndfile1: use PACKAGECONFIG for alsa distro feature
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- .../libsndfile/libsndfile1_1.0.25.bb | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb +4 -1
@@ -4,7 +4,7 @@ AUTHOR = "Erik de Castro Lopo" DEPENDS = "sqlite3" SECTION = "libs/multimedia" LICENSE = "LGPLv2.1" -PR = "r0" +PR = "r1" SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz"
@@ -15,6 +15,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a" S = "${WORKDIR}/libsndfile-${PV}" +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" + EXTRA_OECONF = "--disable-external-libs" inherit autotools lib_package pkgconfig
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 11/36] csl-versions.inc: capture version in signatures
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
We want to ensure that changing external toolchain version will change the metadata checksums of target recipes. This will do so via ensuring that any variable which references TOOLCHAIN_OPTIONS also pulls in the toolchain version variables.
--- meta/conf/distro/include/csl-versions.inc | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
meta/conf/distro/include/csl-versions.inc +4 -0
@@ -103,3 +103,7 @@ python csl_version_handler () { d.setVar('CSL_VER_GDB', csl_get_gdb_version(ld)) } addhandler csl_version_handler + +# Ensure that any variable which includes the --sysroot (CC, CXX, etc) also +# depends on the toolchain version +TOOLCHAIN_OPTIONS[vardeps] += "CSL_VER_MAIN CSL_VER_GCC"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 10/36] base.bbclass: use isinstance for base_eventhandler
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/classes/base.bbclass | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-)
meta/classes/base.bbclass +6 -10
@@ -248,12 +248,13 @@ def buildcfg_neededvars(d): addhandler base_eventhandler python base_eventhandler() { - from bb.event import getName - - name = getName(e) - - if name.startswith("BuildStarted"): + if isinstance(e, bb.event.ConfigParsed): e.data.setVar('BB_VERSION', bb.__version__) + generate_git_config(e) + pkgarch_mapping(e.data) + preferred_ml_updates(e.data) + + if isinstance(e, bb.event.BuildStarted): statuslines = [] for func in oe.data.typed_value('BUILDCFG_FUNCS', e.data): g = globals()
@@ -266,11 +267,6 @@ python base_eventhandler() { statusheader = e.data.getVar('BUILDCFG_HEADER', True) bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) - - if name == "ConfigParsed": - generate_git_config(e) - pkgarch_mapping(e.data) - preferred_ml_updates(e.data) } addtask configure after do_patch
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 12/36] external-csl-toolchain: split out a libstdc++-staticdev package
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
This silences one of the QA warnings.
--- meta/recipes-core/meta/external-csl-toolchain.bb | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
meta/recipes-core/meta/external-csl-toolchain.bb +4 -4
@@ -88,7 +88,7 @@ external_toolchain_sysroot_adjust() { fi } -PACKAGES =+ "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev gdbserver gdbserver-dbg" +PACKAGES =+ "libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev linux-libc-headers linux-libc-headers-dev gdbserver gdbserver-dbg" INSANE_SKIP_libgcc = "1" INSANE_SKIP_libstdc++ = "1"
@@ -111,6 +111,7 @@ PKGV_libgcc = "${CSL_VER_GCC}" PKGV_libgcc-dev = "${CSL_VER_GCC}" PKGV_libstdc++ = "${CSL_VER_GCC}" PKGV_libstdc++-dev = "${CSL_VER_GCC}" +PKGV_libstdc++-staticdev = "${CSL_VER_GCC}" PKGV_linux-libc-headers = "${CSL_VER_KERNEL}" PKGV_linux-libc-headers-dev = "${CSL_VER_KERNEL}" PKGV_gdbserver = "${CSL_VER_GDB}"
@@ -122,9 +123,8 @@ FILES_libstdc++ = "${libdir}/libstdc++.so.*" FILES_libstdc++-dev = "${includedir}/c++/${PV} \ ${libdir}/libstdc++.so \ ${libdir}/libstdc++.la \ - ${libdir}/libstdc++.a \ - ${libdir}/libsupc++.la \ - ${libdir}/libsupc++.a" + ${libdir}/libsupc++.la" +FILES_libstdc++-staticdev = "${libdir}/libstdc++.a ${libdir}/libsupc++.a" FILES_linux-libc-headers = "${includedir}/asm* \ ${includedir}/linux \ ${includedir}/mtd \
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 14/36] external-csl-toolchain: cleanup, simplify, use base_libdir
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/recipes-core/meta/external-csl-toolchain.bb | 57 +++++++++++----------- 1 files changed, 28 insertions(+), 29 deletions(-)
meta/recipes-core/meta/external-csl-toolchain.bb +28 -29
@@ -24,36 +24,40 @@ PROVIDES += "\ virtual/linux-libc-headers \ " PV = "${CSL_VER_MAIN}" -PR = "r3" +PR = "r5" #SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2" SRC_URI = "file://SUPPORTED" do_install() { - install -d ${D}${sysconfdir} ${D}${bindir} ${D}${sbindir} ${D}${base_bindir} ${D}${libdir} - install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir} ${D}/usr - - if [ -d ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE} ]; then - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/lib/. ${D}${base_libdir} - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/etc/. ${D}${sysconfdir} - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/sbin/. ${D}${base_sbindir} - if [ ! -e ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/include ]; then - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/include ${D}/usr/ - fi - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/. ${D}/usr/ - else - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/lib/. ${D}${base_libdir} - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/etc/. ${D}${sysconfdir} - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/sbin/. ${D}${base_sbindir} - cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/. ${D}/usr/ + # Use optimized files if available + sysroot="${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc" + if [ -d $sysroot/${CSL_TARGET_CORE} ]; then + sysroot="$sysroot/${CSL_TARGET_CORE}" fi - if [ -e ${D}${prefix}/info ]; then - mv ${D}${prefix}/info ${D}${infodir} - fi - if [ -e ${D}${prefix}/man ]; then - mv ${D}${prefix}/man ${D}${mandir} + cp -a $sysroot${base_libdir}/. ${D}${base_libdir} + cp -a $sysroot/etc/. ${D}${sysconfdir} + cp -a $sysroot/sbin/. ${D}${base_sbindir} + + install -d ${D}/usr + for usr_element in bin libexec sbin share ${base_libdir}; do + usr_path=$sysroot/usr/$usr_element + cp -a $usr_path ${D}/usr/ + done + for datadir_element in man info; do + datadir_path=$sysroot/usr/$datadir_element + if [ -e $datadir_path ]; then + cp -a $datadir_path ${D}${datadir}/ + fi + done + + # Some toolchains have headers under the core specific area + if [ -e $sysroot/usr/include ]; then + cp -a $sysroot/usr/include/. ${D}${includedir} + else + cp -a $sysroot/../usr/include/. ${D}${includedir} fi rm ${D}${sysconfdir}/rpc
@@ -61,18 +65,13 @@ do_install() { mv ${D}${libdir}/bin/* ${D}${bindir}/ if [ -e ${D}${libdir}/bin/.debug ]; then - install -d ${D}${bindir}/.debug mv ${D}${libdir}/bin/.debug/* ${D}${bindir}/.debug/ fi ln -s ../../bin/gdbserver ${D}${libdir}/bin/sysroot-gdbserver sed -i -e 's/__packed/__attribute__ ((packed))/' ${D}${includedir}/mtd/ubi-user.h - sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so - sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libpthread.so -} - -do_install_locale_append () { - rm -r ${D}${datadir}/locale ${D}${libdir}/locale + sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libc.so + sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libpthread.so } SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 15/36] external-csl-toolchain: update SUPPORTED to match toolchain
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- .../meta/external-csl-toolchain/SUPPORTED | 257 +++++++++++++++++++- 1 files changed, 255 insertions(+), 2 deletions(-)
meta/recipes-core/meta/external-csl-toolchain/SUPPORTED +255 -2
@@ -1,4 +1,257 @@ -en_GB.UTF-8 UTF-8 +aa_DJ ISO-8859-1 +aa_ER UTF-8 +aa_ER@saaho UTF-8 +aa_ET UTF-8 +af_ZA ISO-8859-1 +am_ET UTF-8 +an_ES ISO-8859-15 +ar_AE ISO-8859-6 +ar_BH ISO-8859-6 +ar_DZ ISO-8859-6 +ar_EG ISO-8859-6 +ar_IN UTF-8 +ar_IQ ISO-8859-6 +ar_JO ISO-8859-6 +ar_KW ISO-8859-6 +ar_LB ISO-8859-6 +ar_LY ISO-8859-6 +ar_MA ISO-8859-6 +ar_OM ISO-8859-6 +ar_QA ISO-8859-6 +ar_SA ISO-8859-6 +ar_SD ISO-8859-6 +ar_SY ISO-8859-6 +ar_TN ISO-8859-6 +ar_YE ISO-8859-6 +ast_ES ISO-8859-15 +be_BY CP1251 +be_BY@latin UTF-8 +ber_DZ UTF-8 +ber_MA UTF-8 +bg_BG CP1251 +bn_BD UTF-8 +bn_IN UTF-8 +bo_CN UTF-8 +bo_IN UTF-8 +br_FR ISO-8859-1 +br_FR@euro ISO-8859-15 +bs_BA ISO-8859-2 +byn_ER UTF-8 +ca_AD ISO-8859-15 +ca_ES ISO-8859-1 +ca_ES@euro ISO-8859-15 +ca_FR ISO-8859-15 +ca_IT ISO-8859-15 +crh_UA UTF-8 +cs_CZ ISO-8859-2 +csb_PL UTF-8 +cy_GB ISO-8859-14 +da_DK ISO-8859-1 +de_AT ISO-8859-1 +de_AT@euro ISO-8859-15 +de_BE ISO-8859-1 +de_BE@euro ISO-8859-15 +de_CH ISO-8859-1 +de_DE ISO-8859-1 +de_DE@euro ISO-8859-15 +de_LU ISO-8859-1 +de_LU@euro ISO-8859-15 +dv_MV UTF-8 +dz_BT UTF-8 +el_GR ISO-8859-7 +el_CY ISO-8859-7 +en_AG UTF-8 +en_AU ISO-8859-1 +en_BW ISO-8859-1 +en_CA ISO-8859-1 +en_DK ISO-8859-1 en_GB ISO-8859-1 -en_US.UTF-8 UTF-8 +en_HK ISO-8859-1 +en_IE ISO-8859-1 +en_IE@euro ISO-8859-15 +en_IN UTF-8 +en_NG UTF-8 +en_NZ ISO-8859-1 +en_PH ISO-8859-1 +en_SG ISO-8859-1 en_US ISO-8859-1 +en_ZA ISO-8859-1 +en_ZW ISO-8859-1 +es_AR ISO-8859-1 +es_BO ISO-8859-1 +es_CL ISO-8859-1 +es_CO ISO-8859-1 +es_DO ISO-8859-1 +es_EC ISO-8859-1 +es_ES ISO-8859-1 +es_ES@euro ISO-8859-15 +es_GT ISO-8859-1 +es_HN ISO-8859-1 +es_MX ISO-8859-1 +es_NI ISO-8859-1 +es_PA ISO-8859-1 +es_PE ISO-8859-1 +es_PR ISO-8859-1 +es_PY ISO-8859-1 +es_SV ISO-8859-1 +es_US ISO-8859-1 +es_UY ISO-8859-1 +es_VE ISO-8859-1 +et_EE ISO-8859-1 +eu_ES ISO-8859-1 +eu_ES@euro ISO-8859-15 +fa_IR UTF-8 +fi_FI ISO-8859-1 +fi_FI@euro ISO-8859-15 +fil_PH UTF-8 +fo_FO ISO-8859-1 +fr_BE ISO-8859-1 +fr_BE@euro ISO-8859-15 +fr_CA ISO-8859-1 +fr_CH ISO-8859-1 +fr_FR ISO-8859-1 +fr_FR@euro ISO-8859-15 +fr_LU ISO-8859-1 +fr_LU@euro ISO-8859-15 +fur_IT UTF-8 +fy_NL UTF-8 +fy_DE UTF-8 +ga_IE ISO-8859-1 +ga_IE@euro ISO-8859-15 +gd_GB ISO-8859-15 +gez_ER UTF-8 +gez_ER@abegede UTF-8 +gez_ET UTF-8 +gez_ET@abegede UTF-8 +gl_ES ISO-8859-1 +gl_ES@euro ISO-8859-15 +gu_IN UTF-8 +gv_GB ISO-8859-1 +ha_NG UTF-8 +he_IL ISO-8859-8 +hi_IN UTF-8 +hne_IN UTF-8 +hr_HR ISO-8859-2 +hsb_DE ISO-8859-2 +ht_HT UTF-8 +hu_HU ISO-8859-2 +hy_AM UTF-8 +id_ID ISO-8859-1 +ig_NG UTF-8 +ik_CA UTF-8 +is_IS ISO-8859-1 +it_CH ISO-8859-1 +it_IT ISO-8859-1 +it_IT@euro ISO-8859-15 +iu_CA UTF-8 +iw_IL ISO-8859-8 +ka_GE GEORGIAN-PS +kk_KZ PT154 +kk_KZ RK1048 +kl_GL ISO-8859-1 +km_KH UTF-8 +kn_IN UTF-8 +ks_IN UTF-8 +ks_IN@devanagari UTF-8 +ku_TR ISO-8859-9 +kw_GB ISO-8859-1 +ky_KG UTF-8 +lg_UG ISO-8859-10 +li_BE UTF-8 +li_NL UTF-8 +lo_LA UTF-8 +lt_LT ISO-8859-13 +lv_LV ISO-8859-13 +mai_IN UTF-8 +mg_MG ISO-8859-15 +mi_NZ ISO-8859-13 +mk_MK ISO-8859-5 +ml_IN UTF-8 +mn_MN UTF-8 +mr_IN UTF-8 +ms_MY ISO-8859-1 +mt_MT ISO-8859-3 +my_MM UTF-8 +nan_TW@latin UTF-8 +nb_NO ISO-8859-1 +nds_DE UTF-8 +nds_NL UTF-8 +ne_NP UTF-8 +nl_AW UTF-8 +nl_BE ISO-8859-1 +nl_BE@euro ISO-8859-15 +nl_NL ISO-8859-1 +nl_NL@euro ISO-8859-15 +nn_NO ISO-8859-1 +nr_ZA UTF-8 +nso_ZA UTF-8 +oc_FR ISO-8859-1 +om_ET UTF-8 +om_KE ISO-8859-1 +or_IN UTF-8 +pa_IN UTF-8 +pa_PK UTF-8 +pap_AN UTF-8 +pl_PL ISO-8859-2 +ps_AF UTF-8 +pt_BR ISO-8859-1 +pt_PT ISO-8859-1 +pt_PT@euro ISO-8859-15 +ro_RO ISO-8859-2 +ru_RU ISO-8859-5 +ru_UA KOI8-U +rw_RW UTF-8 +sa_IN UTF-8 +sc_IT UTF-8 +sd_IN UTF-8 +sd_IN@devanagari UTF-8 +se_NO UTF-8 +shs_CA UTF-8 +si_LK UTF-8 +sid_ET UTF-8 +sk_SK ISO-8859-2 +sl_SI ISO-8859-2 +so_DJ ISO-8859-1 +so_ET UTF-8 +so_KE ISO-8859-1 +so_SO ISO-8859-1 +sq_AL ISO-8859-1 +sr_ME UTF-8 +sr_RS UTF-8 +sr_RS@latin UTF-8 +ss_ZA UTF-8 +st_ZA ISO-8859-1 +sv_FI ISO-8859-1 +sv_FI@euro ISO-8859-15 +sv_SE ISO-8859-1 +ta_IN UTF-8 +te_IN UTF-8 +tg_TJ KOI8-T +th_TH TIS-620 +ti_ER UTF-8 +ti_ET UTF-8 +tig_ER UTF-8 +tk_TM UTF-8 +tl_PH ISO-8859-1 +tn_ZA UTF-8 +tr_CY ISO-8859-9 +tr_TR ISO-8859-9 +ts_ZA UTF-8 +ug_CN UTF-8 +uk_UA KOI8-U +ur_PK UTF-8 +uz_UZ ISO-8859-1 +uz_UZ@cyrillic UTF-8 +ve_ZA UTF-8 +vi_VN UTF-8 +wa_BE ISO-8859-1 +wa_BE@euro ISO-8859-15 +wo_SN UTF-8 +xh_ZA ISO-8859-1 +yi_US CP1255 +yo_NG UTF-8 +zh_CN GB2312 +zh_HK BIG5-HKSCS +zh_SG GB2312 +zh_TW BIG5 +zu_ZA ISO-8859-1
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 13/36] external-csl-toolchain: silence .a/.debug QA warnings
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/recipes-core/meta/external-csl-toolchain.bb | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-)
meta/recipes-core/meta/external-csl-toolchain.bb +2 -3
@@ -90,9 +90,8 @@ external_toolchain_sysroot_adjust() { PACKAGES =+ "libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev linux-libc-headers linux-libc-headers-dev gdbserver gdbserver-dbg" -INSANE_SKIP_libgcc = "1" -INSANE_SKIP_libstdc++ = "1" -INSANE_SKIP_gdbserver = "1" +# This test should be fixed to ignore .a files in .debug dirs +INSANE_SKIP_${PN}-dbg = "staticdev" PKG_${PN} = "eglibc" PKG_${PN}-dev = "eglibc-dev"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 17/36] libc-package: rework ''precompiled' locale handling
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
There were a couple problems with the handling of precompiled locales.
- it gathered the list of locales from the directories - this breaks due to the naming mismatch, e.g. en_US.UTF-8 vs en_US.utf8.
- it retained its hardcoded assumption that the non-suffixed locale (en_US, as opposed to en_US.*) is UTF-8, while the others are otherwise. Hardcoding this is both inflexible and just plain wrong for some toolchains. It's most common in desktop distros for 'en_US' to be non-utf8, and ''en_US.UTF-8' is utf8, and this is the case in some external toolchains as well.
The code now uses the SUPPORTED file to hold the knowledge it needs. This file not only holds the list of locales to generate, but also maps the locale names to the charsets they correspond to. The code now uses this to assemble its charset map, falling back to the '.' suffix as charset when the locale is not in the map. For precompiled, it now uses the locale->charset knowledge it has, thereby allowing non-utf8 non-suffixed locale names, whereas for non-precompiled, it reverts to the previous assumption, renaming the utf8 locale and forcibly suffixing the others.
So, a person maintaining an external toolchain recipe is responsible for ensuring that the SUPPORTED file they provide matches up with the compiled locales in the toolchain, if they want to utilize precompiled locales.
I believe in the long term the compiled case should do the same thing precompiled does, and use SUPPORTED or a similar mechanism to encode the knowledge, and if people want all the non-suffixed names to be utf8, they can change that file to do so. This would avoid the hardcoded assumption in the code, as well as consolidating the behavior between the compiled and precompiled cases.
--- meta/classes/libc-package.bbclass | 96 +++++++++++++++++------------------- 1 files changed, 45 insertions(+), 51 deletions(-)
meta/classes/libc-package.bbclass +45 -51
@@ -207,40 +207,30 @@ python package_do_split_gconvs () { dot_re = re.compile("(.*)\.(.*)") -#GLIBC_GENERATE_LOCALES var specifies which locales to be supported, empty or "all" means all locales - if use_bin != "precompiled": - supported = d.getVar('GLIBC_GENERATE_LOCALES', True) - if not supported or supported == "all": - f = open(base_path_join(d.getVar('WORKDIR', True), "SUPPORTED"), "r") - supported = f.readlines() - f.close() - else: - supported = supported.split() - supported = map(lambda s:s.replace(".", " ") + "\n", supported) + # Read in supported locales and associated encodings + supported = {} + with open(base_path_join(d.getVar('WORKDIR', True), "SUPPORTED")) as f: + for line in f.readlines(): + try: + locale, charset = line.rstrip().split() + except ValueError: + continue + supported[locale] = charset + + # GLIBC_GENERATE_LOCALES var specifies which locales to be generated. empty or "all" means all locales + to_generate = d.getVar('GLIBC_GENERATE_LOCALES', True) + if not to_generate or to_generate == 'all': + to_generate = supported.keys() else: - supported = [] - full_bin_path = d.getVar('PKGD', True) + binary_locales_dir - for dir in os.listdir(full_bin_path): - dbase = dir.split(".") - d2 = " " - if len(dbase) > 1: - d2 = "." + dbase[1].upper() + " " - supported.append(dbase[0] + d2) - - # Collate the locales by base and encoding - utf8_only = int(d.getVar('LOCALE_UTF8_ONLY', True) or 0) - encodings = {} - for l in supported: - l = l[:-1] - (locale, charset) = l.split(" ") - if utf8_only and charset != 'UTF-8': - continue - m = dot_re.match(locale) - if m: - locale = m.group(1) - if not encodings.has_key(locale): - encodings[locale] = [] - encodings[locale].append(charset) + to_generate = to_generate.split() + for locale in to_generate: + if locale not in supported: + if '.' in locale: + charset = locale.split('.')[1] + else: + charset = 'UTF-8' + bb.warn("Unsupported locale '%s', assuming encoding '%s'" % (locale, charset)) + supported[locale] = charset def output_locale_source(name, pkgname, locale, encoding): d.setVar('RDEPENDS_%s' % pkgname, 'localedef %s-localedata-%s %s-charmap-%s' % \
@@ -271,7 +261,7 @@ python package_do_split_gconvs () { use_cross_localedef = d.getVar("LOCALE_GENERATION_WITH_CROSS-LOCALEDEF", True) or "0" if use_cross_localedef == "1": - target_arch = d.getVar('TARGET_ARCH', True) + target_arch = d.getVar('TARGET_ARCH', True) locale_arch_options = { \ "arm": " --uint32-align=4 --little-endian ", \ "powerpc": " --uint32-align=4 --big-endian ", \
@@ -334,25 +324,29 @@ python package_do_split_gconvs () { bb.note("preparing tree for binary locale generation") bb.build.exec_func("do_prep_locale_tree", d) - # Reshuffle names so that UTF-8 is preferred over other encodings - non_utf8 = [] - for l in encodings.keys(): - if len(encodings[l]) == 1: - output_locale(l, l, encodings[l][0]) - if encodings[l][0] != "UTF-8": - non_utf8.append(l) + utf8_only = int(d.getVar('LOCALE_UTF8_ONLY', True) or 0) + encodings = {} + for locale in to_generate: + charset = supported[locale] + if utf8_only and charset != 'UTF-8': + continue + + m = dot_re.match(locale) + if m: + base = m.group(1) else: - if "UTF-8" in encodings[l]: - output_locale(l, l, "UTF-8") - encodings[l].remove("UTF-8") - else: - non_utf8.append(l) - for e in encodings[l]: - output_locale('%s.%s' % (l, e), l, e) + base = locale - if non_utf8 != [] and use_bin != "precompiled": - bb.note("the following locales are supported only in legacy encodings:") - bb.note(" " + " ".join(non_utf8)) + # Precompiled locales are kept as is, obeying SUPPORTED, while + # others are adjusted, ensuring that the non-suffixed locales + # are utf-8, while the suffixed are not. + if use_bin == "precompiled": + output_locale(locale, base, charset) + else: + if charset == 'UTF-8': + output_locale(base, base, charset) + else: + output_locale('%s.%s' % (base, charset), base, charset) if use_bin == "compile": makefile = base_path_join(d.getVar("WORKDIR", True), "locale-tree", "Makefile")
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 18/36] tcmode-external-csl: use the existing precompiled locale files
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
--- meta/conf/distro/include/tcmode-external-csl.inc | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
meta/conf/distro/include/tcmode-external-csl.inc +4 -0
@@ -35,6 +35,10 @@ PREFERRED_PROVIDER_virtual/libiconv = "external-csl-toolchain" PREFERRED_PROVIDER_glibc-thread-db = "external-csl-toolchain" PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-csl-toolchain" +# No need to re-compile the locale files +GLIBC_INTERNAL_USE_BINARY_LOCALE = "precompiled" +ENABLE_BINARY_LOCALE_GENERATION = "" + TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include " TARGET_LDFLAGS_prepend = " -L${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib -Wl,-rpath-link,${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib "
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 16/36] tclibc-eglibc: drop hardcoded locale-base-en-us/en-gb
In reply to Saul WoldFrom: Christopher Larson <[email protected]>
This is handled by IMAGE_LINGUAS, so hardcoding it here is at best unnecessary duplication.
--- meta/conf/distro/include/tclibc-eglibc.inc | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
meta/conf/distro/include/tclibc-eglibc.inc +5 -7
@@ -19,10 +19,10 @@ CXXFLAGS += "-fvisibility-inlines-hidden" LIBC_DEPENDENCIES = "libsegfault \ eglibc \ - eglibc-dbg \ - eglibc-dev \ - eglibc-utils \ - eglibc-thread-db \ + eglibc-dbg \ + eglibc-dev \ + eglibc-utils \ + eglibc-thread-db \ ${@get_libc_locales_dependencies(d)}" LIBC_LOCALE_DEPENDENCIES = "\
@@ -30,9 +30,7 @@ LIBC_LOCALE_DEPENDENCIES = "\ eglibc-gconv-ibm850 \ eglibc-gconv-cp1252 \ eglibc-gconv-iso8859-1 \ - eglibc-gconv-iso8859-15 \ - locale-base-en-us \ - locale-base-en-gb" + eglibc-gconv-iso8859-15" def get_libc_locales_dependencies(d): if 'libc-locales' in (d.getVar('DISTRO_FEATURES', True) or '').split() :
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 21/36] gdb: upgrade from 7.4 to 7.4.1
In reply to Saul WoldFrom: Nitin A Kamble <[email protected]>
[Fixed sha256 - sgw]
---
meta/recipes-devtools/gdb/gdb-common.inc | 6 +++---
...canadian_7.4.bb => gdb-cross-canadian_7.4.1.bb} | 2 +-
.../gdb/{gdb-cross_7.4.bb => gdb-cross_7.4.1.bb} | 0
.../gdb/{gdb_7.4.bb => gdb_7.4.1.bb} | 0
4 files changed, 4 insertions(+), 4 deletions(-)
rename meta/recipes-devtools/gdb/{gdb-cross-canadian_7.4.bb => gdb-cross-canadian_7.4.1.bb} (88%)
rename meta/recipes-devtools/gdb/{gdb-cross_7.4.bb => gdb-cross_7.4.1.bb} (100%)
rename meta/recipes-devtools/gdb/{gdb_7.4.bb => gdb_7.4.1.bb} (100%)meta/recipes-devtools/gdb/gdb-common.inc +3 -3
@@ -12,7 +12,7 @@ LTTNGUST_mips64 = "" LTTNGUST_mips64el = "" LTTNGUST_sh4 = "" -INC_PR = "r9" +INC_PR = "r0" LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674 \
@@ -23,8 +23,8 @@ inherit autotools SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \ file://no-werror.patch" -SRC_URI[md5sum] = "7877875c8af7c7ef7d06d329ac961d3f" -SRC_URI[sha256sum] = "e2c18e2f4a5feab897595455a3d623cebbba9e9dd2dbe9a5510ed7ad43ae01d2" +SRC_URI[md5sum] = "5fb7fca9ef7a9e3cfee0e2f2c0e52051" +SRC_URI[sha256sum] = "f99d2be831ead324712ae4f11868e07e545272f10aac4186060f1386f2629b38" export CC_FOR_BUILD = "${BUILD_CC}" export CXX_FOR_BUILD = "${BUILD_CXX}"
meta/recipes-devtools/gdb/gdb-cross-canadian_7.4.1.bb renamed from meta/recipes-devtools/gdb/gdb-cross-canadian_7.4.bb +1 -1
@@ -1,7 +1,7 @@ require gdb-common.inc require gdb-cross-canadian.inc -PR = "${INC_PR}.5" +PR = "${INC_PR}.0" GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'"
meta/recipes-devtools/gdb/gdb-cross_7.4.1.bb renamed from meta/recipes-devtools/gdb/gdb-cross_7.4.bb +0 -0
meta/recipes-devtools/gdb/gdb_7.4.1.bb renamed from meta/recipes-devtools/gdb/gdb_7.4.bb +0 -0
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 20/36] quilt: upgrade from 0.51 to 0.60
In reply to Saul WoldFrom: Nitin A Kamble <[email protected]>
---
.../quilt/{quilt-0.51.inc => quilt-0.60.inc} | 4 ++--
.../{quilt-native_0.51.bb => quilt-native_0.60.bb} | 2 +-
.../quilt/{quilt_0.51.bb => quilt_0.60.bb} | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
rename meta/recipes-devtools/quilt/{quilt-0.51.inc => quilt-0.60.inc} (84%)
rename meta/recipes-devtools/quilt/{quilt-native_0.51.bb => quilt-native_0.60.bb} (83%)
rename meta/recipes-devtools/quilt/{quilt_0.51.bb => quilt_0.60.bb} (98%)meta/recipes-devtools/quilt/quilt-0.60.inc renamed from meta/recipes-devtools/quilt/quilt-0.51.inc +2 -2
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = "http://download.savannah.gnu.org/releases/quilt/quilt-${PV}.tar.gz \ file://install.patch" -SRC_URI[md5sum] = "d56d23d5212297d5777502e84dc0ee80" -SRC_URI[sha256sum] = "05441399d36399b3f26cb12e29c98a8ce4d1287d036957fa22408807860af614" +SRC_URI[md5sum] = "058a08a9b626bdec9ec8c519dc92158c" +SRC_URI[sha256sum] = "3d72a292e432beb9a73f9d0acfe3a77c9b4d7e42209919bb244e9958c7cfe64b" inherit autotools
meta/recipes-devtools/quilt/quilt-native_0.60.bb renamed from meta/recipes-devtools/quilt/quilt-native_0.51.bb +1 -1
@@ -1,4 +1,4 @@ require quilt-${PV}.inc require quilt-native.inc -PR = "r1" +PR = "r0"
meta/recipes-devtools/quilt/quilt_0.60.bb renamed from meta/recipes-devtools/quilt/quilt_0.51.bb +1 -1
@@ -4,7 +4,7 @@ RDEPENDS_${PN} += "patch diffstat bzip2 util-linux" SRC_URI += "file://aclocal.patch \ file://gnu_patch_test_fix_target.patch \ " -PR = "r4" +PR = "r0" PERLPATH = "${bindir}/env perl" PERLPATH_virtclass-nativesdk = "/usr/bin/env perl"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 19/36] makedepend: upgrade from 1.0.3 to 1.0.4
In reply to Saul WoldFrom: Nitin A Kamble <[email protected]>
---
.../{makedepend_1.0.3.bb => makedepend_1.0.4.bb} | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
rename meta/recipes-graphics/xorg-util/{makedepend_1.0.3.bb => makedepend_1.0.4.bb} (82%)meta/recipes-graphics/xorg-util/makedepend_1.0.4.bb renamed from meta/recipes-graphics/xorg-util/makedepend_1.0.3.bb +2 -3
@@ -18,6 +18,5 @@ BBCLASSEXTEND = "native" LIC_FILES_CHKSUM = "file://COPYING;md5=43a6eda34b48ee821b3b66f4f753ce4f" -SRC_URI[md5sum] = "ec37ca8b810a40cdfb16a736b3360f6c" -SRC_URI[sha256sum] = "2d3466acc29b382a4368b30371f17a4083933281b97f8ef67fc8b785a60d52dc" - +SRC_URI[md5sum] = "bf1c54028427829c9c3193bef710dbee" +SRC_URI[sha256sum] = "f53b8ce5dec02a05f8994036a8ebac485a96324143ff2382e29578fdc096b04f"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 24/36] resolvconf: Update to 1.65
In reply to Saul Wold---
.../{resolvconf_1.64.bb => resolvconf_1.65.bb} | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-connectivity/resolvconf/{resolvconf_1.64.bb => resolvconf_1.65.bb} (88%)meta/recipes-connectivity/resolvconf/resolvconf_1.65.bb renamed from meta/recipes-connectivity/resolvconf/resolvconf_1.64.bb +2 -2
@@ -14,8 +14,8 @@ PR = "r0" SRC_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/resolvconf_${PV}.tar.gz" -SRC_URI[md5sum] = "56140b756b6303d94e7463f376300a09" -SRC_URI[sha256sum] = "6cdf23d4b530a183bfade3b64ccb3660983a0a7428a443af3f099f88390512c3" +SRC_URI[md5sum] = "8411411956f986a43021fa7e71d1bae8" +SRC_URI[sha256sum] = "3876a50a71c5e3e08373b7e41d5ca9a6cf19cf48e9decb3ab0a7c67261d58785" inherit allarch
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 22/36] python: upgrade from 2.7.2 to 2.7.3
In reply to Saul WoldFrom: Nitin A Kamble <[email protected]>
bin/python2 link is provided by the python install process, so no need to create it.
rebase these patches to the newer code:
fix_for_using_different_libdir.patch
04-default-is-optimized.patch
remove this patch as it is upstream now:
sys_platform_is_now_always_linux2.patch
Change default python version to 2.7.3 in the distro config
---
meta/conf/distro/include/default-versions.inc | 4 +-
...thon-native_2.7.2.bb => python-native_2.7.3.bb} | 6 +---
meta/recipes-devtools/python/python.inc | 8 ++--
.../python/python/04-default-is-optimized.patch | 30 +++++++++------
.../python/fix_for_using_different_libdir.patch | 30 +++++++++-------
.../python/sys_platform_is_now_always_linux2.patch | 39 --------------------
.../python/{python_2.7.2.bb => python_2.7.3.bb} | 3 +-
7 files changed, 43 insertions(+), 77 deletions(-)
rename meta/recipes-devtools/python/{python-native_2.7.2.bb => python-native_2.7.3.bb} (92%)
delete mode 100644 meta/recipes-devtools/python/python/sys_platform_is_now_always_linux2.patch
rename meta/recipes-devtools/python/{python_2.7.2.bb => python_2.7.3.bb} (98%)meta/conf/distro/include/default-versions.inc +2 -2
@@ -4,8 +4,8 @@ # Force the python versions in one place PYTHON_BASEVERSION ?= "2.7" -PREFERRED_VERSION_python ?= "2.7.2" -PREFERRED_VERSION_python-native ?= "2.7.2" +PREFERRED_VERSION_python ?= "2.7.3" +PREFERRED_VERSION_python-native ?= "2.7.3" # Force the older version of liberation-fonts until we fix the fontforge issue PREFERRED_VERSION_liberation-fonts ?= "1.04"
meta/recipes-devtools/python/python-native_2.7.3.bb renamed from meta/recipes-devtools/python/python-native_2.7.2.bb +1 -5
@@ -1,6 +1,6 @@ require python.inc DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native" -PR = "${INC_PR}.4" +PR = "${INC_PR}.0" SRC_URI += "file://04-default-is-optimized.patch \ file://05-enable-ctypes-cross-build.patch \
@@ -13,7 +13,6 @@ SRC_URI += "file://04-default-is-optimized.patch \ file://nohostlibs.patch \ file://multilib.patch \ file://add-md5module-support.patch \ - file://sys_platform_is_now_always_linux2.patch \ " S = "${WORKDIR}/Python-${PV}"
@@ -42,7 +41,4 @@ do_install() { for PYTHSCRIPT in `grep -rIl ${bindir}/python ${D}${bindir}`; do sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT done - - ln -sf python ${D}${bindir}/python2 - }
meta/recipes-devtools/python/python.inc +4 -4
@@ -3,14 +3,14 @@ HOMEPAGE = "http://www.python.org" LICENSE = "PSFv2" SECTION = "devel/python" # bump this on every change in contrib/python/generate-manifest-2.7.py -INC_PR = "r2" +INC_PR = "r0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2dffb81509b47974467ea23409909b1c" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ed3abfd1059e2d3a36a8cff3986f9bb6" SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2" -SRC_URI[md5sum] = "ba7b2f11ffdbf195ee0d111b9455a5bd" -SRC_URI[sha256sum] = "5057eb067eb5b5a6040dbd0e889e06550bde9ec041dadaa855ee9490034cbdab" +SRC_URI[md5sum] = "c57477edd6d18bd9eeca2f21add73919" +SRC_URI[sha256sum] = "726457e11cb153adc3f428aaf1901fc561a374c30e5e7da6742c0742a338663c" PYTHON_MAJMIN = "2.7"
meta/recipes-devtools/python/python/04-default-is-optimized.patch +18 -12
@@ -1,14 +1,20 @@ Upstream-Status: Inappropriate [embedded specific] +Updated original patch for python 2.7.3 + +Signed-Off-By: Nitin A Kamble <[email protected]> +2012/05/01 + + # when compiling for an embedded system, we need every bit of # performance we can get. default to optimized with the option # of opt-out. # Signed-Off: Michael 'Mickey' Lauer <[email protected]> -Index: Python-2.6.6/Python/compile.c +Index: Python-2.7.3/Python/compile.c =================================================================== ---- Python-2.6.6.orig/Python/compile.c -+++ Python-2.6.6/Python/compile.c +--- Python-2.7.3.orig/Python/compile.c ++++ Python-2.7.3/Python/compile.c @@ -32,7 +32,7 @@ #include "symtable.h" #include "opcode.h"
@@ -18,16 +24,16 @@ Index: Python-2.6.6/Python/compile.c #define DEFAULT_BLOCK_SIZE 16 #define DEFAULT_BLOCKS 8 -Index: Python-2.6.6/Modules/main.c +Index: Python-2.7.3/Modules/main.c =================================================================== ---- Python-2.6.6.orig/Modules/main.c -+++ Python-2.6.6/Modules/main.c +--- Python-2.7.3.orig/Modules/main.c ++++ Python-2.7.3/Modules/main.c @@ -40,7 +40,7 @@ static char **orig_argv; static int orig_argc; /* command line options */ --#define BASE_OPTS "3bBc:dEhiJm:OQ:sStuUvVW:xX?" -+#define BASE_OPTS "3bBc:dEhiJm:NOQ:sStuUvVW:xX?" +-#define BASE_OPTS "3bBc:dEhiJm:OQ:RsStuUvVW:xX?" ++#define BASE_OPTS "3bBc:dEhiJm:NOQ:RsStuUvVW:xX?" #ifndef RISCOS #define PROGRAM_OPTS BASE_OPTS
@@ -38,10 +44,10 @@ Index: Python-2.6.6/Modules/main.c --O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x\n\ --OO : remove doc-strings in addition to the -O optimizations\n\ +-N : do NOT optimize generated bytecode\n\ - -Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew\n\ - -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE\n\ - -S : don't imply 'import site' on initialization\n\ -@@ -328,8 +327,8 @@ Py_Main(int argc, char **argv) + -R : use a pseudo-random salt to make hash() values of various types be\n\ + unpredictable between separate invocations of the interpreter, as\n\ + a defense against denial-of-service attacks\n\ +@@ -365,8 +364,8 @@ Py_Main(int argc, char **argv) /* case 'J': reserved for Jython */
meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch +17 -13
@@ -7,10 +7,14 @@ in the install process of the host python. Signed-Off-By: Nitin A Kamble <[email protected]> Date: 2012/03/14 -Index: Python-2.7.2/Lib/sysconfig.py +Updated for python 2.7.3 +Signed-Off-By: Nitin A Kamble <[email protected]> +Date: 2012/05/01 + +Index: Python-2.7.3/Lib/sysconfig.py =================================================================== ---- Python-2.7.2.orig/Lib/sysconfig.py -+++ Python-2.7.2/Lib/sysconfig.py +--- Python-2.7.3.orig/Lib/sysconfig.py ++++ Python-2.7.3/Lib/sysconfig.py @@ -7,10 +7,10 @@ from os.path import pardir, realpath _INSTALL_SCHEMES = {
@@ -41,14 +45,14 @@ Index: Python-2.7.2/Lib/sysconfig.py 'include': '{userbase}/include/python{py_version_short}', 'scripts': '{userbase}/bin', 'data' : '{userbase}', -Index: Python-2.7.2/Makefile.pre.in +Index: Python-2.7.3/Makefile.pre.in =================================================================== ---- Python-2.7.2.orig/Makefile.pre.in -+++ Python-2.7.2/Makefile.pre.in -@@ -928,25 +928,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL - done; \ - done - $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt +--- Python-2.7.3.orig/Makefile.pre.in ++++ Python-2.7.3/Makefile.pre.in +@@ -941,25 +941,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL + $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ + $(DESTDIR)$(LIBDEST)/distutils/tests ; \ + fi - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
@@ -56,7 +60,7 @@ Index: Python-2.7.2/Makefile.pre.in -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ $(DESTDIR)$(LIBDEST) - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -+ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ ++ PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ -d $(LIBDEST) -f \ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
@@ -67,12 +71,12 @@ Index: Python-2.7.2/Makefile.pre.in -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ ++ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -+ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ ++ -PYTHONPATH=$(DESTDIR)$(LIBDEST):${CROSSPYTHONPATH} $(RUNSHARED) \ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()" # Create the PLATDIR source directory, if one wasn't distributed..
meta/recipes-devtools/python/python/sys_platform_is_now_always_linux2.patch deleted +0 -39
@@ -1,39 +0,0 @@ -Upstream-Status: Accepted [http://hg.python.org/cpython/rev/c816479f6aaf/] -Bugtracker: http://bugs.python.org/issue12326 - -[Removed "Misc/NEWS" hunk] - -Signed-off-by: Andreas Oberritter <[email protected]> - -# HG changeset patch -# User Victor Stinner <[email protected]> -# Date 1313841758 -7200 -# Node ID c816479f6aaf71dbd3f3fe4b239186d60c55ce48 -# Parent 3e093590ac57fdda428c7da3f72ddf0c475ecf2b -Issue #12326: sys.platform is now always 'linux2' on Linux - -Even if Python is compiled on Linux 3. - -diff --git a/configure b/configure ---- a/configure -+++ b/configure -@@ -2995,6 +2995,7 @@ then - MACHDEP="$ac_md_system$ac_md_release" - - case $MACHDEP in -+ linux*) MACHDEP="linux2";; - cygwin*) MACHDEP="cygwin";; - darwin*) MACHDEP="darwin";; - atheos*) MACHDEP="atheos";; -diff --git a/configure.in b/configure.in ---- a/configure.in -+++ b/configure.in -@@ -293,6 +293,7 @@ then - MACHDEP="$ac_md_system$ac_md_release" - - case $MACHDEP in -+ linux*) MACHDEP="linux2";; - cygwin*) MACHDEP="cygwin";; - darwin*) MACHDEP="darwin";; - atheos*) MACHDEP="atheos";; -
meta/recipes-devtools/python/python_2.7.3.bb renamed from meta/recipes-devtools/python/python_2.7.2.bb +1 -2
@@ -1,6 +1,6 @@ require python.inc DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib" -PR = "${INC_PR}.20" +PR = "${INC_PR}.0" DISTRO_SRC_URI ?= "file://sitecustomize.py" DISTRO_SRC_URI_linuxstdbase = ""
@@ -19,7 +19,6 @@ SRC_URI += "\ file://setup_py_skip_cross_import_check.patch \ file://add-md5module-support.patch \ file://host_include_contamination.patch \ - file://sys_platform_is_now_always_linux2.patch \ file://fix_for_using_different_libdir.patch \ file://setuptweaks.patch \ file://check-if-target-is-64b-not-host.patch \
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 23/36] distro-tracking: update as per recent recipe upgrades
In reply to Saul WoldFrom: Nitin A Kamble <[email protected]>
--- .../conf/distro/include/distro_tracking_fields.inc | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-)
meta/conf/distro/include/distro_tracking_fields.inc +10 -10
@@ -89,8 +89,8 @@ RECIPE_LATEST_VERSION_pn-loudmouth = "check" RECIPE_MAINTAINER_pn-loudmouth = "Dongxiao Xu <[email protected]>" RECIPE_STATUS_pn-makedepend = "green" -RECIPE_LATEST_VERSION_pn-makedepend = "1.0.3" -RECIPE_LAST_UPDATE_pn-makedepend = "Nov 29, 2010" +RECIPE_LATEST_VERSION_pn-makedepend = "1.0.4" +RECIPE_LAST_UPDATE_pn-makedepend = "Apr 30, 2012" RECIPE_MAINTAINER_pn-makedepend = "Nitin A Kamble <[email protected]>" DISTRO_PN_ALIAS_pn-makedepend = "Mandriva=makedepend Ubuntu=xutils-dev"
@@ -2056,7 +2056,6 @@ DISTRO_PN_ALIAS_pn-ubootchart = "OSPDT upstream=http://code.google.com/p/ubootch RECIPE_STATUS_pn-tiff = "green" RECIPE_LATEST_VERSION_pn-tiff = "4.0.1" -RECIPE_LATEST_RELEASE_DATE_pn-eggdbus = "Feb 18, 2012" RECIPE_LAST_UPDATE_pn-tiff = "Feb 27, 2012" RECIPE_MANUAL_CHECK_DATE_pn-tiff = "Feb 27, 2012" RECIPE_MAINTAINER_pn-tiff = "Saul Wold <[email protected]>"
@@ -3171,9 +3170,9 @@ RECIPE_MANUAL_CHECK_DATE_pn-fstests = "Jul 06, 2011" RECIPE_MAINTAINER_pn-fstests = "Nitin A Kamble <[email protected]>" RECIPE_STATUS_pn-gdb="green" -RECIPE_LATEST_VERSION_pn-gdb="7.4" -RECIPE_LAST_UPDATE_pn-gdb = "Feb 1, 2012" -RECIPE_MANUAL_CHECK_DATE_pn-gdb = "Feb 01, 2012" +RECIPE_LATEST_VERSION_pn-gdb="7.4.1" +RECIPE_LAST_UPDATE_pn-gdb = "May 1, 2012" +RECIPE_MANUAL_CHECK_DATE_pn-gdb = "May 01, 2012" RECIPE_MAINTAINER_pn-gdb = "Nitin A Kamble <[email protected]>" RECIPE_STATUS_pn-intltool="green"
@@ -3291,13 +3290,14 @@ DISTRO_PN_ALIAS_pn-python-scons = "Fedora=scons OpenSuSE=scons Ubuntu=scons Mand RECIPE_MAINTAINER_pn-python-scons = "Nitin A Kamble <[email protected]>" RECIPE_STATUS_pn-python="red" -RECIPE_LATEST_VERSION_pn-python="2.7.1" -RECIPE_LAST_UPDATE_pn-python = "Nov 8, 2010" +RECIPE_LATEST_VERSION_pn-python="2.7.3" +RECIPE_LAST_UPDATE_pn-python = "May 01, 2012" +RECIPE_MANUAL_CHECK_DATE_pn-python = "May 01, 2012" RECIPE_MAINTAINER_pn-python = "Nitin A Kamble <[email protected]>" RECIPE_STATUS_pn-quilt="green" -RECIPE_LATEST_VERSION_pn-quilt="0.51" -RECIPE_LAST_UPDATE_pn-quilt = "Feb 01, 2012" +RECIPE_LATEST_VERSION_pn-quilt="0.60" +RECIPE_LAST_UPDATE_pn-quilt = "Apr 30, 2012" RECIPE_MAINTAINER_pn-quilt = "Nitin A Kamble <[email protected]>" RECIPE_STATUS_pn-tcl="green"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 26/36] xmodmap: Update to 1.0.7
In reply to Saul Wold---
.../{xmodmap_1.0.5.bb => xmodmap_1.0.7.bb} | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-graphics/xorg-app/{xmodmap_1.0.5.bb => xmodmap_1.0.7.bb} (78%)meta/recipes-graphics/xorg-app/xmodmap_1.0.7.bb renamed from meta/recipes-graphics/xorg-app/xmodmap_1.0.5.bb +2 -2
@@ -14,5 +14,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eef098b27f09d0ac39268df0cc2c00b5" PR = "${INC_PR}.0" PE = "1" -SRC_URI[md5sum] = "b18850d373f3717dca569377c449d091" -SRC_URI[sha256sum] = "421ee7a17b0cf559c4901225f70c497e3c5ca205ec7dcc84712055818d2f3402" +SRC_URI[md5sum] = "d9b65f6881afe0d6d9863b30e1081bde" +SRC_URI[sha256sum] = "ef22ede9c4a3c720da539292c6911515a8408e618e0dec6aa2196ee2153de4b5"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 25/36] libtasn1: Update to 2.12
In reply to Saul WoldUse the GUN_MIRROR correctly
---
.../gnutls/{libtasn1_2.11.bb => libtasn1_2.12.bb} | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
rename meta/recipes-support/gnutls/{libtasn1_2.11.bb => libtasn1_2.12.bb} (71%)meta/recipes-support/gnutls/libtasn1_2.12.bb renamed from meta/recipes-support/gnutls/libtasn1_2.11.bb +3 -3
@@ -10,10 +10,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ PR = "r0" -SRC_URI = "ftp://ftp.gnu.org/gnu/libtasn1/libtasn1-${PV}.tar.gz" +SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz" -SRC_URI[md5sum] = "ee8076752f2afcbcd12f3dd9bc622748" -SRC_URI[sha256sum] = "f4d43c77c12ceabf1a72911472fc8c67e43728b328dfb1b83fd519ed5d079afb" +SRC_URI[md5sum] = "4eba39fb962d6cf5a370267eae8ff52b" +SRC_URI[sha256sum] = "0e257a8a01c80e464f73262e13c226e04a15165c2ad087a340f53902281a1c5d" inherit autotools binconfig lib_package
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 27/36] xhost: Update to 1.0.5
In reply to Saul Wold---
.../xorg-app/{xhost_1.0.4.bb => xhost_1.0.5.bb} | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-graphics/xorg-app/{xhost_1.0.4.bb => xhost_1.0.5.bb} (81%)meta/recipes-graphics/xorg-app/xhost_1.0.5.bb renamed from meta/recipes-graphics/xorg-app/xhost_1.0.4.bb +2 -2
@@ -14,5 +14,5 @@ DEPENDS += "libxmu libxau" PR = "${INC_PR}.0" PE = "1" -SRC_URI[md5sum] = "2be663a0afbcc0856c1591477d5bf32a" -SRC_URI[sha256sum] = "5e02c06caeb7a258f3621bf11459a7820cfeaf9bf269c1f8da86d7071346a594" +SRC_URI[md5sum] = "a0fcd2cb6ddd9f378944cc6f4f83cd7c" +SRC_URI[sha256sum] = "2870d19f3f4867ead5ba4e35bb73d1fa302be29d812c13e4195066c78d1f8850"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 28/36] cairo: Update to 1.12.2
In reply to Saul WoldClean up some packaging issues, cairo-sphinx was installed and is a testing tool that does not need to be packaged
---
.../cairo/{cairo_1.10.2.bb => cairo_1.12.2.bb} | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
rename meta/recipes-graphics/cairo/{cairo_1.10.2.bb => cairo_1.12.2.bb} (72%)meta/recipes-graphics/cairo/cairo_1.12.2.bb renamed from meta/recipes-graphics/cairo/cairo_1.10.2.bb +14 -6
@@ -2,12 +2,12 @@ require cairo.inc LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77" -PR = "r6" +PR = "r0" -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz" +SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz" -SRC_URI[md5sum] = "f101a9e88b783337b20b2e26dfd26d5f" -SRC_URI[sha256sum] = "32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41" +SRC_URI[md5sum] = "87649eb75789739d517c743e94879e51" +SRC_URI[sha256sum] = "b786bc4a70542bcb09f2d9d13e5e6a0c86408cbf6d1edde5f0de807eecf93f96" PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
@@ -32,8 +32,16 @@ DESCRIPTION_cairo-perf-utils = "The Cairo library performance utilities" FILES_${PN} = "${libdir}/libcairo.so.*" FILES_${PN}-dev += "${libdir}/cairo/*.la ${libdir}/cairo/*.so" -FILES_${PN}-dbg += "${libdir}/cairo/.debug" -FILES_${PN}-staticdev += "${libdir}/cairo/*.a" +#FILES_${PN}-dbg += "${libdir}/cairo/.debug" +#FILES_${PN}-staticdev += "${libdir}/cairo/*.a" FILES_cairo-gobject = "${libdir}/libcairo-gobject.so.*" FILES_cairo-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*" FILES_cairo-perf-utils = "${bindir}/cairo-trace ${libdir}/cairo/libcairo-trace.so.*" + +do_install_append () { + rm -rf ${D}${bindir}/cairo-sphinx + rm -rf ${D}${libdir}/cairo/cairo-fdr* + rm -rf ${D}${libdir}/cairo/cairo-sphinx* + rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr* + rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx* +}
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 30/36] mc: Update to 4.8.3
In reply to Saul Wold---
.../mc/{mc_4.8.1.bb => mc_4.8.3.bb} | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
rename meta/recipes-extended/mc/{mc_4.8.1.bb => mc_4.8.3.bb} (81%)meta/recipes-extended/mc/mc_4.8.3.bb renamed from meta/recipes-extended/mc/mc_4.8.1.bb +3 -3
@@ -6,12 +6,12 @@ SECTION = "console/utils" DEPENDS = "ncurses glib-2.0" RDEPENDS_${PN} = "ncurses-terminfo" -PR = "r3" +PR = "r0" SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "7d60c87d87b359831d976fa28034935e" -SRC_URI[sha256sum] = "8f9bd09750c65a7786197a8f7e5a10a6dabf8c8737c564079ca393d8ecaf944d" +SRC_URI[md5sum] = "12d38ad4969df3f8bbf66c3967a191ee" +SRC_URI[sha256sum] = "445f286652b85c3e8e87839bad64c28ad2dc80661778571a0b59c2b920ef60ac" inherit autotools gettext
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 29/36] util-linux: Update to 2.21.1
In reply to Saul Wold---
.../{util-linux-2.21 => util-linux}/MCONFIG | 0
.../{util-linux-2.21 => util-linux}/defines.h | 0
.../fix_NL_TIME_FIRST_WEEKDAY.patch | 0
.../{util-linux-2.21 => util-linux}/make_include | 0
.../remove-lscpu.patch | 0
.../remove_sigsetmark.patch | 0
.../{util-linux-2.21 => util-linux}/swapargs.h | 0
.../uclibc-__progname-conflict.patch | 0
.../uclibc-compile.patch | 0
.../util-linux-ng-2.16-mount_lock_path.patch | 0
.../util-linux-ng-replace-siginterrupt.patch | 0
.../{util-linux_2.21.bb => util-linux_2.21.1.bb} | 6 +++---
12 files changed, 3 insertions(+), 3 deletions(-)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/MCONFIG (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/defines.h (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/fix_NL_TIME_FIRST_WEEKDAY.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/make_include (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/remove-lscpu.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/remove_sigsetmark.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/swapargs.h (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/uclibc-__progname-conflict.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/uclibc-compile.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/util-linux-ng-2.16-mount_lock_path.patch (100%)
rename meta/recipes-core/util-linux/{util-linux-2.21 => util-linux}/util-linux-ng-replace-siginterrupt.patch (100%)
rename meta/recipes-core/util-linux/{util-linux_2.21.bb => util-linux_2.21.1.bb} (90%)meta/recipes-core/util-linux/util-linux/MCONFIG renamed from meta/recipes-core/util-linux/util-linux-2.21/MCONFIG +0 -0
meta/recipes-core/util-linux/util-linux/defines.h renamed from meta/recipes-core/util-linux/util-linux-2.21/defines.h +0 -0
meta/recipes-core/util-linux/util-linux/fix_NL_TIME_FIRST_WEEKDAY.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/fix_NL_TIME_FIRST_WEEKDAY.patch +0 -0
meta/recipes-core/util-linux/util-linux/make_include renamed from meta/recipes-core/util-linux/util-linux-2.21/make_include +0 -0
meta/recipes-core/util-linux/util-linux/remove-lscpu.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/remove-lscpu.patch +0 -0
meta/recipes-core/util-linux/util-linux/remove_sigsetmark.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/remove_sigsetmark.patch +0 -0
meta/recipes-core/util-linux/util-linux/swapargs.h renamed from meta/recipes-core/util-linux/util-linux-2.21/swapargs.h +0 -0
meta/recipes-core/util-linux/util-linux/uclibc-__progname-conflict.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/uclibc-__progname-conflict.patch +0 -0
meta/recipes-core/util-linux/util-linux/uclibc-compile.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/uclibc-compile.patch +0 -0
meta/recipes-core/util-linux/util-linux/util-linux-ng-2.16-mount_lock_path.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/util-linux-ng-2.16-mount_lock_path.patch +0 -0
meta/recipes-core/util-linux/util-linux/util-linux-ng-replace-siginterrupt.patch renamed from meta/recipes-core/util-linux/util-linux-2.21/util-linux-ng-replace-siginterrupt.patch +0 -0
meta/recipes-core/util-linux/util-linux_2.21.1.bb renamed from meta/recipes-core/util-linux/util-linux_2.21.bb +3 -3
@@ -1,5 +1,5 @@ MAJOR_VERSION = "2.21" -PR = "r5" +PR = "r0" require util-linux.inc # note that `lscpu' is under GPLv3+
@@ -11,8 +11,8 @@ SRC_URI += "file://util-linux-ng-replace-siginterrupt.patch \ file://fix_NL_TIME_FIRST_WEEKDAY.patch \ " -SRC_URI[md5sum] = "3c7a26963f3921c1e775a80330321870" -SRC_URI[sha256sum] = "2813ae6fe0449b60402e122c2baf97f26aa53e6e2dd05591c6cbcdf67ffdb6c6" +SRC_URI[md5sum] = "3d9ad37bf8c5a8e6d0e165b020cf9ba5" +SRC_URI[sha256sum] = "4bf9641fd58454106589be8a8d1cfd61e7694f0a6912d8095d17b1fb94b85abe" # Only lscpu part is gplv3; rest of the code is not, # so take out the lscpu parts while running non-gplv3 build.
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 32/36] bigreqsproto: Update to 1.1.2
In reply to Saul Wold---
...bigreqsproto_1.1.1.bb => bigreqsproto_1.1.2.bb} | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-graphics/xorg-proto/{bigreqsproto_1.1.1.bb => bigreqsproto_1.1.2.bb} (73%)meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.2.bb renamed from meta/recipes-graphics/xorg-proto/bigreqsproto_1.1.1.bb +2 -2
@@ -13,5 +13,5 @@ BBCLASSEXTEND = "native nativesdk" LIC_FILES_CHKSUM = "file://COPYING;md5=b12715630da6f268d0d3712ee1a504f4" -SRC_URI[md5sum] = "6f6c24436c2b3ab235eb14a85b9aaacf" -SRC_URI[sha256sum] = "1c3b85872b58d215e8fbfdc7c36bb397d10053324a5df8722227d35254fff09a" +SRC_URI[md5sum] = "1a05fb01fa1d5198894c931cf925c025" +SRC_URI[sha256sum] = "462116ab44e41d8121bfde947321950370b285a5316612b8fce8334d50751b1e"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 31/36] xkbcomp: Update to 1.2.4
In reply to Saul Wold---
.../{xkbcomp_1.2.3.bb => xkbcomp_1.2.4.bb} | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
rename meta/recipes-graphics/xorg-app/{xkbcomp_1.2.3.bb => xkbcomp_1.2.4.bb} (78%)meta/recipes-graphics/xorg-app/xkbcomp_1.2.4.bb renamed from meta/recipes-graphics/xorg-app/xkbcomp_1.2.3.bb +2 -3
@@ -13,8 +13,7 @@ PR = "${INC_PR}.0" DEPENDS += "libxkbfile" -SRC_URI[md5sum] = "35622a497894c1cff9182d42696c3e27" -SRC_URI[sha256sum] = "7598e8f44e2643c96d2e37aa44f344f6c48f1a262fc9207154353195b760cb16" - BBCLASSEXTEND = "native" +SRC_URI[md5sum] = "a0fc1ac3fc4fe479ade09674347c5aa0" +SRC_URI[sha256sum] = "91d0c9ab445d21dfe1892dbae5ae5264f39bae68223dd092ffc547c9450b5a2d"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 33/36] xauth: Update to 1.0.7
In reply to Saul Wold---
.../xorg-app/{xauth_1.0.6.bb => xauth_1.0.7.bb} | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-graphics/xorg-app/{xauth_1.0.6.bb => xauth_1.0.7.bb} (69%)meta/recipes-graphics/xorg-app/xauth_1.0.7.bb renamed from meta/recipes-graphics/xorg-app/xauth_1.0.6.bb +2 -2
@@ -9,5 +9,5 @@ DEPENDS += "libxau libxext libxmu" PR = "${INC_PR}.0" PE = "1" -SRC_URI[md5sum] = "105f5b00bb9293b3db36f7e500d4f950" -SRC_URI[sha256sum] = "a686406951f0ed6be45bc26182a1423e2cdffad2d492b33ff3fbf72f7bcb6b0b" +SRC_URI[md5sum] = "cbcbd8f2156a53b609800bec4c6b6c0e" +SRC_URI[sha256sum] = "84f78c08ebc6687e2e36c9ff1f5610988c6a03fc5bf51ef89aec4d155de3028d"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 35/36] builder: Add Please Wait Dialog Box
In reply to Saul WoldAdd dialog box while bitbake starts hob to inform user to please wait for the hob screen to become visible.
--- meta/recipes-graphics/builder/builder_0.1.bb | 7 +++- .../builder/files/builder_hob_start.sh | 2 + .../builder/files/please_wait_dialog.py | 28 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-graphics/builder/files/please_wait_dialog.py
meta/recipes-graphics/builder/builder_0.1.bb +5 -2
@@ -1,11 +1,13 @@ SUMMARY = "New user to do specific job" DESCRIPTION = "This recipe create a new user named ${PN}, who is used for specific jobs like building. The task can be auto started via mini X" SECTION = "x11" -PR = "r2" +PR = "r3" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://builder_hob_start.sh;endline=5;md5=84796c3c41785d86100fdabcbdade00e" -SRC_URI = "file://builder_hob_start.sh" +SRC_URI = "file://builder_hob_start.sh \ + file://please_wait_dialog.py \ + " S = "${WORKDIR}"
@@ -23,5 +25,6 @@ do_install () { install -p -m 755 builder_hob_start.sh ${D}/etc/mini_x/session.d/ chown ${PN}.${PN} ${D}/etc/mini_x/session.d/builder_hob_start.sh + install -p -m 755 please_wait_dialog.py ${D}/etc/mini_x }
meta/recipes-graphics/builder/files/builder_hob_start.sh +2 -0
@@ -18,3 +18,5 @@ sed -i 's/^#PARALLEL_MAKE =/PARALLEL_MAKE =/g' conf/local.conf hob & matchbox-terminal& + +/etc/mini_x/please_wait_dialog.py &
meta/recipes-graphics/builder/files/please_wait_dialog.py new file +28 -0
@@ -0,0 +1,28 @@ +#!/usr/bin/env python +import glib +import gtk + +def destroy_window_cb(widget, event): + gtk.main_quit() + +def all_done_cb(): + gtk.main_quit() + +def dialogue_ui(): + window = gtk.Window() + window.set_title("Please wait...") + window.connect("delete-event", destroy_window_cb) + window.show() + window.set_border_width(12) + + msg = "Please wait while BitBake initializes Hob" + label = gtk.Label(msg) + label.show() + window.add(label) + + glib.timeout_add_seconds(10, all_done_cb) + +if __name__ == "__main__": + dialogue_ui() + gtk.main() +
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 34/36] gnutls: Update to 2.12.18
In reply to Saul WoldChange the SRC_URI to use the GNU_MIRROR
---
.../configure-fix.patch | 0
.../correct_rpl_gettimeofday_signature.patch | 0
.../fix-gettext-version.patch | 0
.../gnutls-openssl.patch | 0
.../gnutls-texinfo-euro.patch | 0
meta/recipes-support/gnutls/gnutls.inc | 2 +-
.../{gnutls_2.12.17.bb => gnutls_2.12.18.bb} | 4 ++--
7 files changed, 3 insertions(+), 3 deletions(-)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/configure-fix.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/correct_rpl_gettimeofday_signature.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/fix-gettext-version.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/gnutls-openssl.patch (100%)
rename meta/recipes-support/gnutls/{gnutls-2.12.17 => gnutls-2.12.18}/gnutls-texinfo-euro.patch (100%)
rename meta/recipes-support/gnutls/{gnutls_2.12.17.bb => gnutls_2.12.18.bb} (77%)meta/recipes-support/gnutls/gnutls-2.12.18/configure-fix.patch renamed from meta/recipes-support/gnutls/gnutls-2.12.17/configure-fix.patch +0 -0
meta/recipes-support/gnutls/gnutls-2.12.18/correct_rpl_gettimeofday_signature.patch renamed from meta/recipes-support/gnutls/gnutls-2.12.17/correct_rpl_gettimeofday_signature.patch +0 -0
meta/recipes-support/gnutls/gnutls-2.12.18/fix-gettext-version.patch renamed from meta/recipes-support/gnutls/gnutls-2.12.17/fix-gettext-version.patch +0 -0
meta/recipes-support/gnutls/gnutls-2.12.18/gnutls-openssl.patch renamed from meta/recipes-support/gnutls/gnutls-2.12.17/gnutls-openssl.patch +0 -0
meta/recipes-support/gnutls/gnutls-2.12.18/gnutls-texinfo-euro.patch renamed from meta/recipes-support/gnutls/gnutls-2.12.17/gnutls-texinfo-euro.patch +0 -0
meta/recipes-support/gnutls/gnutls.inc +1 -1
@@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ file://lib/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://libextra/COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2" +SRC_URI = "${GNU_MIRROR}/gnutls/gnutls-${PV}.tar.bz2" inherit autotools binconfig pkgconfig gettext
meta/recipes-support/gnutls/gnutls_2.12.18.bb renamed from meta/recipes-support/gnutls/gnutls_2.12.17.bb +2 -2
@@ -7,8 +7,8 @@ SRC_URI += "file://gnutls-openssl.patch \ file://configure-fix.patch \ " -SRC_URI[md5sum] = "f08990f1afa4e1d0ee13e64e537c7854" -SRC_URI[sha256sum] = "588ad6b0901c789f2f6afcec88ac4d688801bf1a024c9afa08706bb8d9868bf3" +SRC_URI[md5sum] = "e9215d00d2930e09bc8f23f02b54f2d1" +SRC_URI[sha256sum] = "780b12e3f05191316390611a3d9d982d29ca3f3abc234517b2fc542064b6f07a" python() { if not ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1):
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 36/36] pulseaudio: disable tcpwrap by default
In reply to Saul WoldThis ensures that tcpwrapper usage is always disabled, this was inconsistent because it would test for libwrap and sometimes enable and sometimes not.
This ensures consistent build reproducibility.
--- meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 1 + .../pulseaudio/pulseaudio_1.1.bb | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-)
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +1 -0
@@ -31,6 +31,7 @@ EXTRA_OECONF = "\ --without-hal \ --disable-hal \ --disable-orc \ + --enable-tcpwrap=no \ --with-access-group=audio \ "
meta/recipes-multimedia/pulseaudio/pulseaudio_1.1.bb +1 -1
@@ -1,6 +1,6 @@ require pulseaudio.inc -PR = "r8" +PR = "r9" DEPENDS += "libjson gdbm speex libxml-parser-perl-native"
Signature · 1 line
1.7.7.6