[OE-core] [PATCH] ffmpeg: Add packageconfig for vdpau accelaration
Fixes dangling dependency QA issue WARNING: ffmpeg-3.2.1-r0 do_package_qa: QA Issue: libavutil rdepends on libvdpau, but it isn't a build dependency, missing libvdpau in DEPENDS or PACKAGECONFIG? [build-deps] Signed-off-by: Khem Raj--- meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb index 86279f2..5fca950 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb @@ -57,6 +57,7 @@ PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinge PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora" PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto virtual/libsdl" PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" -- 2.10.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] libc-package.bbclass: split binary localedata even more if asked to
> On Nov 30, 2016, at 3:50 PM, Andreas Oberritterwrote: > > If GLIBC_SPLIT_LC_PACKAGES is set to a non-zero value, convert > glibc-binary-localedata-XX-YY to be a meta package depending on > glibc-binary-localedata-XX-YY-lc-address and so on. This enables > saving quite some space if someone doesn't need LC_COLLATE for > example. > > Some regex code was removed from output_locale_binary_rdepends, > because legitimize_package_name already converts to lowercase. > This looks ok. May be add some documentation around GLIBC_SPLIT_LC_PACKAGES in extended local.conf sample. I am worried about dependency changes, may be comparing old and new would help. > Signed-off-by: Andreas Oberritter > --- > meta/classes/libc-package.bbclass | 39 +-- > 1 file changed, 25 insertions(+), 14 deletions(-) > > diff --git a/meta/classes/libc-package.bbclass > b/meta/classes/libc-package.bbclass > index 2dc90c4..071978b 100644 > --- a/meta/classes/libc-package.bbclass > +++ b/meta/classes/libc-package.bbclass > @@ -9,6 +9,8 @@ > > GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "ondevice" > > +GLIBC_SPLIT_LC_PACKAGES ?= "0" > + > python __anonymous () { > enabled = d.getVar("ENABLE_BINARY_LOCALE_GENERATION", True) > > @@ -219,13 +221,12 @@ python package_do_split_gconvs () { > (locale, encoding, locale)) > > def output_locale_binary_rdepends(name, pkgname, locale, encoding): > -m = re.match("(.*)\.(.*)", name) > -if m: > -libc_name = "%s.%s" % (m.group(1), m.group(2).lower()) > -else: > -libc_name = name > -d.setVar('RDEPENDS_%s' % pkgname, > legitimize_package_name('%s-binary-localedata-%s' \ > -% (mlprefix+bpn, libc_name))) > +dep = legitimize_package_name('%s-binary-localedata-%s' % (bpn, > name)) > +lcsplit = d.getVar('GLIBC_SPLIT_LC_PACKAGES', True) > +if lcsplit and int(lcsplit): > +d.appendVar('PACKAGES', ' ' + dep) > +d.setVar('ALLOW_EMPTY_%s' % dep, '1') > +d.setVar('RDEPENDS_%s' % pkgname, mlprefix + dep) > > commands = {} > > @@ -337,6 +338,11 @@ python package_do_split_gconvs () { > else: > output_locale('%s.%s' % (base, charset), base, charset) > > +def metapkg_hook(file, pkg, pattern, format, basename): > +name = basename.split('/', 1)[0] > +metapkg = legitimize_package_name('%s-binary-localedata-%s' % > (mlprefix+bpn, name)) > +d.appendVar('RDEPENDS_%s' % metapkg, ' ' + pkg) > + > if use_bin == "compile": > makefile = base_path_join(d.getVar("WORKDIR", True), "locale-tree", > "Makefile") > m = open(makefile, "w") > @@ -350,13 +356,18 @@ python package_do_split_gconvs () { > bb.build.exec_func("oe_runmake", d) > bb.note("collecting binary locales from locale tree") > bb.build.exec_func("do_collect_bins_from_locale_tree", d) > -do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ > -output_pattern=bpn+'-binary-localedata-%s', \ > -description='binary locale definition for %s', extra_depends='', > allow_dirs=True) > -elif use_bin == "precompiled": > -do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ > -output_pattern=bpn+'-binary-localedata-%s', \ > -description='binary locale definition for %s', extra_depends='', > allow_dirs=True) > + > +if use_bin in ('compile', 'precompiled'): > +lcsplit = d.getVar('GLIBC_SPLIT_LC_PACKAGES', True) > +if lcsplit and int(lcsplit): > +do_split_packages(d, binary_locales_dir, > file_regex='^(.*/LC_\w+)', \ > +output_pattern=bpn+'-binary-localedata-%s', \ > +description='binary locale definition for %s', > recursive=True, > +hook=metapkg_hook, extra_depends='', allow_dirs=True, > match_path=True) > +else: > +do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ > +output_pattern=bpn+'-binary-localedata-%s', \ > +description='binary locale definition for %s', > extra_depends='', allow_dirs=True) > else: > bb.note("generation of binary locales disabled. this may break i18n!") > > -- > 2.7.4 > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] purpose of variables like "base_bindir_native"?
> On Nov 30, 2016, at 3:34 AM, Robert P. J. Daywrote: > > > i'm putting together a tutorial on the structure of the native > sysroot and how it's built and variables involved, and was poking > around in both bitbake.conf and native.bbclass, and i'm curious about > one or two things. > > i could be totally wrong but it *seems* like there's native-related > content in bitbake.conf that could be moved over to native.bbclass to > reduce a little of the clutter. i'm perusing bitbake.conf and it's > hard to keep track of some of the variables just because there's both > native- and target- related settings in there. but i'll admit i > haven't finished my inspection. > > on a more specific note, in the entire oe-core layer, there are two > references to the variable "base_bindir_native" (formatted for > aesthetics): > > $ grep -rw base_bindir_native * > meta/conf/bitbake.conf:base_bindir_native = "/bin" > meta/conf/bitbake.conf:PATH_prepend = > "${COREBASE}/scripts:i > ${STAGING_BINDIR_TOOLCHAIN}: > ${STAGING_BINDIR_CROSS}: > ${STAGING_DIR_NATIVE}${sbindir_native}: > ${STAGING_BINDIR_NATIVE}: > ${STAGING_DIR_NATIVE}${base_sbindir_native}: > ${STAGING_DIR_NATIVE}${base_bindir_native}:" <- there > > so, given that that variable is set in bitbake.conf, and is only > referenced in that same file, what's the point of making it a > variable? doesn't hurt, of course, but when i see a variable, i > normally assume it's because it might be modified later somewhere, but > i don't see that happening here. is there a reason for it? same thing > could be said for "base_sbindir_native" as well. > > thoughts? you could modify it if you wished to then you just change one var in local metadata > > rday > > -- > > > Robert P. J. Day Ottawa, Ontario, CANADA >http://crashcourse.ca > > Twitter: http://twitter.com/rpjday > LinkedIn: http://ca.linkedin.com/in/rpjday > > > > -- > ___ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] lighttpd: Add many packageconfig options
Respect largefile and xattr distro features. Signed-off-by: Andreas Oberritter--- v2: In 1.4.42, upstream renamed --with-kerberos5 to --with-krb5 and introduced mod_authn_gssapi with a new dependency on krb5. meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb | 37 ++- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb index 322f212..38eaf70 100644 --- a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb +++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb @@ -6,7 +6,6 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" SECTION = "net" -DEPENDS = "zlib libpcre" RDEPENDS_${PN} += " \ lighttpd-module-access \ lighttpd-module-accesslog \ @@ -26,22 +25,30 @@ SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.t SRC_URI[md5sum] = "95eda531c27b161ef8fa2b9bf4948caf" SRC_URI[sha256sum] = "fe0c4a06dd2408a83ee7a2bfedc45e09597f3313cbda82485507573ae8fa948a" -PACKAGECONFIG ??= "openssl \ +PACKAGECONFIG ??= "openssl pcre zlib \ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ +${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'lfs', '', d)} \ +${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " -PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -EXTRA_OECONF = " \ - --without-bzip2 \ - --without-ldap \ - --without-lua \ - --without-memcached \ - --with-pcre \ - --without-webdav-props \ - --without-webdav-locks \ - --disable-static \ -" +PACKAGECONFIG[lfs] = "--enable-lfs,--disable-lfs" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" +PACKAGECONFIG[mmap] = "--enable-mmap,--disable-mmap" +PACKAGECONFIG[libev] = "--with-libev,--without-libev,libev" +PACKAGECONFIG[mysql] = "--with-mysql,--without-mysql,mariadb" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" +PACKAGECONFIG[krb5] = "--with-krb5,--without-krb5,krb5" +PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" +PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" +PACKAGECONFIG[webdav-props] = "--with-webdav-props,--without-webdav-props,libxml2 sqlite3" +PACKAGECONFIG[webdav-locks] = "--with-webdav-locks,--without-webdav-locks,util-linux" +PACKAGECONFIG[gdbm] = "--with-gdbm,--without-gdbm,gdbm" +PACKAGECONFIG[memcache] = "--with-memcached,--without-memcached,libmemcached" +PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua5.1" inherit autotools pkgconfig update-rc.d gettext systemd -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] libc-package.bbclass: split binary localedata even more if asked to
If GLIBC_SPLIT_LC_PACKAGES is set to a non-zero value, convert glibc-binary-localedata-XX-YY to be a meta package depending on glibc-binary-localedata-XX-YY-lc-address and so on. This enables saving quite some space if someone doesn't need LC_COLLATE for example. Some regex code was removed from output_locale_binary_rdepends, because legitimize_package_name already converts to lowercase. Signed-off-by: Andreas Oberritter--- meta/classes/libc-package.bbclass | 39 +-- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass index 2dc90c4..071978b 100644 --- a/meta/classes/libc-package.bbclass +++ b/meta/classes/libc-package.bbclass @@ -9,6 +9,8 @@ GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "ondevice" +GLIBC_SPLIT_LC_PACKAGES ?= "0" + python __anonymous () { enabled = d.getVar("ENABLE_BINARY_LOCALE_GENERATION", True) @@ -219,13 +221,12 @@ python package_do_split_gconvs () { (locale, encoding, locale)) def output_locale_binary_rdepends(name, pkgname, locale, encoding): -m = re.match("(.*)\.(.*)", name) -if m: -libc_name = "%s.%s" % (m.group(1), m.group(2).lower()) -else: -libc_name = name -d.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('%s-binary-localedata-%s' \ -% (mlprefix+bpn, libc_name))) +dep = legitimize_package_name('%s-binary-localedata-%s' % (bpn, name)) +lcsplit = d.getVar('GLIBC_SPLIT_LC_PACKAGES', True) +if lcsplit and int(lcsplit): +d.appendVar('PACKAGES', ' ' + dep) +d.setVar('ALLOW_EMPTY_%s' % dep, '1') +d.setVar('RDEPENDS_%s' % pkgname, mlprefix + dep) commands = {} @@ -337,6 +338,11 @@ python package_do_split_gconvs () { else: output_locale('%s.%s' % (base, charset), base, charset) +def metapkg_hook(file, pkg, pattern, format, basename): +name = basename.split('/', 1)[0] +metapkg = legitimize_package_name('%s-binary-localedata-%s' % (mlprefix+bpn, name)) +d.appendVar('RDEPENDS_%s' % metapkg, ' ' + pkg) + if use_bin == "compile": makefile = base_path_join(d.getVar("WORKDIR", True), "locale-tree", "Makefile") m = open(makefile, "w") @@ -350,13 +356,18 @@ python package_do_split_gconvs () { bb.build.exec_func("oe_runmake", d) bb.note("collecting binary locales from locale tree") bb.build.exec_func("do_collect_bins_from_locale_tree", d) -do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ -output_pattern=bpn+'-binary-localedata-%s', \ -description='binary locale definition for %s', extra_depends='', allow_dirs=True) -elif use_bin == "precompiled": -do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ -output_pattern=bpn+'-binary-localedata-%s', \ -description='binary locale definition for %s', extra_depends='', allow_dirs=True) + +if use_bin in ('compile', 'precompiled'): +lcsplit = d.getVar('GLIBC_SPLIT_LC_PACKAGES', True) +if lcsplit and int(lcsplit): +do_split_packages(d, binary_locales_dir, file_regex='^(.*/LC_\w+)', \ +output_pattern=bpn+'-binary-localedata-%s', \ +description='binary locale definition for %s', recursive=True, +hook=metapkg_hook, extra_depends='', allow_dirs=True, match_path=True) +else: +do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ +output_pattern=bpn+'-binary-localedata-%s', \ +description='binary locale definition for %s', extra_depends='', allow_dirs=True) else: bb.note("generation of binary locales disabled. this may break i18n!") -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/5] kernel.bbclass: Avoid wildcards for kernel images
With multiple kernel images enabled starting with 'vmlinux', e.g. vmlinux.gz and vmlinux.bin, all files landed inside the kernel-vmlinux package. On top of that, even initramfs images were included, e.g. vmlinux.gz-initramfs-*. Signed-off-by: Andreas Oberritter--- meta/classes/kernel.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 0e7ebd4..634553c 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -48,7 +48,7 @@ python __anonymous () { d.appendVar('PACKAGES', ' ' + 'kernel-image-' + typelower) -d.setVar('FILES_kernel-image-' + typelower, '/boot/' + type + '*') +d.setVar('FILES_kernel-image-' + typelower, '/boot/' + type + '-${KERNEL_VERSION_NAME}') d.appendVar('RDEPENDS_kernel-image', ' ' + 'kernel-image-' + typelower) @@ -486,7 +486,7 @@ FILES_${PN} = "" FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order /lib/modules/${KERNEL_VERSION}/modules.builtin" FILES_kernel-image = "" FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} /lib/modules/${KERNEL_VERSION}/build" -FILES_kernel-vmlinux = "/boot/vmlinux*" +FILES_kernel-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}" FILES_kernel-modules = "" RDEPENDS_kernel = "kernel-base" # Allow machines to override this dependency if kernel image files are -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/5] kernel.bbclass: Use real filenames in kernel packages
When iterating over kernel image types to set up their packaging variables, don't use make targets but the real names. It was surprising if both vmlinux.bin and vmlinux.gz were enabled and only the latter had its filename extension removed from the package name. Signed-off-by: Andreas Oberritter--- meta/classes/kernel.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 4aeeacb..0e7ebd4 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -43,7 +43,7 @@ python __anonymous () { typeformake = re.sub(r'\.gz', '', types) d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake) -for type in typeformake.split(): +for type in types.split(): typelower = type.lower() d.appendVar('PACKAGES', ' ' + 'kernel-image-' + typelower) -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 5/5] kernel.bbclass: fix kernel_do_compile for KERNEL_IMAGETYPE = "vmlinux.gz" on mips
The target directory didn't exist. Signed-off-by: Andreas Oberritter--- meta/classes/kernel.bbclass | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index b21cdbc..d07f69c 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -264,6 +264,7 @@ kernel_do_compile() { oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd for type in ${KERNEL_IMAGETYPES} ; do if test "${typeformake}.gz" = "${type}"; then + mkdir -p "${KERNEL_OUTPUT_DIR}" gzip -9c < "${typeformake}" > "${KERNEL_OUTPUT_DIR}/${type}" break; fi -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/5] kernel.bbclass: allow uncompressed initramfs archives
The code failed to copy the initramfs in case it was a plain cpio archive. Signed-off-by: Andreas Oberritter--- meta/classes/kernel.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 25a153c..4aeeacb 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -165,7 +165,7 @@ copy_initramfs() { mkdir -p ${B}/usr # Find and use the first initramfs image archive type we find rm -f ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio - for img in cpio.gz cpio.lz4 cpio.lzo cpio.lzma cpio.xz; do + for img in cpio cpio.gz cpio.lz4 cpio.lzo cpio.lzma cpio.xz; do if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img ${B}/usr/. case $img in -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/5] kernel.bbclass: do not copy bundled initramfs to /boot
These files cause warnings because they don't get packaged, now that they don't land in kernel-vmlinux anymore. Signed-off-by: Andreas Oberritter--- meta/classes/kernel.bbclass | 6 -- 1 file changed, 6 deletions(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 634553c..b21cdbc 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -235,12 +235,6 @@ do_bundle_initramfs () { mv -f ${KERNEL_OUTPUT_DIR}/$type.bak ${KERNEL_OUTPUT_DIR}/$type fi done - # Update install area - for type in ${KERNEL_IMAGETYPES} ; do - echo "There is kernel image bundled with initramfs: ${B}/${KERNEL_OUTPUT_DIR}/$type.initramfs" - install -m 0644 ${B}/${KERNEL_OUTPUT_DIR}/$type.initramfs ${D}/boot/$type-initramfs-${MACHINE}.bin - echo "${B}/${KERNEL_OUTPUT_DIR}/$type.initramfs" - done fi } do_bundle_initramfs[dirs] = "${B}" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] ffmpeg: disable unsupported extensions on mips32r1
| Warning: the `dsp' extension requires MIPS32 revision 2 or greater | Warning: the `dspr2' extension requires MIPS32 revision 2 or greater Signed-off-by: Andreas Oberritter--- meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb index 86279f2..c988d57 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_3.2.1.bb @@ -88,6 +88,7 @@ EXTRA_OECONF = " \ --libdir=${libdir} \ --shlibdir=${libdir} \ --datadir=${datadir}/ffmpeg \ +${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ " do_configure() { -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 6/6] nfs-utils: sync systemd unit files with nfs-utils.git
nfs-server failed to start after installation from a package feed. Signed-off-by: Andreas Oberritter--- .../nfs-utils/nfs-utils/nfs-mountd.service| 7 +-- .../nfs-utils/nfs-utils/nfs-server.service| 11 --- .../nfs-utils/nfs-utils/nfs-statd.service | 9 + 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service index 28b7388..27ea58d 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service @@ -1,7 +1,10 @@ [Unit] Description=NFS Mount Daemon -After=rpcbind.service nfs-server.service -Requires=rpcbind.service nfs-server.service +DefaultDependencies=no +Requires=proc-fs-nfsd.mount +After=proc-fs-nfsd.mount +After=network.target local-fs.target +BindsTo=nfs-server.service ConditionPathExists=@SYSCONFDIR@/exports [Service] diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service index b9dfe74..6481377 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service @@ -1,7 +1,11 @@ [Unit] -Description=NFS Server -Requires=rpcbind.service nfs-mountd.service -After=rpcbind.service +Description=NFS server and services +DefaultDependencies=no +Requires=network.target proc-fs-nfsd.mount +Requires=nfs-mountd.service +Wants=rpcbind.service +After=local-fs.target +After=network.target proc-fs-nfsd.mount rpcbind.service nfs-mountd.service ConditionPathExists=@SYSCONFDIR@/exports [Service] @@ -10,6 +14,7 @@ EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf ExecStartPre=@SBINDIR@/exportfs -r ExecStart=@SBINDIR@/rpc.nfsd $NFSD_OPTS $NFSD_COUNT ExecStop=@SBINDIR@/rpc.nfsd 0 +ExecStopPost=@SBINDIR@/exportfs -au ExecStopPost=@SBINDIR@/exportfs -f ExecReload=@SBINDIR@/exportfs -r StandardError=syslog diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service index 746dacf..6e196b8 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service @@ -1,8 +1,9 @@ [Unit] -Description=NFS file locking service -After=rpcbind.service -Requires=rpcbind.service -Before=remote-fs-pre.target +Description=NFS status monitor for NFSv2/3 locking. +DefaultDependencies=no +Conflicts=umount.target +Requires=nss-lookup.target rpcbind.service +After=network.target nss-lookup.target rpcbind.service [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/6] nfs-utils: create package nfs-utils-mount
Contains just enough to mount and unmount nfs volumes, i.e. the same as nfs-utils-client before commit 39bb7e3 ("nfs-utils: separate package as Debain style"). Drop nfs-utils-client's dependency on bash. It contains two shell scripts, /etc/init.d/nfscommon and /usr/sbin/start-statd, both using /bin/sh. Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb index d4b401e..eb8e99a 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb @@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" # util-linux for libblkid DEPENDS = "libcap libnfsidmap libevent util-linux sqlite3 libtirpc" -RDEPENDS_${PN}-client = "rpcbind bash" RDEPENDS_${PN} = "${PN}-client bash" RRECOMMENDS_${PN} = "kernel-module-nfsd" @@ -71,7 +70,7 @@ PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wr PACKAGECONFIG[nfsidmap] = "--enable-nfsidmap,--disable-nfsidmap,keyutils" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGES =+ "${PN}-client ${PN}-stats" +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ ${localstatedir}/lib/nfs/rmtab \ @@ -79,7 +78,7 @@ CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ ${localstatedir}/lib/nfs/statd/state \ ${sysconfdir}/nfsmount.conf" -FILES_${PN}-client = "${base_sbindir}/*mount.nfs* ${sbindir}/*statd \ +FILES_${PN}-client = "${sbindir}/*statd \ ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ ${sbindir}/showmount ${sbindir}/nfsstat \ ${localstatedir}/lib/nfs \ @@ -87,6 +86,10 @@ FILES_${PN}-client = "${base_sbindir}/*mount.nfs* ${sbindir}/*statd \ ${sysconfdir}/nfsmount.conf \ ${sysconfdir}/init.d/nfscommon \ ${systemd_unitdir}/system/nfs-statd.service" +RDEPENDS_${PN}-client = "${PN}-mount rpcbind" + +FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" + FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" RDEPENDS_${PN}-stats = "python3-core" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 5/6] nfs-utils: don't try to load kernel module
This conflicts with KERNEL_MODULE_AUTOLOAD += "nfsd". Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb | 2 -- 1 file changed, 2 deletions(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb index 018afb7..4355237 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb @@ -126,8 +126,6 @@ do_install_append () { -e 's,@SYSCONFDIR@,${sysconfdir},g' \ ${D}${systemd_unitdir}/system/*.service if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${sysconfdir}/modules-load.d - echo "nfsd" > ${D}${sysconfdir}/modules-load.d/nfsd.conf install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 4/6] nfs-utils: add packageconfig options: blkid, ipv6, libmount, nfsv4, nfsv41 and tirpc
Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb index eb8e99a..018afb7 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb @@ -7,8 +7,7 @@ SECTION = "console/network" LICENSE = "MIT & GPLv2+ & BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" -# util-linux for libblkid -DEPENDS = "libcap libnfsidmap libevent util-linux sqlite3 libtirpc" +DEPENDS = "libcap" RDEPENDS_${PN} = "${PN}-client bash" RRECOMMENDS_${PN} = "kernel-module-nfsd" @@ -54,21 +53,23 @@ SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" # --enable-uuid is need for cross-compiling EXTRA_OECONF = "--with-statduser=rpcuser \ --enable-mountconfig \ ---enable-libmount-mount \ ---disable-nfsv41 \ ---enable-uuid \ --disable-gss \ --disable-nfsdcltrack \ --with-statdpath=/var/lib/nfs/statd \ " -PACKAGECONFIG ??= "tcp-wrappers \ -${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ +PACKAGECONFIG ??= "blkid libmount nfsv4 tcp-wrappers \ +${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 tirpc', '', d)} \ " PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" PACKAGECONFIG[nfsidmap] = "--enable-nfsidmap,--disable-nfsidmap,keyutils" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[tirpc] = "--enable-tirpc,--disable-tirpc,libtirpc" +PACKAGECONFIG[blkid] = "--enable-uuid,--disable-uuid,util-linux" +PACKAGECONFIG[libmount] = "--enable-libmount-mount,--disable-libmount-mount,util-linux" +PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,libevent libnfsidmap keyutils sqlite3" +PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,lvm2" PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/6] keyutils: new recipe (version 1.5.9)
Used by nfs-utils for nfsidmap, if available. Signed-off-by: Andreas Oberritter--- .../nfs-utils/keyutils_1.5.9.bb| 32 ++ 1 file changed, 32 insertions(+) create mode 100644 meta/recipes-connectivity/nfs-utils/keyutils_1.5.9.bb diff --git a/meta/recipes-connectivity/nfs-utils/keyutils_1.5.9.bb b/meta/recipes-connectivity/nfs-utils/keyutils_1.5.9.bb new file mode 100644 index 000..8430bb2 --- /dev/null +++ b/meta/recipes-connectivity/nfs-utils/keyutils_1.5.9.bb @@ -0,0 +1,32 @@ +SUMMARY = "Linux Key Management Utilities" +HOMEPAGE = "https://people.redhat.com/~dhowells/keyutils/; +LICENSE = "GPLv2+ & LGPLv2.1+" +LICENSE_${PN} = "GPLv2+" +LICENSE_lib${PN} = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \ +file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f" + +SRC_URI = "https://people.redhat.com/~dhowells/keyutils/${BP}.tar.bz2; +SRC_URI[md5sum] = "7f8ac985c45086b5fbcd12cecd23cf07" +SRC_URI[sha256sum] = "4da2c5552c688b65ab14d4fd40fbdf720c8b396d8ece643e040cf6e707e083ae" + +EXTRA_OEMAKE = " \ +DESTDIR=${D} \ +ETCDIR=${sysconfdir} \ +BINDIR=${bindir} \ +SBINDIR=${sbindir} \ +SHAREDIR=${datadir}/${BPN} \ +MANDIR=${mandir} \ +INCLUDEDIR=${includedir} \ +LIBDIR=${base_libdir} \ +USRLIBDIR=${libdir} \ +BUILDFOR= \ +" + +do_install() { +oe_runmake install +} + +PACKAGES =+ "lib${PN}" + +FILES_lib${PN} = "${base_libdir}/lib*${SOLIBS}" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/6] nfs-utils: systemd fixes
- Start daemons by default like the initscripts do, but only if /etc/exports exists. - Inform systemd.bbclass about nfs-utils-client package. Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service | 1 + meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service | 1 + meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service index 613ddc0..28b7388 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service @@ -2,6 +2,7 @@ Description=NFS Mount Daemon After=rpcbind.service nfs-server.service Requires=rpcbind.service nfs-server.service +ConditionPathExists=@SYSCONFDIR@/exports [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service index 147d7a7..b9dfe74 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service @@ -2,6 +2,7 @@ Description=NFS Server Requires=rpcbind.service nfs-mountd.service After=rpcbind.service +ConditionPathExists=@SYSCONFDIR@/exports [Service] Type=oneshot diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb index 4d6d808..d4b401e 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.4.bb @@ -48,9 +48,9 @@ INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" inherit autotools-brokensep update-rc.d systemd pkgconfig +SYSTEMD_PACKAGES = "${PN} ${PN}-client" SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" -SYSTEMD_AUTO_ENABLE = "disable" # --enable-uuid is need for cross-compiling EXTRA_OECONF = "--with-statduser=rpcuser \ -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] gptfdisk: put sgdisk into its own package
This allows to avoid pulling in ncurses if only sgdisk is needed. Signed-off-by: Andreas Oberritter--- meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb | 6 ++ 1 file changed, 6 insertions(+) diff --git a/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb b/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb index d62a903..047aa97 100644 --- a/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb +++ b/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb @@ -23,4 +23,10 @@ do_install() { install -m 0755 fixparts ${D}${sbindir} } +PACKAGES =+ "${PN}-sgdisk" + +RRECOMMENDS_${PN} = "${PN}-sgdisk" + +FILES_${PN}-sgdisk = "${sbindir}/sgdisk" + BBCLASSEXTEND = "native nativesdk" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] gptfdisk: fix support for 'large' drives
Make's switch '-e' replaced important compiler flags from the project's Makefile, i.e. -D_FILE_OFFSET_BITS=64. Signed-off-by: Andreas Oberritter--- meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb b/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb index 8fab28f..d62a903 100644 --- a/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb +++ b/meta/recipes-devtools/fdisk/gptfdisk_1.0.1.bb @@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "864c8aee2efdda50346804d7e6230407d5f42a8ae754df70404dd8b2fd UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/gptfdisk/files/gptfdisk/; UPSTREAM_CHECK_REGEX = "/gptfdisk/(?P(\d+[\.\-_]*)+)/" -EXTRA_OEMAKE = "-e MAKEFLAGS=" +EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}'" do_install() { install -d ${D}${sbindir} -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] lighttpd: Add many packageconfig options
Respect largefile and xattr distro features. Signed-off-by: Andreas Oberritter--- meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb | 37 ++- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb index 322f212..237c07f 100644 --- a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb +++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb @@ -6,7 +6,6 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" SECTION = "net" -DEPENDS = "zlib libpcre" RDEPENDS_${PN} += " \ lighttpd-module-access \ lighttpd-module-accesslog \ @@ -26,22 +25,30 @@ SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.t SRC_URI[md5sum] = "95eda531c27b161ef8fa2b9bf4948caf" SRC_URI[sha256sum] = "fe0c4a06dd2408a83ee7a2bfedc45e09597f3313cbda82485507573ae8fa948a" -PACKAGECONFIG ??= "openssl \ +PACKAGECONFIG ??= "openssl pcre zlib \ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ +${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'lfs', '', d)} \ +${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " -PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -EXTRA_OECONF = " \ - --without-bzip2 \ - --without-ldap \ - --without-lua \ - --without-memcached \ - --with-pcre \ - --without-webdav-props \ - --without-webdav-locks \ - --disable-static \ -" +PACKAGECONFIG[lfs] = "--enable-lfs,--disable-lfs" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" +PACKAGECONFIG[mmap] = "--enable-mmap,--disable-mmap" +PACKAGECONFIG[libev] = "--with-libev,--without-libev,libev" +PACKAGECONFIG[mysql] = "--with-mysql,--without-mysql,mariadb" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr" +PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind" +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" +PACKAGECONFIG[kerberos5] = "--with-kerberos5,--without-kerberos5" +PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" +PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" +PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" +PACKAGECONFIG[webdav-props] = "--with-webdav-props,--without-webdav-props,libxml2 sqlite3" +PACKAGECONFIG[webdav-locks] = "--with-webdav-locks,--without-webdav-locks,util-linux" +PACKAGECONFIG[gdbm] = "--with-gdbm,--without-gdbm,gdbm" +PACKAGECONFIG[memcache] = "--with-memcached,--without-memcached,libmemcached" +PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua5.1" inherit autotools pkgconfig update-rc.d gettext systemd -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] lighttpd: access and accesslog are optional modules
Move them from RDEPENDS to RRECOMMENDS. Signed-off-by: Andreas Oberritter--- meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb | 12 +--- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb index 237c07f..cb95f98 100644 --- a/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb +++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.43.bb @@ -6,13 +6,11 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" SECTION = "net" -RDEPENDS_${PN} += " \ - lighttpd-module-access \ - lighttpd-module-accesslog \ - lighttpd-module-indexfile \ - lighttpd-module-dirlisting \ - lighttpd-module-staticfile \ -" +RDEPENDS_${PN} = "lighttpd-module-dirlisting \ + lighttpd-module-indexfile \ + lighttpd-module-staticfile" +RRECOMMENDS_${PN} = "lighttpd-module-access \ + lighttpd-module-accesslog" SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \ file://index.html.lighttpd \ -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] gstreamer1.0: Upgrade to 1.10.1
> On Nov 30, 2016, at 7:17 AM, Burton, Rosswrote: > > Breaks if built from a empty sysroot with wayland enabled: > > gst-plugins-bad: > | make[3]: *** No rule to make target 'viewporter-protocol.c', needed by > 'all'. Stop. > I am not able to reproduce it however I have added a dep on wayland-protocols > Also rtsp-server gains various runtime dependencies on util-linux, can you > verify that these are expected and in the depends? I did a clean build of util-linux and then rtsp-server it reported no missing build time deps I am doing it for raspberrypi, how do you reproduce it. > > Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] parselogs: Whitelist GPT warnings as the device is fully functional
The warning occurs when the GPT image is not the same size than the media into which it's being flashed, causing the backup GPT table not being at the end of the disk. However, this is expected as the image is created before having the information about the destination media. The error is harmless, so it will be whitelisted. Fixes [YOCTO 10481]. Signed-off-by: Jair Gonzalez--- meta/lib/oeqa/runtime/parselogs.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meta/lib/oeqa/runtime/parselogs.py b/meta/lib/oeqa/runtime/parselogs.py index 58f62da..8d396f8 100644 --- a/meta/lib/oeqa/runtime/parselogs.py +++ b/meta/lib/oeqa/runtime/parselogs.py @@ -43,6 +43,7 @@ common_errors = [ "controller can't do DEVSLP, turning off", "stmmac_dvr_probe: warning: cannot get CSR clock", "error: couldn\'t mount because of unsupported optional features", +"GPT: Use GNU Parted to correct GPT errors", ] video_related = [ @@ -69,7 +70,7 @@ qemux86_common = [ 'tsc: HPET/PMTIMER calibration failed', ] + common_errors -ignore_errors = { +ignore_errors = { 'default' : common_errors, 'qemux86' : [ 'Failed to access perfctr msr (MSR', @@ -201,7 +202,7 @@ class ParseLogsTest(oeRuntimeTest): hwi += "***\n" return hwi -#go through the log locations provided and if it's a folder create a list with all the .log files in it, if it's a file just add +#go through the log locations provided and if it's a folder create a list with all the .log files in it, if it's a file just add #it to that list def getLogList(self, log_locations): logs = [] -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v3] python3-setuptools: upgrade to 29.0.1
From: Edwin PlauchuIt is a simultaneous upgrade for python 2 and 3 over setuptools. Signed-off-by: Edwin Plauchu --- meta/recipes-devtools/python/python-setuptools.inc| 4 ++-- .../{python-setuptools_28.8.0.bb => python-setuptools_29.0.1.bb} | 0 .../{python3-setuptools_28.8.0.bb => python3-setuptools_29.0.1.bb}| 0 3 files changed, 2 insertions(+), 2 deletions(-) rename meta/recipes-devtools/python/{python-setuptools_28.8.0.bb => python-setuptools_29.0.1.bb} (100%) rename meta/recipes-devtools/python/{python3-setuptools_28.8.0.bb => python3-setuptools_29.0.1.bb} (100%) diff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python-setuptools.inc index d3eef13..e76484a 100644 --- a/meta/recipes-devtools/python/python-setuptools.inc +++ b/meta/recipes-devtools/python/python-setuptools.inc @@ -9,8 +9,8 @@ SRCNAME = "setuptools" SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz; -SRC_URI[md5sum] = "43d6eb25f60e8a2682a8f826ce9e3f42" -SRC_URI[sha256sum] = "432a1ad4044338c34c2d09b0ff75d509b9849df8cf329f4c1c7706d9c2ba3c61" +SRC_URI[md5sum] = "28ecfd0f2574b489b9a18343879a7324" +SRC_URI[sha256sum] = "b539118819a4857378398891fa5366e090690e46b3e41421a1e07d6e9fd8feb0" UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/setuptools; diff --git a/meta/recipes-devtools/python/python-setuptools_28.8.0.bb b/meta/recipes-devtools/python/python-setuptools_29.0.1.bb similarity index 100% rename from meta/recipes-devtools/python/python-setuptools_28.8.0.bb rename to meta/recipes-devtools/python/python-setuptools_29.0.1.bb diff --git a/meta/recipes-devtools/python/python3-setuptools_28.8.0.bb b/meta/recipes-devtools/python/python3-setuptools_29.0.1.bb similarity index 100% rename from meta/recipes-devtools/python/python3-setuptools_28.8.0.bb rename to meta/recipes-devtools/python/python3-setuptools_29.0.1.bb -- 2.9.3 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v1] wic: Add --exclude-path option to rootfs source plugin.
On Wed, 30 Nov 2016 17:29:23 Ed Bartosh wrote: > On Wed, Nov 30, 2016 at 02:30:12PM +0100, Kristian Amlie wrote: > > In the interest of saving me some build time, am I correct in assuming > > that I need the "qemux86-64" MACHINE target for this to work? It appears > > to be dependent on syslinux which has COMPATIBLE_HOSTS set to non-arm > > only. Sorry, I'm a bit new to this framework. > > You're right. oe-selftest requires qemux86-64 target. That's definitely not a design decision of oe-selftest. If we have certain tests that can only work with a particular configuration, those tests need to be explicitly skipped if that configuration is not active. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] bash: use update-alternatives for the bash binary
Busybox may offer a bash applet. If enabled, the alternatives mechanism avoids breaking logins if bash gets deinstalled while /bin/bash is configured as a login shell. Signed-off-by: Andreas Oberritter--- meta/recipes-extended/bash/bash.inc | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/recipes-extended/bash/bash.inc b/meta/recipes-extended/bash/bash.inc index 1d08526..a05b987 100644 --- a/meta/recipes-extended/bash/bash.inc +++ b/meta/recipes-extended/bash/bash.inc @@ -14,9 +14,11 @@ EXTRA_OECONF = "--enable-job-control --without-bash-malloc" # This is what other major distros do. And this is what we wanted. See bug#5359 and bug#7137. CFLAGS += "-DNON_INTERACTIVE_LOGIN_SHELLS" -ALTERNATIVE_${PN} = "sh" +ALTERNATIVE_${PN} = "bash sh" +ALTERNATIVE_LINK_NAME[bash] = "${base_bindir}/bash" +ALTERNATIVE_TARGET[bash] = "${base_bindir}/bash" ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh" -ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash" +ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash.${BPN}" ALTERNATIVE_PRIORITY = "100" RDEPENDS_${PN} += "base-files" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] util-linux: create own package for lsblk
Let util-linux-bash-completion depend on it, because it uses it. Signed-off-by: Andreas Oberritter--- meta/recipes-core/util-linux/util-linux.inc | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 70cba6b..ae85fd1 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc @@ -30,7 +30,7 @@ PACKAGES =+ "util-linux-agetty util-linux-fdisk util-linux-cfdisk util-linux-sfd util-linux-swaponoff util-linux-losetup util-linux-umount \ util-linux-mount util-linux-readprofile util-linux-uuidd \ util-linux-uuidgen util-linux-lscpu util-linux-fsck util-linux-blkid \ - util-linux-mkfs util-linux-mcookie util-linux-reset \ + util-linux-mkfs util-linux-mcookie util-linux-reset util-linux-lsblk \ util-linux-mkfs.cramfs util-linux-fsck.cramfs util-linux-fstrim \ util-linux-partx util-linux-hwclock util-linux-mountpoint \ util-linux-findfs util-linux-getopt util-linux-sulogin util-linux-prlimit" @@ -95,6 +95,7 @@ FILES_util-linux-prlimit = "${bindir}/prlimit" FILES_util-linux-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" +FILES_util-linux-lsblk = "${bindir}/lsblk" FILES_util-linux-lscpu = "${bindir}/lscpu" FILES_util-linux-fsck = "${base_sbindir}/fsck*" @@ -116,7 +117,7 @@ RDEPENDS_util-linux-reset += "ncurses" RDEPENDS_util-linux-runuser += "libpam" -RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup util-linux-sulogin" +RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup util-linux-sulogin util-linux-lsblk" RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'util-linux-runuser', '', d)}" RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-linux-mount util-linux-readprofile util-linux-mkfs util-linux-mountpoint util-linux-prlimit" @@ -285,6 +286,7 @@ python populate_packages_prepend() { extra_depends='', prepend=True, allow_links=True) } +RDEPENDS_${PN}-bash-completion += "util-linux-lsblk" RDEPENDS_${PN}-ptest = "bash grep coreutils" do_compile_ptest() { -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v3 2/2] gummiboot: Remove old gummiboot recipe, related class and wks file
Since the gummiboot project is no longer being maintained and we are using systemd-boot as a replacement instead, we can now clean up all remaining gummiboot files. [YOCTO #10332] Signed-off-by: Alejandro Hernandez--- meta/classes/gummiboot.bbclass | 121 - ...-C-syntax-errors-for-function-declaration.patch | 74 - .../gummiboot/gummiboot/fix-objcopy.patch | 45 meta/recipes-bsp/gummiboot/gummiboot_git.bb| 39 --- scripts/lib/wic/canned-wks/mkgummidisk.wks | 11 -- 5 files changed, 290 deletions(-) delete mode 100644 meta/classes/gummiboot.bbclass delete mode 100644 meta/recipes-bsp/gummiboot/gummiboot/0001-console-Fix-C-syntax-errors-for-function-declaration.patch delete mode 100644 meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch delete mode 100644 meta/recipes-bsp/gummiboot/gummiboot_git.bb delete mode 100644 scripts/lib/wic/canned-wks/mkgummidisk.wks diff --git a/meta/classes/gummiboot.bbclass b/meta/classes/gummiboot.bbclass deleted file mode 100644 index 4f2dea6..000 --- a/meta/classes/gummiboot.bbclass +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright (C) 2014 Intel Corporation -# -# Released under the MIT license (see COPYING.MIT) - -# gummiboot.bbclass - equivalent of grub-efi.bbclass -# Set EFI_PROVIDER = "gummiboot" to use gummiboot on your live images instead of grub-efi -# (images built by image-live.bbclass or image-vm.bbclass) - -do_bootimg[depends] += "${MLPREFIX}gummiboot:do_deploy" -do_bootdirectdisk[depends] += "${MLPREFIX}gummiboot:do_deploy" - -EFIDIR = "/EFI/BOOT" - -GUMMIBOOT_CFG ?= "${S}/loader.conf" -GUMMIBOOT_ENTRIES ?= "" -GUMMIBOOT_TIMEOUT ?= "10" - -# Need UUID utility code. -inherit fs-uuid - -efi_populate() { -DEST=$1 - -EFI_IMAGE="gummibootia32.efi" -DEST_EFI_IMAGE="bootia32.efi" -if [ "${TARGET_ARCH}" = "x86_64" ]; then -EFI_IMAGE="gummibootx64.efi" -DEST_EFI_IMAGE="bootx64.efi" -fi - -install -d ${DEST}${EFIDIR} -# gummiboot requires these paths for configuration files -# they are not customizable so no point in new vars -install -d ${DEST}/loader -install -d ${DEST}/loader/entries -install -m 0644 ${DEPLOY_DIR_IMAGE}/${EFI_IMAGE} ${DEST}${EFIDIR}/${DEST_EFI_IMAGE} -EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') -printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_EFI_IMAGE" >${DEST}/startup.nsh -install -m 0644 ${GUMMIBOOT_CFG} ${DEST}/loader/loader.conf -for i in ${GUMMIBOOT_ENTRIES}; do -install -m 0644 ${i} ${DEST}/loader/entries -done -} - -efi_iso_populate() { -iso_dir=$1 -efi_populate $iso_dir -mkdir -p ${EFIIMGDIR}/${EFIDIR} -cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} -cp $iso_dir/vmlinuz ${EFIIMGDIR} -EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') -echo "fs0:${EFIPATH}\\${DEST_EFI_IMAGE}" > ${EFIIMGDIR}/startup.nsh -if [ -f "$iso_dir/initrd" ] ; then -cp $iso_dir/initrd ${EFIIMGDIR} -fi -} - -efi_hddimg_populate() { -efi_populate $1 -} - -python build_efi_cfg() { -s = d.getVar("S", True) -labels = d.getVar('LABELS', True) -if not labels: -bb.debug(1, "LABELS not defined, nothing to do") -return - -if labels == []: -bb.debug(1, "No labels, nothing to do") -return - -cfile = d.getVar('GUMMIBOOT_CFG', True) -try: - cfgfile = open(cfile, 'w') -except OSError: -bb.fatal('Unable to open %s' % cfile) - -cfgfile.write('# Automatically created by OE\n') -cfgfile.write('default %s\n' % (labels.split()[0])) -timeout = d.getVar('GUMMIBOOT_TIMEOUT', True) -if timeout: -cfgfile.write('timeout %s\n' % timeout) -else: -cfgfile.write('timeout 10\n') -cfgfile.close() - -for label in labels.split(): -localdata = d.createCopy() - -overrides = localdata.getVar('OVERRIDES', True) -if not overrides: -bb.fatal('OVERRIDES not defined') - -entryfile = "%s/%s.conf" % (s, label) -d.appendVar("GUMMIBOOT_ENTRIES", " " + entryfile) -try: -entrycfg = open(entryfile, "w") -except OSError: -bb.fatal('Unable to open %s' % entryfile) -localdata.setVar('OVERRIDES', label + ':' + overrides) -bb.data.update_data(localdata) - -entrycfg.write('title %s\n' % label) -entrycfg.write('linux /vmlinuz\n') - -append = localdata.getVar('APPEND', True) -initrd = localdata.getVar('INITRD', True) - -if initrd: -entrycfg.write('initrd /initrd\n') -lb = label -if label == "install": -lb = "install-efi" -entrycfg.write('options LABEL=%s ' % lb) -if append: -append = replace_rootfs_uuid(d, append) -
[OE-core] [PATCH v3 1/2] gummiboot: Remove/change gummiboot references with systemd-boot
After systemd-boot was introduced, its been tested for a while with no major issues being found until now, this patch completely replaces all gummiboot instances with systemd-boot ones, taking the next step into cleaning up systemd-boot/gummiboot. [YOCTO #10332] Signed-off-by: Alejandro Hernandez--- meta/classes/fs-uuid.bbclass | 2 +- meta/classes/systemd-boot.bbclass | 4 +--- meta/conf/distro/include/distro_alias.inc | 2 +- meta/lib/oeqa/controllers/masterimage.py | 4 ++-- meta/lib/oeqa/selftest/wic.py | 6 ++--- meta/recipes-bsp/systemd-boot/systemd-boot.bb | 2 +- .../initrdscripts/files/init-install-efi-testfs.sh | 12 +- .../initrdscripts/files/init-install-efi.sh| 12 +- scripts/contrib/mkefidisk.sh | 26 +++--- scripts/lib/wic/plugins/source/bootimg-efi.py | 22 +- 10 files changed, 44 insertions(+), 48 deletions(-) diff --git a/meta/classes/fs-uuid.bbclass b/meta/classes/fs-uuid.bbclass index bd2613c..1d5d0c3 100644 --- a/meta/classes/fs-uuid.bbclass +++ b/meta/classes/fs-uuid.bbclass @@ -13,7 +13,7 @@ def get_rootfs_uuid(d): bb.fatal('Could not determine filesystem UUID of %s' % rootfs) # Replace the special <> inside a string (like the -# root= APPEND string in a syslinux.cfg or gummiboot entry) with the +# root= APPEND string in a syslinux.cfg or systemd-boot entry) with the # actual UUID of the rootfs. Does nothing if the special string # is not used. def replace_rootfs_uuid(d, string): diff --git a/meta/classes/systemd-boot.bbclass b/meta/classes/systemd-boot.bbclass index 05244c7..3398218 100644 --- a/meta/classes/systemd-boot.bbclass +++ b/meta/classes/systemd-boot.bbclass @@ -4,9 +4,7 @@ # systemd-boot.bbclass - The "systemd-boot" is essentially the gummiboot merged into systemd. #The original standalone gummiboot project is dead without any more -#maintenance. As a start point, we replace all gummitboot occurrences -#with systemd-boot in gummiboot.bbclass to have a base version of this -#systemd-boot.bbclass. +#maintenance. # # Set EFI_PROVIDER = "systemd-boot" to use systemd-boot on your live images instead of grub-efi # (images built by image-live.bbclass or image-vm.bbclass) diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc index 10efb09..9c82854 100644 --- a/meta/conf/distro/include/distro_alias.inc +++ b/meta/conf/distro/include/distro_alias.inc @@ -135,7 +135,7 @@ DISTRO_PN_ALIAS_pn-gtk-doc = "Fedora=gtk-doc Ubuntu=gtk-doc" DISTRO_PN_ALIAS_pn-gtk-engines = "Fedora=gtk2-engines OpenSuSE=gtk2-engines Ubuntu=gtk2-engines Mandriva=gtk-engines2 Debian=gtk2-engines" DISTRO_PN_ALIAS_pn-gtk-sato-engine = "OpenedHand" DISTRO_PN_ALIAS_pn-gtk-icon-utils-native = "OSPDT" -DISTRO_PN_ALIAS_pn-gummiboot = "Debian=gummiboot Fedora=gummiboot" +DISTRO_PN_ALIAS_pn-systemd-boot = "Ubuntu=systemd-boot Fedora=systemd-boot" DISTRO_PN_ALIAS_pn-hello-mod = "OE-Core" DISTRO_PN_ALIAS_pn-hostap-conf = "OE-Core" DISTRO_PN_ALIAS_pn-hwlatdetect = "OSPDT" diff --git a/meta/lib/oeqa/controllers/masterimage.py b/meta/lib/oeqa/controllers/masterimage.py index 9ce3bf8..7fcbb6d 100644 --- a/meta/lib/oeqa/controllers/masterimage.py +++ b/meta/lib/oeqa/controllers/masterimage.py @@ -159,10 +159,10 @@ class MasterImageHardwareTarget(oeqa.targetcontrol.BaseTarget, metaclass=ABCMeta self.power_cycle(self.connection) -class GummibootTarget(MasterImageHardwareTarget): +class SystemdbootTarget(MasterImageHardwareTarget): def __init__(self, d): -super(GummibootTarget, self).__init__(d) +super(SystemdbootTarget, self).__init__(d) # this the value we need to set in the LoaderEntryOneShot EFI variable # so the system boots the 'test' bootloader label and not the default # The first four bytes are EFI bits, and the rest is an utf-16le string diff --git a/meta/lib/oeqa/selftest/wic.py b/meta/lib/oeqa/selftest/wic.py index faac11e..61081cc 100644 --- a/meta/lib/oeqa/selftest/wic.py +++ b/meta/lib/oeqa/selftest/wic.py @@ -243,9 +243,9 @@ class Wic(oeSelfTest): self.assertEqual(1, len(glob(self.resultdir + "%s-*direct" % image))) @testcase(1349) -def test_mkgummidisk(self): -"""Test creation of mkgummidisk image""" -image = "mkgummidisk" +def test_systemd-bootdisk(self): +"""Test creation of systemd-bootdisk image""" +image = "systemd-bootdisk" self.assertEqual(0, runCmd("wic create %s -e core-image-minimal" \ % image).status) self.assertEqual(1, len(glob(self.resultdir + "%s-*direct" % image))) diff --git
[OE-core] [PATCH v2] python3-setuptools: upgrade to 29.0.1
Signed-off-by: Edwin Plauchu--- meta/recipes-devtools/python/python-setuptools.inc| 4 ++-- .../{python3-setuptools_28.8.0.bb => python3-setuptools_29.0.1.bb}| 0 2 files changed, 2 insertions(+), 2 deletions(-) rename meta/recipes-devtools/python/{python3-setuptools_28.8.0.bb => python3-setuptools_29.0.1.bb} (100%) diff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python-setuptools.inc index d3eef13..e76484a 100644 --- a/meta/recipes-devtools/python/python-setuptools.inc +++ b/meta/recipes-devtools/python/python-setuptools.inc @@ -9,8 +9,8 @@ SRCNAME = "setuptools" SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz; -SRC_URI[md5sum] = "43d6eb25f60e8a2682a8f826ce9e3f42" -SRC_URI[sha256sum] = "432a1ad4044338c34c2d09b0ff75d509b9849df8cf329f4c1c7706d9c2ba3c61" +SRC_URI[md5sum] = "28ecfd0f2574b489b9a18343879a7324" +SRC_URI[sha256sum] = "b539118819a4857378398891fa5366e090690e46b3e41421a1e07d6e9fd8feb0" UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/setuptools; diff --git a/meta/recipes-devtools/python/python3-setuptools_28.8.0.bb b/meta/recipes-devtools/python/python3-setuptools_29.0.1.bb similarity index 100% rename from meta/recipes-devtools/python/python3-setuptools_28.8.0.bb rename to meta/recipes-devtools/python/python3-setuptools_29.0.1.bb -- 2.9.3 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/2] oeqa/utils/metadata.py: Add metadata library
On Tuesday, November 29, 2016 04:17:25 PM Benjamin Esquivel wrote: > On Tue, 2016-11-29 at 08:42 -0600, mariano.lo...@linux.intel.com wrote: > > From: Mariano Lopez> > > > Adds functions to get metadata from the host running the tests. > > > > [YOCTO #9954] > > > > Signed-off-by: Mariano Lopez > > --- > > meta/lib/oeqa/utils/metadata.py | 77 > > + > > 1 file changed, 77 insertions(+) > > create mode 100644 meta/lib/oeqa/utils/metadata.py > > > > diff --git a/meta/lib/oeqa/utils/metadata.py > > b/meta/lib/oeqa/utils/metadata.py > > new file mode 100644 > > index 000..3be805c > > --- /dev/null > > +++ b/meta/lib/oeqa/utils/metadata.py > > @@ -0,0 +1,77 @@ > > +# Copyright (C) 2016 Intel Corporation > > +# > > +# Released under the MIT license (see COPYING.MIT) > > +# > > +# Functions to get metadata from the testing host used > > +# for analytics of test results. > > + > > +from git import Repo > > +from collections import OrderedDict > > +from collections.abc import MutableMapping > > +from xml.dom.minidom import parseString > > +from xml.etree.ElementTree import Element, tostring > > + > > +from oe.lsb import distro_identifier > > +from oeqa.utils.commands import runCmd, get_bb_var > > + > > +def metadata_from_bb(): > > +""" Returns test's metadata as OrderedDict. > > + > > +Data will be gathered using bitbake -e thanks to get_bb_var. > > +""" > > + > > +info_dict = OrderedDict() > > +hostname = runCmd('hostname') > > +info_dict['hostname'] = hostname.output > > +info_dict['machine'] = get_bb_var('MACHINE') > > +info_dict['distro'] = get_bb_var('DISTRO') > > +info_dict['distro_version'] = get_bb_var('DISTRO_VERSION') > > +host_distro= distro_identifier() > > +host_distro, _, host_distro_release = host_distro.partition('-') > > +info_dict['host_distro'] = host_distro > > +info_dict['host_distro_release'] = host_distro_release > > +info_dict['layers'] = get_layers(get_bb_var('BBLAYERS')) > is none of the upper statements going to throw exceptions? otherwise > try/except as appropriate. > > +return info_dict > > + > > +def metadata_from_data_store(d): > > +""" Returns test's metadata as OrderedDict. > > + > > +Data will be collected from the provided data store. > > +""" > > +# TODO: Getting metadata from the data store would > > +# be useful when running within bitbake. > > +pass > > + > > +def get_layers(layers): > > +""" Returns layer name, branch, and revision as OrderedDict. """ > > + > > +layer_dict = OrderedDict() > > +for layer in layers.split(): > > +layer_name = os.path.basename(layer) > > +layer_dict[layer_name] = OrderedDict() > > +repo = Repo(layer, search_parent_directories=True) > > +revision, branch = repo.head.object.name_rev.split() > > +layer_dict[layer_name]['branch'] = branch > > +layer_dict[layer_name]['revision'] = revision > same here for the try/except, did you test with usual cases of zero > input and unexisting path's, etc? > > +return layer_dict > > + > > +def write_metadata_file(file_path, metadata): > > +""" Writes metadata to a XML file in directory. """ > > + > > +xml = dict_to_XML('metadata', metadata) > > +xml_doc = parseString(tostring(xml).decode('UTF-8')) > > +with open(file_path, 'w') as f: > > +f.write(xml_doc.toprettyxml()) > > + > > +def dict_to_XML(tag, dictionary): > > +""" Return XML element converting dicts recursively. """ > > + > > +elem = Element(tag) > > +for key, val in dictionary.items(): > > +if isinstance(val, MutableMapping): > > +child = (dict_to_XML(key, val)) > > +else: > > +child = Element(key) > > +child.text = str(val) > > +elem.append(child) > > +return elem > > -- > > 2.7.3 > > I'll implement the proposded changes and will send another version Mariano -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] add minicoredumper tool/libs
The minicoredumper project provides tools and libraries for extending the Linux core dump facility in order to produce very small and highlx customizable core dumps. This is particularly interesting for embedded projects. Signed-off-by: John Ogness--- .../minicoredumper/remove-script-deps.patch| 22 +++ .../minicoredumper/minicoredumper_2.0.0.bb | 73 ++ 2 files changed, 95 insertions(+) create mode 100644 meta/recipes-extended/minicoredumper/minicoredumper/remove-script-deps.patch create mode 100644 meta/recipes-extended/minicoredumper/minicoredumper_2.0.0.bb diff --git a/meta/recipes-extended/minicoredumper/minicoredumper/remove-script-deps.patch b/meta/recipes-extended/minicoredumper/minicoredumper/remove-script-deps.patch new file mode 100644 index 000..bcb64af --- /dev/null +++ b/meta/recipes-extended/minicoredumper/minicoredumper/remove-script-deps.patch @@ -0,0 +1,22 @@ +--- a/etc/init.d/minicoredumper.in 2016-11-22 10:44:28.06000 + b/etc/init.d/minicoredumper.in 2016-11-22 10:49:24.65600 + +@@ -33,13 +33,13 @@ + # Read configuration variable file if it is present + [ -r @initdefaultsdir@/$NAME ] && . @initdefaultsdir@/$NAME + +-# Load the VERBOSE setting and other rcS variables +-. /lib/init/vars.sh ++log_daemon_msg() { ++ echo "$@" ++} + +-# Define LSB log_* functions. +-# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +-# and status_of_proc is working. +-. /lib/lsb/init-functions ++log_end_msg() { ++ [ $1 -eq 0 ] || echo "$NAME: failed" ++} + + # + # Function that starts the daemon/service diff --git a/meta/recipes-extended/minicoredumper/minicoredumper_2.0.0.bb b/meta/recipes-extended/minicoredumper/minicoredumper_2.0.0.bb new file mode 100644 index 000..7f7d5e2 --- /dev/null +++ b/meta/recipes-extended/minicoredumper/minicoredumper_2.0.0.bb @@ -0,0 +1,73 @@ +SUMMARY = "generate minimal and customized core dump files on Linux" +DESCRIPTION = "minicoredumper is a program that handles the creation of core dump files on \ +Linux. It can produce much smaller core dump files by making use of sparse \ +files, compression, and allowing the user to configure what parts of the \ +process memory image should be dumped." +HOMEPAGE = "https://www.linutronix.de/minicoredumper; +BUGTRACKER = "https://bugs.linuxfoundation.org/buglist.cgi?product=Diamon=minicoredumper; + +SECTION = "devel" + +LICENSE = "BSD-2-Clause & LGPL-2.1" +LICENSE_minicoredumper = "BSD-2-Clause" +LICENSE_minicoredumper-utils = "BSD-2-Clause" +LICENSE_libminicoredumper-dev = "LGPL-2.1" +LICENSE_libminicoredumper = "LGPL-2.1" + +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=709087c2ed0acda54a4d91497a889e42 \ + file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \ + file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \ + " + +DEPENDS = "elfutils json-c pkgconfig" +RDEPENDS_${PN} = "base-files" + +SRC_URI = " \ + https://linutronix.de/minicoredumper/files/minicoredumper-${PV}.tar.xz \ + file://remove-script-deps.patch \ + " + +SRC_URI[md5sum] = "543001b51de20a8b17fce462a7dfa377" +SRC_URI[sha256sum] = "6b5355f94b8ba676515b4243752f231ace200dbb9195065bc2fdd397ae20d8c5" + +PACKAGECONFIG ??= "" + +EXTRA_OECONF = "" + +PACKAGES += "minicoredumper-utils libminicoredumper-dev libminicoredumper" + +FILES_${PN} = " \ + ${sbindir}/minicoredumper \ + ${sbindir}/minicoredumper_regd \ + ${sysconfdir}/minicoredumper \ + ${sysconfdir}/init.d \ + ${sysconfdir}/default \ + ${localstatedir}/crash \ + ${localstatedir}/run \ + /run \ + " +FILES_minicoredumper-utils = " \ + ${bindir}/coreinject \ + ${sbindir}/minicoredumper_trigger \ + " +FILES_libminicoredumper-dev = " \ + ${includedir}/* \ + ${libdir}/lib*.a \ + ${libdir}/lib*.la \ + ${libdir}/lib*.so \ + ${libdir}/pkgconfig/* \ + " +FILES_${PN}-dbg = " \ + ${libdir}/.debug \ + ${bindir}/.debug \ + ${sbindir}/.debug \ + ${prefix}/src/debug \ + " +FILES_libminicoredumper = "${libdir}/lib*.so.*" +FILES_libminicoredumper-doc = "${mandir}/*/*" + +INITSCRIPT_NAME = "minicoredumper" +INITSCRIPT_PARAMS = "defaults 8" + +inherit autotools update-rc.d -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] python3-setuptools: upgrade to 29.0.1
From: Edwin PlauchuIt is a simultaneous upgrade for python 2 and 3 over setuptools. Signed-off-by: Edwin Plauchu --- meta/recipes-devtools/python/python-setuptools.inc | 6 +- ...tools_22.0.5.bb => python-setuptools_28.8.0.bb} | 0 ...ools_22.0.5.bb => python3-setuptools_29.0.1.bb} | 0 tatus | 109 + 4 files changed, 112 insertions(+), 3 deletions(-) rename meta/recipes-devtools/python/{python-setuptools_22.0.5.bb => python-setuptools_28.8.0.bb} (100%) rename meta/recipes-devtools/python/{python3-setuptools_22.0.5.bb => python3-setuptools_29.0.1.bb} (100%) create mode 100644 tatus diff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python-setuptools.inc index 92ca9a0..e76484a 100644 --- a/meta/recipes-devtools/python/python-setuptools.inc +++ b/meta/recipes-devtools/python/python-setuptools.inc @@ -3,14 +3,14 @@ HOMEPAGE = "https://pypi.python.org/pypi/setuptools; SECTION = "devel/python" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://setup.py;beginline=134;endline=134;md5=3e8df024d6c1442d18e84acf8fbbc475" +LIC_FILES_CHKSUM = "file://setup.py;beginline=146;endline=146;md5=3e8df024d6c1442d18e84acf8fbbc475" SRCNAME = "setuptools" SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz; -SRC_URI[md5sum] = "869f3029dcc66a64ba39875e2a2f044a" -SRC_URI[sha256sum] = "19aad19471052d5daefe96f2c1fa2e88dcdb17488bf8708d7e6356881ea833cb" +SRC_URI[md5sum] = "28ecfd0f2574b489b9a18343879a7324" +SRC_URI[sha256sum] = "b539118819a4857378398891fa5366e090690e46b3e41421a1e07d6e9fd8feb0" UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/setuptools; diff --git a/meta/recipes-devtools/python/python-setuptools_22.0.5.bb b/meta/recipes-devtools/python/python-setuptools_28.8.0.bb similarity index 100% rename from meta/recipes-devtools/python/python-setuptools_22.0.5.bb rename to meta/recipes-devtools/python/python-setuptools_28.8.0.bb diff --git a/meta/recipes-devtools/python/python3-setuptools_22.0.5.bb b/meta/recipes-devtools/python/python3-setuptools_29.0.1.bb similarity index 100% rename from meta/recipes-devtools/python/python3-setuptools_22.0.5.bb rename to meta/recipes-devtools/python/python3-setuptools_29.0.1.bb diff --git a/tatus b/tatus new file mode 100644 index 000..18b9527 --- /dev/null +++ b/tatus @@ -0,0 +1,109 @@ +[1mdiff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python-setuptools.inc[m +[1mindex 92ca9a0..d3eef13 100644[m +[1m--- a/meta/recipes-devtools/python/python-setuptools.inc[m +[1m+++ b/meta/recipes-devtools/python/python-setuptools.inc[m +[36m@@ -3,14 +3,14 @@[m [mHOMEPAGE = "https://pypi.python.org/pypi/setuptools;[m + SECTION = "devel/python"[m + LICENSE = "MIT"[m + [m +[31m-LIC_FILES_CHKSUM = "file://setup.py;beginline=134;endline=134;md5=3e8df024d6c1442d18e84acf8fbbc475"[m +[32m+[m[32mLIC_FILES_CHKSUM = "file://setup.py;beginline=146;endline=146;md5=3e8df024d6c1442d18e84acf8fbbc475"[m + [m + SRCNAME = "setuptools"[m + [m + SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz;[m + [m +[31m-SRC_URI[md5sum] = "869f3029dcc66a64ba39875e2a2f044a"[m +[31m-SRC_URI[sha256sum] = "19aad19471052d5daefe96f2c1fa2e88dcdb17488bf8708d7e6356881ea833cb"[m +[32m+[m[32mSRC_URI[md5sum] = "43d6eb25f60e8a2682a8f826ce9e3f42"[m +[32m+[m[32mSRC_URI[sha256sum] = "432a1ad4044338c34c2d09b0ff75d509b9849df8cf329f4c1c7706d9c2ba3c61"[m + [m + UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/setuptools;[m + [m +[1mdiff --git a/meta/recipes-devtools/python/python-setuptools_22.0.5.bb b/meta/recipes-devtools/python/python-setuptools_22.0.5.bb[m +[1mdeleted file mode 100644[m +[1mindex 526474c..000[m +[1m--- a/meta/recipes-devtools/python/python-setuptools_22.0.5.bb[m +[1m+++ /dev/null[m +[36m@@ -1,38 +0,0 @@[m +[31m-require python-setuptools.inc[m +[31m-[m +[31m-PROVIDES = "python-distribute"[m +[31m-[m +[31m-DEPENDS += "python"[m +[31m-DEPENDS_class-native += "python-native"[m +[31m-[m +[31m-inherit distutils[m +[31m-[m +[31m-DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${PYTHON_SITEPACKAGES_DIR}"[m +[31m-[m +[31m-RDEPENDS_${PN} = "\[m +[31m- python-stringold \[m +[31m- python-email \[m +[31m- python-shell \[m +[31m- python-distutils \[m +[31m- python-compression \[m +[31m- python-pkgutil \[m +[31m- python-plistlib \[m +[31m- python-numbers \[m +[31m- python-html \[m +[31m- python-netserver \[m +[31m- python-ctypes \[m +[31m- python-subprocess \[m +[31m- python-unittest \[m +[31m- python-compile \[m +[31m-"[m +[31m-[m +[31m-RDEPENDS_${PN}_class-native = "\[m +[31m- python-distutils \[m +[31m- python-compression \[m +[31m-"[m +[31m-[m
Re: [OE-core] [PATCH] gstreamer1.0: Upgrade to 1.10.1
On Wed, Nov 30, 2016 at 7:17 AM, Burton, Rosswrote: > Breaks if built from a empty sysroot with wayland enabled: > > gst-plugins-bad: > | make[3]: *** No rule to make target 'viewporter-protocol.c', needed by > 'all'. Stop. > > Also rtsp-server gains various runtime dependencies on util-linux, can you > verify that these are expected and in the depends? I havent done individual builds so there might be issues let me do these and send v2 > > Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v1] wic: Add --exclude-path option to rootfs source plugin.
On Wed, Nov 30, 2016 at 02:30:12PM +0100, Kristian Amlie wrote: > On 28/11/16 12:18, Ed Bartosh wrote: > > I'd appreciate if you also do the following before sending v2: > > - check that your code doesn't regress pylint checks > > Is there an official process here? Sorry, it's not very well documented. No official process yet, I'm sorry. I can put it on wiki if it helps. > Just running pylint3 manually on the scripts/lib/wic folder gives > identical results, however, running on rootfs.py alone, the rating > increases: > > Your code has been rated at 5.67/10 (previous run: 2.26/10, +3.41) Looks good to me. Thanks. Running pylint on the files you've changed before and after the changes should be enough. > > - add test case for your code to meta/lib/oeqa/selftest/wic.py > > - check that your code doesn't break oe-selftest --coverage -r wic and > >doesn't regress test coverage > > In the interest of saving me some build time, am I correct in assuming > that I need the "qemux86-64" MACHINE target for this to work? It appears > to be dependent on syslinux which has COMPATIBLE_HOSTS set to non-arm > only. Sorry, I'm a bit new to this framework. > You're right. oe-selftest requires qemux86-64 target. Even if you usually work in different environment it makes sense to run oe-selftest to ensure that your changes don't breake it. This is because our maintainers use oe-selftest results as one of the acceptance criterias. It means that your changes would be be rejected anyway if they break oe-selftest, so it's better to check it in advance. -- Regards, Ed -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] gstreamer1.0: Upgrade to 1.10.1
Breaks if built from a empty sysroot with wayland enabled: gst-plugins-bad: | make[3]: *** No rule to make target 'viewporter-protocol.c', needed by 'all'. Stop. Also rtsp-server gains various runtime dependencies on util-linux, can you verify that these are expected and in the depends? Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] tslib 1.3
On Wed, Nov 30, 2016 at 2:39 AM, Martin Kepplinger < martin.kepplin...@ginzinger.com> wrote: > I found some discussions on tslib in your archives and want to give you > a little update. I'm not even sure core is the correct list for this. > > I'm working on tslib for quite some time now. The project page is > https://github.com/kergoth/tslib and has been for quite some time, and > I'm maintaining it there. > > With version 1.3 there shouldn't be any need for your environment to be > compatible with tslib's API, as tslib/tools/ts_uinput provides an input > event device to use: > > https://github.com/kergoth/tslib#use-tslib-via-a-normal-input-event-device > > and you can run it as a daemon (ts_uinput -d). > > As of now tslib-1.3-rc1 is out for testing. It adds a new multitouch > API, but ts_uinput should work for single- and multitouch devices and > there shouldn't be a need to wait for Qt or X tslib wrappers to > implement tslib's API or to even have them at all. > > The more feedback we get, the earlier we can consider releasing it as > version 1.3. > > I hope this is useful, > This sounds great, thanks again for taking over as project maintainer. -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Senior Software Engineer, Mentor Graphics -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [oe-commits] [openembedded-core] 01/22: libsdl2: update to 2.0.5
On Mon, Oct 31, 2016 at 02:23:55PM +, g...@git.openembedded.org wrote: > rpurdie pushed a commit to branch master-next > in repository openembedded-core. > > commit 97fff54efe6b03798ad1c5e39155eaeab0a33300 > Author: Andreas Müller> AuthorDate: Thu Oct 27 22:07:19 2016 +0200 > > libsdl2: update to 2.0.5 > > * 0001-src-video-make-it-compatible-with-wayland-1.10.patch is removed > because > the problem has been resolved upstream > * Add 0001-prepend-our-sysroot-path-so-that-make-finds-our-wayl.patch > so that WAYLAND_PROTOCOLS_SYSROOT_DIR is substituted in a way similar > to gtk3 > > Signed-off-by: Andreas Müller > Signed-off-by: Ross Burton > --- > ...-sysroot-path-so-that-make-finds-our-wayl.patch | 32 > ...ideo-make-it-compatible-with-wayland-1.10.patch | 57 > -- > .../libsdl2/{libsdl2_2.0.4.bb => libsdl2_2.0.5.bb} | 14 +++--- > 3 files changed, 40 insertions(+), 63 deletions(-) > > diff --git > a/meta/recipes-graphics/libsdl2/libsdl2/0001-prepend-our-sysroot-path-so-that-make-finds-our-wayl.patch > > b/meta/recipes-graphics/libsdl2/libsdl2/0001-prepend-our-sysroot-path-so-that-make-finds-our-wayl.patch > new file mode 100644 > index 000..d042430 > --- /dev/null > +++ > b/meta/recipes-graphics/libsdl2/libsdl2/0001-prepend-our-sysroot-path-so-that-make-finds-our-wayl.patch > @@ -0,0 +1,32 @@ > +From b44808e43130dcd13b43e5b978b9b24aeb4c134c Mon Sep 17 00:00:00 2001 > +From: =?UTF-8?q?Andreas=20M=C3=BCller?= > +Date: Thu, 20 Oct 2016 14:57:51 +0200 > +Subject: [PATCH] prepend our sysroot path so that make finds our > + wayland-protocol files > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +Upstream-Status: Inappropriate [embedded specific] > + > +Signed-off-by: Andreas Müller > +--- > + configure.in | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/configure.in b/configure.in > +index 726ded3..3376600 100644 > +--- a/configure.in > b/configure.in > +@@ -1206,7 +1206,7 @@ AC_HELP_STRING([--enable-video-wayland-qt-touch], > [QtWayland server support for > + WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl > wayland-cursor xkbcommon` > + WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner > wayland-scanner` > + WAYLAND_CORE_PROTOCOL_DIR=`$PKG_CONFIG > --variable=pkgdatadir wayland-client` > +-WAYLAND_PROTOCOLS_DIR=`$PKG_CONFIG --variable=pkgdatadir > wayland-protocols` > ++ > WAYLAND_PROTOCOLS_DIR=${WAYLAND_PROTOCOLS_SYSROOT_DIR}`$PKG_CONFIG > --variable=pkgdatadir wayland-protocols` > + video_wayland=yes > + fi > + fi > +-- > +2.5.5 > + > diff --git > a/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch > > b/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch > deleted file mode 100644 > index 44e6d4d..000 > --- > a/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch > +++ /dev/null > @@ -1,57 +0,0 @@ > -From b1ed3533433501ec52c8289a5b3a294e57e7f798 Mon Sep 17 00:00:00 2001 > -From: Martin Jansa > -Date: Thu, 26 May 2016 11:31:52 + > -Subject: [PATCH] src/video: make it compatible with wayland 1.10 > - > -| build/.libs/SDL_waylandevents.o: In function `wl_registry_bind': > -| /usr/include/wayland-client-protocol.h:305: undefined reference to > `wl_proxy_marshal_constructor_versioned' > -| /usr/include/wayland-client-protocol.h:305: undefined reference to > `wl_proxy_marshal_constructor_versioned' > -| build/.libs/SDL_waylandkeyboard.o: In function `wl_registry_bind': > -| /usr/include/wayland-client-protocol.h:305: undefined reference to > `wl_proxy_marshal_constructor_versioned' > -| /usr/include/wayland-client-protocol.h:305: undefined reference to > `wl_proxy_marshal_constructor_versioned' > -| build/.libs/SDL_waylandvideo.o: In function `wl_registry_bind': > -| /usr/include/wayland-client-protocol.h:305: undefined reference to > `wl_proxy_marshal_constructor_versioned' > -| collect2: error: ld returned 1 exit status > -| make: *** [build/libSDL2.la] Error 1 > -| ERROR: oe_runmake failed > - > -Upstream-Status: Pending > -Signed-off-by: Martin Jansa > - > > - src/video/wayland/SDL_waylanddyn.h | 1 + > - src/video/wayland/SDL_waylandsym.h | 4 > - src/video/webos/SDL_waylanddyn.h | 1 + > - src/video/webos/SDL_waylandsym.h | 4 > - 4 files changed, 10 insertions(+) > - > -diff --git a/src/video/wayland/SDL_waylanddyn.h > b/src/video/wayland/SDL_waylanddyn.h > -index 8d9313a..c7b0157 100644 >
Re: [OE-core] [PATCH v1] wic: Add --exclude-path option to rootfs source plugin.
On Wed, Nov 30, 2016 at 2:30 PM, Kristian Amliewrote: > On 28/11/16 12:18, Ed Bartosh wrote: >> I'd appreciate if you also do the following before sending v2: >> - check that your code doesn't regress pylint checks > > Is there an official process here? Sorry, it's not very well documented. > > Just running pylint3 manually on the scripts/lib/wic folder gives > identical results, however, running on rootfs.py alone, the rating > increases: > > Your code has been rated at 5.67/10 (previous run: 2.26/10, +3.41) > >> - add test case for your code to meta/lib/oeqa/selftest/wic.py >> - check that your code doesn't break oe-selftest --coverage -r wic and >>doesn't regress test coverage > > In the interest of saving me some build time, am I correct in assuming > that I need the "qemux86-64" MACHINE target for this to work? It appears > to be dependent on syslinux which has COMPATIBLE_HOSTS set to non-arm > only. Sorry, I'm a bit new to this framework. You can either build for qemux86-64 or you can try patches from this series: http://lists.openembedded.org/pipermail/openembedded-core/2016-November/129187.html Basically, you should be interested in these: oe-selftest: enforce en_US.UTF-8 locale oeqa/utils/commands.py: allow use of binaries from native sysroot wic: selftest: avoid COMPATIBLE_HOST issues wic: selftest: do not assume bzImage kernel image This is how you add a test: http://lists.openembedded.org/pipermail/openembedded-core/2016-November/129192.html Running tests is as simple as: oe-selftest -r wic.Wic.test_your_test # runs single test oe-selftest -r wic.Wic # runs all wic tests Regards, -- Maciej Borzecki RnDity -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] State of bitbake world, Failed tasks 2016-11-29
== Number of issues - stats == {| class='wikitable' !|Date !!colspan='3'|Failed tasks !!colspan='6'|Failed depencencies!!|Signatures !!colspan='12'|QA !!Comment |- || ||qemuarm ||qemux86 ||qemux86_64 ||qemuarm||max||min ||qemux86||max||min ||all ||already-stripped ||libdir||textrel ||build-deps||file-rdeps ||version-going-backwards ||host-user-contaminated ||installed-vs-shipped ||unknown-configure-option ||symlink-to-sysroot ||invalid-pkgconfig ||pkgname || |- ||2016-11-29||3 ||6 ||4 ||6 ||3 ||2 ||9 ||5 ||3 ||12||0 ||0 ||0 ||6 ||2 ||0 ||0 ||1 ||0 ||0 ||0 ||0 || |} http://www.openembedded.org/wiki/Bitbake_World_Status == Failed tasks 2016-11-29 == INFO: jenkins-job.sh-1.8.12 Complete log available at http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.report.20161130_033054.log === common (2) === * meta-openembedded/meta-multimedia/recipes-mediacenter/kodi/kodi_16.bb:do_configure * openembedded-core/meta/recipes-graphics/libsdl2/libsdl2_2.0.5.bb:do_compile === common-x86 (2) === * meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.10.bb:do_compile * meta-qt5/recipes-qt/qt5/qt5-creator_3.5.1.bb:do_compile === qemuarm (1) === * openembedded-core/meta/recipes-sato/webkit/webkitgtk_2.14.1.bb:do_compile === qemux86 (2) === * meta-browser/recipes-browser/chromium/chromium_52.0.2743.76.bb:do_compile * meta-qt5/recipes-qt/qt5/qtwebengine_git.bb:do_compile === qemux86_64 (0) === === Number of failed tasks (13) === {| class=wikitable |- || qemuarm || 3 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemuarm.20161129_011138.log/ || http://errors.yoctoproject.org/Errors/Build/25227/ |- || qemux86 || 6 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemux86.20161129_011143.log/ || http://errors.yoctoproject.org/Errors/Build/25228/ |- || qemux86_64 || 4 || http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.world.qemux86-64.20161129_101718.log/ || http://errors.yoctoproject.org/Errors/Build/25242/ |} === PNBLACKLISTs (115) === === QA issues (9) === {| class=wikitable !| Count||Issue |- ||0 ||already-stripped |- ||0 ||host-user-contaminated |- ||0 ||invalid-pkgconfig |- ||0 ||libdir |- ||0 ||pkgname |- ||0 ||symlink-to-sysroot |- ||0 ||textrel |- ||0 ||unknown-configure-option |- ||0 ||version-going-backwards |- ||1 ||installed-vs-shipped |- ||2 ||file-rdeps |- ||6 ||build-deps |} === Failed dependencies for qemuarm (6) === Complete log: http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log/ Found differences: Found errors: * ERROR: 6 issues were found in these recipes: kodi libsdl2 webkitgtk === Recipes failing with maximal dependencies for qemuarm (3) === * kodi -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log//2_max/failed/kodi.log * libsdl2 -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log//2_max/failed/libsdl2.log * webkitgtk -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log//2_max/failed/webkitgtk.log === Recipes failing with minimal dependencies for qemuarm (2) === * kodi -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log//3_min/failed/kodi.log * webkitgtk -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemuarm.20161129_094840.log//3_min/failed/webkitgtk.log === Failed dependencies for qemux86 (9) === Complete log: http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemux86.20161129_204323.log/ Found differences: Found errors: * ERROR: 9 issues were found in these recipes: chromium kodi libsdl2 libvncserver qtwebengine === Recipes failing with maximal dependencies for qemux86 (5) === * chromium -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemux86.20161129_204323.log//2_max/failed/chromium.log * kodi -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemux86.20161129_204323.log//2_max/failed/kodi.log * libsdl2 -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemux86.20161129_204323.log//2_max/failed/libsdl2.log * libvncserver -- http://logs.nslu2-linux.org/buildlogs/oe/world/pyro/log.dependencies.qemux86.20161129_204323.log//2_max/failed/libvncserver.log * qtwebengine --
Re: [OE-core] [PATCH v1] wic: Add --exclude-path option to rootfs source plugin.
On 28/11/16 12:18, Ed Bartosh wrote: > I'd appreciate if you also do the following before sending v2: > - check that your code doesn't regress pylint checks Is there an official process here? Sorry, it's not very well documented. Just running pylint3 manually on the scripts/lib/wic folder gives identical results, however, running on rootfs.py alone, the rating increases: Your code has been rated at 5.67/10 (previous run: 2.26/10, +3.41) > - add test case for your code to meta/lib/oeqa/selftest/wic.py > - check that your code doesn't break oe-selftest --coverage -r wic and >doesn't regress test coverage In the interest of saving me some build time, am I correct in assuming that I need the "qemux86-64" MACHINE target for this to work? It appears to be dependent on syslinux which has COMPATIBLE_HOSTS set to non-arm only. Sorry, I'm a bit new to this framework. -- Kristian -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] update-rc.d: ignore initscript in prerm and preinst when systemd is active
In hybrid systemd/sysvinit builds, if the recipe inherits systemd and systemd is installed, we can safely assume that the service gets stopped by the prerm script fragment from systemd.bbclass. This fixes deinstallation of packages with initscripts returning errors when no running service was found. The preinst shouldn't run the initscript either, because postinst will call systemctl restart. Signed-off-by: Andreas Oberritter--- meta/classes/update-rc.d.bbclass | 19 ++- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 321924b..2c3ef9e 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -11,11 +11,20 @@ INITSCRIPT_PARAMS ?= "defaults" INIT_D_DIR = "${sysconfdir}/init.d" +def use_updatercd(d): +# If the distro supports both sysvinit and systemd, and the current recipe +# supports systemd, only call update-rc.d on rootfs creation or if systemd +# is not running. That's because systemctl enable/disable will already call +# update-rc.d if it detects initscripts. +if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and bb.data.inherits_class('systemd', d): +return '[ -n "$D" -o ! -d /run/systemd/system ]' +return 'true' + updatercd_preinst() { -if [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then +if ${@use_updatercd(d)} && [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || : fi -if type update-rc.d >/dev/null 2>/dev/null; then +if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPT="-f -r $D" else @@ -26,7 +35,7 @@ fi } updatercd_postinst() { -if type update-rc.d >/dev/null 2>/dev/null; then +if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPT="-r $D" else @@ -37,13 +46,13 @@ fi } updatercd_prerm() { -if [ -z "$D" -a -x "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then +if ${@use_updatercd(d)} && [ -z "$D" -a -x "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || : fi } updatercd_postrm() { -if type update-rc.d >/dev/null 2>/dev/null; then +if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPT="-f -r $D" else -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] connman: Simplify and fix packaging of VPN plug-ins
- Use simple static packaging. - Move VPN runtime dependencies from connman to the individual plug-ins. - Create a connmann-ppp package containing libppp-plugin.so, which is a shared library needed by l2tp and pptp plug-ins. - Let connman suggest VPN packages instead of recommending them, so they don't get installed by default. - Remove unknown configure options (--with-pptp --with-l2tp) Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/connman/connman.inc | 95 +-- 1 file changed, 32 insertions(+), 63 deletions(-) diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc index 35a7eed..091e402 100644 --- a/meta/recipes-connectivity/connman/connman.inc +++ b/meta/recipes-connectivity/connman/connman.inc @@ -46,24 +46,17 @@ PACKAGECONFIG[wifi] = "--enable-wifi, --disable-wifi, wpa-supplicant, wpa-suppli PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}, ${BLUEZ}" PACKAGECONFIG[3g] = "--enable-ofono, --disable-ofono, ofono, ofono" PACKAGECONFIG[tist] = "--enable-tist,--disable-tist," -PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn,,openvpn" -PACKAGECONFIG[vpnc] = "--enable-vpnc --with-vpnc=${sbindir}/vpnc,--disable-vpnc,,vpnc" -PACKAGECONFIG[l2tp] = "--enable-l2tp --with-l2tp=${sbindir}/xl2tpd,--disable-l2tp,,xl2tpd" -PACKAGECONFIG[pptp] = "--enable-pptp --with-pptp=${sbindir}/pptp,--disable-pptp,,pptp-linux" +PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn" +PACKAGECONFIG[vpnc] = "--enable-vpnc --with-vpnc=${sbindir}/vpnc,--disable-vpnc" +PACKAGECONFIG[l2tp] = "--enable-l2tp,--disable-l2tp" +PACKAGECONFIG[pptp] = "--enable-pptp,--disable-pptp" # WISPr support for logging into hotspots, requires TLS PACKAGECONFIG[wispr] = "--enable-wispr,--disable-wispr,gnutls," INITSCRIPT_NAME = "connman" INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." -python __anonymous () { -systemd_packages = "${PN}" -pkgconfig = d.getVar('PACKAGECONFIG', True) -if ('openvpn' or 'vpnc' or 'l2tp' or 'pptp') in pkgconfig.split(): -systemd_packages += " ${PN}-vpn" -d.setVar('SYSTEMD_PACKAGES', systemd_packages) -} - +SYSTEMD_PACKAGES = "${PN} ${PN}-vpn" SYSTEMD_SERVICE_${PN} = "connman.service" SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service" SYSTEMD_SERVICE_${PN}-wait-online = "connman-wait-online.service" @@ -103,36 +96,6 @@ RDEPENDS_${PN} = "\ dbus \ " -PACKAGES_DYNAMIC += "^${PN}-plugin-.*" - -def add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, add_insane_skip): -plugintype = pkg.split( '-' )[-1] -if plugintype in depmap: -rdepends = map(lambda x: multilib_prefix + x, \ - depmap[plugintype].split()) -d.setVar("RDEPENDS_%s" % pkg, " ".join(rdepends)) -if add_insane_skip: -d.appendVar("INSANE_SKIP_%s" % pkg, "dev-so") - -python populate_packages_prepend() { -depmap = dict(pppd="ppp") -multilib_prefix = (d.getVar("MLPREFIX", True) or "") - -hook = lambda file,pkg,x,y,z: \ -add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, False) -plugin_dir = d.expand('${libdir}/connman/plugins/') -plugin_name = d.expand('${PN}-plugin-%s') -do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ -'${PN} plugin for %s', extra_depends='', hook=hook, prepend=True ) - -hook = lambda file,pkg,x,y,z: \ -add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, True) -plugin_dir = d.expand('${libdir}/connman/plugins-vpn/') -plugin_name = d.expand('${PN}-plugin-vpn-%s') -do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ -'${PN} VPN plugin for %s', extra_depends='', hook=hook, prepend=True ) -} - PACKAGES =+ "${PN}-tools ${PN}-tests ${PN}-client" FILES_${PN}-tools = "${bindir}/wispr" @@ -152,7 +115,12 @@ FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ FILES_${PN}-dev += "${libdir}/connman/*/*.la" -PACKAGES =+ "${PN}-vpn ${PN}-wait-online" +PACKAGES =+ "${PN}-vpn ${PN}-wait-online \ + ${PN}-ppp \ + ${PN}-plugin-vpn-l2tp \ + ${PN}-plugin-vpn-openvpn \ + ${PN}-plugin-vpn-pptp \ + ${PN}-plugin-vpn-vpnc" SUMMARY_${PN}-vpn = "A daemon for managing VPN connections within embedded devices" DESCRIPTION_${PN}-vpn = "The ConnMan VPN provides a daemon for \ @@ -161,10 +129,10 @@ operating system. The connman-vpnd handles all the VPN connections \ and starts/stops VPN client processes when necessary. The connman-vpnd \ provides a DBus API for managing VPN connections. All the different \ VPN technogies are implemented using plug-ins." -FILES_${PN}-vpn += "${sbindir}/connman-vpnd \ -${sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf \ -
[OE-core] [PATCH 2/2] connman: enable connman-wait-online.service
Fixes network mounts on boot. Signed-off-by: Andreas Oberritter--- meta/recipes-connectivity/connman/connman.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc index 091e402..0480257 100644 --- a/meta/recipes-connectivity/connman/connman.inc +++ b/meta/recipes-connectivity/connman/connman.inc @@ -56,7 +56,7 @@ PACKAGECONFIG[wispr] = "--enable-wispr,--disable-wispr,gnutls," INITSCRIPT_NAME = "connman" INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." -SYSTEMD_PACKAGES = "${PN} ${PN}-vpn" +SYSTEMD_PACKAGES = "${PN} ${PN}-vpn ${PN}-wait-online" SYSTEMD_SERVICE_${PN} = "connman.service" SYSTEMD_SERVICE_${PN}-vpn = "connman-vpn.service" SYSTEMD_SERVICE_${PN}-wait-online = "connman-wait-online.service" -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] purpose of variables like "base_bindir_native"?
i'm putting together a tutorial on the structure of the native sysroot and how it's built and variables involved, and was poking around in both bitbake.conf and native.bbclass, and i'm curious about one or two things. i could be totally wrong but it *seems* like there's native-related content in bitbake.conf that could be moved over to native.bbclass to reduce a little of the clutter. i'm perusing bitbake.conf and it's hard to keep track of some of the variables just because there's both native- and target- related settings in there. but i'll admit i haven't finished my inspection. on a more specific note, in the entire oe-core layer, there are two references to the variable "base_bindir_native" (formatted for aesthetics): $ grep -rw base_bindir_native * meta/conf/bitbake.conf:base_bindir_native = "/bin" meta/conf/bitbake.conf:PATH_prepend = "${COREBASE}/scripts:i ${STAGING_BINDIR_TOOLCHAIN}: ${STAGING_BINDIR_CROSS}: ${STAGING_DIR_NATIVE}${sbindir_native}: ${STAGING_BINDIR_NATIVE}: ${STAGING_DIR_NATIVE}${base_sbindir_native}: ${STAGING_DIR_NATIVE}${base_bindir_native}:" <- there so, given that that variable is set in bitbake.conf, and is only referenced in that same file, what's the point of making it a variable? doesn't hurt, of course, but when i see a variable, i normally assume it's because it might be modified later somewhere, but i don't see that happening here. is there a reason for it? same thing could be said for "base_sbindir_native" as well. thoughts? rday -- Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 10/11] buildstats: reduce amount of data stored for system utilization
Pre-processing /proc data during the build considerably reduces the amount of data written to disk: 176KB instead of 4.7MB for a 20 minuted build. Parsing also becomes faster. The disk monitor log added another 16KB in that example build. The overall buildstat was 20MB, so the overhead for monitoring system utilization is small enough that it can be enabled by default. Signed-off-by: Patrick Ohly--- meta/lib/buildstats.py | 114 - 1 file changed, 104 insertions(+), 10 deletions(-) diff --git a/meta/lib/buildstats.py b/meta/lib/buildstats.py index 7c8b352..9e5b6be 100644 --- a/meta/lib/buildstats.py +++ b/meta/lib/buildstats.py @@ -3,6 +3,7 @@ # like open log files and the time of the last sampling. import time +import re import bb.event class SystemStats: @@ -12,14 +13,18 @@ class SystemStats: bb.utils.mkdirhier(bsdir) self.proc_files = [] -for filename in ('diskstats', 'meminfo', 'stat'): +for filename, handler in ( +('diskstats', self._reduce_diskstats), +('meminfo', self._reduce_meminfo), +('stat', self._reduce_stat), +): # In practice, this class gets instantiated only once in # the bitbake cooker process. Therefore 'append' mode is # not strictly necessary, but using it makes the class # more robust should two processes ever write # concurrently. -self.proc_files.append((filename, -open(os.path.join(bsdir, 'proc_%s.log' % filename), 'ab'))) +destfile = os.path.join(bsdir, '%sproc_%s.log' % ('reduced_' if handler else '', filename)) +self.proc_files.append((filename, open(destfile, 'ab'), handler)) self.monitor_disk = open(os.path.join(bsdir, 'monitor_disk.log'), 'ab') # Last time that we sampled /proc data resp. recorded disk monitoring data. self.last_proc = 0 @@ -30,23 +35,112 @@ class SystemStats: # depends on the heartbeat event, which fires less often. self.min_seconds = 1 +self.meminfo_regex = re.compile(b'^(MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree):\s*(\d+)') +self.diskstats_regex = re.compile(b'^([hsv]d.|mtdblock\d|mmcblk\d|cciss/c\d+d\d+.*)$') +self.diskstats_ltime = None +self.diskstats_data = None +self.stat_ltimes = None + def close(self): self.monitor_disk.close() for _, output, _ in self.proc_files: output.close() +def _reduce_meminfo(self, time, data): +""" +Extracts 'MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree' +and writes their values into a single line, in that order. +""" +values = {} +for line in data.split(b'\n'): +m = self.meminfo_regex.match(line) +if m: +values[m.group(1)] = m.group(2) +if len(values) == 6: +return (time, +b' '.join([values[x] for x in + (b'MemTotal', b'MemFree', b'Buffers', b'Cached', b'SwapTotal', b'SwapFree')]) + b'\n') + +def _diskstats_is_relevant_line(self, linetokens): +if len(linetokens) != 14: +return False +disk = linetokens[2] +return self.diskstats_regex.match(disk) + +def _reduce_diskstats(self, time, data): +relevant_tokens = filter(self._diskstats_is_relevant_line, map(lambda x: x.split(), data.split(b'\n'))) +diskdata = [0] * 3 +reduced = None +for tokens in relevant_tokens: +# rsect +diskdata[0] += int(tokens[5]) +# wsect +diskdata[1] += int(tokens[9]) +# use +diskdata[2] += int(tokens[12]) +if self.diskstats_ltime: +# We need to compute information about the time interval +# since the last sampling and record the result as sample +# for that point in the past. +interval = time - self.diskstats_ltime +if interval > 0: +sums = [ a - b for a, b in zip(diskdata, self.diskstats_data) ] +readTput = sums[0] / 2.0 * 100.0 / interval +writeTput = sums[1] / 2.0 * 100.0 / interval +util = float( sums[2] ) / 10 / interval +util = max(0.0, min(1.0, util)) +reduced = (self.diskstats_ltime, (readTput, writeTput, util)) + +self.diskstats_ltime = time +self.diskstats_data = diskdata +return reduced + + +def _reduce_nop(self, time, data): +return (time, data) + +def _reduce_stat(self, time, data): +if not data: +return None +# CPU times {user, nice, system, idle, io_wait, irq, softirq} from first line +tokens = data.split(b'\n', 1)[0].split() +
[OE-core] [PATCH V2 11/11] pybootchartgui: support reading reduced /proc logs
Pre-processing /proc data during the build considerably reduces the amount of data written to disk: 176KB instead of 4.7MB for a 20 minuted build. Parsing also becomes faster. buildstats.bbclass only writes the reduced logs now, but support for the full /proc files is kept around as reference. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/parsing.py | 31 1 file changed, 31 insertions(+) diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py index 1c8d8ef..bcfb2da 100644 --- a/scripts/pybootchartgui/pybootchartgui/parsing.py +++ b/scripts/pybootchartgui/pybootchartgui/parsing.py @@ -442,6 +442,12 @@ def _parse_proc_stat_log(file): # skip the rest of statistics lines return samples +def _parse_reduced_log(file, sample_class): +samples = [] +for time, lines in _parse_timed_blocks(file): +samples.append(sample_class(time, *[float(x) for x in lines[0].split()])) +return samples + def _parse_proc_disk_stat_log(file): """ Parse file for disk stats, but only look at the whole device, eg. sda, @@ -483,6 +489,25 @@ def _parse_proc_disk_stat_log(file): return disk_stats +def _parse_reduced_proc_meminfo_log(file): +""" +Parse file for global memory statistics with +'MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree' values +(in that order) directly stored on one line. +""" +used_values = ('MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree',) + +mem_stats = [] +for time, lines in _parse_timed_blocks(file): +sample = MemSample(time) +for name, value in zip(used_values, lines[0].split()): +sample.add_value(name, int(value)) + +if sample.valid(): +mem_stats.append(DrawMemSample(sample)) + +return mem_stats + def _parse_proc_meminfo_log(file): """ Parse file for global memory statistics. @@ -702,10 +727,16 @@ def _do_parse(writer, state, filename, file): name = os.path.basename(filename) if name == "proc_diskstats.log": state.disk_stats = _parse_proc_disk_stat_log(file) +elif name == "reduced_proc_diskstats.log": +state.disk_stats = _parse_reduced_log(file, DiskSample) elif name == "proc_stat.log": state.cpu_stats = _parse_proc_stat_log(file) +elif name == "reduced_proc_stat.log": +state.cpu_stats = _parse_reduced_log(file, CPUSample) elif name == "proc_meminfo.log": state.mem_stats = _parse_proc_meminfo_log(file) +elif name == "reduced_proc_meminfo.log": +state.mem_stats = _parse_reduced_proc_meminfo_log(file) elif name == "cmdline2.log": state.cmdline = _parse_cmdline_log(writer, file) elif name == "monitor_disk.log": -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 08/11] pybootchartgui: render disk space usage
This adds a new, separate chart showing the amount of disk space used over time for each volume monitored during the build. The hight of the graph entries represents the delta between current usage and minimal usage during the build. That's more useful than showing just the current usage, because then a graph showing changes in the order of MBs in a volume that is several GB large would be just flat. The legend shows the maximum of those deltas, i.e. maximum amount of space needed for the build. Minor caveat: sampling of disk space usage starts a bit later than the initial task, so the displayed value may be slightly lower than the actual amount of space needed because sampling does not record the actual initial state. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py| 62 scripts/pybootchartgui/pybootchartgui/parsing.py | 26 ++ scripts/pybootchartgui/pybootchartgui/samples.py | 11 + 3 files changed, 99 insertions(+) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index ec5dd33..f0143ad 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -133,6 +133,16 @@ TASK_COLOR_PACKAGE = (0.0, 1.00, 1.00, 1.0) # Package Write RPM/DEB/IPK task color TASK_COLOR_PACKAGE_WRITE = (0.0, 0.50, 0.50, 1.0) +# Distinct colors used for different disk volumnes. +# If we have more volumns, colors get re-used. +VOLUME_COLORS = [ + (1.0, 1.0, 0.00, 1.0), + (0.0, 1.00, 0.00, 1.0), + (1.0, 0.00, 1.00, 1.0), + (0.0, 0.00, 1.00, 1.0), + (0.0, 1.00, 1.00, 1.0), +] + # Process states STATE_UNDEFINED = 0 STATE_RUNNING = 1 @@ -397,6 +407,58 @@ def render_charts(ctx, options, clip, trace, curr_y, w, h, sec_w): curr_y = curr_y + 30 + bar_h + # render disk space usage + # + # Draws the amount of disk space used on each volume relative to the + # lowest recorded amount. The graphs for each volume are stacked above + # each other so that total disk usage is visible. + if trace.monitor_disk: + ctx.set_font_size(LEGEND_FONT_SIZE) + # Determine set of volumes for which we have + # information and the minimal amount of used disk + # space for each. Currently samples are allowed to + # not have a values for all volumes; drawing could be + # made more efficient if that wasn't the case. + volumes = set() + min_used = {} + for sample in trace.monitor_disk: + for volume, used in sample.records.items(): + volumes.add(volume) + if volume not in min_used or min_used[volume] > used: + min_used[volume] = used + volumes = sorted(list(volumes)) + disk_scale = 0 + for i, volume in enumerate(volumes): + volume_scale = max([sample.records[volume] - min_used[volume] + for sample in trace.monitor_disk + if volume in sample.records]) + # Does not take length of volume name into account, but fixed offset + # works okay in practice. + draw_legend_box(ctx, '%s (max: %u MiB)' % (volume, volume_scale / 1024 / 1024), + VOLUME_COLORS[i % len(VOLUME_COLORS)], + off_x + i * 250, curr_y+20, leg_s) + disk_scale += volume_scale + + # render used amount of disk space + chart_rect = (off_x, curr_y+30, w, bar_h) + if clip_visible (clip, chart_rect): + draw_box_ticks (ctx, chart_rect, sec_w) + draw_annotations (ctx, proc_tree, trace.times, chart_rect) + for i in range(len(volumes), 0, -1): + draw_chart (ctx, VOLUME_COLORS[(i - 1) % len(VOLUME_COLORS)], True, chart_rect, \ + [(sample.time, + # Sum up used space of all volumes including the current one + # so that the graphs appear as stacked on top of each other. + reduce(lambda x,y: x+y, +[sample.records[volume] - min_used[volume] + for volume in volumes[0:i] + if volume in sample.records], +0)) +for sample
[OE-core] [PATCH V2 09/11] pybootchartgui: simplify drawing of memory usage
The internal representation after parsing now matches exactly what the drawing code needs, thus speeding up drawing a bit. However, the main motivation is to store exactly that required information in a more compact file. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py| 12 ++-- scripts/pybootchartgui/pybootchartgui/parsing.py | 2 +- scripts/pybootchartgui/pybootchartgui/samples.py | 16 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index f0143ad..201ce45 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -463,25 +463,25 @@ def render_charts(ctx, options, clip, trace, curr_y, w, h, sec_w): chart_rect = (off_x, curr_y+30, w, meminfo_bar_h) mem_stats = trace.mem_stats if mem_stats and clip_visible (clip, chart_rect): - mem_scale = max(sample.records['MemTotal'] - sample.records['MemFree'] for sample in mem_stats) + mem_scale = max(sample.buffers for sample in mem_stats) draw_legend_box(ctx, "Mem cached (scale: %u MiB)" % (float(mem_scale) / 1024), MEM_CACHED_COLOR, off_x, curr_y+20, leg_s) draw_legend_box(ctx, "Used", MEM_USED_COLOR, off_x + 240, curr_y+20, leg_s) draw_legend_box(ctx, "Buffers", MEM_BUFFERS_COLOR, off_x + 360, curr_y+20, leg_s) - draw_legend_line(ctx, "Swap (scale: %u MiB)" % max([(sample.records['SwapTotal'] - sample.records['SwapFree'])/1024 for sample in mem_stats]), \ + draw_legend_line(ctx, "Swap (scale: %u MiB)" % max([(sample.swap)/1024 for sample in mem_stats]), \ MEM_SWAP_COLOR, off_x + 480, curr_y+20, leg_s) draw_box_ticks(ctx, chart_rect, sec_w) draw_annotations(ctx, proc_tree, trace.times, chart_rect) draw_chart(ctx, MEM_BUFFERS_COLOR, True, chart_rect, \ - [(sample.time, sample.records['MemTotal'] - sample.records['MemFree']) for sample in trace.mem_stats], \ + [(sample.time, sample.buffers) for sample in trace.mem_stats], \ proc_tree, [0, mem_scale]) draw_chart(ctx, MEM_USED_COLOR, True, chart_rect, \ - [(sample.time, sample.records['MemTotal'] - sample.records['MemFree'] - sample.records['Buffers']) for sample in mem_stats], \ + [(sample.time, sample.used) for sample in mem_stats], \ proc_tree, [0, mem_scale]) draw_chart(ctx, MEM_CACHED_COLOR, True, chart_rect, \ - [(sample.time, sample.records['Cached']) for sample in mem_stats], \ + [(sample.time, sample.cached) for sample in mem_stats], \ proc_tree, [0, mem_scale]) draw_chart(ctx, MEM_SWAP_COLOR, False, chart_rect, \ - [(sample.time, float(sample.records['SwapTotal'] - sample.records['SwapFree'])) for sample in mem_stats], \ + [(sample.time, float(sample.swap)) for sample in mem_stats], \ proc_tree, None) curr_y = curr_y + meminfo_bar_h diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py index 301145a..1c8d8ef 100644 --- a/scripts/pybootchartgui/pybootchartgui/parsing.py +++ b/scripts/pybootchartgui/pybootchartgui/parsing.py @@ -503,7 +503,7 @@ def _parse_proc_meminfo_log(file): sample.add_value(match.group(1), int(match.group(2))) if sample.valid(): -mem_stats.append(sample) +mem_stats.append(DrawMemSample(sample)) return mem_stats diff --git a/scripts/pybootchartgui/pybootchartgui/samples.py b/scripts/pybootchartgui/pybootchartgui/samples.py index bedca41..9fc309b 100644 --- a/scripts/pybootchartgui/pybootchartgui/samples.py +++ b/scripts/pybootchartgui/pybootchartgui/samples.py @@ -53,6 +53,22 @@ class MemSample: # discard incomplete samples return [v for v in MemSample.used_values if v not in keys] == [] +class DrawMemSample: +""" +Condensed version of a MemSample with exactly the values used by the drawing code. +Initialized either from a valid MemSample or +a tuple/list of buffer/used/cached/swap values. +""" +def __init__(self, mem_sample): +self.time = mem_sample.time +if isinstance(mem_sample, MemSample): +self.buffers = mem_sample.records['MemTotal'] - mem_sample.records['MemFree'] +self.used = mem_sample.records['MemTotal'] - mem_sample.records['MemFree'] - mem_sample.records['Buffers'] +self.cached = mem_sample.records['Cached'] +
[OE-core] [PATCH V2 06/11] buildstats: record disk space usage
Hooks into the new monitordisk.py event and records the used space for each volume. That is probably the only relevant value when it comes to visualizing the build and recording more would only increase disk usage. Signed-off-by: Patrick Ohly--- meta/classes/buildstats.bbclass | 4 ++-- meta/lib/buildstats.py | 22 +- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass index 9c0c37d..c6b77e6 100644 --- a/meta/classes/buildstats.bbclass +++ b/meta/classes/buildstats.bbclass @@ -204,11 +204,11 @@ python runqueue_stats () { if system_stats: # Ensure that we sample at important events. done = isinstance(e, bb.event.BuildCompleted) -system_stats.sample(force=done) +system_stats.sample(e, force=done) if done: system_stats.close() d.delVar('_buildstats_system_stats') } addhandler runqueue_stats -runqueue_stats[eventmask] = "bb.runqueue.sceneQueueTaskStarted bb.runqueue.runQueueTaskStarted bb.event.HeartbeatEvent bb.event.BuildCompleted" +runqueue_stats[eventmask] = "bb.runqueue.sceneQueueTaskStarted bb.runqueue.runQueueTaskStarted bb.event.HeartbeatEvent bb.event.BuildCompleted bb.event.MonitorDiskEvent" diff --git a/meta/lib/buildstats.py b/meta/lib/buildstats.py index 8ce4112..7c8b352 100644 --- a/meta/lib/buildstats.py +++ b/meta/lib/buildstats.py @@ -3,6 +3,7 @@ # like open log files and the time of the last sampling. import time +import bb.event class SystemStats: def __init__(self, d): @@ -19,8 +20,10 @@ class SystemStats: # concurrently. self.proc_files.append((filename, open(os.path.join(bsdir, 'proc_%s.log' % filename), 'ab'))) -# Last time that we sampled data. -self.last = 0 +self.monitor_disk = open(os.path.join(bsdir, 'monitor_disk.log'), 'ab') +# Last time that we sampled /proc data resp. recorded disk monitoring data. +self.last_proc = 0 +self.last_disk_monitor = 0 # Minimum number of seconds between recording a sample. This # becames relevant when we get called very often while many # short tasks get started. Sampling during quiet periods @@ -32,9 +35,9 @@ class SystemStats: for _, output, _ in self.proc_files: output.close() -def sample(self, force): +def sample(self, event, force): now = time.time() -if (now - self.last > self.min_seconds) or force: +if (now - self.last_proc > self.min_seconds) or force: for filename, output in self.proc_files: with open(os.path.join('/proc', filename), 'rb') as input: data = input.read() @@ -44,4 +47,13 @@ class SystemStats: ('%.0f\n' % now).encode('ascii') + data + b'\n') -self.last = now +self.last_proc = now + +if isinstance(event, bb.event.MonitorDiskEvent) and \ + ((now - self.last_disk_monitor > self.min_seconds) or force): +os.write(self.monitor_disk.fileno(), + ('%.0f\n' % now).encode('ascii') + + ''.join(['%s: %d\n' % (dev, sample.total_bytes - sample.free_bytes) + for dev, sample in event.disk_usage.items()]).encode('ascii') + + b'\n') +self.last_disk_monitor = now -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 04/11] pybootchartgui: show system utilization
This enables rendering of the original bootchart charts for CPU, disk and memory usage. It depends on the /proc samples recorded by the updated buildstats.bbclass. Currently, empty charts CPU and disk usage charts are drawn if that data is not present; the memory chart already gets skipped when there's no data, which will also have to be added for the other two. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py| 16 +-- scripts/pybootchartgui/pybootchartgui/parsing.py | 61 +--- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index 925002d..bddd804 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -321,6 +321,16 @@ def extents(options, xscale, trace): w = int ((end - start) * sec_w_base * xscale) + 2 * off_x h = proc_h * processes + header_h + 2 * off_y + if options.charts: + if trace.cpu_stats: + h += 30 + bar_h + if trace.disk_stats: + h += 30 + bar_h + if trace.monitor_disk: + h += 30 + bar_h + if trace.mem_stats: + h += meminfo_bar_h + return (w, h) def clip_visible(clip, rect): @@ -496,6 +506,9 @@ def render(ctx, options, xscale, trace): w -= 2*off_x curr_y = off_y; + if options.charts: + curr_y = render_charts (ctx, options, clip, trace, curr_y, w, h, sec_w) + curr_y = render_processes_chart (ctx, options, trace, curr_y, w, h, sec_w) return @@ -513,9 +526,6 @@ def render(ctx, options, xscale, trace): else: curr_y = off_y; - if options.charts: - curr_y = render_charts (ctx, options, clip, trace, curr_y, w, h, sec_w) - # draw process boxes proc_height = h if proc_tree.taskstats and options.cumulative: diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py index a3a0b0b..af68435 100644 --- a/scripts/pybootchartgui/pybootchartgui/parsing.py +++ b/scripts/pybootchartgui/pybootchartgui/parsing.py @@ -38,16 +38,17 @@ class Trace: self.min = None self.max = None self.headers = None -self.disk_stats = None +self.disk_stats = [] self.ps_stats = None self.taskstats = None -self.cpu_stats = None +self.cpu_stats = [] self.cmdline = None self.kernel = None self.kernel_tree = None self.filename = None self.parent_map = None -self.mem_stats = None +self.mem_stats = [] +self.times = [] # Always empty, but expected by draw.py when drawing system charts. if len(paths): parse_paths (writer, self, paths) @@ -58,6 +59,19 @@ class Trace: self.min = min(self.start.keys()) self.max = max(self.end.keys()) + +# Rendering system charts depends on start and end +# time. Provide them where the original drawing code expects +# them, i.e. in proc_tree. +class BitbakeProcessTree: +def __init__(self, start_time, end_time): +self.start_time = start_time +self.end_time = end_time +self.duration = self.end_time - self.start_time +self.proc_tree = BitbakeProcessTree(min(self.start.keys()), +max(self.end.keys())) + + return # Turn that parsed information into something more useful @@ -427,7 +441,7 @@ def _parse_proc_stat_log(file): # skip the rest of statistics lines return samples -def _parse_proc_disk_stat_log(file, numCpu): +def _parse_proc_disk_stat_log(file): """ Parse file for disk stats, but only look at the whole device, eg. sda, not sda1, sda2 etc. The format of relevant lines should be: @@ -462,7 +476,7 @@ def _parse_proc_disk_stat_log(file, numCpu): sums = [ a - b for a, b in zip(sample1.diskdata, sample2.diskdata) ] readTput = sums[0] / 2.0 * 100.0 / interval writeTput = sums[1] / 2.0 * 100.0 / interval -util = float( sums[2] ) / 10 / interval / numCpu +util = float( sums[2] ) / 10 / interval util = max(0.0, min(1.0, util)) disk_stats.append(DiskSample(sample2.time, readTput, writeTput, util)) @@ -628,6 +642,20 @@ def _parse_cmdline_log(writer, file): cmdLines[pid] = values return cmdLines +def _parse_bitbake_buildstats(writer, state, filename, file): +paths = filename.split("/") +task = paths[-1] +pn = paths[-2] +start = None +end = None +for line in file: +if line.startswith("Started:"): +
[OE-core] [PATCH V2 03/11] pybootchartgui/draw.py: fix drawing of samples not starting at zero
The code did not handle x scaling correctly when drawing starts at some time larger than zero, i.e. it worked for normal bootchart data, but not for the system statistics recorded by buildstats.bbclass. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index 2b5907b..925002d 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -256,7 +256,7 @@ def draw_chart(ctx, color, fill, chart_bounds, data, proc_tree, data_range): # avoid divide by zero if max_y == 0: max_y = 1.0 - xscale = float (chart_bounds[2]) / max_x + xscale = float (chart_bounds[2]) / (max_x - x_shift) # If data_range is given, scale the chart so that the value range in # data_range matches the chart bounds exactly. # Otherwise, scale so that the actual data matches the chart bounds. -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 07/11] pybootchartgui/parsing.py: fix error handling in meminfo parser
When matching fails, m.group(0) is invalid and can't be used in the error message. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/parsing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py index af68435..48eb048 100644 --- a/scripts/pybootchartgui/pybootchartgui/parsing.py +++ b/scripts/pybootchartgui/pybootchartgui/parsing.py @@ -498,7 +498,7 @@ def _parse_proc_meminfo_log(file): for line in lines: match = meminfo_re.match(line) if not match: -raise ParseError("Invalid meminfo line \"%s\"" % match.groups(0)) +raise ParseError("Invalid meminfo line \"%s\"" % line) sample.add_value(match.group(1), int(match.group(2))) if sample.valid(): -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 05/11] pybootchartgui/draw.py: skip empty CPU and disk usage charts
The only real change is the addition of two if checks that skips the corresponding drawing code when there is no data. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py | 98 ++- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index bddd804..ec5dd33 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -344,56 +344,58 @@ def render_charts(ctx, options, clip, trace, curr_y, w, h, sec_w): proc_tree = options.proc_tree(trace) # render bar legend - ctx.set_font_size(LEGEND_FONT_SIZE) - - draw_legend_box(ctx, "CPU (user+sys)", CPU_COLOR, off_x, curr_y+20, leg_s) - draw_legend_box(ctx, "I/O (wait)", IO_COLOR, off_x + 120, curr_y+20, leg_s) - - # render I/O wait - chart_rect = (off_x, curr_y+30, w, bar_h) - if clip_visible (clip, chart_rect): - draw_box_ticks (ctx, chart_rect, sec_w) - draw_annotations (ctx, proc_tree, trace.times, chart_rect) - draw_chart (ctx, IO_COLOR, True, chart_rect, \ - [(sample.time, sample.user + sample.sys + sample.io) for sample in trace.cpu_stats], \ - proc_tree, None) - # render CPU load - draw_chart (ctx, CPU_COLOR, True, chart_rect, \ - [(sample.time, sample.user + sample.sys) for sample in trace.cpu_stats], \ - proc_tree, None) - - curr_y = curr_y + 30 + bar_h + if trace.cpu_stats: + ctx.set_font_size(LEGEND_FONT_SIZE) + + draw_legend_box(ctx, "CPU (user+sys)", CPU_COLOR, off_x, curr_y+20, leg_s) + draw_legend_box(ctx, "I/O (wait)", IO_COLOR, off_x + 120, curr_y+20, leg_s) + + # render I/O wait + chart_rect = (off_x, curr_y+30, w, bar_h) + if clip_visible (clip, chart_rect): + draw_box_ticks (ctx, chart_rect, sec_w) + draw_annotations (ctx, proc_tree, trace.times, chart_rect) + draw_chart (ctx, IO_COLOR, True, chart_rect, \ + [(sample.time, sample.user + sample.sys + sample.io) for sample in trace.cpu_stats], \ + proc_tree, None) + # render CPU load + draw_chart (ctx, CPU_COLOR, True, chart_rect, \ + [(sample.time, sample.user + sample.sys) for sample in trace.cpu_stats], \ + proc_tree, None) + + curr_y = curr_y + 30 + bar_h # render second chart - draw_legend_line(ctx, "Disk throughput", DISK_TPUT_COLOR, off_x, curr_y+20, leg_s) - draw_legend_box(ctx, "Disk utilization", IO_COLOR, off_x + 120, curr_y+20, leg_s) - -# render I/O utilization - chart_rect = (off_x, curr_y+30, w, bar_h) - if clip_visible (clip, chart_rect): - draw_box_ticks (ctx, chart_rect, sec_w) - draw_annotations (ctx, proc_tree, trace.times, chart_rect) - draw_chart (ctx, IO_COLOR, True, chart_rect, \ - [(sample.time, sample.util) for sample in trace.disk_stats], \ - proc_tree, None) - - # render disk throughput - max_sample = max (trace.disk_stats, key = lambda s: s.tput) - if clip_visible (clip, chart_rect): - draw_chart (ctx, DISK_TPUT_COLOR, False, chart_rect, \ - [(sample.time, sample.tput) for sample in trace.disk_stats], \ - proc_tree, None) - - pos_x = off_x + ((max_sample.time - proc_tree.start_time) * w / proc_tree.duration) - - shift_x, shift_y = -20, 20 - if (pos_x < off_x + 245): - shift_x, shift_y = 5, 40 - - label = "%dMB/s" % round ((max_sample.tput) / 1024.0) - draw_text (ctx, label, DISK_TPUT_COLOR, pos_x + shift_x, curr_y + shift_y) - - curr_y = curr_y + 30 + bar_h + if trace.disk_stats: + draw_legend_line(ctx, "Disk throughput", DISK_TPUT_COLOR, off_x, curr_y+20, leg_s) + draw_legend_box(ctx, "Disk utilization", IO_COLOR, off_x + 120, curr_y+20, leg_s) + + # render I/O utilization + chart_rect = (off_x, curr_y+30, w, bar_h) + if clip_visible (clip, chart_rect): + draw_box_ticks (ctx, chart_rect, sec_w) + draw_annotations (ctx, proc_tree, trace.times, chart_rect) + draw_chart (ctx, IO_COLOR, True, chart_rect, \ + [(sample.time, sample.util) for sample in trace.disk_stats], \ +
[OE-core] [PATCH V2 01/11] buildstats: add system state sampling
/proc/[diskstats|meminfo|stat] get sampled and written to the same proc_.log files as during normal bootchat logging. This will allow rendering the CPU, disk and memory usage charts. Right now sampling happens once a second, triggered by the heartbeat event.That produces quite a bit of data for long builds, which will be addressed in a separate commit by storing the data in a more compact form. Signed-off-by: Patrick Ohly--- meta/classes/buildstats.bbclass | 24 + meta/lib/buildstats.py | 47 + 2 files changed, 71 insertions(+) create mode 100644 meta/lib/buildstats.py diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass index 57ecc8f..9c0c37d 100644 --- a/meta/classes/buildstats.bbclass +++ b/meta/classes/buildstats.bbclass @@ -188,3 +188,27 @@ python run_buildstats () { addhandler run_buildstats run_buildstats[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted bb.build.TaskStarted bb.build.TaskSucceeded bb.build.TaskFailed" +python runqueue_stats () { +import buildstats +from bb import event, runqueue +# We should not record any samples before the first task has started, +# because that's the first activity shown in the process chart. +# Besides, at that point we are sure that the build variables +# are available that we need to find the output directory. +# The persistent SystemStats is stored in the datastore and +# closed when the build is done. +system_stats = d.getVar('_buildstats_system_stats', True) +if not system_stats and isinstance(e, (bb.runqueue.sceneQueueTaskStarted, bb.runqueue.runQueueTaskStarted)): +system_stats = buildstats.SystemStats(d) +d.setVar('_buildstats_system_stats', system_stats) +if system_stats: +# Ensure that we sample at important events. +done = isinstance(e, bb.event.BuildCompleted) +system_stats.sample(force=done) +if done: +system_stats.close() +d.delVar('_buildstats_system_stats') +} + +addhandler runqueue_stats +runqueue_stats[eventmask] = "bb.runqueue.sceneQueueTaskStarted bb.runqueue.runQueueTaskStarted bb.event.HeartbeatEvent bb.event.BuildCompleted" diff --git a/meta/lib/buildstats.py b/meta/lib/buildstats.py new file mode 100644 index 000..8ce4112 --- /dev/null +++ b/meta/lib/buildstats.py @@ -0,0 +1,47 @@ +# Implements system state sampling. Called by buildstats.bbclass. +# Because it is a real Python module, it can hold persistent state, +# like open log files and the time of the last sampling. + +import time + +class SystemStats: +def __init__(self, d): +bn = d.getVar('BUILDNAME', True) +bsdir = os.path.join(d.getVar('BUILDSTATS_BASE', True), bn) +bb.utils.mkdirhier(bsdir) + +self.proc_files = [] +for filename in ('diskstats', 'meminfo', 'stat'): +# In practice, this class gets instantiated only once in +# the bitbake cooker process. Therefore 'append' mode is +# not strictly necessary, but using it makes the class +# more robust should two processes ever write +# concurrently. +self.proc_files.append((filename, +open(os.path.join(bsdir, 'proc_%s.log' % filename), 'ab'))) +# Last time that we sampled data. +self.last = 0 +# Minimum number of seconds between recording a sample. This +# becames relevant when we get called very often while many +# short tasks get started. Sampling during quiet periods +# depends on the heartbeat event, which fires less often. +self.min_seconds = 1 + +def close(self): +self.monitor_disk.close() +for _, output, _ in self.proc_files: +output.close() + +def sample(self, force): +now = time.time() +if (now - self.last > self.min_seconds) or force: +for filename, output in self.proc_files: +with open(os.path.join('/proc', filename), 'rb') as input: +data = input.read() +# Unbuffered raw write, less overhead and useful +# in case that we end up with concurrent writes. +os.write(output.fileno(), + ('%.0f\n' % now).encode('ascii') + + data + + b'\n') +self.last = now -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 02/11] pybootchartgui/draw.py: allow moving process chart up and down
Substracting curr_y when determining the hight of the process chart is wrong because the height is independent of the position where the chart is about to be drawn. It happens to work at the moment because curr_y is always 10 when render_processes_chart() gets called. But it leads to a negative height when other charts are drawn above it, and then the grid gets drawn on top of those other charts. Substracting some constant is relevant because otherwise the box is slightly larger than the process bars. Not sure exactly where that comes from (text height?); leg_s seems a suitable constant and happens to be 10, so everything still gets rendered exactly as before. Signed-off-by: Patrick Ohly--- scripts/pybootchartgui/pybootchartgui/draw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py index 8c574be..2b5907b 100644 --- a/scripts/pybootchartgui/pybootchartgui/draw.py +++ b/scripts/pybootchartgui/pybootchartgui/draw.py @@ -415,7 +415,7 @@ def render_charts(ctx, options, clip, trace, curr_y, w, h, sec_w): return curr_y def render_processes_chart(ctx, options, trace, curr_y, w, h, sec_w): -chart_rect = [off_x, curr_y+header_h, w, h - 2 * off_y - (curr_y+header_h) + proc_h] +chart_rect = [off_x, curr_y+header_h, w, h - 2 * off_y - header_h - leg_s + proc_h] draw_legend_box (ctx, "Configure", \ TASK_COLOR_CONFIGURE, off_x , curr_y + 45, leg_s) -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 00/11] system statistics sampling
buildstats.bbclass gets extended so that disk bandwidth and capacity, CPU and memory usage get sampled at regular time intervals by default. pybootchart had code for most of that data, which gets restored and re-enabled. The disk capacity graph is new. The original pybootchart just stored raw dumps of the special files under /proc. bitbake builds run longer, so a more compact ("reduced") format is used. Logging disk capacity was mostly motivated by some work on enhancing rm_work.bbclass behavior, but could also be useful for others ("how much free space did my build need"). Changes in V2: - SystemStats instance survives between event handler calls by storing it in the corresponding datastore, instead of using a global variable, and open files get closed properly when the build ends. This should work better with memres bitbake (not tested, though, because of YOCTO #10741). - Sampling now already starts when setscene tasks start to run. The following changes since commit 9f1fe76727e98e58fc9e46ea2b49cf5c0cb48e6c: libpcap: Fix build when PACKAGECONFIG ipv6 is not enable (2016-11-23 11:02:33 +) are available in the git repository at: git://github.com/pohly/openembedded-core buildstats https://github.com/pohly/openembedded-core/tree/buildstats Patrick Ohly (11): buildstats: add system state sampling pybootchartgui/draw.py: allow moving process chart up and down pybootchartgui/draw.py: fix drawing of samples not starting at zero pybootchartgui: show system utilization pybootchartgui/draw.py: skip empty CPU and disk usage charts buildstats: record disk space usage pybootchartgui/parsing.py: fix error handling in meminfo parser pybootchartgui: render disk space usage pybootchartgui: simplify drawing of memory usage buildstats: reduce amount of data stored for system utilization pybootchartgui: support reading reduced /proc logs meta/classes/buildstats.bbclass | 24 +++ meta/lib/buildstats.py | 153 ++ scripts/pybootchartgui/pybootchartgui/draw.py| 192 --- scripts/pybootchartgui/pybootchartgui/parsing.py | 122 +++--- scripts/pybootchartgui/pybootchartgui/samples.py | 27 5 files changed, 440 insertions(+), 78 deletions(-) create mode 100644 meta/lib/buildstats.py -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] tslib 1.3
I found some discussions on tslib in your archives and want to give you a little update. I'm not even sure core is the correct list for this. I'm working on tslib for quite some time now. The project page is https://github.com/kergoth/tslib and has been for quite some time, and I'm maintaining it there. With version 1.3 there shouldn't be any need for your environment to be compatible with tslib's API, as tslib/tools/ts_uinput provides an input event device to use: https://github.com/kergoth/tslib#use-tslib-via-a-normal-input-event-device and you can run it as a daemon (ts_uinput -d). As of now tslib-1.3-rc1 is out for testing. It adds a new multitouch API, but ts_uinput should work for single- and multitouch devices and there shouldn't be a need to wait for Qt or X tslib wrappers to implement tslib's API or to even have them at all. The more feedback we get, the earlier we can consider releasing it as version 1.3. I hope this is useful, martin Ginzinger electronic systems GmbH Gewerbegebiet Pirath 16 4952 Weng im Innkreis www.ginzinger.com Firmenbuchnummer: FN 364958d Firmenbuchgericht: Ried im Innkreis UID-Nr.: ATU66521089 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] fix can't login when debug-tweaks is not in IMAGE_FEATURES
On 11/30/2016 05:28 PM, ChenQi wrote: We could make use of EXTRA_USERS_PARAMS here. More details are in meta/classes/extrausers.bbclass. I haven't tested it myself, but maybe lines below could work: INHERIT += "extrausers" EXTRA_USERS_PARAMS = "\ usermod -p 'root' root; \ " It should be '-P' instead of '-p'. We implement setting clear text password ourselves via allow-for-setting-password-in-clear-text.patch in shadow package. Regards, Chen Qi This info could also be found in local.conf.sample.extended. Best Regards, Chen Qi On 11/30/2016 11:15 AM, Robert Yang wrote: Hello, According to the discussions, here are things that we may do, please feel free to give your comments. 1) Add an image feature like "production", which will conflict with debug-tweaks, and check for some common security issues ? 2) Add a way like ROOT_PASSWD to let user can set root passwd easily ? 3) Do nothing, leave it as the current status. // Robert On 11/23/2016 03:49 PM, Robert Yang wrote: Fixed 2 bugs: - Can't login as root when debug-tweaks/empty-root-password is not in IMAGE_FEATURES since no passwd. - When set root passwd and debug-tweaks/empty-root-password is in IMAGE_FEATURES, passwd is *required* to login. Filed https://bugzilla.yoctoproject.org/show_bug.cgi?id=10710, and marked doc changes required as yes. // Robert The following changes since commit a675b2c89e477af088faee9b3be96eae19a85f0b: sanity.bbclass: fix logging of an error (2016-11-15 15:18:50 +) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/root http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/root Robert Yang (2): rootfs-postcommands.bbclass: fix zap_empty_root_password base-passwd: set root's default password to 'root' meta/classes/rootfs-postcommands.bbclass | 8 .../base-passwd/base-passwd/passwd_master.patch | 16 meta/recipes-core/base-passwd/base-passwd_3.5.29.bb | 1 + 3 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-core/base-passwd/base-passwd/passwd_master.patch -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 0/2] fix can't login when debug-tweaks is not in IMAGE_FEATURES
We could make use of EXTRA_USERS_PARAMS here. More details are in meta/classes/extrausers.bbclass. I haven't tested it myself, but maybe lines below could work: INHERIT += "extrausers" EXTRA_USERS_PARAMS = "\ usermod -p 'root' root; \ " This info could also be found in local.conf.sample.extended. Best Regards, Chen Qi On 11/30/2016 11:15 AM, Robert Yang wrote: Hello, According to the discussions, here are things that we may do, please feel free to give your comments. 1) Add an image feature like "production", which will conflict with debug-tweaks, and check for some common security issues ? 2) Add a way like ROOT_PASSWD to let user can set root passwd easily ? 3) Do nothing, leave it as the current status. // Robert On 11/23/2016 03:49 PM, Robert Yang wrote: Fixed 2 bugs: - Can't login as root when debug-tweaks/empty-root-password is not in IMAGE_FEATURES since no passwd. - When set root passwd and debug-tweaks/empty-root-password is in IMAGE_FEATURES, passwd is *required* to login. Filed https://bugzilla.yoctoproject.org/show_bug.cgi?id=10710, and marked doc changes required as yes. // Robert The following changes since commit a675b2c89e477af088faee9b3be96eae19a85f0b: sanity.bbclass: fix logging of an error (2016-11-15 15:18:50 +) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/root http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/root Robert Yang (2): rootfs-postcommands.bbclass: fix zap_empty_root_password base-passwd: set root's default password to 'root' meta/classes/rootfs-postcommands.bbclass | 8 .../base-passwd/base-passwd/passwd_master.patch | 16 meta/recipes-core/base-passwd/base-passwd_3.5.29.bb | 1 + 3 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-core/base-passwd/base-passwd/passwd_master.patch -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] msmtp: 1.6.5 -> 1.6.6
From: Huang QiyuUpgrade msmtp from 1.6.5 to 1.6.6. Signed-off-by: Huang Qiyu --- meta/recipes-extended/msmtp/{msmtp_1.6.5.bb => msmtp_1.6.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta/recipes-extended/msmtp/{msmtp_1.6.5.bb => msmtp_1.6.6.bb} (86%) diff --git a/meta/recipes-extended/msmtp/msmtp_1.6.5.bb b/meta/recipes-extended/msmtp/msmtp_1.6.6.bb similarity index 86% rename from meta/recipes-extended/msmtp/msmtp_1.6.5.bb rename to meta/recipes-extended/msmtp/msmtp_1.6.6.bb index d0c39eb..e172193 100644 --- a/meta/recipes-extended/msmtp/msmtp_1.6.5.bb +++ b/meta/recipes-extended/msmtp/msmtp_1.6.6.bb @@ -12,8 +12,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "http://sourceforge.net/projects/msmtp/files/msmtp/${PV}/${BPN}-${PV}.tar.xz \ " -SRC_URI[md5sum] = "50a8c9bb72f8222779db6b4aae2965e0" -SRC_URI[sha256sum] = "76a0d60693c7e65d0c7a12f01d300882d280b1e1be0202f54730ae44d44a5006" +SRC_URI[md5sum] = "82b0520b57db4b2cf05333d11fb5974d" +SRC_URI[sha256sum] = "da15db1f62bd0201fce5310adb89c86188be91cd745b7cb3b62b81a501e7fb5e" inherit gettext autotools update-alternatives pkgconfig -- 2.7.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core